Better vprp aspect fix
[mplayer/greg.git] / cfg-mencoder.h
blobebc58435a1c21ac81b0e66d1320471a068256ea2
1 /*
2 * config for cfgparser
3 */
5 #include "cfg-common.h"
7 #ifdef USE_FAKE_MONO
8 extern int fakemono; // defined in dec_audio.c
9 #endif
10 #ifdef HAVE_ODIVX_POSTPROCESS
11 extern int use_old_pp;
12 #endif
14 extern int sws_flags;
15 extern int readPPOpt(void *, char *arg);
16 extern void revertPPOpt(void *conf, char* opt);
17 extern char *pp_help;
19 #ifdef HAVE_DIVX4ENCORE
20 extern m_option_t divx4opts_conf[];
21 #endif
23 #ifdef HAVE_MP3LAME
24 m_option_t lameopts_conf[]={
25 {"q", &lame_param_quality, CONF_TYPE_INT, CONF_RANGE, 0, 9, NULL},
26 {"aq", &lame_param_algqual, CONF_TYPE_INT, CONF_RANGE, 0, 9, NULL},
27 {"vbr", &lame_param_vbr, CONF_TYPE_INT, CONF_RANGE, 0, vbr_max_indicator, NULL},
28 {"cbr", &lame_param_vbr, CONF_TYPE_FLAG, 0, 0, 0, NULL},
29 {"abr", &lame_param_vbr, CONF_TYPE_FLAG, 0, 0, vbr_abr, NULL},
30 {"mode", &lame_param_mode, CONF_TYPE_INT, CONF_RANGE, 0, MAX_INDICATOR, NULL},
31 {"padding", &lame_param_padding, CONF_TYPE_INT, CONF_RANGE, 0, PAD_MAX_INDICATOR, NULL},
32 {"br", &lame_param_br, CONF_TYPE_INT, CONF_RANGE, 0, 1024, NULL},
33 {"ratio", &lame_param_ratio, CONF_TYPE_INT, CONF_RANGE, 0, 100, NULL},
34 {"vol", &lame_param_scale, CONF_TYPE_FLOAT, CONF_RANGE, 0, 10, NULL},
35 {"lowpassfreq",&lame_param_lowpassfreq, CONF_TYPE_INT, CONF_RANGE, -1, 48000,0},
36 {"highpassfreq",&lame_param_highpassfreq, CONF_TYPE_INT, CONF_RANGE, -1, 48000,0},
37 #if HAVE_MP3LAME >= 392
38 {"fast", &lame_param_fast, CONF_TYPE_FLAG, 0, 0, 1, NULL},
39 {"preset", &lame_param_preset, CONF_TYPE_STRING, 0, 0, 0, NULL},
40 #else
41 {"fast", "MPlayer was built without -lameopts fast support (requires libmp3lame >=3.92)!\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
42 {"preset", "MPlayer was built without -lameopts preset support (requires libmp3lame >=3.92)!\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
43 #endif
44 {"help", MSGTR_MEncoderMP3LameHelp, CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
45 {NULL, NULL, 0, 0, 0, 0, NULL}
47 #endif
49 #ifdef USE_LIBAVCODEC
50 extern m_option_t lavcopts_conf[];
51 #endif
53 #ifdef USE_WIN32DLL
54 extern m_option_t vfwopts_conf[];
55 #endif
57 #if defined(HAVE_XVID3) || defined(HAVE_XVID4)
58 extern m_option_t xvidencopts_conf[];
59 #endif
61 extern m_option_t nuvopts_conf[];
63 m_option_t ovc_conf[]={
64 {"copy", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_COPY, NULL},
65 {"frameno", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_FRAMENO, NULL},
66 {"divx4", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_DIVX4, NULL},
67 // {"raw", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_RAW, NULL},
68 {"lavc", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_LIBAVCODEC, NULL},
69 // {"null", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_NULL, NULL},
70 {"raw", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_RAW, NULL},
71 {"vfw", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_VFW, NULL},
72 {"libdv", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_LIBDV, NULL},
73 {"xvid", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_XVID, NULL},
74 {"qtvideo", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_QTVIDEO, NULL},
75 {"nuv", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_NUV, NULL},
76 {"help", "\nAvailable codecs:\n"
77 " copy - frame copy, without re-encoding. doesn't work with filters!\n"
78 " frameno - special audio-only file for 3-pass encoding, see DOCS!\n"
79 " raw - uncompressed video. Use fourcc option to set format explicitly.\n"
80 " nuv - nuppel video\n"
81 #ifdef HAVE_DIVX4ENCORE
82 #ifdef ENCORE_XVID
83 " divx4 - using XviD (divx4linux compat. mode)\n"
84 #else
85 " divx4 - using divx4linux/divx5linux lib (depends on configuration)\n"
86 #endif
87 #endif
88 #ifdef USE_LIBAVCODEC
89 " lavc - using libavcodec codecs - best quality!\n"
90 #endif
91 #ifdef USE_WIN32DLL
92 " vfw - using VfW DLLs, currently only AVID is supported\n"
93 " qtvideo - using QuickTime DLLs, currently only SVQ1/3 are supported\n"
94 #endif
95 #ifdef HAVE_LIBDV095
96 " libdv - DV encoding using libdv v0.9.5\n"
97 #endif
98 #if defined(HAVE_XVID3) || defined(HAVE_XVID4)
99 " xvid - xvid encoding\n"
100 #endif
101 "\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
102 {NULL, NULL, 0, 0, 0, 0, NULL}
105 m_option_t oac_conf[]={
106 {"copy", &out_audio_codec, CONF_TYPE_FLAG, 0, 0, ACODEC_COPY, NULL},
107 {"pcm", &out_audio_codec, CONF_TYPE_FLAG, 0, 0, ACODEC_PCM, NULL},
108 #ifdef HAVE_MP3LAME
109 {"mp3lame", &out_audio_codec, CONF_TYPE_FLAG, 0, 0, ACODEC_VBRMP3, NULL},
110 #else
111 {"mp3lame", "MPlayer was compiled without libmp3lame support!\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
112 #endif
113 #ifdef USE_LIBAVCODEC
114 {"lavc", &out_audio_codec, CONF_TYPE_FLAG, 0, 0, ACODEC_LAVC, NULL},
115 #else
116 {"lavc", "MPlayer was compiled without libavcodec! See README or DOCS!\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
117 #endif
118 {"help", "\nAvailable codecs:\n"
119 " copy - frame copy, without re-encoding (useful for AC3)\n"
120 " pcm - uncompressed PCM audio\n"
121 #ifdef HAVE_MP3LAME
122 " mp3lame - cbr/abr/vbr MP3 using libmp3lame\n"
123 #endif
124 #ifdef USE_LIBAVCODEC
125 " lavc - ffmpeg audio encoder (mp2, ac3, ...)\n"
126 #endif
127 "\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
128 {NULL, NULL, 0, 0, 0, 0, NULL}
131 m_option_t info_conf[]={
132 {"name", &info_name, CONF_TYPE_STRING, 0, 0, 0, NULL},
133 {"artist", &info_artist, CONF_TYPE_STRING, 0, 0, 0, NULL},
134 {"genre", &info_genre, CONF_TYPE_STRING, 0, 0, 0, NULL},
135 {"subject", &info_subject, CONF_TYPE_STRING, 0, 0, 0, NULL},
136 {"copyright", &info_copyright, CONF_TYPE_STRING, 0, 0, 0, NULL},
137 {"srcform", &info_sourceform, CONF_TYPE_STRING, 0, 0, 0, NULL},
138 {"comment", &info_comment, CONF_TYPE_STRING, 0, 0, 0, NULL},
139 {"help", "\nAvailable INFO fields:\n"
140 " name - title of the subject of the file\n"
141 " artist - artist or author of the original subject of the file\n"
142 " genre - original work category\n"
143 " subject - contents of the file\n"
144 " copyright - copyright information for the file\n"
145 " srcform - original form of the material that was digitized\n"
146 " comment - general comments about the file or the subject of the file\n"
147 "\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
148 {NULL, NULL, 0, 0, 0, 0, NULL}
151 m_option_t of_conf[]={
152 {"avi", &out_file_format, CONF_TYPE_FLAG, 0, 0, MUXER_TYPE_AVI, NULL},
153 {"mpeg", &out_file_format, CONF_TYPE_FLAG, 0, 0, MUXER_TYPE_MPEG, NULL},
154 {"rawvideo", &out_file_format, CONF_TYPE_FLAG, 0, 0, MUXER_TYPE_RAWVIDEO, NULL},
155 {"help", "\nAvailable output formats:\n"
156 " avi - Microsoft Audio/Video Interleaved\n"
157 " mpeg - MPEG-1 system stream format\n"
158 " rawvideo - (video only, one stream only) raw stream, no muxing\n"
159 "\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
160 {NULL, NULL, 0, 0, 0, 0, NULL}
163 m_option_t mencoder_opts[]={
164 /* name, pointer, type, flags, min, max */
166 {"endpos", parse_end_at, CONF_TYPE_FUNC_PARAM, 0, 0, 0, NULL},
168 // set output framerate - recommended for variable fps (.asf etc) files
169 // and for 29.97fps progressive mpeg2 streams
170 {"ofps", &force_ofps, CONF_TYPE_FLOAT, CONF_MIN, 0, 0, NULL},
171 {"o", &out_filename, CONF_TYPE_STRING, 0, 0, 0, NULL},
173 // limit number of skippable frames after a non-skipped one
174 {"skiplimit", &skip_limit, CONF_TYPE_INT, 0, 0, 0, NULL},
175 {"noskiplimit", &skip_limit, CONF_TYPE_FLAG, 0, 0, -1, NULL},
176 {"noskip", &skip_limit, CONF_TYPE_FLAG, 0, 0, 0, NULL},
178 {"audio-density", &audio_density, CONF_TYPE_INT, CONF_RANGE, 1, 50, NULL},
179 {"audio-preload", &audio_preload, CONF_TYPE_FLOAT, CONF_RANGE, 0, 2, NULL},
180 {"audio-delay", &audio_delay, CONF_TYPE_FLOAT, CONF_MIN, 0, 0, NULL},
182 {"x", "This option is obsolete, use -vf scale=w:h for scaling.\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
183 {"xsize", "This option is obsolete, use -vf crop=w:h:x0:y0 for cropping.\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
185 // output audio/video codec selection
186 {"oac", oac_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
187 {"ovc", ovc_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
189 // output file format
190 {"of", of_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
192 // override FOURCC in output file
193 {"ffourcc", &force_fourcc, CONF_TYPE_STRING, 0, 4, 4, NULL},
195 {"pass", "The -pass option is obsolete. Use -lavcopts vpass=n or -divx4opts pass=n!\nRTFM!\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
196 {"passlogfile", &passtmpfile, CONF_TYPE_STRING, 0, 0, 0, NULL},
198 {"vobsubout", &vobsub_out, CONF_TYPE_STRING, 0, 0, 0, NULL},
199 {"vobsuboutindex", &vobsub_out_index, CONF_TYPE_INT, CONF_RANGE, 0, 31, NULL},
200 {"vobsuboutid", &vobsub_out_id, CONF_TYPE_STRING, 0, 0, 0, NULL},
202 {"autoexpand", &auto_expand, CONF_TYPE_FLAG, 0, 0, 1, NULL},
203 {"noautoexpand", &auto_expand, CONF_TYPE_FLAG, 0, 1, 0, NULL},
205 // info header strings
206 {"info", info_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
208 #ifdef HAVE_DIVX4ENCORE
209 {"divx4opts", divx4opts_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
210 #endif
211 #ifdef HAVE_MP3LAME
212 {"lameopts", lameopts_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
213 #endif
214 #ifdef USE_LIBAVCODEC
215 {"lavcopts", lavcopts_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
216 #else
217 {"lavcopts", "MPlayer was compiled without libavcodec! See README or DOCS!\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
218 #endif
219 #ifdef USE_WIN32DLL
220 {"vfwopts", vfwopts_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
221 #endif
222 #if defined(HAVE_XVID3) || defined(HAVE_XVID4)
223 {"xvidencopts", xvidencopts_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
224 #endif
226 {"nuvopts", nuvopts_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
228 #define MAIN_CONF
229 #include "cfg-common.h"
230 #undef MAIN_CONF
232 // {"-help", help_text, CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
233 // {"help", help_text, CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
234 // {"h", help_text, CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
235 {NULL, NULL, 0, 0, 0, 0, NULL}