[Vorbis] .ogg extension and Theora

Tom Felker tcfelker
Thu Jun 17 21:38:47 PDT 2004


<Pine.LNX.4.44.0406171604550.962-100000 at sasami.anime.net>
<20040617234750.GD17559 at xiph.org>
Message-ID: <200406172338.47882.tcfelker at mtco.com>

On Thursday 17 June 2004 6:47 pm, Arc Riley wrote:

> Using your example, how would one catagorize a file that was part
> audio-only, part video-only?

With the video extension.  Programs that can play video can usually play audio
too, the inverse is not true.

> What if it contained almost all audio but
> had a single still-frame attached to it?  Does that change the
> extension?

No, it would use the lossy audio extension.

> What if the user wants this included in their audio
> directory, but because of some "standard rule" it became a video file
> because of a single frame of MNG or a little (optional) text?

That wouldn't happen.  The key here is common sense.  Users have it, they'll
name their files however necessary so they'll open in the proper apps.  And
the apps will do their best to associate themselves with files they can play.

Users need to be able to:
1. Know the "type" of Ogg file at a glance.
2. Have files open in the appropriate program.
3. Script manipulation of files based on their "type."

How do we solve these problems?

With zero or one extensions for Ogg files:

1.  Modify existing file browsers to, whenever a file is to be shown, open it,
determine it's "type," and display it to the user, perhaps with an icon or a
column in ls's output.  Modify all file sharing protocols to tell clients the
file's "type" without them having to download it.
2.  Write a program to, based on the contents of the file, determine what
program should open it, and integrate this program into all existing file
browsers.
3.  Write a program to output information about the file's "type," and tell
the users use this program in their scripts.

With separate extensions for each type:

1.  Display the file's full name, or an icon chosen by extension.
2.  Associate programs with extensions.
3.  Tell the user to use wildcards.

The former is complex, and is, depending on the OS, either difficult or
impossible to fully implement.  The latter is already implemented on almost
every OS.  Implementing the latter does not preclude implementing the former.
I say we do the latter.

> Prehaps someone could write a simple tool, ie ogginfo, with flags which
> report only which codecs are being used by a specific file.  That way
> someone could build their own rules for how they want to sort it.  Or
> someone could write a simple "move all" or "make these icons" script
> based on py-ogg2 which allows the user to script the behavior they
> really want?

Both of those things should be done anyway.  Having multiple extensions
reduces the market for these utilities, but they can still be made.

The problem is integration.  In order to get the functionality you get for
free now with multiple extensions, you need to integrate ogginfo into
Explorer, Konqueror, Galeon, Finder, and ls.  And you need to write a
dispatcher, with a configuration GUI, for Windows, Mac, and Linux.  That's
almost impossible, and if you don't do it, Ogg becomes difficult to use.

> This would be much cleaner than trying to fit every file into a limited
> set of possible "use" extensions, especially since it'll be possible
> (and typical) for files to contain multiple codecs, multiple ways,
> chained different ways, etc.

To quote our favorite kernel hacker, "Perfect is the enemy of good."

All we need to do is agree on "types," and the extension for each type.  Each
type needs to convey what's important, no more (.oggtheoravorbiswrit) and no
less (.ogg).  Yes this is arbitrary, but it's absolutely necessary.

Anything with video needs a separate type because it should open with a
separate player.  Flac and Speex need separate extensions because I want to
know what they are at a glance.  Extra metadata, like pictures or captions,
shouldn't change the extension, because they won't change what I want to open
it in, and I wouldn't want to have one file with that stuff and one without.
It doesn't matter what audio codec is in a video file, because video players
will implement every audio format you'd put video file.

Yes, that was dirty, but now it's done, and I don't have to hack on every file
manager in existence.

--
Tom Felker, <tcfelker at mtco.com>
<http://vlevel.sourceforge.net> - Stop fiddling with the volume knob.

Torvalds, explaining SCO's actions: "They are smoking crack."


More information about the Vorbis mailing list