[MPlayer-dev-eng] MPCF Draft/Discussion (MPlayer ContainerFormat)

Fabien Tassin fta+mplayer at sofaraway.org
Fri Feb 7 13:12:06 CET 2003


hi,

According to michael c:
> 
> I must say, I think I agree with Fabien that the file format should not 
> close the door on advanced features. The only thing that should be kept in 
> mind is that those features should not make everything over-complicated.

100% agree.
 
> I propose that there could be another stream type (named "generic" or 
> something), in which additional features could then be implemented. Then, 
> if some programs don't support these features, these streams could simply 
> be ignored; the programs don't even need to know anything about their 
> format.

nope. No need to add a stream to have chapters, menu and similar features.
Streams are for video, audio and subtitles.
Macro blocks are for headers/index/chapters/gadgets and should be at
the beginning or at the end, not interleaved.
In ASF, chapters are optionals and described in 0 or 1 'marker' object.
Scripts are also optionals and described in 1 'script command' object.
It is good enough for me.

> There could be, for example, a menu stream (fourcc "MENU" or so), which 
> contains a menu in whatever format you might come up with. Or a chapter 
> stream (fourcc "CHAP"?) which contains the chapter info. Those streams 
> would only have one packet, of course. If cou come up with a better format 
> for those, you could simply pick a different fourcc, so everything's open 
> for everyhting, without simple programs having to know about these advanced 
> things. They just implement what they need/want.

That's why typed objects are nice. unknown object type => skip object
(or forward untouched depending on the situation).
s/object/bloc/ if you prefer, it is the same. It is also refered to as
TLV (Type/Length/Value) in various network protocols.
It should not depend on the version for which a mismatch must abort
the demuxer. If later you wish to change the syntax of your object, pick
a new object-id (type), no need to boost the version.

> Even the index could be well off as one of those generic streams. Just put 
> the index into one packet; the header tells you where it is, you can put it 
> wherever you want, and you can repeat it as often as you want.

same idea except that a stream with one packet is not really a stream
and do not require to be described as one.

/Fabien


More information about the MPlayer-dev-eng mailing list