[theora-dev] Re: Ogg Internet Drafts - create application/ogg-vorbis, application/ogg-tarkin, etc.
carsten at uniqsys.com
Thu Jan 2 08:53:45 PST 2003
On Thu, 2003-01-02 at 10:48, David Wheeler wrote:
> > Unfortunately, an Ogg file can (and will) contain different codecs in
> > the same file. Imagine a file that contains two chained groups of
> > multiplexed bitstreams. The first group contains vorbis, vp3, speex, and
> > subtitle streams. The second group contains FLAC, MNG, and MIDI streams.
> > [The fact that it's hard to envision a use for this monster doesn't
> > negate the fact that such a monster is still a perfectly valid Ogg
> > file.]
> > What would its MIME type be?
> I think there should be a "generic" Ogg MIME type, e.g., application/ogg
> or whatever. But nearly all Ogg files will only have a very small
> subset of codecs, and it's _extremely_ helpful if the MIME type is
> more specific. Let's face it, although your "monster" is legal Ogg,
> I doubt it would be the majority use :-).
> >>>For example, many people have _separate_ applications for audio-only
> >>>instead of audio+video. It would be better if they could start the
> >>>"right" application using just the MIME type information (instead of
> >>>awkward two-stage start-ups that are different than anything else).
> >>>At the least, I suspect there is a need to have different MIME types
> >>>for audio-only vs. video.
> > So, which one is the right handler for the above monster? I think it
> > would be an application that can identify the codecs inside an Ogg file
> > and route each stream to its appropriate decoder.
> No, that is excessively complex for 99.99% of normal uses.
I guess my initial description was not clear enough. The way I imagine
it, there's no added complexity for the user at all. I imagine a very
thin application that the user won't even have to see. That application
would peek into the Ogg file, and determine which application to launch
to handle the file. It could even have a reasonable default
configuration, like launch the default audio player for Vorbis and the
default video player for Theora, so the user won't have to do anything
beyond installing it.
> There's ALREADY a multiplexor in the operating system and browser of
> all of today's systems. They use MIME types. If you have a sub-multiplexor
> to figure out Ogg types, that's a great reason to ignore Ogg - it's
> "just too complicated." Let users use their _existing_ setup where they can.
> There's no reason to create a dual-level multiplexor just to hear
> an audio clip in the most common Ogg audio or video format.
As you say below, MIME types have an inherent limitation, so the
OS/browser multiplexor is clearly insufficient.
> > For special cases, there are special considerations. E.g. an Ogg Vorbis
> > file (by definition an Ogg file that contains Vorbis streams that are
> > not multiplexed, only chained at the most) is allowed to have
> > audio/x-vorbis as its MIME type. [But it would still be allowed to be of
> > type application/ogg or application/x-ogg, since it is an Ogg file,
> > after all.]
> Here we completely agree! But I'd say that the weird Ogg file is the
> special case, at least in terms of number of times it's used.
> The "normal" cases would be an Ogg Vorbis only file, or an
> Ogg Tarkin + Ogg Vorbis file, or an Ogg Speex file.
> This is actually a general problem for MIME. Many files are XML, or
> gzipped XML, but MIME wants a more specific type. I can't fix MIME.
> But few users want the "generic" tool - they want an application to handle
> the file, so having the specific information is much more useful in
> most cases.
As I explained above, the user won't see the generic tool. It is a thin,
transparent layer that directs the file to the appropriate (specific)
> >>>Also, not all applications can handle all codecs, even if they handle
> >>>that kind of media; that would be ESPECIALLY true if Ogg supports multiple
> >>>codecs... which it does.
> > Which is why it's especially important to have one application that
> > handles the Ogg and routes each bitstream to the appropriate decoder.
> I don't see that happening. There are applications tailored to playing music,
> others for playing video, others for conversing on the phone. They
> tend to be separate and invoke Ogg - not the other way around.
> They're all specialized for the way the applications are USED.
> If the Ogg codecs were the only ones that existed, I could see that.
> But I think it's improbable that the application vendors will suddenly
> merge because Ogg is now available.
It should be clear from the above that the application vendors don't
have to merge or cooperate at all for a generic '.ogg' extension to
> >>>Thus, I believe the MIME type should identify both Ogg & the codec.
> >>>Perhaps an application/ogg-vorbis, application/ogg-tarkin, etc.
> >>>You could also register application/ogg (to be used when a more specific
> >>>MIME type isn't available). Ideally the standard filename extensions
> >>>should be different too; Ogg Vorbis could be ".ogg" since that's become
> >>>so common, Ogg Tarkin could be ".ogt", etc.
> > Ideally? You seem to be stuck in a world of operating systems that need
> > a specific filename extension to identify a file type.
> Sounds like you're a Mac user. This _is_ an expectation of Windows/MS-DOS,
> Unix, and Linux. If ogg is going to be successful, it _must_ support the
> conventions of these operating systems, and easily work _within_ them.
Actually, I am a Linux user. The Linux OS doesn't impose anything on
anything, as determining a file type is not a task for the OS, despite
anything that Microsoft want you to believe. It's up to higher level
tools to do this, and there are tools that look into a file's contents
to determine its type. If a file manager determines the type of a file
by its extension, that means the file manager needs to be made smarter.
[In case you want to know what filemanager is already that smart, I
don't know. My filemanager is the command line ;)]
Besides, we don't have to rely on either the OS or the filemanager to
determine the exact set of codecs inside an Ogg file. All it needs to do
is to determine that it's an Ogg file, and hand it over to the Ogg
multiplexor, which will hand the file over to the appropriate
<p>--- >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 'theora-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.
More information about the Theora-dev