changeset 5974:4396ead317d3

re-ordering options, add comemnts
author arpi
date Sat, 04 May 2002 21:26:45 +0000
parents 796510223658
children 157174abe70a
files cfg-common.h cfg-mencoder.h cfg-mplayer.h
diffstat 3 files changed, 162 insertions(+), 116 deletions(-) [+]
line wrap: on
line diff
--- a/cfg-common.h	Sat May 04 18:25:48 2002 +0000
+++ b/cfg-common.h	Sat May 04 21:26:45 2002 +0000
@@ -1,4 +1,5 @@
 #ifdef MAIN_CONF /* this will be included in conf[] */
+
 // ------------------------- stream options --------------------
 
 #ifdef USE_STREAM_CACHE
@@ -38,49 +39,68 @@
 	{"csslib", "MPlayer was compiled WITHOUT libcss support!\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
 #endif
 
+// ------------------------- demuxer options --------------------
+
+	// number of frames to play/convert
+	{"frames", &play_n_frames, CONF_TYPE_INT, CONF_MIN, 0, 0, NULL},
+
+	// seek to byte/seconds position
 	{"sb", &seek_to_byte, CONF_TYPE_INT, CONF_MIN, 0, 0, NULL},
 	{"ss", &seek_to_sec, CONF_TYPE_STRING, CONF_MIN, 0, 0, NULL},
 
-// ------------------------- demuxer options --------------------
-
-	{"bps", &pts_from_bps, CONF_TYPE_FLAG, 0, 0, 1, NULL},
-	{"nobps", &pts_from_bps, CONF_TYPE_FLAG, 0, 1, 0, NULL},
-
+	// AVI specific: force non-interleaved mode
 	{"ni", &force_ni, CONF_TYPE_FLAG, 0, 0, 1, NULL},
 	{"noni", &force_ni, CONF_TYPE_FLAG, 0, 1, 0, NULL},
 
+	// AVI and OGG only: (re)build index at startup
 	{"noidx", &index_mode, CONF_TYPE_FLAG, 0, -1, 0, NULL},
 	{"idx", &index_mode, CONF_TYPE_FLAG, 0, -1, 1, NULL},
 	{"forceidx", &index_mode, CONF_TYPE_FLAG, 0, -1, 2, NULL},
 
+	// select audio/videosubtitle stream
 	{"aid", &audio_id, CONF_TYPE_INT, CONF_RANGE, 0, 255, NULL},
 	{"vid", &video_id, CONF_TYPE_INT, CONF_RANGE, 0, 255, NULL},
 	{"sid", &dvdsub_id, CONF_TYPE_INT, CONF_RANGE, 0, 31, NULL},
-	{"ifo", &spudec_ifo, CONF_TYPE_STRING, 0, 0, 0, NULL},
+
+        {"mf", mfopts_conf, CONF_TYPE_SUBCONFIG, 0,0,0, NULL},
+#ifdef USE_TV
+	{"tv", tvopts_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
+#else
+	{"tv", "MPlayer was compiled without TV Interface support\n", CONF_TYPE_PRINT, 0, 0, 0, NULL},
+#endif
+	{"vivo", vivoopts_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
 
 // ------------------------- a-v sync options --------------------
 
-	{"frames", &play_n_frames, CONF_TYPE_INT, CONF_MIN, 0, 0, NULL},
+	// AVI specific: A-V sync mode (bps vs. interleaving)
+	{"bps", &pts_from_bps, CONF_TYPE_FLAG, 0, 0, 1, NULL},
+	{"nobps", &pts_from_bps, CONF_TYPE_FLAG, 0, 1, 0, NULL},
 
+	// set A-V sync correction speed (0=disables it):
 	{"mc", &default_max_pts_correction, CONF_TYPE_FLOAT, CONF_RANGE, 0, 10, NULL},
+	
+	// force video/audio rate:
 	{"fps", &force_fps, CONF_TYPE_FLOAT, CONF_MIN, 0, 0, NULL},
 	{"srate", &force_srate, CONF_TYPE_INT, CONF_RANGE, 1000, 8*48000, NULL},
 
-// ------------------------- codec/pp options --------------------
+// ------------------------- codec/vfilter options --------------------
 
-        {"mf", mfopts_conf, CONF_TYPE_SUBCONFIG, 0,0,0, NULL},
-	
+	// MP3-only: select stereo/left/right
 #ifdef USE_FAKE_MONO
 	{"stereo", &fakemono, CONF_TYPE_INT, CONF_RANGE, 0, 2, NULL},
 #endif
+
+	// disable audio
 	{"sound", &has_audio, CONF_TYPE_FLAG, 0, 0, 1, NULL},
 	{"nosound", &has_audio, CONF_TYPE_FLAG, 0, 1, 0, NULL},
 
+	// select audio/video codec (by name) or codec family (by number):
 	{"afm", &audio_family, CONF_TYPE_INT, CONF_MIN, 0, 16, NULL}, // keep ranges in sync
 	{"vfm", &video_family, CONF_TYPE_INT, CONF_MIN, 0, 14, NULL}, // with codec-cfg.c
 	{"ac", &audio_codec, CONF_TYPE_STRING, 0, 0, 0, NULL},
 	{"vc", &video_codec, CONF_TYPE_STRING, 0, 0, 0, NULL},
 
+	// postprocessing:
 	{"divxq", "Option -divxq has been renamed to -pp (postprocessing), use -pp !\n",
             CONF_TYPE_PRINT, 0, 0, 0, NULL},
 	{"pp", readPPOpt, CONF_TYPE_FUNC_PARAM, 0, 0, 0, (cfg_default_func_t)&revertPPOpt},
@@ -90,25 +110,21 @@
 #else
         {"oldpp", "MPlayer was compiled without opendivx library\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
 #endif
+
+	{"vop", &vo_plugin_args, CONF_TYPE_STRING_LIST, 0, 0, 0, NULL},
+
+	// scaling:
 	{"sws", &sws_flags, CONF_TYPE_INT, 0, 0, 2, NULL},
 	{"ssf", scaler_filter_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
-
-#ifdef USE_TV
-	{"tv", tvopts_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
-#else
-	{"tv", "MPlayer was compiled without TV Interface support\n", CONF_TYPE_PRINT, 0, 0, 0, NULL},
-#endif
-	{"vivo", vivoopts_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
-	{"vop", &vo_plugin_args, CONF_TYPE_STRING_LIST, 0, 0, 0, NULL},
-
         {"zoom", &softzoom, CONF_TYPE_FLAG, 0, 0, 1, NULL},
         {"nozoom", &softzoom, CONF_TYPE_FLAG, 0, 1, 0, NULL},
-        {"flip", &flip, CONF_TYPE_FLAG, 0, -1, 1, NULL},
-        {"noflip", &flip, CONF_TYPE_FLAG, 0, -1, 0, NULL},
 	{"aspect", &movie_aspect, CONF_TYPE_FLOAT, CONF_RANGE, 0.2, 3.0, NULL},
 	{"noaspect", &movie_aspect, CONF_TYPE_FLAG, 0, 0, 0, NULL},
 	{"xy", &screen_size_xy, CONF_TYPE_INT, CONF_RANGE, 0, 4096, NULL},
 
+        {"flip", &flip, CONF_TYPE_FLAG, 0, -1, 1, NULL},
+        {"noflip", &flip, CONF_TYPE_FLAG, 0, -1, 0, NULL},
+
 // ------------------------- subtitles options --------------------
 
 #ifdef USE_SUB
@@ -123,11 +139,13 @@
 	{"nounicode", &sub_unicode, CONF_TYPE_FLAG, 0, 1, 0, NULL},
 	{"utf8", &sub_utf8, CONF_TYPE_FLAG, 0, 0, 1, NULL},
 	{"noutf8", &sub_utf8, CONF_TYPE_FLAG, 0, 1, 0, NULL},
- 	{"subpos",&sub_pos,  CONF_TYPE_INT, CONF_RANGE, 0, 100, NULL},
+	// specify IFO file for VOBSUB subtitle
+	{"ifo", &spudec_ifo, CONF_TYPE_STRING, 0, 0, 0, NULL},
 #endif
 #ifdef USE_OSD
 	{"font", &font_name, CONF_TYPE_STRING, 0, 0, 0, NULL},
 	{"ffactor", &font_factor, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 10.0, NULL},
+ 	{"subpos", &sub_pos, CONF_TYPE_INT, CONF_RANGE, 0, 100, NULL},
 #endif
 
 #else
--- a/cfg-mencoder.h	Sat May 04 18:25:48 2002 +0000
+++ b/cfg-mencoder.h	Sat May 04 21:26:45 2002 +0000
@@ -92,26 +92,25 @@
 	{"include", cfg_include, CONF_TYPE_FUNC_PARAM, CONF_NOSAVE, 0, 0, NULL}, /* this must be the first!!! */
 
 	{"endpos", parse_end_at, CONF_TYPE_FUNC_PARAM, 0, 0, 0, NULL},
-	
+
+	// set output framerate - recommended for variable fps (.asf etc) files
+	// and for 29.97fps progressive mpeg2 streams
 	{"ofps", &force_ofps, CONF_TYPE_FLOAT, CONF_MIN, 0, 0, NULL},
 	{"o", &out_filename, CONF_TYPE_STRING, 0, 0, 0, NULL},
 
+	// limit number of skippable frames after a non-skipped one
 	{"skiplimit", &skip_limit, CONF_TYPE_INT, 0, 0, 0, NULL},
 	{"noskiplimit", &skip_limit, CONF_TYPE_FLAG, 0, 0, -1, NULL},
 	{"noskip", &skip_limit, CONF_TYPE_FLAG, 0, 0, 0, NULL},
 
 	{"x", "This option is obsolete, use -vop scale=w:h for scaling\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
-
 	{"xsize", "This option is obsolete, use -vop crop=w:h:x0:y0 for cropping\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
 
-	{"mp3file", &mp3_filename, CONF_TYPE_STRING, 0, 0, 0, NULL},
-	{"ac3file", &ac3_filename, CONF_TYPE_STRING, 0, 0, 0, NULL},
-
-//	{"oac", &out_audio_codec, CONF_TYPE_STRING, 0, 0, 0, NULL},
-//	{"ovc", &out_video_codec, CONF_TYPE_STRING, 0, 0, 0, NULL},
+	// outut audio/video codec selection
 	{"oac", oac_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
 	{"ovc", ovc_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
 
+	// override FOURCC in output file
 	{"ffourcc", &force_fourcc, CONF_TYPE_STRING, 0, 4, 4, NULL},
 
 	{"pass", &pass, CONF_TYPE_INT, CONF_RANGE,0,2, NULL},
--- a/cfg-mplayer.h	Sat May 04 18:25:48 2002 +0000
+++ b/cfg-mplayer.h	Sat May 04 21:26:45 2002 +0000
@@ -151,21 +151,52 @@
 	/* name, pointer, type, flags, min, max */
 	{"include", cfg_include, CONF_TYPE_FUNC_PARAM, CONF_NOSAVE, 0, 0, NULL}, /* this don't need anymore to be the first!!! */
 
-//---------------------- libao/libvo/mplayer options ------------------------
+//---------------------- libao/libvo options ------------------------
 	{"o", "Option -o has been renamed to -vo (video-out), use -vo !\n",
             CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
 	{"vo", &video_driver, CONF_TYPE_STRING, 0, 0, 0, NULL},
 	{"ao", &audio_driver, CONF_TYPE_STRING, 0, 0, 0, NULL},
+
 	{"aop", ao_plugin_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
-//	{"dsp", &dsp, CONF_TYPE_STRING, CONF_NOCFG, 0, 0, NULL},
 	{"dsp", "Use -ao oss:dsp_path!\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
         {"mixer", &mixer_device, CONF_TYPE_STRING, 0, 0, 0, NULL},
 	{"master", "Option -master has been removed, use -aop list=volume instead.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL},
 	{"channels", &audio_output_channels, CONF_TYPE_INT, CONF_RANGE, 2, 6, NULL},
+	// override audio buffer size (used only by -ao oss, anyway obsolete...)
+	{"abs", &ao_data.buffersize, CONF_TYPE_INT, CONF_MIN, 0, 0, NULL},
+
+	// -ao pcm options:
+	{"aofile", &ao_outputfilename, CONF_TYPE_STRING, 0, 0, 0, NULL},
+	{"waveheader", &ao_pcm_waveheader, CONF_TYPE_FLAG, 0, 0, 1, NULL},
+	{"nowaveheader", &ao_pcm_waveheader, CONF_TYPE_FLAG, 0, 1, 0, NULL},
+
+	{"alsa", "Option -alsa has been removed, new audio code doesn't need it! Remove it from your config file!\n",
+            CONF_TYPE_PRINT, 0, 0, 0, NULL},
+	{"noalsa", "Option -noalsa has been removed, new audio code doesn't need it! Remove it from your config file!\n",
+            CONF_TYPE_PRINT, 0, 0, 0, NULL},
+
 #ifdef HAVE_X11
 	{"display", &mDisplayName, CONF_TYPE_STRING, 0, 0, 0, NULL},
 #endif
-	{"osdlevel", &osd_level, CONF_TYPE_INT, CONF_RANGE, 0, 2 , NULL},
+
+	// -vo png only:
+#ifdef HAVE_PNG
+	{"z", &z_compression, CONF_TYPE_INT, CONF_RANGE, 0, 9, NULL},
+#endif
+	// -vo jpeg only:
+#ifdef HAVE_JPEG
+	{"jpeg", jpeg_conf, CONF_TYPE_SUBCONFIG, 0,0,0, NULL},
+#endif
+	// -vo sdl only:
+#ifdef HAVE_SDL
+	{"sdl", "Use -vo sdl:driver instead of -vo sdl -sdl driver\n",
+	    CONF_TYPE_PRINT, 0, 0, 0, NULL},
+	{"noxv", &sdl_noxv, CONF_TYPE_FLAG, 0, 0, 1, NULL},
+	{"forcexv", &sdl_forcexv, CONF_TYPE_FLAG, 0, 0, 1, NULL},
+	// -ao sdl only:
+	{"sdla", "Use -ao sdl:driver instead of -ao sdl -sdla driver\n",
+	    CONF_TYPE_PRINT, 0, 0, 0, NULL},
+#endif
 
 #ifdef HAVE_FBDEV
 	{"fb", &fb_dev_name, CONF_TYPE_STRING, 0, 0, 0, NULL},
@@ -179,22 +210,83 @@
 	{"fb", &fb_dev_name, CONF_TYPE_STRING, 0, 0, 0, NULL},
 #endif
 #endif
-//	{"encode", &encode_name, CONF_TYPE_STRING, 0, 0, 0, NULL},
+
+	// force window width/height or resolution (with -vm)
+	{"x", &opt_screen_size_x, CONF_TYPE_INT, CONF_RANGE, 0, 4096, NULL},
+	{"y", &opt_screen_size_y, CONF_TYPE_INT, CONF_RANGE, 0, 4096, NULL},
+	// set screen dimensions (when not detectable or virtual!=visible)
+	{"screenw", &vo_screenwidth, CONF_TYPE_INT, CONF_RANGE, 0, 4096, NULL},
+	{"screenh", &vo_screenheight, CONF_TYPE_INT, CONF_RANGE, 0, 4096, NULL},
+	// set aspect ratio of monitor - usefull for 16:9 TVout
+	{"monitoraspect", &monitor_aspect, CONF_TYPE_FLOAT, CONF_RANGE, 0.2, 3.0, NULL},
+	// video mode switching: (x11,xv,dga)
+        {"vm", &vidmode, CONF_TYPE_FLAG, 0, 0, 1, NULL},
+        {"novm", &vidmode, CONF_TYPE_FLAG, 0, 1, 0, NULL},
+	// start in fullscreen mode:
+	{"fs", &fullscreen, CONF_TYPE_FLAG, 0, 0, 1, NULL},
+	{"nofs", &fullscreen, CONF_TYPE_FLAG, 0, 1, 0, NULL},
+	// set fullscreen switch method (workaround for buggy WMs)
+	{"fsmode", &vo_fsmode, CONF_TYPE_INT, CONF_RANGE, 0, 15, NULL},
+	// set bpp (x11+vm, dga, fbdev, vesa, svga?)
+        {"bpp", &vo_dbpp, CONF_TYPE_INT, CONF_RANGE, 0, 32, NULL},
+	// double buffering:  (mga/xmga, xv, vidix, vesa, fbdev)
+	{"double", &vo_doublebuffering, CONF_TYPE_FLAG, 0, 0, 1, NULL},
+	{"nodouble", &vo_doublebuffering, CONF_TYPE_FLAG, 0, 1, 0, NULL},
+	// wait for v-sync (vesa)
+	{"vsync", &vo_vsync, CONF_TYPE_FLAG, 0, 0, 1, NULL},
+	{"novsync", &vo_vsync, CONF_TYPE_FLAG, 0, 1, 0, NULL},
+
+#ifdef HAVE_X11
+	// x11,xv,xmga,xvidix
+	{"wid", &WinID, CONF_TYPE_INT, 0, 0, 0, NULL},
+	{"rootwin", &WinID, CONF_TYPE_FLAG, 0, -1, 0, NULL},
+#endif
+
+#ifdef HAVE_XINERAMA
+	{"xineramascreen", &xinerama_screen, CONF_TYPE_INT, CONF_RANGE, 0, 32, NULL},
+#endif
+
+	// dunno what, imho not used, or vidix stuff?
+	{"brightness",&vo_gamma_brightness, CONF_TYPE_INT, CONF_RANGE, -1000, 1000, NULL},
+	{"saturation",&vo_gamma_saturation, CONF_TYPE_INT, CONF_RANGE, -1000, 1000, NULL},
+	{"contrast",&vo_gamma_contrast, CONF_TYPE_INT, CONF_RANGE, -1000, 1000, NULL},
+	{"hue",&vo_gamma_hue, CONF_TYPE_INT, CONF_RANGE, -1000, 1000, NULL},
+	{"red_intensity",&vo_gamma_red_intensity, CONF_TYPE_INT, CONF_RANGE, -1000, 1000, NULL},
+	{"green_intensity",&vo_gamma_green_intensity, CONF_TYPE_INT, CONF_RANGE, -1000, 1000, NULL},
+	{"blue_intensity",&vo_gamma_blue_intensity, CONF_TYPE_INT, CONF_RANGE, -1000, 1000, NULL},
+
+	// direct rendering (decoding to video out buffer)
+	{"dr", &vo_directrendering, CONF_TYPE_FLAG, 0, 0, 1, NULL},
+	{"nodr", &vo_directrendering, CONF_TYPE_FLAG, 0, 1, 0, NULL},
+	{"vaa_dr", "Use -dr, -vaa_dr was obsoleted\n", CONF_TYPE_PRINT, 0, 0, 0, NULL},
+	{"vaa_nodr", "Use -nodr, -vaa_nodr was obsoleted\n", CONF_TYPE_PRINT, 0, 0, 0, NULL},
+
+	// draw by slices or whole frame (usefull with libmpeg2/libavcodec)
+	{"slices", &vd_use_slices, CONF_TYPE_FLAG, 0, 0, 1, NULL},
+	{"noslices", &vd_use_slices, CONF_TYPE_FLAG, 0, 1, 0, NULL},
+
+#ifdef HAVE_AA
+	// -vo aa
+	{"aa*",	vo_aa_parseoption,  CONF_TYPE_FUNC_FULL, 0, 0, 0 , &vo_aa_revertoption},
+#endif
+
+#ifdef HAVE_ZR
+	// -vo zr
+	{"zr*", vo_zr_parseoption, CONF_TYPE_FUNC_FULL, 0, 0, 0, &vo_zr_revertoption },
+#endif
+
+//---------------------- mplayer-only options ------------------------
+
+	{"osdlevel", &osd_level, CONF_TYPE_INT, CONF_RANGE, 0, 2 , NULL},
+
+	// these should be moved to -common, and suppot in mencoder too
 	{"vobsub", &vobsub_name, CONF_TYPE_STRING, 0, 0, 0, NULL},
 	{"vobsubid", &vobsub_id, CONF_TYPE_INT, CONF_RANGE, 0, 31, NULL},
 
-//	{"bg", &play_in_bg, CONF_TYPE_FLAG, 0, 0, 1, NULL},
-//	{"nobg", &play_in_bg, CONF_TYPE_FLAG, 0, 1, 0, NULL},
 	{"sstep", &step_sec, CONF_TYPE_INT, CONF_MIN, 0, 0, NULL},
-	{"noloop", &loop_times, CONF_TYPE_FLAG, 0, 0, -1, NULL},
-	{"loop", &loop_times, CONF_TYPE_INT, CONF_RANGE, -1, 10000, NULL},
-	{"abs", &ao_data.buffersize, CONF_TYPE_INT, CONF_MIN, 0, 0, NULL},
-	{"delay", &audio_delay, CONF_TYPE_FLOAT, CONF_RANGE, -10.0, 10.0, NULL},
 
-	{"alsa", "Option -alsa has been removed, new audio code doesn't need it! Remove it from your config file!\n",
-            CONF_TYPE_PRINT, 0, 0, 0, NULL},
-	{"noalsa", "Option -noalsa has been removed, new audio code doesn't need it! Remove it from your config file!\n",
-            CONF_TYPE_PRINT, 0, 0, 0, NULL},
+	// set a-v distance, should be moved to -common and support in mencoder
+	{"delay", &audio_delay, CONF_TYPE_FLOAT, CONF_RANGE, -100.0, 100.0, NULL},
 
 	{"framedrop", &frame_dropping, CONF_TYPE_FLAG, 0, 0, 1, NULL},
 	{"hardframedrop", &frame_dropping, CONF_TYPE_FLAG, 0, 0, 2, NULL},
@@ -203,7 +295,9 @@
 	{"autoq", &auto_quality, CONF_TYPE_INT, CONF_RANGE, 0, 100, NULL},
 
 	{"benchmark", &benchmark, CONF_TYPE_FLAG, 0, 0, 1, NULL},
-	
+
+	// dump some stream out instead of playing the file
+	// this really should be in mencoder instead of mplayer... -> TODO
 	{"dumpfile", &stream_dump_name, CONF_TYPE_STRING, 0, 0, 0, NULL},
 	{"dumpaudio", &stream_dump_type, CONF_TYPE_FLAG, 0, 0, 1, NULL},
 	{"dumpvideo", &stream_dump_type, CONF_TYPE_FLAG, 0, 0, 2, NULL},
@@ -211,65 +305,6 @@
 	{"dumpmpsub", &stream_dump_type, CONF_TYPE_FLAG, 0, 0, 4, NULL},
 	{"dumpstream", &stream_dump_type, CONF_TYPE_FLAG, 0, 0, 5, NULL},
 
-	{"aofile", &ao_outputfilename, CONF_TYPE_STRING, 0, 0, 0, NULL},
-	{"waveheader", &ao_pcm_waveheader, CONF_TYPE_FLAG, 0, 0, 1, NULL},
-	{"nowaveheader", &ao_pcm_waveheader, CONF_TYPE_FLAG, 0, 1, 0, NULL},
-
-	{"dshow", &allow_dshow, CONF_TYPE_FLAG, 0, 0, 1, NULL}, // Is this still needed? atmos ::
-	{"nodshow", &allow_dshow, CONF_TYPE_FLAG, 0, 1, 0, NULL},
-
-#ifdef HAVE_PNG
-	{"z", &z_compression, CONF_TYPE_INT, CONF_RANGE, 0, 9, NULL},
-#endif
-#ifdef HAVE_JPEG
-	{"jpeg", jpeg_conf, CONF_TYPE_SUBCONFIG, 0,0,0, NULL},
-#endif
-#ifdef HAVE_SDL
-	{"sdl", "Use -vo sdl:driver instead of -vo sdl -sdl driver\n",
-	    CONF_TYPE_PRINT, 0, 0, 0, NULL},
-	{"noxv", &sdl_noxv, CONF_TYPE_FLAG, 0, 0, 1, NULL},
-	{"forcexv", &sdl_forcexv, CONF_TYPE_FLAG, 0, 0, 1, NULL},
-	{"sdla", "Use -ao sdl:driver instead of -ao sdl -sdla driver\n",
-	    CONF_TYPE_PRINT, 0, 0, 0, NULL},
-#endif	
-	{"x", &opt_screen_size_x, CONF_TYPE_INT, CONF_RANGE, 0, 4096, NULL},
-	{"y", &opt_screen_size_y, CONF_TYPE_INT, CONF_RANGE, 0, 4096, NULL},
-	{"screenw", &vo_screenwidth, CONF_TYPE_INT, CONF_RANGE, 0, 4096, NULL},
-	{"screenh", &vo_screenheight, CONF_TYPE_INT, CONF_RANGE, 0, 4096, NULL},
-	{"monitoraspect", &monitor_aspect, CONF_TYPE_FLOAT, CONF_RANGE, 0.2, 3.0, NULL},
-        {"vm", &vidmode, CONF_TYPE_FLAG, 0, 0, 1, NULL},
-        {"novm", &vidmode, CONF_TYPE_FLAG, 0, 1, 0, NULL},
-	{"fs", &fullscreen, CONF_TYPE_FLAG, 0, 0, 1, NULL},
-	{"nofs", &fullscreen, CONF_TYPE_FLAG, 0, 1, 0, NULL},
-       
-        {"bpp", &vo_dbpp, CONF_TYPE_INT, CONF_RANGE, 0, 32, NULL},
-	{"fsmode", &vo_fsmode, CONF_TYPE_INT, CONF_RANGE, 0, 15, NULL},
-	{"double", &vo_doublebuffering, CONF_TYPE_FLAG, 0, 0, 1, NULL},
-	{"nodouble", &vo_doublebuffering, CONF_TYPE_FLAG, 0, 1, 0, NULL},
-	{"vsync", &vo_vsync, CONF_TYPE_FLAG, 0, 0, 1, NULL},
-	{"novsync", &vo_vsync, CONF_TYPE_FLAG, 0, 1, 0, NULL},
-	{"brightness",&vo_gamma_brightness, CONF_TYPE_INT, CONF_RANGE, -1000, 1000, NULL},
-	{"saturation",&vo_gamma_saturation, CONF_TYPE_INT, CONF_RANGE, -1000, 1000, NULL},
-	{"contrast",&vo_gamma_contrast, CONF_TYPE_INT, CONF_RANGE, -1000, 1000, NULL},
-	{"hue",&vo_gamma_hue, CONF_TYPE_INT, CONF_RANGE, -1000, 1000, NULL},
-	{"red_intensity",&vo_gamma_red_intensity, CONF_TYPE_INT, CONF_RANGE, -1000, 1000, NULL},
-	{"green_intensity",&vo_gamma_green_intensity, CONF_TYPE_INT, CONF_RANGE, -1000, 1000, NULL},
-	{"blue_intensity",&vo_gamma_blue_intensity, CONF_TYPE_INT, CONF_RANGE, -1000, 1000, NULL},
-	{"dr", &vo_directrendering, CONF_TYPE_FLAG, 0, 0, 1, NULL},
-	{"nodr", &vo_directrendering, CONF_TYPE_FLAG, 0, 1, 0, NULL},
-	{"vaa_dr", "Use -dr, -vaa_dr was obsoleted\n", CONF_TYPE_PRINT, 0, 0, 0, NULL},
-	{"vaa_nodr", "Use -nodr, -vaa_nodr was obsoleted\n", CONF_TYPE_PRINT, 0, 0, 0, NULL},
-	{"slices", &vd_use_slices, CONF_TYPE_FLAG, 0, 0, 1, NULL},
-	{"noslices", &vd_use_slices, CONF_TYPE_FLAG, 0, 1, 0, NULL},
-
-#ifdef HAVE_AA
-	{"aa*",	vo_aa_parseoption,  CONF_TYPE_FUNC_FULL, 0, 0, 0 , &vo_aa_revertoption},
-#endif
-
-#ifdef HAVE_ZR
-	{"zr*", vo_zr_parseoption, CONF_TYPE_FUNC_FULL, 0, 0, 0, &vo_zr_revertoption },
-#endif
-
 #ifdef HAVE_LIRC
 	{"lircconf", &lirc_configfile, CONF_TYPE_STRING, CONF_GLOBAL, 0, 0, NULL}, 
 #endif
@@ -281,27 +316,21 @@
 	{"skin", &skinName, CONF_TYPE_STRING, CONF_GLOBAL, 0, 0, NULL},
 #endif
 
+	{"noloop", &loop_times, CONF_TYPE_FLAG, 0, 0, -1, NULL},
+	{"loop", &loop_times, CONF_TYPE_INT, CONF_RANGE, -1, 10000, NULL},
 	{"playlist", NULL, CONF_TYPE_STRING, 0, 0, 0, NULL},
+
+	// a-v sync stuff:
 	{"dapsync", &dapsync, CONF_TYPE_FLAG, 0, 0, 1, NULL},
 	{"nodapsync", &dapsync, CONF_TYPE_FLAG, 0, 1, 0, NULL},
 	{"softsleep", &softsleep, CONF_TYPE_FLAG, 0, 0, 1, NULL},
+#ifdef HAVE_RTC
+	{"nortc", &nortc, CONF_TYPE_FLAG, 0, 0, 1, NULL},
+#endif
 
 	{"slave", &slave_mode, CONF_TYPE_FLAG,CONF_GLOBAL , 0, 1, NULL},
 	{"use-stdin", &use_stdin, CONF_TYPE_FLAG, CONF_GLOBAL, 0, 1, NULL},
 
-#ifdef HAVE_X11
-	{"wid", &WinID, CONF_TYPE_INT, 0, 0, 0, NULL},
-	{"rootwin", &WinID, CONF_TYPE_FLAG, 0, -1, 0, NULL},
-#endif
-
-#ifdef HAVE_XINERAMA
-	{"xineramascreen", &xinerama_screen, CONF_TYPE_INT, CONF_RANGE, 0, 32, NULL},
-#endif
-
-#ifdef HAVE_RTC
-	{"nortc", &nortc, CONF_TYPE_FLAG, 0, 0, 1, NULL},
-#endif
-
 #define MAIN_CONF
 #include "cfg-common.h"
 #undef MAIN_CONF