[Matroska-devel] Re: MPEG in MKV

John Cannon spyder at matroska.org
Wed Jan 28 19:19:24 CET 2004

Ronald S. Bultje wrote:
> On Wed, 2004-01-28 at 17:29, John Cannon wrote:
>>- GOP headers may optionally be excluded as according to the specs.
> Which specs?

ISO MPEG-2 says:
"Group of picture header is an optional header that can be used 
immediately before a coded I-frame to
indicate to the decoder if the first consecutive B-pictures immediately 
following the coded I-frame can
be reconstructed properly in the case of a random access."  This makes 
me believe it's not required.

> Any Linux MPEG decoder that I know of *requires* MPEG headers (at least
> the sequence header, but I think the GOP header too) to operate
> correctly. I don't know how this works for DirectShow, but I'm guessing
> something similar. My experiences/experiments with alternative  video
> elementary streams layouts in WMP (win2k/XP) haven't been too good.
> Basically, you have to "fix" the stream everywhere where you "break" it.
> If so, what's the use of allowing it to be removed? It only complicates
> the demuxer and muxer.

Of course they require the sequence headers but the GOP header only 
serves one purpose, to tell the decoder if the following GOP has some 
broken/missing references.  IMO if the decoder MUST use this it's simply 
broken.  Perhaps we should only include them if they tell that the gop 
is broken?

> Apart from that, seems similar to MPGI in AVI - so it's fine, I guess.
> The fact that MPEG-4 is stored in display and MPEG-1 in coding order is
> logical (specs), but confusing. I'd make this an explicit note in your
> Matroska specs.

ummm...doesn't native mpeg4 use coding order?

> Ronald
> PS: why do stream headers go into codecpivate? Where do you use them?
Well, it makes it easier for DirectShow since we need the sequence 
header to create the output format.  If it can be done without it, i 
don't know that we really need it there.  Any ideas? Toff?


More information about the Matroska-devel mailing list