[vorbis-dev] application/ogg is a proposed Internet standard.

Dan Miller dan at on2.com
Tue Jan 28 11:52:09 PST 2003


as far as the identification problem goes --
 
I had a reasonably long discussion with Monty about this.  The present theory of operation is as follows (Monty as always, please correct if I'm wrong):
 
Each logical stream has an identification header.  By convention, this header must include magic data that uniquely identifies the required codec.  IE, after the packet ID, vorbis headers contain the string "vorbis"; theora headers say "theora", etc.
 
Perhaps we should codify this convention.  But even if we didn't, it's entirely reasonable to have each codec take a look at the ID header and report as to whether it can parse this stream.  If all codecs fail, you haven't installed (linked in) a codec that can deal with this data.  This situation is identical to the case in Quicktime or Windows Media where you have a file but don't have the codec.  If the codec is installed, you send it the data; if it's not installed, you don't.  The ID query should be nearly instantaneous, so it shouldn't be any kind of latency or performance problem.
 
As for the timing/seeking issues, I'm just getting up to speed on it, but I suspect the answer is similar: yes, the methods necessary to locate position in a stream are codec-dependent, but that's fine; either you have the codec or you don't.  If not, what are you going to do with the data other than discarding it?  If you do have the codec, then the interface provides the functionality necessary to map packets (granules??) or whatever to actual time stamps.
 
As has been mentioned, it is very important to distinguish between the spec itself and the existing apps and libraries that support the spec.  While the existing implementation may not support a specific feature (for instance, run-time codec binding), there is nothing in the spec itself that prevents anyone from developing an application with that feature.  The spec itself should not be modified unless it is shown that some feature is not possible to implement reasonably within the specification as it now exists.
 
-dbm

        -----Original Message----- 
        From: Tor-Einar Jarnbjo [mailto:Tor-Einar_Jarnbjo at grosch-link.de] 
        
        I've already tried to discuss this problem here without getting much
        response, since the problem is not just a theoretical one, but it
        also has practical issues. When implementing an Ogg demultiplexer
        for a media framework, the demultiplexer in most cases has to determine
        the content type of each logical stream. E.g. an Ogg file containing
        a Vorbis and a Theora track would be split by the demultiplexer into
        two logical streams with the content types audio/(x-)vorbis and video/(x-
        )theora. At the moment, this means that the demultiplexer must be
        able to recognize the content type based on the actual content. This
        is not really difficult, but it means that if the demultiplexer for
        example only knows how to recognize Vorbis, the framework would not
        be able to playback a FLAC stream in an Ogg container, although a
        FLAC decoder is installed. A related problem is also the format of
        the timestamps in the Ogg files. A demultiplexer needs quite extensive
        knowledge about the actual format, before it is able to convert the
        granule position into a meaningful and comparable value.
        
        IMHO, a good solution for the content problem would simply be to
        specify the actual content type as a string somewhere in the Ogg
        file. I can't see an easy solution for doing this and remain backward
        compatible though.
        
        Tor
        
        
        
        ===================================================================
        EASY and FREE access to your email anywhere: http://Mailreader.com/
        ===================================================================
        
        
        --- >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 'vorbis-dev-request at xiph.org'
        containing only the word 'unsubscribe' in the body.  No subject is needed.
        Unsubscribe messages sent to the list will be ignored/filtered.
        

-------------- next part --------------
A non-text attachment was scrubbed...
Name: winmail.dat
Type: application/ms-tnef
Size: 7335 bytes
Desc: winmail.dat
Url : http://lists.xiph.org/pipermail/vorbis-dev/attachments/20030128/60265f05/winmail.bin


More information about the Vorbis-dev mailing list