changeset 3860:96e5f795366d

initial commit for codecs.conf.txt documentation
author melanson
date Fri, 28 Dec 2001 22:18:27 +0000
parents 686ba9f9393c
children f832811cf89a
files DOCS/tech/codecs.conf.txt
diffstat 1 files changed, 122 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DOCS/tech/codecs.conf.txt	Fri Dec 28 22:18:27 2001 +0000
@@ -0,0 +1,122 @@
+Understanding MPlayer's etc/codecs.conf File
+
+Introduction
+------------
+MPlayer features a very flexible codec architecture which allows it to
+use its own open source codecs, as well as open source libraries, Win32
+codec DLLs, and XAnim binary codec modules. To the MPlayer user, the
+most visible piece of this architecture is the etc/codecs.conf file. This
+is a text-based configuration file that controls which MPlayer components
+are in charge of handling particular compressed data formats.
+
+The codecs.conf file is stored either in a shared directory for all system
+users to access, or in the .mplayer directory in a user's home
+directory. When MPlayer starts, it first looks for a codecs.conf file in a
+user's home directory. Failing that, it searches for the shared file. If
+it can't find a codecs.conf file, MPlayer will refuse to run.
+
+The codecs.conf file is really quite simple. It is simply a collection of
+codec definition blocks that define how different media types should be
+handled. There are a number of keywords that can occur in a block. Not all
+of them are required and there is no particular order enforced.
+
+Editing codecs.conf
+-------------------
+You can edit codecs.conf using your favorite text editor. Anything that
+comes after a semicolon (;) on a line is regarded as a comment. For
+example:
+; this is a comment
+  format 0x34616d69  ; "ima4" (MOV files)
+
+The codec blocks can be in any order; the file parser doesn't
+care. However, they are organized in a particular order for the benefit of
+human readers. For example, all of the open source decoders that MPlayer
+implements natively are grouped in one section.
+
+Video Codecs
+------------
+Let's jump right in with an example. Here is an example video codec block:
+
+videocodec indeo5ds
+  info "Intel Indeo 5"
+  status working
+  fourcc IV50,iv50
+  driver dshow
+  dll "ir50_32.dll"
+  guid 0x30355649, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71
+  out YV12
+  out YUY2
+  out BGR32,BGR24,BGR16,BGR15
+  cpuflags mmx
+
+This is a particularly full-featured video codec. The "videocodec" keyword
+identifies the fact that this is the start of a new video
+codec. "indeo5ds" is MPlayer's unique name for the codec.
+
+The next line has the keyword "info" which specifies a human-readable
+comment accompanies this codec.
+
+The "status" keyword carries information about the codec's functional
+status. MPlayer currently recognizes 4 status levels: working, buggy,
+crashing, and untested.
+
+The next line lists 4-character codes (FOURCCs) that are associated with
+this codec. There can be more than one FOURCC specified on a fourcc line
+as long as they're separated with a comma. There can also be multiple
+fourcc lines in the codec.
+
+The "driver" keyword associates this codec with an internal MPlayer
+decoder module. MPlayer has a module named "dshow" that handles data
+encoded by the codec.
+
+The "dll" keyword specifies which Win32 or XAnim binary module needs to be
+loaded in order to handle the specific media type. This keyword is usually
+only used in conjunction with the dshow, vfw, acm, and xanim drivers since
+they all manage communication with binary-only modules.
+
+The "guid" keyword identifies a 16-byte Microsoft GUID that some media
+files use to identify codecs.
+
+The "out" keyword identifies which output format that the decoder is known
+to output. Just like the fourcc line, there can be multiple out lines or
+multiple comma-separated output formats on the same line. The output
+formats should be listed in order of preference.
+
+The "cpuflags" identifies special operating parameters that this codec
+requires. For example, this video codec is known to use MMX
+instructions. Currently, valid strings for this keyword include mmx, sse,
+and 3dnow.
+
+Audio Codecs
+------------
+Here is an example a rather full-featured audio codec block:
+
+audiocodec mp3
+  info "MPEG layer-2, layer-3"
+  status working
+  comment "Optimized to MMX/SSE/3Dnow!"
+  format 0x50
+  format 0x55
+  format 0x33706d2e  ; ".mp3" CBR/VBR MP3 (MOV files)
+  format 0x5500736d  ; "ms\0\x55" older mp3 fcc (MOV files)
+  driver mp3lib
+  dll "mp3lib (mpglib)"
+  flags seekable
+
+Many of the keywords are the same as a video codec block. However, we see
+a few that we haven't seen before. The "comment" keyword identifies
+another human-readable note for this codec.
+
+The "format" keyword performs a similar job as the fourcc line. However,
+since certain media file formats (notably AVI) identify audio formats with
+16-bit numbers rather than 32-bit FOURCCs, it's necessary to use this
+convention to accomodate them. However, as shown in this example, FOURCCs
+can also be specified with the format keyword as long as they're converted
+to their hex representation. It's important to note that this can be
+useful for video codecs as well if a FOURCC contains a space (such as
+Apple's "rle " codec).
+
+The "flags" keywords identifies any additional abilities of this
+codec. Currently, seekable is the only flag supported.
+
+EOF