Mercurial > mplayer.hg
comparison DOCS/tech/codecs.conf.txt @ 3860:96e5f795366d
initial commit for codecs.conf.txt documentation
author | melanson |
---|---|
date | Fri, 28 Dec 2001 22:18:27 +0000 |
parents | |
children | 6ce9c6231bdd |
comparison
equal
deleted
inserted
replaced
3859:686ba9f9393c | 3860:96e5f795366d |
---|---|
1 Understanding MPlayer's etc/codecs.conf File | |
2 | |
3 Introduction | |
4 ------------ | |
5 MPlayer features a very flexible codec architecture which allows it to | |
6 use its own open source codecs, as well as open source libraries, Win32 | |
7 codec DLLs, and XAnim binary codec modules. To the MPlayer user, the | |
8 most visible piece of this architecture is the etc/codecs.conf file. This | |
9 is a text-based configuration file that controls which MPlayer components | |
10 are in charge of handling particular compressed data formats. | |
11 | |
12 The codecs.conf file is stored either in a shared directory for all system | |
13 users to access, or in the .mplayer directory in a user's home | |
14 directory. When MPlayer starts, it first looks for a codecs.conf file in a | |
15 user's home directory. Failing that, it searches for the shared file. If | |
16 it can't find a codecs.conf file, MPlayer will refuse to run. | |
17 | |
18 The codecs.conf file is really quite simple. It is simply a collection of | |
19 codec definition blocks that define how different media types should be | |
20 handled. There are a number of keywords that can occur in a block. Not all | |
21 of them are required and there is no particular order enforced. | |
22 | |
23 Editing codecs.conf | |
24 ------------------- | |
25 You can edit codecs.conf using your favorite text editor. Anything that | |
26 comes after a semicolon (;) on a line is regarded as a comment. For | |
27 example: | |
28 ; this is a comment | |
29 format 0x34616d69 ; "ima4" (MOV files) | |
30 | |
31 The codec blocks can be in any order; the file parser doesn't | |
32 care. However, they are organized in a particular order for the benefit of | |
33 human readers. For example, all of the open source decoders that MPlayer | |
34 implements natively are grouped in one section. | |
35 | |
36 Video Codecs | |
37 ------------ | |
38 Let's jump right in with an example. Here is an example video codec block: | |
39 | |
40 videocodec indeo5ds | |
41 info "Intel Indeo 5" | |
42 status working | |
43 fourcc IV50,iv50 | |
44 driver dshow | |
45 dll "ir50_32.dll" | |
46 guid 0x30355649, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 | |
47 out YV12 | |
48 out YUY2 | |
49 out BGR32,BGR24,BGR16,BGR15 | |
50 cpuflags mmx | |
51 | |
52 This is a particularly full-featured video codec. The "videocodec" keyword | |
53 identifies the fact that this is the start of a new video | |
54 codec. "indeo5ds" is MPlayer's unique name for the codec. | |
55 | |
56 The next line has the keyword "info" which specifies a human-readable | |
57 comment accompanies this codec. | |
58 | |
59 The "status" keyword carries information about the codec's functional | |
60 status. MPlayer currently recognizes 4 status levels: working, buggy, | |
61 crashing, and untested. | |
62 | |
63 The next line lists 4-character codes (FOURCCs) that are associated with | |
64 this codec. There can be more than one FOURCC specified on a fourcc line | |
65 as long as they're separated with a comma. There can also be multiple | |
66 fourcc lines in the codec. | |
67 | |
68 The "driver" keyword associates this codec with an internal MPlayer | |
69 decoder module. MPlayer has a module named "dshow" that handles data | |
70 encoded by the codec. | |
71 | |
72 The "dll" keyword specifies which Win32 or XAnim binary module needs to be | |
73 loaded in order to handle the specific media type. This keyword is usually | |
74 only used in conjunction with the dshow, vfw, acm, and xanim drivers since | |
75 they all manage communication with binary-only modules. | |
76 | |
77 The "guid" keyword identifies a 16-byte Microsoft GUID that some media | |
78 files use to identify codecs. | |
79 | |
80 The "out" keyword identifies which output format that the decoder is known | |
81 to output. Just like the fourcc line, there can be multiple out lines or | |
82 multiple comma-separated output formats on the same line. The output | |
83 formats should be listed in order of preference. | |
84 | |
85 The "cpuflags" identifies special operating parameters that this codec | |
86 requires. For example, this video codec is known to use MMX | |
87 instructions. Currently, valid strings for this keyword include mmx, sse, | |
88 and 3dnow. | |
89 | |
90 Audio Codecs | |
91 ------------ | |
92 Here is an example a rather full-featured audio codec block: | |
93 | |
94 audiocodec mp3 | |
95 info "MPEG layer-2, layer-3" | |
96 status working | |
97 comment "Optimized to MMX/SSE/3Dnow!" | |
98 format 0x50 | |
99 format 0x55 | |
100 format 0x33706d2e ; ".mp3" CBR/VBR MP3 (MOV files) | |
101 format 0x5500736d ; "ms\0\x55" older mp3 fcc (MOV files) | |
102 driver mp3lib | |
103 dll "mp3lib (mpglib)" | |
104 flags seekable | |
105 | |
106 Many of the keywords are the same as a video codec block. However, we see | |
107 a few that we haven't seen before. The "comment" keyword identifies | |
108 another human-readable note for this codec. | |
109 | |
110 The "format" keyword performs a similar job as the fourcc line. However, | |
111 since certain media file formats (notably AVI) identify audio formats with | |
112 16-bit numbers rather than 32-bit FOURCCs, it's necessary to use this | |
113 convention to accomodate them. However, as shown in this example, FOURCCs | |
114 can also be specified with the format keyword as long as they're converted | |
115 to their hex representation. It's important to note that this can be | |
116 useful for video codecs as well if a FOURCC contains a space (such as | |
117 Apple's "rle " codec). | |
118 | |
119 The "flags" keywords identifies any additional abilities of this | |
120 codec. Currently, seekable is the only flag supported. | |
121 | |
122 EOF |