[Matroska-devel] Re: Re: Re: MPEG2 in MKV!
paul at msn.com
Thu Oct 30 19:57:17 CET 2003
> No...then you introduce sync errors. Not all files will be played in crappy
> DirectShow filters. MPEG video has a framerate for a reason, it's not just
> informational. If you change the framerate but leave more frames then you
> intorduce sync problems. If you drop the extra frames then you break the
> stream. Besides, we shouldn't have to destroy any mpeg compliance just to
> put the stream in MKV. As I said before, the ONLY thing allowed to change
> from sequence header to sequence header is the QUANTIZERS! You can't change
> framerate, resolution, colorspace, progressive vs. interlaced etc.. Only
> those 128 bytes for the quantizer are allowed to change. Otherwise the
> stream is b0rked and no longer spec compliant.
Fine, we leave the Sequence Headers as they are. Leave the ability to write the
streams as a full MPEG-2 ES stream like I said before. This is an alternative
method to make things 'better'. We shouldn't be worrying about crappy MPEG-2 DS
filters. We tell people not to use crappy Vorbis DS filters, we can tell them
not to use crappy MPEG-2 DS filters too.
In any event, it should be a simple matter to regenerate a fully compliant
MPEG-2 ES stream from the this better method anyway. Just reenable the RFF flag
and change the timecodes back to method 1.
Method 1: Store the four frames with timecodes like you are going to store 5
frames. The fourth frame will have a duration that is twice the duration of the
other frames. This should leave space for the decoder to generate the extra
Method 2 is better, we just need to make sure that everyone that can use a
Matroska file does not use a crappy decoder. If someone wants full backwards
compatibility IN THE FILE, then use method 1. Very simple.
More information about the Matroska-devel