OSDN Git Service

Revert: flvenc: Don't pretend to support muxing "plain" VP6
authorCarl Eugen Hoyos <cehoyos@ag.or.at>
Thu, 31 Oct 2013 00:24:07 +0000 (01:24 +0100)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Mon, 9 Dec 2013 12:18:29 +0000 (13:18 +0100)
Muxing VP6 is used by applications and works with Flashplayer.

Reported-by: David Bertrand
libavformat/flvenc.c

index 9224103..a1b498d 100644 (file)
@@ -37,6 +37,7 @@ static const AVCodecTag flv_video_codec_ids[] = {
     { AV_CODEC_ID_FLASHSV,  FLV_CODECID_SCREEN },
     { AV_CODEC_ID_FLASHSV2, FLV_CODECID_SCREEN2 },
     { AV_CODEC_ID_VP6F,     FLV_CODECID_VP6 },
+    { AV_CODEC_ID_VP6,      FLV_CODECID_VP6 },
     { AV_CODEC_ID_VP6A,     FLV_CODECID_VP6A },
     { AV_CODEC_ID_H264,     FLV_CODECID_H264 },
     { AV_CODEC_ID_NONE,     0 }
@@ -460,7 +461,7 @@ static int flv_write_packet(AVFormatContext *s, AVPacket *pkt)
     int flags = -1, flags_size, ret;
 
     if (enc->codec_id == AV_CODEC_ID_VP6F || enc->codec_id == AV_CODEC_ID_VP6A ||
-        enc->codec_id == AV_CODEC_ID_AAC)
+        enc->codec_id == AV_CODEC_ID_VP6  || enc->codec_id == AV_CODEC_ID_AAC)
         flags_size = 2;
     else if (enc->codec_id == AV_CODEC_ID_H264 || enc->codec_id == AV_CODEC_ID_MPEG4)
         flags_size = 5;
@@ -560,6 +561,8 @@ static int flv_write_packet(AVFormatContext *s, AVPacket *pkt)
     } else {
         av_assert1(flags>=0);
         avio_w8(pb,flags);
+        if (enc->codec_id == AV_CODEC_ID_VP6)
+            avio_w8(pb,0);
         if (enc->codec_id == AV_CODEC_ID_VP6F || enc->codec_id == AV_CODEC_ID_VP6A) {
             if (enc->extradata_size)
                 avio_w8(pb, enc->extradata[0]);