annotate DOCS/tech/codecs.conf.txt @ 33273:8c4a81b0bd5f

Update Doxyfile from doxygen 1.3.7 to 1.5.6. The latter is the version available in Debian oldstable and should thus be a suitable baseline that can be expected to be available on all systems. The update makes new Doxygen features available in the configuration file and avoids several deprecation warnings when using newer doxygen versions.
author diego
date Wed, 04 May 2011 14:27:35 +0000
parents 0cf4c6f3d56b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3860
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
1 Understanding MPlayer's etc/codecs.conf File
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
2
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
3 Introduction
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
4 ------------
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
5 MPlayer features a very flexible codec architecture which allows it to
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
6 use its own open source codecs, as well as open source libraries, Win32
22504
5ee9424d58f3 minor clarification
diego
parents: 14173
diff changeset
7 codec DLLs and other binary codec modules. To the MPlayer user, the
3860
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
8 most visible piece of this architecture is the etc/codecs.conf file. This
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
9 is a text-based configuration file that controls which MPlayer components
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
10 are in charge of handling particular compressed data formats.
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
11
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
12 The codecs.conf file is stored either in a shared directory for all system
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
13 users to access, or in the .mplayer directory in a user's home
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
14 directory. When MPlayer starts, it first looks for a codecs.conf file in a
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
15 user's home directory. Failing that, it searches for the shared file. If
14173
e2a4a2ce54a8 some clarification
diego
parents: 13998
diff changeset
16 no codecs.conf file is found MPlayer falls back on its internal hardcoded
e2a4a2ce54a8 some clarification
diego
parents: 13998
diff changeset
17 configuration. If the file is present but has syntax errors, MPlayer will
e2a4a2ce54a8 some clarification
diego
parents: 13998
diff changeset
18 report the error.
3860
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
19
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
20 The codecs.conf file is really quite simple. It is simply a collection of
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
21 codec definition blocks that define how different media types should be
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
22 handled. There are a number of keywords that can occur in a block. Not all
13998
14c476d62fc2 Some fixes by myself and compn <tempn at twmi dot rr dot com>
diego
parents: 7398
diff changeset
23 of them are required and no particular order is enforced.
3860
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
24
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
25 Editing codecs.conf
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
26 -------------------
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
27 You can edit codecs.conf using your favorite text editor. Anything that
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
28 comes after a semicolon (;) on a line is regarded as a comment. For
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
29 example:
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
30 ; this is a comment
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
31 format 0x34616d69 ; "ima4" (MOV files)
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
32
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
33 The codec blocks can be in any order; the file parser doesn't
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
34 care. However, they are organized in a particular order for the benefit of
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
35 human readers. For example, all of the open source decoders that MPlayer
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
36 implements natively are grouped in one section.
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
37
6200
e604be87613d codecs.conf versioning - patch by Joey Parrish <joey@yunamusic.com>
arpi
parents: 5586
diff changeset
38 Release Number
e604be87613d codecs.conf versioning - patch by Joey Parrish <joey@yunamusic.com>
arpi
parents: 5586
diff changeset
39 --------------
e604be87613d codecs.conf versioning - patch by Joey Parrish <joey@yunamusic.com>
arpi
parents: 5586
diff changeset
40 Your codecs.conf now requires a release number to avoid codec release
e604be87613d codecs.conf versioning - patch by Joey Parrish <joey@yunamusic.com>
arpi
parents: 5586
diff changeset
41 incompatibilities. The format is simple: (YYYYMMDD)
e604be87613d codecs.conf versioning - patch by Joey Parrish <joey@yunamusic.com>
arpi
parents: 5586
diff changeset
42
e604be87613d codecs.conf versioning - patch by Joey Parrish <joey@yunamusic.com>
arpi
parents: 5586
diff changeset
43 release 20020520
e604be87613d codecs.conf versioning - patch by Joey Parrish <joey@yunamusic.com>
arpi
parents: 5586
diff changeset
44
e604be87613d codecs.conf versioning - patch by Joey Parrish <joey@yunamusic.com>
arpi
parents: 5586
diff changeset
45 Whenever changes are made to the codecs that *require* an updated
e604be87613d codecs.conf versioning - patch by Joey Parrish <joey@yunamusic.com>
arpi
parents: 5586
diff changeset
46 codecs.conf, then MPlayer will no longer accept outdated versions.
e604be87613d codecs.conf versioning - patch by Joey Parrish <joey@yunamusic.com>
arpi
parents: 5586
diff changeset
47 It is not recommended to change this line unless you know exactly
e604be87613d codecs.conf versioning - patch by Joey Parrish <joey@yunamusic.com>
arpi
parents: 5586
diff changeset
48 what you are doing.
e604be87613d codecs.conf versioning - patch by Joey Parrish <joey@yunamusic.com>
arpi
parents: 5586
diff changeset
49
3860
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
50 Video Codecs
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
51 ------------
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
52 Let's jump right in with an example. Here is an example video codec block:
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
53
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
54 videocodec indeo5ds
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
55 info "Intel Indeo 5"
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
56 status working
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
57 fourcc IV50,iv50
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
58 driver dshow
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
59 dll "ir50_32.dll"
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
60 guid 0x30355649, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
61 out YV12
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
62 out YUY2
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
63 out BGR32,BGR24,BGR16,BGR15
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
64
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
65 This is a particularly full-featured video codec. The "videocodec" keyword
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
66 identifies the fact that this is the start of a new video
7350
e8c9bfb533ad updated a bit
arpi
parents: 6200
diff changeset
67 codec. "indeo5ds" is MPlayer's unique name for the codec. You have to use
13998
14c476d62fc2 Some fixes by myself and compn <tempn at twmi dot rr dot com>
diego
parents: 7398
diff changeset
68 this name with the -vc/-ac option.
3860
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
69
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
70 The next line has the keyword "info" which specifies a human-readable
13998
14c476d62fc2 Some fixes by myself and compn <tempn at twmi dot rr dot com>
diego
parents: 7398
diff changeset
71 comment accompanying this codec. This is printed by -vc help / -ac help.
3860
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
72
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
73 The "status" keyword carries information about the codec's functional
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
74 status. MPlayer currently recognizes 4 status levels: working, buggy,
7350
e8c9bfb533ad updated a bit
arpi
parents: 6200
diff changeset
75 crashing, and untested. When it gets to codec auto-selection, it tries
13998
14c476d62fc2 Some fixes by myself and compn <tempn at twmi dot rr dot com>
diego
parents: 7398
diff changeset
76 untested first (to force users to test it for us and report results :)),
7350
e8c9bfb533ad updated a bit
arpi
parents: 6200
diff changeset
77 then working and finally buggy ones. Codecs marked crashing won't be tried,
13998
14c476d62fc2 Some fixes by myself and compn <tempn at twmi dot rr dot com>
diego
parents: 7398
diff changeset
78 unless explicitly (-vc/-ac) selected.
3860
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
79
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
80 The next line lists 4-character codes (FOURCCs) that are associated with
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
81 this codec. There can be more than one FOURCC specified on a fourcc line
13998
14c476d62fc2 Some fixes by myself and compn <tempn at twmi dot rr dot com>
diego
parents: 7398
diff changeset
82 as long as they are separated with a comma. There can also be multiple
14c476d62fc2 Some fixes by myself and compn <tempn at twmi dot rr dot com>
diego
parents: 7398
diff changeset
83 fourcc lines in the codec. A second fourcc can also be given, separated
7350
e8c9bfb533ad updated a bit
arpi
parents: 6200
diff changeset
84 with a space. MPlayer will replace the original fourcc in the headers with
e8c9bfb533ad updated a bit
arpi
parents: 6200
diff changeset
85 this one before opening the codec. It's useful for win32 codecs checking for
e8c9bfb533ad updated a bit
arpi
parents: 6200
diff changeset
86 the fourccs.
3860
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
87
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
88 The "driver" keyword associates this codec with an internal MPlayer
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
89 decoder module. MPlayer has a module named "dshow" that handles data
7350
e8c9bfb533ad updated a bit
arpi
parents: 6200
diff changeset
90 encoded by the codec. See -vfm help / -afm help for the available module list.
3860
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
91
26736
133ff1f43050 clean up dll keyword
compn
parents: 22504
diff changeset
92 The "dll" keyword specifies which Win32/XAnim/Real/Quicktime binary
26741
fc28868e5430 its typo spotted by diego
compn
parents: 26736
diff changeset
93 module needs to be loaded. It's also used to specify which FFmpeg codec
26736
133ff1f43050 clean up dll keyword
compn
parents: 22504
diff changeset
94 to load. The list of FFmpeg codecs can be found in libavcodec/allcodecs.c.
3860
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
95
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
96 The "guid" keyword identifies a 16-byte Microsoft GUID that some media
13998
14c476d62fc2 Some fixes by myself and compn <tempn at twmi dot rr dot com>
diego
parents: 7398
diff changeset
97 files use to identify codecs. Used only for win32 dshow and DMO codecs.
3860
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
98
13998
14c476d62fc2 Some fixes by myself and compn <tempn at twmi dot rr dot com>
diego
parents: 7398
diff changeset
99 The "out" keyword identifies which output format the decoder is known
14173
e2a4a2ce54a8 some clarification
diego
parents: 13998
diff changeset
100 to provide. Just like the fourcc line, there can be multiple out lines or
3860
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
101 multiple comma-separated output formats on the same line. The output
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
102 formats should be listed in order of preference.
7398
03471b3767e8 outflags described
arpi
parents: 7350
diff changeset
103
7350
e8c9bfb533ad updated a bit
arpi
parents: 6200
diff changeset
104 The outfmt values can be followed by one or more flags, like flip, noflip,
13998
14c476d62fc2 Some fixes by myself and compn <tempn at twmi dot rr dot com>
diego
parents: 7398
diff changeset
105 static, query. The flags are defined as follows:
7398
03471b3767e8 outflags described
arpi
parents: 7350
diff changeset
106
03471b3767e8 outflags described
arpi
parents: 7350
diff changeset
107 "flip":
03471b3767e8 outflags described
arpi
parents: 7350
diff changeset
108 If this flag is set for a given format, then o_bih->biHeight will NOT be
13998
14c476d62fc2 Some fixes by myself and compn <tempn at twmi dot rr dot com>
diego
parents: 7398
diff changeset
109 set to -bih->biHeight, i.e. the image will be decoded upside-down.
7398
03471b3767e8 outflags described
arpi
parents: 7350
diff changeset
110 Used only by vfw and vfwex codecs.
03471b3767e8 outflags described
arpi
parents: 7350
diff changeset
111
03471b3767e8 outflags described
arpi
parents: 7350
diff changeset
112 "noflip":
03471b3767e8 outflags described
arpi
parents: 7350
diff changeset
113 This flag is ignored (no effect) without "flip" being set!
03471b3767e8 outflags described
arpi
parents: 7350
diff changeset
114 If this flag is set, it means the codec doesn't decode upside-down,
13998
14c476d62fc2 Some fixes by myself and compn <tempn at twmi dot rr dot com>
diego
parents: 7398
diff changeset
115 although it's told to do so.
14c476d62fc2 Some fixes by myself and compn <tempn at twmi dot rr dot com>
diego
parents: 7398
diff changeset
116
7398
03471b3767e8 outflags described
arpi
parents: 7350
diff changeset
117 "yuvhack":
03471b3767e8 outflags described
arpi
parents: 7350
diff changeset
118 This flag is required for the old win32 ms-mpeg4 vfw codecs, including
13998
14c476d62fc2 Some fixes by myself and compn <tempn at twmi dot rr dot com>
diego
parents: 7398
diff changeset
119 MP42 and DIV3 (DivX 3.11). These DLLs actually support YUV formats,
7398
03471b3767e8 outflags described
arpi
parents: 7350
diff changeset
120 but the query/begin functions are buggy and don't accept YUV fourccs
13998
14c476d62fc2 Some fixes by myself and compn <tempn at twmi dot rr dot com>
diego
parents: 7398
diff changeset
121 (the decode function accepts it and works well!)
7398
03471b3767e8 outflags described
arpi
parents: 7350
diff changeset
122 If this flag is set, then o_bih->biCompression will be set to 0 for
03471b3767e8 outflags described
arpi
parents: 7350
diff changeset
123 the initialization for the YUV modes. Used only by vfw/vfwex codecs.
13998
14c476d62fc2 Some fixes by myself and compn <tempn at twmi dot rr dot com>
diego
parents: 7398
diff changeset
124
7398
03471b3767e8 outflags described
arpi
parents: 7350
diff changeset
125 "query":
03471b3767e8 outflags described
arpi
parents: 7350
diff changeset
126 This flag is used to control VDCTRL_QUERY_FORMAT for vfw/vfewx codecs.
13998
14c476d62fc2 Some fixes by myself and compn <tempn at twmi dot rr dot com>
diego
parents: 7398
diff changeset
127 If this flag is set, the control() will query the codec for the csp
14c476d62fc2 Some fixes by myself and compn <tempn at twmi dot rr dot com>
diego
parents: 7398
diff changeset
128 support, otherwise it will assume a constant csp table. Required for
7398
03471b3767e8 outflags described
arpi
parents: 7350
diff changeset
129 some DLLs (like huffyuv, CRAM).
03471b3767e8 outflags described
arpi
parents: 7350
diff changeset
130
03471b3767e8 outflags described
arpi
parents: 7350
diff changeset
131 "static",
03471b3767e8 outflags described
arpi
parents: 7350
diff changeset
132 This flag forces STATIC (instead of TEMP) buffer allocation for the codec.
13998
14c476d62fc2 Some fixes by myself and compn <tempn at twmi dot rr dot com>
diego
parents: 7398
diff changeset
133 Used for some very old DLLs like Indeo 3 and for some XAnim codecs like
7398
03471b3767e8 outflags described
arpi
parents: 7350
diff changeset
134 cinepak. See dr-methods.txt for details on buffer types.
3860
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
135
29417
eb3504191e7b undocumented keyword
compn
parents: 26741
diff changeset
136 The "in" keyword -- UNDOCUMENTED
eb3504191e7b undocumented keyword
compn
parents: 26741
diff changeset
137
3860
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
138 Audio Codecs
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
139 ------------
13998
14c476d62fc2 Some fixes by myself and compn <tempn at twmi dot rr dot com>
diego
parents: 7398
diff changeset
140 Here is an example of a rather full-featured audio codec block:
3860
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
141
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
142 audiocodec mp3
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
143 info "MPEG layer-2, layer-3"
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
144 status working
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
145 comment "Optimized to MMX/SSE/3Dnow!"
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
146 format 0x50
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
147 format 0x55
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
148 format 0x33706d2e ; ".mp3" CBR/VBR MP3 (MOV files)
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
149 format 0x5500736d ; "ms\0\x55" older mp3 fcc (MOV files)
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
150 driver mp3lib
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
151 dll "mp3lib (mpglib)"
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
152 flags seekable
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
153
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
154 Many of the keywords are the same as a video codec block. However, we see
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
155 a few that we haven't seen before. The "comment" keyword identifies
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
156 another human-readable note for this codec.
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
157
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
158 The "format" keyword performs a similar job as the fourcc line. However,
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
159 since certain media file formats (notably AVI) identify audio formats with
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
160 16-bit numbers rather than 32-bit FOURCCs, it's necessary to use this
13998
14c476d62fc2 Some fixes by myself and compn <tempn at twmi dot rr dot com>
diego
parents: 7398
diff changeset
161 convention to accommodate them. However, as shown in this example, FOURCCs
3860
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
162 can also be specified with the format keyword as long as they're converted
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
163 to their hex representation. It's important to note that this can be
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
164 useful for video codecs as well if a FOURCC contains a space (such as
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
165 Apple's "rle " codec).
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
166
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
167 The "flags" keywords identifies any additional abilities of this
13998
14c476d62fc2 Some fixes by myself and compn <tempn at twmi dot rr dot com>
diego
parents: 7398
diff changeset
168 codec. Currently, seekable is the only supported flag.
3860
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
169
32517
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
170
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
171 Adding FFmpeg Codecs
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
172 -------------------
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
173 example codec:
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
174
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
175 videocodec ffmdec
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
176 info "FFmpeg Sony PlayStation MDEC (Motion DECoder)"
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
177 status working
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
178 fourcc MDEC ; internal MPlayer FourCC
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
179 driver ffmpeg
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
180 dll mdec
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
181 out YV12
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
182
32528
488660501547 fix punctuation and wording in ffmpeg codec howto
compn
parents: 32517
diff changeset
183 The "videocodec" name should start with ff to differentiate it from other
32517
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
184 libraries or binary codecs.
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
185
32528
488660501547 fix punctuation and wording in ffmpeg codec howto
compn
parents: 32517
diff changeset
186 The "dll" name comes from the codec source file or the libavcodec/allcodecs.c
32517
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
187 file.
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
188
32528
488660501547 fix punctuation and wording in ffmpeg codec howto
compn
parents: 32517
diff changeset
189 The "out" colorspace can be found in the codec source file in the PIX_FMT
32517
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
190 struct. Note that some codecs may have several pix_fmt structs.
32528
488660501547 fix punctuation and wording in ffmpeg codec howto
compn
parents: 32517
diff changeset
191 The pix_fmt can be converted to the codecs.conf "out" format by reading
32682
0cf4c6f3d56b add some notes about BE/LE colorspaces and fix a small typo
compn
parents: 32528
diff changeset
192 the fmt-conversion.c file.
0cf4c6f3d56b add some notes about BE/LE colorspaces and fix a small typo
compn
parents: 32528
diff changeset
193
0cf4c6f3d56b add some notes about BE/LE colorspaces and fix a small typo
compn
parents: 32528
diff changeset
194 If there are BE and LE versions of a pix_fmt, ignore them and use the short
0cf4c6f3d56b add some notes about BE/LE colorspaces and fix a small typo
compn
parents: 32528
diff changeset
195 native format instead. e.g. 422P16_LE becomes out 422P16. also to note that
0cf4c6f3d56b add some notes about BE/LE colorspaces and fix a small typo
compn
parents: 32528
diff changeset
196 underscores cause parse errors, so 422P16_LE becomes out 422P16LE.
32517
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
197
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
198 libmpdemux/mp_taglists.c
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
199 --------------
32528
488660501547 fix punctuation and wording in ffmpeg codec howto
compn
parents: 32517
diff changeset
200 Sometimes the lavf demuxer will not pass on a fourcc (mostly video game
488660501547 fix punctuation and wording in ffmpeg codec howto
compn
parents: 32517
diff changeset
201 formats or other containers that do not support isom/riff tags). You will have
488660501547 fix punctuation and wording in ffmpeg codec howto
compn
parents: 32517
diff changeset
202 to make one based on the codec_id listed in the codec source file.
488660501547 fix punctuation and wording in ffmpeg codec howto
compn
parents: 32517
diff changeset
203
488660501547 fix punctuation and wording in ffmpeg codec howto
compn
parents: 32517
diff changeset
204 Note that it is a good idea to mark any fourcc you create as
488660501547 fix punctuation and wording in ffmpeg codec howto
compn
parents: 32517
diff changeset
205 ' ; internal MPlayer FourCC'. In case another codec uses that fourcc,
488660501547 fix punctuation and wording in ffmpeg codec howto
compn
parents: 32517
diff changeset
206 you can easily change the internal one. Also this will stop other projects
488660501547 fix punctuation and wording in ffmpeg codec howto
compn
parents: 32517
diff changeset
207 from thinking of the internal tag as a real fourcc found in the wild.
32517
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
208
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
209 libmpdemux/demuxer.c
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
210 --------------
32528
488660501547 fix punctuation and wording in ffmpeg codec howto
compn
parents: 32517
diff changeset
211 Some audio codecs require a parser, you can see which ones do
488660501547 fix punctuation and wording in ffmpeg codec howto
compn
parents: 32517
diff changeset
212 by reading the parsers section in libavcodec/allcodecs.c.
32517
a3ca3a1ae291 document how to add ffmpeg codecs in codecs.conf.txt
compn
parents: 29417
diff changeset
213
3860
96e5f795366d initial commit for codecs.conf.txt documentation
melanson
parents:
diff changeset
214 EOF