avformat/asfenc: honor the maximum of 63 payloads
authorAaron Graham <aaron@aarongraham.com>
Mon, 12 May 2014 22:54:55 +0000 (00:54 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 12 May 2014 22:54:55 +0000 (00:54 +0200)
Fixes Ticket3634

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/asfenc.c

index 02f2a29..cccbf85 100644 (file)
@@ -34,6 +34,7 @@
 
 #define ASF_INDEXED_INTERVAL    10000000
 #define ASF_INDEX_BLOCK         (1<<9)
+#define ASF_PAYLOADS_PER_PACKET 63
 
 #define ASF_PACKET_ERROR_CORRECTION_DATA_SIZE 0x2
 #define ASF_PACKET_ERROR_CORRECTION_FLAGS          \
@@ -858,6 +859,8 @@ static void put_frame(AVFormatContext *s, ASFStream *stream, AVStream *avst,
             flush_packet(s);
         else if (asf->packet_size_left <= (PAYLOAD_HEADER_SIZE_MULTIPLE_PAYLOADS + PACKET_HEADER_MIN_SIZE + 1))
             flush_packet(s);
+        else if (asf->packet_nb_payloads == ASF_PAYLOADS_PER_PACKET)
+            flush_packet(s);
     }
     stream->seq++;
 }