annotate DOCS/tech/codecs.conf.txt @ 35193:e5f3eeacf75f

Fix off-by-one error in check.
author reimar
date Tue, 30 Oct 2012 16:42:25 +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