]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/rtmpproto.c
flvenc: Don't pretend to support muxing "plain" VP6
[ffmpeg] / libavformat / rtmpproto.c
index bc6cd3f56b65add4efa09c67f569f32172bd1fd8..3dbfc92c48aabe553954bf44adfc793eccae9625 100644 (file)
@@ -2221,6 +2221,8 @@ static int handle_metadata(RTMPContext *rt, RTMPPacket *pkt)
             pts = cts;
         ts += cts - pts;
         pts = cts;
+        if (size + 3 + 4 > pkt->data + pkt->size - next)
+            break;
         bytestream_put_byte(&p, type);
         bytestream_put_be24(&p, size);
         bytestream_put_be24(&p, ts);
@@ -2229,6 +2231,11 @@ static int handle_metadata(RTMPContext *rt, RTMPPacket *pkt)
         next += size + 3 + 4;
         p    += size + 3 + 4;
     }
+    if (p != rt->flv_data + rt->flv_size) {
+        av_log(NULL, AV_LOG_WARNING, "Incomplete flv packets in "
+                                     "RTMP_PT_METADATA packet\n");
+        rt->flv_size = p - rt->flv_data;
+    }
 
     return 0;
 }