]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/rmenc.c
avformat/avidec: also print frame_num in debug output
[ffmpeg] / libavformat / rmenc.c
index 8763fff23571cd8ec33428736b2c2ac3a4223690..cd32f271f147d11e825efe4ee737cd236fb06353 100644 (file)
@@ -44,6 +44,10 @@ typedef struct RMMuxContext {
 
 /* in ms */
 #define BUFFER_DURATION 0
+/* the header needs at most 7 + 4 + 12 B */
+#define MAX_HEADER_SIZE (7 + 4 + 12)
+/* UINT16_MAX is the maximal chunk size */
+#define MAX_PACKET_SIZE (UINT16_MAX - MAX_HEADER_SIZE)
 
 
 static void put_str(AVIOContext *s, const char *tag)
@@ -396,9 +400,8 @@ static int rm_write_video(AVFormatContext *s, const uint8_t *buf, int size, int
     /* Well, I spent some time finding the meaning of these bits. I am
        not sure I understood everything, but it works !! */
 #if 1
-    /* 0xFFFF is the maximal chunk size; header needs at most 7 + 4 + 12 B */
-    if (size > 0xFFFF - 7 - 4 - 12) {
-        av_log(s, AV_LOG_ERROR, "large packet size %d not supported\n", size);
+    if (size > MAX_PACKET_SIZE) {
+        av_log(s, AV_LOG_ERROR, "Muxing packets larger than 64 kB (%d) is not supported\n", size);
         return AVERROR_PATCHWELCOME;
     }
     write_packet_header(s, stream, size + 7 + (size >= 0x4000)*4, key_frame);