[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?

Spyder



More information about the Matroska-devel mailing list