[Ffmpeg-cvslog] r8334 - trunk/libavformat/matroska.c

Loren Merritt lorenm
Fri Mar 16 03:22:22 CET 2007

On Thu, 15 Mar 2007, Uoti Urpala wrote:
> On Thu, 2007-03-15 at 14:05 -0600, Loren Merritt wrote:
>> On Thu, 15 Mar 2007, Michael Niedermayer wrote:
>>> num_reorder_frames is optional, what do you do if its not there?
>> When the num_reorder_frames syntax element is not present, the value of
>> num_reorder_frames value shall be inferred to be equal to
>> max_dec_frame_buffering.
>> When the max_dec_frame_buffering syntax element is not present, the
>> value of max_dec_frame_buffering shall be inferred to be equal to
>> MaxDpbSize.
>> MaxDpbSize is specified as a function of Level, which is not optional.
> Does the libavcodec decoder use delay 16 in this case? If it doesn't
> follow this spec (and IIRC it might not though I don't remember 100%
> sure - after all it's inefficient to buffer 16 frames by default before
> seeing a place where it is actually necessary) then writing the demuxer
> assuming compliant behavior has practical problems. Of course assuming
> non-compliant behavior has problems too...

libavcodec uses the minimum possible buffer if num_reorder_frames is 
missing. Because most of the encoders that don't support complex frame 
orders omit it but assume 0 or 1 rather than the compliant value, and 
because mplayer --correct-pts was only implemented recently.

--Loren Merritt

More information about the ffmpeg-cvslog mailing list