[FFmpeg-devel] [PATCH] Speex parser

Justin Ruggles justin.ruggles
Mon Aug 31 02:42:26 CEST 2009


Michael Niedermayer wrote:

> On Sun, Aug 30, 2009 at 07:02:58PM -0400, Justin Ruggles wrote:
>> Justin Ruggles wrote:
>>
>>> Michael Niedermayer wrote:
>>>
>>>> On Sun, Aug 30, 2009 at 10:40:45AM -0400, Justin Ruggles wrote:
> [...]
>>>>> It is useful mainly for stream copy when no header is present or if some
>>>>> values in the header are encoded as "unknown".  Also, if the extradata
>>>>> is missing, the parser will create it using correct values.  This is
>>>>> better than what is done currently in the FLV demuxer, which guesses
>>>>> some header values based on defaults and sets some as "unknown".
>>>> it seems creating fake(1) extradata belongs more in a bitstream filter than
>>>> a parser
>>>>
>>>> (1) fake in the sense that it does not exist like that in the container
>>> Ok, I'll look into that.
>> It doesn't seem to work.  The bitstream filter is not run until the
>> first packet is written.  By that time, the muxer has already been
>> initialized without any extradata and fails.  Am I missing something?
> 
> why is every xiph codec causing so many idiotic problems?

I blame Adobe for this one.  Speex is meant to have a global header, yet
they chose not to include one.

> i guess we could either
> * extend bsfs to filter extradata properly too
> * just accept that flv & ogg are not compatibl


If it comes down to that or an ugly solution, I'm ok with it.  We would
just have to make sure that other containers we choose to add Speex
muxing support for will require a header so that we don't add to the
problem.

> * something else

The only other thing I can think of is putting it in a shared function
in lavf and using it when extradata is missing for muxers which support
Speex and require extradata (all but flv).

-Justin



More information about the ffmpeg-devel mailing list