2 * RTP Packetization of MPEG-4 Audio (RFC 3016)
3 * Copyright (c) 2011 Juan Carlos Rodriguez <ing.juancarlosrodriguez@hotmail.com>
5 * This file is part of Libav.
7 * Libav is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
12 * Libav is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with Libav; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
25 void ff_rtp_send_latm(AVFormatContext
*s1
, const uint8_t *buff
, int size
)
28 * The RTP payload format specification is described in RFC 3016
29 * The encoding specifications are provided in ISO/IEC 14496-3 */
31 RTPMuxContext
*s
= s1
->priv_data
;
36 /* skip ADTS header, if present */
37 if ((s1
->streams
[0]->codec
->extradata_size
) == 0) {
42 /* PayloadLengthInfo() */
43 header_size
= size
/0xFF + 1;
44 memset(s
->buf
, 0xFF, header_size
- 1);
45 s
->buf
[header_size
- 1] = size
% 0xFF;
47 s
->timestamp
= s
->cur_timestamp
;
51 len
= FFMIN(size
, s
->max_payload_size
- (!offset
? header_size
: 0));
54 memcpy(s
->buf
+ header_size
, buff
, len
);
55 ff_rtp_send_data(s1
, s
->buf
, header_size
+ len
, !size
);
57 ff_rtp_send_data(s1
, buff
+ offset
, len
, !size
);