[Ffmpeg-devel] [PATCH] support for VP6 and FLASHSV in the flv muxer
Benjamin Larsson
banan
Thu Dec 28 15:14:32 CET 2006
Michael Niedermayer wrote:
> [...]
>
>>Index: libavformat/flvenc.c
>>===================================================================
>>--- libavformat/flvenc.c (revision 7320)
>>+++ libavformat/flvenc.c (working copy)
>>@@ -235,7 +235,17 @@
>>
>> if (enc->codec_type == CODEC_TYPE_VIDEO) {
>> put_byte(pb, FLV_TAG_TYPE_VIDEO);
>>- flags = FLV_CODECID_H263;
>>+
>>+ switch (enc->codec_id) {
>>+ case CODEC_ID_FLV1: flags = FLV_CODECID_H263; break;
>>+ case CODEC_ID_FLASHSV: flags = FLV_CODECID_SCREEN; break;
>>+ case CODEC_ID_VP6F:
>>+ case CODEC_ID_VP6: flags = FLV_CODECID_VP6; break;
>>+
>>+ default:
>>+ av_log(s, AV_LOG_INFO, "Unsupported video codec (%x)\n", enc->codec_id);
>>+ return -1;
>>+ }
>>
>>
>
>wasnt there a CODEC_ID <-> FLV_CODECID table somewhere? if no it should be
>added and used in muxer and demuxer
>
>
>
Commited the pending patch and used the table.
>> flags |= pkt->flags & PKT_FLAG_KEY ? FLV_FRAME_KEY : FLV_FRAME_INTER;
>> } else {
>> assert(enc->codec_type == CODEC_TYPE_AUDIO);
>>@@ -246,10 +256,15 @@
>> put_byte(pb, FLV_TAG_TYPE_AUDIO);
>> }
>>
>>- put_be24(pb,size+1); // include flags
>>+ if (enc->codec_id == CODEC_ID_VP6)
>>+ put_be24(pb,size+2); // include the extra byte needed for VP6 in flv and flags
>>+ else
>>+ put_be24(pb,size+1); // include flags
>> put_be24(pb,pkt->pts);
>> put_be32(pb,flv->reserved);
>> put_byte(pb,flags);
>>+ if (enc->codec_id == CODEC_ID_VP6)
>>+ put_byte(pb,0);
>>
>>
>
>shouldnt that rather be extradata[0] ?
>
>[...]
>
>
Added the code suggestion from Aurel. Regressions passed. Ok to commit ?
MvH
Benjamin Larsson
--
new tiny signature
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: flvstreamcopy.patch
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20061228/4ec13437/attachment.asc>
More information about the ffmpeg-devel
mailing list