suggestion of how to "extend" the ogg framework.

Philip Jägenstedt <[email protected]> Wed, 30 Oct 2002 02:33:47 +0100
Newsgroups gmane.comp.multimedia.ogg.tarkin.devel
Message-ID <[email protected]>
This may not be very topical, but since this is related to the 
"Suggestions and questions" post, I've chosen to post it here. Most of 
this has been said in the 
http://www.xiph.org/archives/tarkin-dev/200210/0001.html thread, so you 
mihgt want to read that :)

I've thought some more about this and that, and have found that the 
following features would be lovely.
1) It would be nice to be able to specify an external file X from which 
to fork in a logical stream between logical stream 1 and 2 while playing 
ogg file Y. This information should be stored in ogg file Y. The player 
should grab the external file and play stream(s). If the stream is 
nowhere to be seen; skip playing it. Usage: ability to reuse the intro 
of say a whole tv or radio series, hence saving disk space. This has 
already been covered to some extent in previously threads.
2) The ability to put two or more logical streams of type video side by 
side in an ogg file (I'm sure this can be done already, with some 
willpower), and be able to specify in which order they should appear - 
i.e. which one is on top. Imagine having one video layer with 
transparencies (ok, this isn't possible with present ones) and letting 
the "background" video shine through. Now imagine this background video 
is defined as an external stream - this would mean that it would be 
possible to use the same foreground video but very easily change 
background - good if you want a christmas theme for your little video :) 
In any case, this sort of thing should save disk space (but waste time).

This is not much news, but what I would actually like a discussion about 
is HOW this sort of thing could be implemented.

I've though about the possibility of doing this the easy way - by using 
the comments in ogg. This does seem somehow... clonky, but I cannot see 
why it should not work. Just like "artist" is a standard field for the 
artist name, "foobar" could be the standard field for this external file 
buisness. So imagine file foo.ogg - this has two logical streams (both 
vorbis, for the sake of argument). In the magical comment field it is 
somehow specified that the ogg stream with serial 123456 should be 
forked inbetween logical stream 1 and 2 on playback. If the player does 
not understand this comment, it will ignore it ofcourse and the user 
will notice nothing. If the player does understand it however it will 
look for the file (on the internet or locally) which contains this 
stream. The local filename could be stated, but should not be the only 
clue as many people like to change filenames at random. Error checking 
using things such as md5sums etc could ensure that the right stream is 
actually forked in. The beauty of this sort of thing would obviously be 
that old players would still be able to play the thing.

Information about order when it comes to parallel video streams in 
different layers could also be stated in some comment. But I really 
don't know how a player without this knowledge would react to two 
videostreams (but then again there is no current video format using ogg 
out and about - only theora and tarkin).

An alternative solution would be building all of this super-duper flashy 
stuff in a different framework, using ogg, but not being ogg. We could 
do lovely things as silly menus and all sorts of interactive garbage (I 
think something like this was developed by macromedia already :) It's 
really frustrating to all sort of things you would like to be able to 
do, but knowing where those things should/could be built.

What do you guys think? Would this sort of solution be any good, or 
would it just cause problems in the future. Perhaps, as we have said 
before, this sort of this should be handeled totally outside the ogg 
framework, but to me (as someone who has never actually looked the the 
source code of ogg), it (using comments) seems like a good idea. If it 
is not, please explain why.

//Philip Jägenstedt

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to '[email protected]'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.