2 * This file is part of MPlayer.
4 * MPlayer is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * MPlayer is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License along
15 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 #ifndef MPLAYER_CFG_MENCODER_H
20 #define MPLAYER_CFG_MENCODER_H
23 * config for cfgparser
26 #include "libmpcodecs/ve_x264.h"
27 #include "libmpdemux/demux_ts.h"
28 #include "cfg-common.h"
33 extern const m_option_t faacopts_conf
[];
34 extern const m_option_t lameopts_conf
[];
35 extern const m_option_t lavcopts_conf
[];
36 extern const m_option_t lavfopts_conf
[];
37 extern const m_option_t mpegopts_conf
[];
38 extern const m_option_t nuvopts_conf
[];
39 extern const m_option_t toolameopts_conf
[];
40 extern const m_option_t twolameopts_conf
[];
41 extern const m_option_t vfwopts_conf
[];
42 extern const m_option_t xvidencopts_conf
[];
44 const m_option_t ovc_conf
[]={
45 {"copy", &out_video_codec
, CONF_TYPE_FLAG
, 0, 0, VCODEC_COPY
, NULL
},
46 {"frameno", &out_video_codec
, CONF_TYPE_FLAG
, 0, 0, VCODEC_FRAMENO
, NULL
},
47 {"lavc", &out_video_codec
, CONF_TYPE_FLAG
, 0, 0, VCODEC_LIBAVCODEC
, NULL
},
48 // {"null", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_NULL, NULL},
49 {"raw", &out_video_codec
, CONF_TYPE_FLAG
, 0, 0, VCODEC_RAW
, NULL
},
50 {"vfw", &out_video_codec
, CONF_TYPE_FLAG
, 0, 0, VCODEC_VFW
, NULL
},
51 {"libdv", &out_video_codec
, CONF_TYPE_FLAG
, 0, 0, VCODEC_LIBDV
, NULL
},
52 {"xvid", &out_video_codec
, CONF_TYPE_FLAG
, 0, 0, VCODEC_XVID
, NULL
},
53 {"qtvideo", &out_video_codec
, CONF_TYPE_FLAG
, 0, 0, VCODEC_QTVIDEO
, NULL
},
54 {"nuv", &out_video_codec
, CONF_TYPE_FLAG
, 0, 0, VCODEC_NUV
, NULL
},
55 {"x264", &out_video_codec
, CONF_TYPE_FLAG
, 0, 0, VCODEC_X264
, NULL
},
56 {"help", "\nAvailable codecs:\n"
57 " copy - frame copy, without re-encoding. Doesn't work with filters.\n"
58 " frameno - special audio-only file for 3-pass encoding, see DOCS.\n"
59 " raw - uncompressed video. Use fourcc option to set format explicitly.\n"
61 " nuv - nuppel video\n"
63 #ifdef CONFIG_LIBAVCODEC
64 " lavc - libavcodec codecs - best quality!\n"
66 #ifdef CONFIG_WIN32DLL
67 " vfw - VfW DLLs, read DOCS/HTML/en/encoding-guide.html.\n"
68 " qtvideo - QuickTime DLLs, currently only SVQ1/3 are supported.\n"
70 #ifdef CONFIG_LIBDV095
71 " libdv - DV encoding with libdv v0.9.5\n"
74 " xvid - XviD encoding\n"
77 " x264 - H.264 encoding\n"
79 "\n", CONF_TYPE_PRINT
, CONF_NOCFG
, 0, 0, NULL
},
80 {NULL
, NULL
, 0, 0, 0, 0, NULL
}
83 const m_option_t oac_conf
[]={
84 {"copy", &out_audio_codec
, CONF_TYPE_FLAG
, 0, 0, ACODEC_COPY
, NULL
},
85 {"pcm", &out_audio_codec
, CONF_TYPE_FLAG
, 0, 0, ACODEC_PCM
, NULL
},
87 {"mp3lame", &out_audio_codec
, CONF_TYPE_FLAG
, 0, 0, ACODEC_VBRMP3
, NULL
},
89 {"mp3lame", "MPlayer was compiled without libmp3lame support.\n", CONF_TYPE_PRINT
, CONF_NOCFG
, 0, 0, NULL
},
90 #endif /* CONFIG_MP3LAME */
91 #ifdef CONFIG_LIBAVCODEC
92 {"lavc", &out_audio_codec
, CONF_TYPE_FLAG
, 0, 0, ACODEC_LAVC
, NULL
},
94 {"lavc", "MPlayer was compiled without libavcodec. See README or DOCS.\n", CONF_TYPE_PRINT
, CONF_NOCFG
, 0, 0, NULL
},
95 #endif /* CONFIG_LIBAVCODEC */
97 {"toolame", &out_audio_codec
, CONF_TYPE_FLAG
, 0, 0, ACODEC_TOOLAME
, NULL
},
99 {"toolame", "MPlayer was compiled without libtoolame. See README or DOCS.\n", CONF_TYPE_PRINT
, CONF_NOCFG
, 0, 0, NULL
},
100 #endif /* CONFIG_TOOLAME */
101 #ifdef CONFIG_TWOLAME
102 {"twolame", &out_audio_codec
, CONF_TYPE_FLAG
, 0, 0, ACODEC_TWOLAME
, NULL
},
104 {"twolame", "MPlayer was compiled without libtwolame. See README or DOCS.\n", CONF_TYPE_PRINT
, CONF_NOCFG
, 0, 0, NULL
},
105 #endif /* CONFIG_TWOLAME */
107 {"faac", &out_audio_codec
, CONF_TYPE_FLAG
, 0, 0, ACODEC_FAAC
, NULL
},
109 {"faac", "MPlayer was compiled without libfaac. See README or DOCS.\n", CONF_TYPE_PRINT
, CONF_NOCFG
, 0, 0, NULL
},
110 #endif /* CONFIG_FAAC */
111 {"help", "\nAvailable codecs:\n"
112 " copy - frame copy, without re-encoding (useful for AC3)\n"
113 " pcm - uncompressed PCM audio\n"
114 #ifdef CONFIG_MP3LAME
115 " mp3lame - cbr/abr/vbr MP3 using libmp3lame\n"
117 #ifdef CONFIG_LIBAVCODEC
118 " lavc - FFmpeg audio encoder (MP2, AC3, ...)\n"
120 #ifdef CONFIG_TOOLAME
121 " toolame - Toolame MP2 audio encoder\n"
123 #ifdef CONFIG_TWOLAME
124 " twolame - Twolame MP2 audio encoder\n"
127 " faac - FAAC AAC audio encoder\n"
129 "\n", CONF_TYPE_PRINT
, CONF_NOCFG
, 0, 0, NULL
},
130 {NULL
, NULL
, 0, 0, 0, 0, NULL
}
133 const m_option_t info_conf
[]={
134 {"name", &info_name
, CONF_TYPE_STRING
, 0, 0, 0, NULL
},
135 {"artist", &info_artist
, CONF_TYPE_STRING
, 0, 0, 0, NULL
},
136 {"genre", &info_genre
, CONF_TYPE_STRING
, 0, 0, 0, NULL
},
137 {"subject", &info_subject
, CONF_TYPE_STRING
, 0, 0, 0, NULL
},
138 {"copyright", &info_copyright
, CONF_TYPE_STRING
, 0, 0, 0, NULL
},
139 {"srcform", &info_sourceform
, CONF_TYPE_STRING
, 0, 0, 0, NULL
},
140 {"comment", &info_comment
, CONF_TYPE_STRING
, 0, 0, 0, NULL
},
141 {"help", "\nAvailable INFO fields:\n"
142 " name - title of the work\n"
143 " artist - artist or author of the work\n"
144 " genre - original work category\n"
145 " subject - contents of the work\n"
146 " copyright - copyright information\n"
147 " srcform - original format of the digitzed material\n"
148 " comment - general comments about the work\n"
149 "\n", CONF_TYPE_PRINT
, CONF_NOCFG
, 0, 0, NULL
},
150 {NULL
, NULL
, 0, 0, 0, 0, NULL
}
153 const m_option_t of_conf
[]={
154 {"avi", &out_file_format
, CONF_TYPE_FLAG
, 0, 0, MUXER_TYPE_AVI
, NULL
},
155 {"mpeg", &out_file_format
, CONF_TYPE_FLAG
, 0, 0, MUXER_TYPE_MPEG
, NULL
},
156 #ifdef CONFIG_LIBAVFORMAT
157 {"lavf", &out_file_format
, CONF_TYPE_FLAG
, 0, 0, MUXER_TYPE_LAVF
, NULL
},
159 {"rawvideo", &out_file_format
, CONF_TYPE_FLAG
, 0, 0, MUXER_TYPE_RAWVIDEO
, NULL
},
160 {"rawaudio", &out_file_format
, CONF_TYPE_FLAG
, 0, 0, MUXER_TYPE_RAWAUDIO
, NULL
},
161 {"help", "\nAvailable output formats:\n"
162 " avi - Microsoft Audio/Video Interleaved\n"
163 " mpeg - MPEG-1/2 system stream format\n"
164 #ifdef CONFIG_LIBAVFORMAT
165 " lavf - FFmpeg libavformat muxers\n"
167 " rawvideo - (video only, one stream only) raw stream, no muxing\n"
168 " rawaudio - (audio only, one stream only) raw stream, no muxing\n"
169 "\n", CONF_TYPE_PRINT
, CONF_NOCFG
, 0, 0, NULL
},
170 {NULL
, NULL
, 0, 0, 0, 0, NULL
}
173 extern float avi_aspect_override
; /* defined in libmpdemux/muxer_avi.c */
174 extern int write_odml
; /* defined in libmpdemux/muxer_avi.c */
176 const m_option_t mencoder_opts
[]={
177 /* name, pointer, type, flags, min, max */
179 {"frameno-file", &frameno_filename
, CONF_TYPE_STRING
, CONF_GLOBAL
, 0, 0, NULL
},
181 {"hr-edl-seek", &edl_seek_type
, CONF_TYPE_FLAG
, 0, 0, 1, NULL
},
182 {"nohr-edl-seek", &edl_seek_type
, CONF_TYPE_FLAG
, 0, 1, 0, NULL
},
184 // set output framerate - recommended for variable-FPS (ASF etc) files
185 // and for 29.97FPS progressive MPEG2 streams
186 {"ofps", &force_ofps
, CONF_TYPE_DOUBLE
, CONF_MIN
|CONF_GLOBAL
, 0, 0, NULL
},
187 {"o", &out_filename
, CONF_TYPE_STRING
, CONF_GLOBAL
, 0, 0, NULL
},
189 // limit number of skippable frames after a non-skipped one
190 {"skiplimit", &skip_limit
, CONF_TYPE_INT
, 0, 0, 0, NULL
},
191 {"noskiplimit", &skip_limit
, CONF_TYPE_FLAG
, 0, 0, -1, NULL
},
192 {"noskip", &skip_limit
, CONF_TYPE_FLAG
, 0, 0, 0, NULL
},
194 {"audio-density", &audio_density
, CONF_TYPE_INT
, CONF_RANGE
|CONF_GLOBAL
, 1, 50, NULL
},
195 {"audio-preload", &audio_preload
, CONF_TYPE_FLOAT
, CONF_RANGE
|CONF_GLOBAL
, 0, 2, NULL
},
196 {"audio-delay", &audio_delay_fix
, CONF_TYPE_FLOAT
, CONF_GLOBAL
, 0, 0, NULL
},
198 {"x", "-x has been removed, use -vf scale=w:h for scaling.\n", CONF_TYPE_PRINT
, CONF_NOCFG
, 0, 0, NULL
},
199 {"xsize", "-xsize has been removed, use -vf crop=w:h:x:y for cropping.\n", CONF_TYPE_PRINT
, CONF_NOCFG
, 0, 0, NULL
},
201 // output audio/video codec selection
202 {"oac", oac_conf
, CONF_TYPE_SUBCONFIG
, CONF_GLOBAL
, 0, 0, NULL
},
203 {"ovc", ovc_conf
, CONF_TYPE_SUBCONFIG
, CONF_GLOBAL
, 0, 0, NULL
},
205 // output file format
206 {"of", of_conf
, CONF_TYPE_SUBCONFIG
, CONF_GLOBAL
, 0, 0, NULL
},
208 // override audio format tag in output file
209 {"fafmttag", &force_audiofmttag
, CONF_TYPE_INT
, CONF_GLOBAL
, 0, 0, NULL
},
210 // override FOURCC in output file
211 {"ffourcc", &force_fourcc
, CONF_TYPE_STRING
, CONF_GLOBAL
, 4, 4, NULL
},
213 // override avi aspect autodetection
214 {"force-avi-aspect", &avi_aspect_override
, CONF_TYPE_FLOAT
, CONF_RANGE
|CONF_GLOBAL
, 0.2, 3.0, NULL
},
216 {"pass", "-pass has been removed, use -lavcopts vpass=n, -xvidencopts pass=n\n", CONF_TYPE_PRINT
, CONF_NOCFG
, 0, 0, NULL
},
217 {"passlogfile", &passtmpfile
, CONF_TYPE_STRING
, CONF_GLOBAL
, 0, 0, NULL
},
219 {"vobsubout", &vobsub_out
, CONF_TYPE_STRING
, CONF_GLOBAL
, 0, 0, NULL
},
220 {"vobsuboutindex", &vobsub_out_index
, CONF_TYPE_INT
, CONF_RANGE
|CONF_GLOBAL
, 0, 31, NULL
},
221 {"vobsuboutid", &vobsub_out_id
, CONF_TYPE_STRING
, CONF_GLOBAL
, 0, 0, NULL
},
223 {"autoexpand", &auto_expand
, CONF_TYPE_FLAG
, 0, 0, 1, NULL
},
224 {"noautoexpand", &auto_expand
, CONF_TYPE_FLAG
, 0, 1, 0, NULL
},
226 {"encodedups", &encode_duplicates
, CONF_TYPE_FLAG
, 0, 0, 1, NULL
},
227 {"noencodedups", &encode_duplicates
, CONF_TYPE_FLAG
, 0, 1, 0, NULL
},
229 {"odml", &write_odml
, CONF_TYPE_FLAG
, CONF_GLOBAL
, 0, 1, NULL
},
230 {"noodml", &write_odml
, CONF_TYPE_FLAG
, CONF_GLOBAL
, 1, 0, NULL
},
232 // info header strings
233 {"info", info_conf
, CONF_TYPE_SUBCONFIG
, CONF_GLOBAL
, 0, 0, NULL
},
235 #ifdef CONFIG_MP3LAME
236 {"lameopts", lameopts_conf
, CONF_TYPE_SUBCONFIG
, CONF_GLOBAL
, 0, 0, NULL
},
238 #ifdef CONFIG_LIBAVCODEC
239 {"lavcopts", lavcopts_conf
, CONF_TYPE_SUBCONFIG
, CONF_GLOBAL
, 0, 0, NULL
},
241 {"lavcopts", "MPlayer was compiled without libavcodec. See README or DOCS.\n", CONF_TYPE_PRINT
, CONF_NOCFG
, 0, 0, NULL
},
242 #endif /* CONFIG_LIBAVCODEC */
243 #ifdef CONFIG_TOOLAME
244 {"toolameopts", toolameopts_conf
, CONF_TYPE_SUBCONFIG
, CONF_GLOBAL
, 0, 0, NULL
},
246 {"toolameopts", "MPlayer was compiled without libtoolame. See README or DOCS.\n", CONF_TYPE_PRINT
, CONF_NOCFG
, 0, 0, NULL
},
247 #endif /* CONFIG_TOOLAME */
248 #ifdef CONFIG_TWOLAME
249 {"twolameopts", twolameopts_conf
, CONF_TYPE_SUBCONFIG
, CONF_GLOBAL
, 0, 0, NULL
},
251 {"twolameopts", "MPlayer was compiled without libtwolame. See README or DOCS.\n", CONF_TYPE_PRINT
, CONF_NOCFG
, 0, 0, NULL
},
252 #endif /* CONFIG_TWOLAME */
254 {"faacopts", faacopts_conf
, CONF_TYPE_SUBCONFIG
, CONF_GLOBAL
, 0, 0, NULL
},
256 {"faacopts", "MPlayer was compiled without libfaac. See README or DOCS.\n", CONF_TYPE_PRINT
, CONF_NOCFG
, 0, 0, NULL
},
257 #endif /* CONFIG_FAAC */
258 #ifdef CONFIG_WIN32DLL
259 {"xvfwopts", vfwopts_conf
, CONF_TYPE_SUBCONFIG
, CONF_GLOBAL
, 0, 0, NULL
},
262 {"xvidencopts", xvidencopts_conf
, CONF_TYPE_SUBCONFIG
, CONF_GLOBAL
, 0, 0, NULL
},
264 #if defined(CONFIG_X264)
265 {"x264encopts", &x264enc_set_param
, CONF_TYPE_FUNC_PARAM
, CONF_GLOBAL
, 0, 0, NULL
},
269 {"nuvopts", nuvopts_conf
, CONF_TYPE_SUBCONFIG
, CONF_GLOBAL
, 0, 0, NULL
},
271 {"mpegopts", mpegopts_conf
, CONF_TYPE_SUBCONFIG
, CONF_GLOBAL
, 0, 0, NULL
},
272 #ifdef CONFIG_LIBAVFORMAT
273 {"lavfopts", lavfopts_conf
, CONF_TYPE_SUBCONFIG
, CONF_GLOBAL
, 0, 0, NULL
},
276 #include "cfg-common-opts.h"
278 // {"-help", help_text, CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
279 // {"help", help_text, CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
280 // {"h", help_text, CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
281 {NULL
, NULL
, 0, 0, 0, 0, NULL
}
284 #endif /* MPLAYER_CFG_MENCODER_H */