Correctly set the "AU size" field in the payload header for
authorLuca Abeni <lucabe72@email.it>
Fri, 29 May 2009 13:46:46 +0000 (13:46 +0000)
committerLuca Abeni <lucabe72@email.it>
Fri, 29 May 2009 13:46:46 +0000 (13:46 +0000)
fragmented AAC frames

Originally committed as revision 18984 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/rtp_aac.c

index b597bb1..e19b286 100644 (file)
@@ -66,14 +66,16 @@ void ff_rtp_send_aac(AVFormatContext *s1, const uint8_t *buff, int size)
         memcpy(s->buf_ptr, buff, size);
         s->buf_ptr += size;
     } else {
         memcpy(s->buf_ptr, buff, size);
         s->buf_ptr += size;
     } else {
+        int au_size = size;
+
         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);
         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;
+            p[2] = au_size >> 5;
+            p[3] = (au_size & 0x1F) << 3;
             memcpy(p + 4, buff, len);
             ff_rtp_send_data(s1, p, len + 4, len == size);
             size -= len;
             memcpy(p + 4, buff, len);
             ff_rtp_send_data(s1, p, len + 4, len == size);
             size -= len;