From 1a3a0a79b6f77043737926e457c8360dead032a7 Mon Sep 17 00:00:00 2001 From: Luca Abeni Date: Fri, 14 Sep 2007 09:00:31 +0000 Subject: Support fragmentation for AAC frames Originally committed as revision 10492 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/rtp_aac.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'libavformat/rtp_aac.c') diff --git a/libavformat/rtp_aac.c b/libavformat/rtp_aac.c index 267ed932d5..04dc3cfdda 100644 --- a/libavformat/rtp_aac.c +++ b/libavformat/rtp_aac.c @@ -67,6 +67,22 @@ void ff_rtp_send_aac(AVFormatContext *s1, const uint8_t *buff, int size) memcpy(s->buf_ptr, buff, size); s->buf_ptr += size; } else { - av_log(s1, AV_LOG_ERROR, "Unsupported!\n"); + if (s->buf_ptr != s->buf + MAX_AU_HEADERS_SIZE) { + av_log(s1, AV_LOG_ERROR, "Strange...\n"); + av_abort(); + } + max_packet_size = s->max_payload_size - 4; + p = s->buf; + p[0] = 0; + p[1] = 16; + while (size > 0) { + len = FFMIN(size, max_packet_size); + p[2] = len >> 5; + p[3] = (size & 0x1F) << 3; + memcpy(p + 4, buff, len); + ff_rtp_send_data(s1, p, len + 4, len == size); + size -= len; + buff += len; + } } } -- cgit v1.2.3