]> git.sesse.net Git - vlc/blobdiff - src/libvlc-module.c
win32: avoid the POSIX timer API for now
[vlc] / src / libvlc-module.c
index 7110d31a12107d2118049ea61fc3a8f288678224..94faf8e41a556c06a6e8431156ddbd88ad0b98cc 100644 (file)
@@ -1,7 +1,7 @@
 /*****************************************************************************
  * libvlc-module.c: Options for the main (libvlc itself) module
  *****************************************************************************
- * Copyright (C) 1998-2009 the VideoLAN team
+ * Copyright (C) 1998-2009 VLC authors and VideoLAN
  * $Id$
  *
  * Authors: Vincent Seguin <seguin@via.ecp.fr>
@@ -9,19 +9,19 @@
  *          Gildas Bazin <gbazin@videolan.org>
  *          Jean-Paul Saman <jpsaman #_at_# m2x.nl>
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
 // Pretend we are a builtin module
 #include <vlc_common.h>
 #include <vlc_plugin.h>
 #include <vlc_cpu.h>
-#include <vlc_aout_intf.h>
+#include <vlc_playlist.h>
 #include "libvlc.h"
+#include "modules/modules.h"
 
 //#define Nothing here, this is just to prevent update-po from being stupid
 #include "vlc_keys.h"
 #include "vlc_meta.h"
-
-#if defined (WIN32) || defined (__APPLE__)
-static const char *const ppsz_language[] =
-{
-    "auto",
-    "en",
-    "ar",
-    "bn",
-    "pt_BR",
-    "en_GB",
-    "el",
-    "bg",
-    "ca",
-    "zh_TW",
-    "cs",
-    "da",
-    "nl",
-    "fi",
-    "fr",
-    "gl",
-    "ka",
-    "de",
-    "he",
-    "hr",
-    "hu",
-    "hy",
-    "id",
-    "it",
-    "ja",
-    "ko",
-    "lt",
-    "mn",
-    "ms",
-    "nn",
-    "kk",
-    "km",
-    "oc",
-    "fa",
-    "pl",
-    "pt_PT",
-    "pa",
-    "ro",
-    "ru",
-    "zh_CN",
-    "si",
-    "sr",
-    "sk",
-    "sl",
-    "ckb",
-    "es",
-    "sv",
-    "tr",
-    "uk",
-    "vi",
-    "wa",
-};
-
-static const char *const ppsz_language_text[] =
-{
-    N_("Auto"),
-    "American English",
-    "ﻉﺮﺒﻳ",
-    "বাংলা",
-    "Português Brasileiro",
-    "British English",
-    "Νέα Ελληνικά",
-    "български език",
-    "Català",
-    "正體中文",
-    "Čeština",
-    "Dansk",
-    "Nederlands",
-    "Suomi",
-    "Français",
-    "Galego",
-    "ქართული",
-    "Deutsch",
-    "עברית",
-    "hrvatski",
-    "Magyar",
-    "հայերեն",
-    "Bahasa Indonesia",
-    "Italiano",
-    "日本語",
-    "한국어",
-    "lietuvių",
-    "Монгол хэл",
-    "Melayu",
-    "Nynorsk",
-    "Қазақ тілі",
-    "ភាសាខ្មែរ",
-    "Occitan",
-    "ﻑﺍﺮﺳی",
-    "Polski",
-    "Português",
-    "ਪੰਜਾਬੀ",
-    "Română",
-    "Русский",
-    "简体中文",
-    "සිංහල",
-    "српски",
-    "Slovensky",
-    "slovenščina",
-    "کوردیی سۆرانی",
-    "Español",
-    "Svenska",
-    "Türkçe",
-    "украї́нська мо́ва",
-    "tiếng Việt",
-    "Walon",
-};
-#endif
+#include <vlc_aout.h>
 
 static const char *const ppsz_snap_formats[] =
-{ "png", "jpg" };
+{ "png", "jpg", "tiff" };
 
 /*****************************************************************************
  * Configuration options for the main program. Each module will also separatly
@@ -197,16 +87,6 @@ static const char *const ppsz_snap_formats[] =
     "This is the verbosity level (0=only errors and " \
     "standard messages, 1=warnings, 2=debug).")
 
-#define VERBOSE_OBJECTS_TEXT N_("Choose which objects should print debug " \
-    "message")
-#define VERBOSE_OBJECTS_LONGTEXT N_( \
-    "This is a ',' separated string, each objects should be prefixed by " \
-    "a '+' or a '-' to respectively enable or disable it. The keyword " \
-    "'all' refers to all objects. Objects can be referred to by their " \
-    "type or module name. Rules applying to named objects take precedence " \
-    "over rules applying to object types. Note that you still need to " \
-    "use -vvv to actually display debug message.")
-
 #define QUIET_TEXT N_("Be quiet")
 #define QUIET_LONGTEXT N_( \
     "Turn off all warning and information messages.")
@@ -215,11 +95,6 @@ static const char *const ppsz_snap_formats[] =
 #define OPEN_LONGTEXT N_( \
     "This stream will always be opened at VLC startup." )
 
-#define LANGUAGE_TEXT N_("Language")
-#define LANGUAGE_LONGTEXT N_( "You can manually select a language for the " \
-    "interface. The system language is auto-detected if \"auto\" is " \
-    "specified here." )
-
 #define COLOR_TEXT N_("Color messages")
 #define COLOR_LONGTEXT N_( \
     "This enables colorization of the messages sent to the console " \
@@ -260,41 +135,29 @@ static const char *const ppsz_snap_formats[] =
     "You can completely disable the audio output. The audio " \
     "decoding stage will not take place, thus saving some processing power.")
 
-#if 0
-#define MONO_TEXT N_("Force mono audio")
-#define MONO_LONGTEXT N_("This will force a mono audio output.")
-#endif
-
-#define VOLUME_TEXT N_("Default audio volume")
-#define VOLUME_LONGTEXT N_( \
-    "You can set the default audio output volume here, in a range from 0 to " \
-    "1024.")
+#define GAIN_TEXT N_("Audio gain")
+#define GAIN_LONGTEXT N_( \
+    "This linear gain will be applied to outputted audio.")
 
 #define VOLUME_STEP_TEXT N_("Audio output volume step")
 #define VOLUME_STEP_LONGTEXT N_( \
-    "The step size of the volume is adjustable using this option, " \
-    "in a range from 0 to 1024." )
-#define AOUT_VOLUME_STEP 32
-
-#define AOUT_RATE_TEXT N_("Audio output frequency (Hz)")
-#define AOUT_RATE_LONGTEXT N_( \
-    "You can force the audio output frequency here. Common values are " \
-    "0 (undefined), 48000, 44100, 32000, 22050, 16000, 11025, 8000.")
-
-#if !defined( __APPLE__ )
-#define AOUT_RESAMP_TEXT N_("High quality audio resampling")
-#define AOUT_RESAMP_LONGTEXT N_( \
-    "This uses a high quality audio resampling algorithm. High quality " \
-    "audio resampling can be processor intensive so you can " \
-    "disable it and a cheaper resampling algorithm will be used instead.")
-#endif
+    "The step size of the volume is adjustable using this option.")
+#define AOUT_VOLUME_STEP 12.8
+
+#define VOLUME_SAVE_TEXT N_( "Remember the audio volume" )
+#define VOLUME_SAVE_LONGTEXT N_( \
+    "The volume can be recorded and automatically restored next time " \
+    "VLC is used." )
 
 #define DESYNC_TEXT N_("Audio desynchronization compensation")
 #define DESYNC_LONGTEXT N_( \
     "This delays the audio output. The delay must be given in milliseconds. " \
     "This can be handy if you notice a lag between the video and the audio.")
 
-#define MULTICHA_TEXT N_("Audio output channels mode")
+#define AUDIO_RESAMPLER_TEXT N_("Audio resampler")
+#define AUDIO_RESAMPLER_LONGTEXT N_( \
+    "This selects which plugin to use for audio resampling." )
+
 #define MULTICHA_LONGTEXT N_( \
     "This sets the audio output channels mode that will " \
     "be used by default when possible (ie. if your hardware supports it as " \
@@ -316,13 +179,22 @@ static const int pi_force_dolby_values[] = { 0, 1, 2 };
 static const char *const ppsz_force_dolby_descriptions[] = {
     N_("Auto"), N_("On"), N_("Off") };
 
+#define STEREO_MODE_TEXT N_("Stereo audio output mode")
+static const int pi_stereo_mode_values[] = { AOUT_VAR_CHAN_UNSET,
+    AOUT_VAR_CHAN_STEREO, AOUT_VAR_CHAN_RSTEREO,
+    AOUT_VAR_CHAN_LEFT, AOUT_VAR_CHAN_RIGHT, AOUT_VAR_CHAN_DOLBYS
+};
+static const char *const ppsz_stereo_mode_texts[] = { N_("Unset"),
+    N_("Stereo"), N_("Reverse stereo"),
+    N_("Left"), N_("Right"), N_("Dolby Surround")
+};
 
 #define AUDIO_FILTER_TEXT N_("Audio filters")
 #define AUDIO_FILTER_LONGTEXT N_( \
     "This adds audio post processing filters, to modify " \
     "the sound rendering." )
 
-#define AUDIO_VISUAL_TEXT N_("Audio visualizations ")
+#define AUDIO_VISUAL_TEXT N_("Audio visualizations")
 #define AUDIO_VISUAL_LONGTEXT N_( \
     "This adds visualization modules (spectrum analyzer, etc.).")
 
@@ -461,7 +333,7 @@ static const char *const ppsz_align_descriptions[] =
                                    "controller after x milliseconds")
 #define MOUSE_HIDE_TIMEOUT_LONGTEXT N_( \
     "Hide mouse cursor and fullscreen controller after " \
-    "n milliseconds, default is 3000 ms (3 sec.)")
+    "n milliseconds.")
 
 #define DEINTERLACE_TEXT N_("Deinterlace")
 #define DEINTERLACE_LONGTEXT N_(\
@@ -626,6 +498,22 @@ static const char *const ppsz_pos_descriptions[] =
     "subsystem, such as the DVD or VCD device, the network interface " \
     "settings or the subtitle channel.")
 
+#define CACHING_TEXT N_("File caching (ms)")
+#define CACHING_LONGTEXT N_( \
+    "Caching value for local files, in milliseconds." )
+
+#define CAPTURE_CACHING_TEXT N_("Live capture caching (ms)")
+#define CAPTURE_CACHING_LONGTEXT N_( \
+    "Caching value for cameras and microphones, in milliseconds." )
+
+#define DISC_CACHING_TEXT N_("Disc caching (ms)")
+#define DISC_CACHING_LONGTEXT N_( \
+    "Caching value for optical media, in milliseconds." )
+
+#define NETWORK_CACHING_TEXT N_("Network caching (ms)")
+#define NETWORK_CACHING_LONGTEXT N_( \
+    "Caching value for network resources, in milliseconds." )
+
 #define CR_AVERAGE_TEXT N_("Clock reference average counter")
 #define CR_AVERAGE_LONGTEXT N_( \
     "When using the PVR input (or a very irregular source), you should " \
@@ -668,11 +556,6 @@ static const char *const ppsz_clock_descriptions[] =
 #define MIFACE_LONGTEXT N_( \
     "Default multicast interface. This overrides the routing table.")
 
-#define MIFACE_ADDR_TEXT N_("IPv4 multicast output interface address")
-#define MIFACE_ADDR_LONGTEXT N_( \
-    "IPv4 address for the default multicast interface. This overrides " \
-    "the routing table.")
-
 #define DSCP_TEXT N_("DiffServ Code Point")
 #define DSCP_LONGTEXT N_("Differentiated Services Code Point " \
     "for outgoing UDP streams (or IPv4 Type Of Service, " \
@@ -697,7 +580,7 @@ static const char *const ppsz_clock_descriptions[] =
     "Stream number of the audio track to use " \
     "(from 0 to n).")
 
-#define INPUT_SUBTRACK_TEXT N_("Subtitles track")
+#define INPUT_SUBTRACK_TEXT N_("Subtitle track")
 #define INPUT_SUBTRACK_LONGTEXT N_( \
     "Stream number of the subtitle track to use " \
     "(from 0 to n).")
@@ -717,10 +600,24 @@ static const char *const ppsz_clock_descriptions[] =
 #define INPUT_AUDIOTRACK_ID_LONGTEXT N_( \
     "Stream ID of the audio track to use.")
 
-#define INPUT_SUBTRACK_ID_TEXT N_("Subtitles track ID")
+#define INPUT_SUBTRACK_ID_TEXT N_("Subtitle track ID")
 #define INPUT_SUBTRACK_ID_LONGTEXT N_( \
     "Stream ID of the subtitle track to use.")
 
+#define INPUT_PREFERREDRESOLUTION_TEXT N_("Preferred video resolution")
+#define INPUT_PREFERREDRESOLUTION_LONGTEXT N_( \
+    "When several video formats are available, select one whose " \
+    "resolution is closest to (but not higher than) this setting, " \
+    "in number of lines. Use this option if you don't have enough CPU " \
+    "power or network bandwidth to play higher resolutions.")
+static const int pi_prefres[] = { -1, 1080, 720, 576, 360, 240 };
+static const char *const ppsz_prefres[] = {
+    N_("Best available"), N_("Full HD (1080p)"), N_("HD (720p)"),
+    N_("Standard Definition (576 or 480 lines)"),
+    N_("Low Definition (360 lines)"),
+    N_("Very Low Definition (240 lines)"),
+};
+
 #define INPUT_REPEAT_TEXT N_("Input repetitions")
 #define INPUT_REPEAT_LONGTEXT N_( \
     "Number of time the same input will be repeated")
@@ -820,7 +717,7 @@ static const char *const ppsz_clock_descriptions[] =
 #define SUB_FILTER_TEXT N_("Subpictures filter module")
 #define SUB_FILTER_LONGTEXT N_( \
     "This adds so-called \"subpicture filters\". These filter subpictures " \
-    "created by subtitles decoders or other subpictures sources." )
+    "created by subtitle decoders or other subpictures sources." )
 
 #define SUB_AUTO_TEXT N_("Autodetect subtitle files")
 #define SUB_AUTO_LONGTEXT N_( \
@@ -852,7 +749,7 @@ static const char *const ppsz_clock_descriptions[] =
 #define VCD_DEV_TEXT N_("VCD device")
 #define CDAUDIO_DEV_TEXT N_("Audio CD device")
 
-#if defined( WIN32 ) || defined( __OS2__ )
+#if defined( _WIN32 ) || defined( __OS2__ )
 # define DVD_DEV_LONGTEXT N_( \
     "This is the default DVD drive (or file) to use. Don't forget the colon " \
     "after the drive letter (e.g. D:)")
@@ -876,6 +773,9 @@ static const char *const ppsz_clock_descriptions[] =
 # if defined(__OpenBSD__)
 #  define DVD_DEVICE     "/dev/cd0c"
 #  define CD_DEVICE      "/dev/cd0c"
+# elif defined(__linux__)
+#  define DVD_DEVICE     "/dev/dvd1"
+#  define CD_DEVICE      "/dev/cdrom1"
 # else
 #  define DVD_DEVICE     "/dev/dvd"
 #  define CD_DEVICE      "/dev/cdrom"
@@ -890,12 +790,19 @@ static const char *const ppsz_clock_descriptions[] =
     "Default TCP connection timeout (in milliseconds). " )
 
 #define HTTP_HOST_TEXT N_( "HTTP server address" )
-#define RTSP_HOST_TEXT N_( "RTSP server address" )
 #define HOST_LONGTEXT N_( \
     "By default, the server will listen on any local IP address. " \
     "Specify an IP address (e.g. ::1 or 127.0.0.1) or a host name " \
     "(e.g. localhost) to restrict them to a specific network interface." )
 
+#define RTSP_HOST_TEXT N_( "RTSP server address" )
+#define RTSP_HOST_LONGTEXT N_( \
+    "This defines the address the RTSP server will listen on, along " \
+    "with the base path of the RTSP VOD media. Syntax is address/path. " \
+    "By default, the server will listen on any local IP address. " \
+    "Specify an IP address (e.g. ::1 or 127.0.0.1) or a host name " \
+    "(e.g. localhost) to restrict them to a specific network interface." )
+
 #define HTTP_PORT_TEXT N_( "HTTP server port" )
 #define HTTP_PORT_LONGTEXT N_( \
     "The HTTP server will listen on this TCP port. " \
@@ -912,7 +819,7 @@ static const char *const ppsz_clock_descriptions[] =
 
 #define RTSP_PORT_TEXT N_( "RTSP server port" )
 #define RTSP_PORT_LONGTEXT N_( \
-    "The HTTPS server will listen on this TCP port. " \
+    "The RTSP server will listen on this TCP port. " \
     "The standard RTSP port number is 554. " \
     "However allocation of port numbers below 1025 is usually restricted " \
     "by the operating system." )
@@ -932,7 +839,7 @@ static const char *const ppsz_clock_descriptions[] =
 
 #define HTTP_CRL_TEXT N_("HTTP/TLS Certificate Revocation List")
 #define CRL_LONGTEXT N_( \
-   "This file countains an optional CRL to prevent remove clients " \
+   "This file contains an optional CRL to prevent remove clients " \
    "from using revoked certificates in TLS sessions.")
 
 #define SOCKS_SERVER_TEXT N_("SOCKS server")
@@ -1045,7 +952,7 @@ static const char *const ppsz_clock_descriptions[] =
 #define SOUT_MUX_CACHING_TEXT N_("Stream output muxer caching (ms)")
 #define SOUT_MUX_CACHING_LONGTEXT N_( \
     "This allow you to configure the initial caching amount for stream output " \
-    " muxer. This value should be set in milliseconds." )
+    "muxer. This value should be set in milliseconds." )
 
 #define PACKETIZER_TEXT N_("Preferred packetizer list")
 #define PACKETIZER_LONGTEXT N_( \
@@ -1060,7 +967,6 @@ static const char *const ppsz_clock_descriptions[] =
 #define ACCESS_OUTPUT_LONGTEXT N_( \
     "This is a legacy entry to let you configure access output modules")
 
-#define ANN_SAPCTRL_TEXT N_("Control SAP flow")
 #define ANN_SAPCTRL_LONGTEXT N_( \
     "If this option is enabled, the flow on " \
     "the SAP multicast address will be controlled. This is needed if you " \
@@ -1075,71 +981,11 @@ static const char *const ppsz_clock_descriptions[] =
  * Advanced
  ****************************************************************************/
 
-// DEPRECATED
-#define CPU_CAT_LONGTEXT N_( \
-    "These options allow you to enable special CPU optimizations. " \
-    "You should always leave all these enabled." )
-
-#define MMX_TEXT N_("Enable CPU MMX support")
-#define MMX_LONGTEXT N_( \
-    "If your processor supports the MMX instructions set, VLC can take " \
-    "advantage of them.")
-
-#define THREE_DN_TEXT N_("Enable CPU 3D Now! support")
-#define THREE_DN_LONGTEXT N_( \
-    "If your processor supports the 3D Now! instructions set, VLC can take " \
-    "advantage of them.")
-
-#define MMXEXT_TEXT N_("Enable CPU MMX EXT support")
-#define MMXEXT_LONGTEXT N_( \
-    "If your processor supports the MMX EXT instructions set, VLC can take " \
-    "advantage of them.")
-
-#define SSE_TEXT N_("Enable CPU SSE support")
-#define SSE_LONGTEXT N_( \
-    "If your processor supports the SSE instructions set, VLC can take " \
-    "advantage of them.")
-
-#define SSE2_TEXT N_("Enable CPU SSE2 support")
-#define SSE2_LONGTEXT N_( \
-    "If your processor supports the SSE2 instructions set, VLC can take " \
-    "advantage of them.")
-
-#define SSE3_TEXT N_("Enable CPU SSE3 support")
-#define SSE3_LONGTEXT N_( \
-    "If your processor supports the SSE3 instructions set, VLC can take " \
-    "advantage of them.")
-
-#define SSSE3_TEXT N_("Enable CPU SSSE3 support")
-#define SSSE3_LONGTEXT N_( \
-    "If your processor supports the SSSE3 instructions set, VLC can take " \
-    "advantage of them.")
-
-#define SSE4_1_TEXT N_("Enable CPU SSE4.1 support")
-#define SSE4_1_LONGTEXT N_( \
-    "If your processor supports the SSE4.1 instructions set, VLC can take " \
-    "advantage of them.")
-
-#define SSE4_2_TEXT N_("Enable CPU SSE4.2 support")
-#define SSE4_2_LONGTEXT N_( \
-    "If your processor supports the SSE4.2 instructions set, VLC can take " \
-    "advantage of them.")
-
-#define ALTIVEC_TEXT N_("Enable CPU AltiVec support")
-#define ALTIVEC_LONGTEXT N_( \
-    "If your processor supports the AltiVec instructions set, VLC can take " \
-    "advantage of them.")
-
 // DEPRECATED
 #define MISC_CAT_LONGTEXT N_( \
     "These options allow you to select default modules. Leave these " \
     "alone unless you really know what you are doing." )
 
-#define MEMCPY_TEXT N_("Memory copy module")
-#define MEMCPY_LONGTEXT N_( \
-    "You can select which memory copy module you want to use. By default " \
-    "VLC will select the fastest one supported by your hardware.")
-
 #define ACCESS_TEXT N_("Access module")
 #define ACCESS_LONGTEXT N_( \
     "This allows you to force an access module. You can use it if " \
@@ -1176,20 +1022,14 @@ static const char *const ppsz_clock_descriptions[] =
     "priorities. You can use it to tune VLC priority against other " \
     "programs, or against other VLC instances.")
 
-#define USE_STREAM_IMMEDIATE N_("(Experimental) Don't do caching at the access level.")
 #define USE_STREAM_IMMEDIATE_LONGTEXT N_( \
      "This option is useful if you want to lower the latency when " \
      "reading a stream")
 
-#define PLUGIN_PATH_TEXT N_("Modules search path")
 #define PLUGIN_PATH_LONGTEXT N_( \
     "Additional path for VLC to look for its modules. You can add " \
     "several paths by concatenating them using \" PATH_SEP \" as separator")
 
-#define DATA_PATH_TEXT N_("Data search path")
-#define DATA_PATH_LONGTEXT N_( \
-    "Override the default data/share search path.")
-
 #define VLM_CONF_TEXT N_("VLM configuration file")
 #define VLM_CONF_LONGTEXT N_( \
     "Read a VLM configuration file as soon as VLM is started." )
@@ -1219,12 +1059,12 @@ static const char *const ppsz_clock_descriptions[] =
     "Log all VLC messages to syslog (UNIX systems)." )
 
 #define ONEINSTANCE_TEXT N_("Allow only one running instance")
-#if defined( WIN32 )
+#if defined( _WIN32 ) || defined( __OS2__ )
 #define ONEINSTANCE_LONGTEXT N_( \
     "Allowing only one running instance of VLC can sometimes be useful, " \
     "for example if you associated VLC with some media types and you " \
     "don't want a new instance of VLC to be opened each time you " \
-    "double-click on a file in the explorer. This option will allow you " \
+    "open a file in your file manager. This option will allow you " \
     "to play the file with the already running instance or enqueue it.")
 #elif defined( HAVE_DBUS )
 #define ONEINSTANCE_LONGTEXT N_( \
@@ -1242,9 +1082,7 @@ static const char *const ppsz_clock_descriptions[] =
     "Tell VLC that it is being launched due to a file association in the OS" )
 
 #define ONEINSTANCEWHENSTARTEDFROMFILE_TEXT N_( \
-    "One instance when started from file")
-#define ONEINSTANCEWHENSTARTEDFROMFILE_LONGTEXT N_( \
-    "Allow only one running instance when started from file.")
+    "Use only one instance when started from file manager")
 
 #define HPRIORITY_TEXT N_("Increase the priority of the process")
 #define HPRIORITY_LONGTEXT N_( \
@@ -1256,7 +1094,7 @@ static const char *const ppsz_clock_descriptions[] =
     "might require a reboot of your machine.")
 
 #define PLAYLISTENQUEUE_TEXT N_( \
-    "Enqueue items to playlist when in one instance mode")
+    "Enqueue items into playlist in one instance mode")
 #define PLAYLISTENQUEUE_LONGTEXT N_( \
     "When using the one instance only option, enqueue items to playlist " \
     "and keep playing current item.")
@@ -1320,6 +1158,11 @@ static const char *const ppsz_albumart_descriptions[] =
 #define AUTOSTART_LONGTEXT N_( "Automatically start playing the playlist " \
                 "content once it's loaded." )
 
+#define CORK_TEXT N_("Pause on audio communication")
+#define CORK_LONGTEXT N_( \
+    "If pending audio communication is detected, playback will be paused " \
+    "automatically." )
+
 #define ML_TEXT N_("Use media library")
 #define ML_LONGTEXT N_( \
     "The media library is automatically saved and reloaded each time you " \
@@ -1343,10 +1186,24 @@ static const char *const ppsz_albumart_descriptions[] =
 #define HOTKEY_CAT_LONGTEXT N_( "These settings are the global VLC key " \
     "bindings, known as \"hotkeys\"." )
 
+enum{
+    MOUSEWHEEL_VOLUME,
+    MOUSEWHEEL_POSITION,
+    NO_MOUSEWHEEL,
+};
+
+static const int mouse_wheel_values[] = { 2, 0, 1 };
+static const char *const mouse_wheel_texts[] =
+    { N_("Ignore"), N_("Volume Control"), N_("Position Control") };
+
+#define MOUSE_WHEEL_MODE_TEXT N_("MouseWheel up-down axis Control")
+#define MOUSE_WHEEL_MODE_LONGTEXT N_( \
+   "The MouseWheel up-down (vertical) axis can control volume, position or " \
+   "mousewheel event can be ignored")
 #define TOGGLE_FULLSCREEN_KEY_TEXT N_("Fullscreen")
 #define TOGGLE_FULLSCREEN_KEY_LONGTEXT N_("Select the hotkey to use to swap fullscreen state.")
-#define LEAVE_FULLSCREEN_KEY_TEXT N_("Leave fullscreen")
-#define LEAVE_FULLSCREEN_KEY_LONGTEXT N_("Select the hotkey to use to leave fullscreen state.")
+#define LEAVE_FULLSCREEN_KEY_TEXT N_("Exit fullscreen")
+#define LEAVE_FULLSCREEN_KEY_LONGTEXT N_("Select the hotkey to use to exit fullscreen state.")
 #define PLAY_PAUSE_KEY_TEXT N_("Play/Pause")
 #define PLAY_PAUSE_KEY_LONGTEXT N_("Select the hotkey to use to swap paused state.")
 #define PAUSE_KEY_TEXT N_("Pause only")
@@ -1442,6 +1299,14 @@ static const char *const ppsz_albumart_descriptions[] =
 #define SUBDELAY_UP_KEY_LONGTEXT N_("Select the key to increase the subtitle delay.")
 #define SUBDELAY_DOWN_KEY_TEXT N_("Subtitle delay down")
 #define SUBDELAY_DOWN_KEY_LONGTEXT N_("Select the key to decrease the subtitle delay.")
+#define SUBSYNC_MARKAUDIO_KEY_TEXT N_("Subtitle sync / bookmark audio timestamp")
+#define SUBSYNC_MARKAUDIO_KEY_LONGTEXT N_("Select the key to bookmark audio timestamp when syncing subtitles.")
+#define SUBSYNC_MARKSUB_KEY_TEXT N_("Subtitle sync / bookmark subtitle timestamp")
+#define SUBSYNC_MARKSUB_KEY_LONGTEXT N_("Select the key to bookmark subtitle timestamp when syncing subtitles.")
+#define SUBSYNC_APPLY_KEY_TEXT N_("Subtitle sync / synchronize audio & subtitle timestamps")
+#define SUBSYNC_APPLY_KEY_LONGTEXT N_("Select the key to synchronize bookmarked audio & subtitle timestamps.")
+#define SUBSYNC_RESET_KEY_TEXT N_("Subtitle sync / reset audio & subtitle synchronization")
+#define SUBSYNC_RESET_KEY_LONGTEXT N_("Select the key to reset synchronization of audio & subtitle timestamps.")
 #define SUBPOS_UP_KEY_TEXT N_("Subtitle position up")
 #define SUBPOS_UP_KEY_LONGTEXT N_("Select the key to move subtitles higher.")
 #define SUBPOS_DOWN_KEY_TEXT N_("Subtitle position down")
@@ -1478,6 +1343,8 @@ static const char *const ppsz_albumart_descriptions[] =
 #define SET_BOOKMARK9_KEY_TEXT N_("Set playlist bookmark 9")
 #define SET_BOOKMARK10_KEY_TEXT N_("Set playlist bookmark 10")
 #define SET_BOOKMARK_KEY_LONGTEXT N_("Select the key to set this playlist bookmark.")
+#define PLAY_CLEAR_KEY_TEXT N_("Clear the playlist")
+#define PLAY_CLEAR_KEY_LONGTEXT N_("Select the key to clear the current playlist.")
 
 #define BOOKMARK1_TEXT N_("Playlist bookmark 1")
 #define BOOKMARK2_TEXT N_("Playlist bookmark 2")
@@ -1496,6 +1363,10 @@ static const char *const ppsz_albumart_descriptions[] =
 #define AUDIO_TRACK_KEY_LONGTEXT N_("Cycle through the available audio tracks(languages).")
 #define SUBTITLE_TRACK_KEY_TEXT N_("Cycle subtitle track")
 #define SUBTITLE_TRACK_KEY_LONGTEXT N_("Cycle through the available subtitle tracks.")
+#define PROGRAM_SID_NEXT_KEY_TEXT N_("Cycle next program Service ID")
+#define PROGRAM_SID_NEXT_KEY_LONGTEXT N_("Cycle through the available next program Service IDs (SIDs).")
+#define PROGRAM_SID_PREV_KEY_TEXT N_("Cycle previous program Service ID")
+#define PROGRAM_SID_PREV_KEY_LONGTEXT N_("Cycle through the available previous program Service IDs (SIDs).")
 #define ASPECT_RATIO_KEY_TEXT N_("Cycle source aspect ratio")
 #define ASPECT_RATIO_KEY_LONGTEXT N_("Cycle through a predefined list of source aspect ratios.")
 #define CROP_KEY_TEXT N_("Cycle video crop")
@@ -1503,23 +1374,26 @@ static const char *const ppsz_albumart_descriptions[] =
 #define TOGGLE_AUTOSCALE_KEY_TEXT N_("Toggle autoscaling")
 #define TOGGLE_AUTOSCALE_KEY_LONGTEXT N_("Activate or deactivate autoscaling.")
 #define SCALE_UP_KEY_TEXT N_("Increase scale factor")
-#define SCALE_UP_KEY_LONGTEXT N_("Increase scale factor.")
+#define SCALE_UP_KEY_LONGTEXT SCALE_UP_KEY_TEXT
 #define SCALE_DOWN_KEY_TEXT N_("Decrease scale factor")
-#define SCALE_DOWN_KEY_LONGTEXT N_("Decrease scale factor.")
-#define DEINTERLACE_KEY_TEXT N_("Cycle deinterlace modes")
-#define DEINTERLACE_KEY_LONGTEXT N_("Cycle through deinterlace modes.")
-#define INTF_SHOW_KEY_TEXT N_("Show interface")
-#define INTF_SHOW_KEY_LONGTEXT N_("Raise the interface above all other windows.")
-#define INTF_HIDE_KEY_TEXT N_("Hide interface")
-#define INTF_HIDE_KEY_LONGTEXT N_("Lower the interface below all other windows.")
+#define SCALE_DOWN_KEY_LONGTEXT SCALE_DOWN_KEY_TEXT
+#define DEINTERLACE_KEY_TEXT N_("Toggle deinterlacing")
+#define DEINTERLACE_KEY_LONGTEXT N_("Activate or deactivate deinterlacing.")
+#define DEINTERLACE_MODE_KEY_TEXT N_("Cycle deinterlace modes")
+#define DEINTERLACE_MODE_KEY_LONGTEXT N_("Cycle through available deinterlace modes.")
+#define INTF_TOGGLE_FSC_KEY_TEXT N_("Show controller in fullscreen")
+#define INTF_BOSS_KEY_TEXT N_("Boss key")
+#define INTF_BOSS_KEY_LONGTEXT N_("Hide the interface and pause playback.")
+#define INTF_POPUP_MENU_KEY_TEXT N_("Context menu")
+#define INTF_POPUP_MENU_KEY_LONGTEXT N_("Show the contextual popup menu.")
 #define SNAP_KEY_TEXT N_("Take video snapshot")
 #define SNAP_KEY_LONGTEXT N_("Takes a video snapshot and writes it to disk.")
 
 #define RECORD_KEY_TEXT N_("Record")
 #define RECORD_KEY_LONGTEXT N_("Record access filter start/stop.")
 
-#define LOOP_KEY_TEXT N_("Normal/Repeat/Loop")
-#define LOOP_KEY_LONGTEXT N_("Toggle Normal/Repeat/Loop playlist modes")
+#define LOOP_KEY_TEXT N_("Normal/Loop/Repeat")
+#define LOOP_KEY_LONGTEXT N_("Toggle Normal/Loop/Repeat playlist modes")
 
 #define RANDOM_KEY_TEXT N_("Random")
 #define RANDOM_KEY_LONGTEXT N_("Toggle random playlist playback")
@@ -1554,59 +1428,8 @@ static const char *const ppsz_albumart_descriptions[] =
 #define WALLPAPER_KEY_LONGTEXT N_( \
     "Toggle wallpaper mode in video output." )
 
-#define MENU_ON_KEY_TEXT N_("Display OSD menu on top of video output")
-#define MENU_ON_KEY_LONGTEXT N_("Display OSD menu on top of video output")
-#define MENU_OFF_KEY_TEXT N_("Do not display OSD menu on video output")
-#define MENU_OFF_KEY_LONGTEXT N_("Do not display OSD menu on top of video output")
-#define MENU_RIGHT_KEY_TEXT N_("Highlight widget on the right")
-#define MENU_RIGHT_KEY_LONGTEXT N_( \
-        "Move OSD menu highlight to the widget on the right")
-#define MENU_LEFT_KEY_TEXT N_("Highlight widget on the left")
-#define MENU_LEFT_KEY_LONGTEXT N_( \
-        "Move OSD menu highlight to the widget on the left")
-#define MENU_UP_KEY_TEXT N_("Highlight widget on top")
-#define MENU_UP_KEY_LONGTEXT N_( \
-        "Move OSD menu highlight to the widget on top")
-#define MENU_DOWN_KEY_TEXT N_("Highlight widget below")
-#define MENU_DOWN_KEY_LONGTEXT N_( \
-        "Move OSD menu highlight to the widget below")
-#define MENU_SELECT_KEY_TEXT N_("Select current widget")
-#define MENU_SELECT_KEY_LONGTEXT N_( \
-        "Selecting current widget performs the associated action.")
-
 #define AUDI_DEVICE_CYCLE_KEY_TEXT N_("Cycle through audio devices")
 #define AUDI_DEVICE_CYCLE_KEY_LONGTEXT N_("Cycle through available audio devices")
-const char vlc_usage[] = N_(
-    "Usage: %s [options] [stream] ..."
-    "\nYou can specify multiple streams on the commandline. They will be enqueued in the playlist."
-    "\nThe first item specified will be played first."
-    "\n"
-    "\nOptions-styles:"
-    "\n  --option  A global option that is set for the duration of the program."
-    "\n   -option  A single letter version of a global --option."
-    "\n   :option  An option that only applies to the stream directly before it"
-    "\n            and that overrides previous settings."
-    "\n"
-    "\nStream MRL syntax:"
-    "\n  [[access][/demux]://]URL[@[title][:chapter][-[title][:chapter]]] [:option=value ...]"
-    "\n"
-    "\n  Many of the global --options can also be used as MRL specific :options."
-    "\n  Multiple :option=value pairs can be specified."
-    "\n"
-    "\nURL syntax:"
-    "\n  [file://]filename              Plain media file"
-    "\n  http://ip:port/file            HTTP URL"
-    "\n  ftp://ip:port/file             FTP URL"
-    "\n  mms://ip:port/file             MMS URL"
-    "\n  screen://                      Screen capture"
-    "\n  [dvd://][device][@raw_device]  DVD device"
-    "\n  [vcd://][device]               VCD device"
-    "\n  [cdda://][device]              Audio CD device"
-    "\n  udp://[[<source address>]@[<bind address>][:<bind port>]]"
-    "\n                                 UDP stream sent by a streaming server"
-    "\n  vlc://pause:<seconds>          Special item to pause the playlist for a certain time"
-    "\n  vlc://quit                     Special item to quit VLC"
-    "\n");
 
 /*
  * Quick usage guide for the configuration options:
@@ -1634,29 +1457,32 @@ vlc_module_begin ()
 
     add_bool( "audio", 1, AUDIO_TEXT, AUDIO_LONGTEXT, false )
         change_safe ()
-    add_integer_with_range( "volume", AOUT_VOLUME_DEFAULT, 0,
-                            AOUT_VOLUME_MAX, VOLUME_TEXT,
-                            VOLUME_LONGTEXT, false )
-    add_integer_with_range( "volume-step", AOUT_VOLUME_STEP, 0,
-                            AOUT_VOLUME_MAX, VOLUME_STEP_TEXT,
-                            VOLUME_STEP_LONGTEXT, true )
-    add_obsolete_integer( "aout-rate" ) /* since 1.2.0 */
-#if HAVE_FPU && !defined( __APPLE__ )
-    add_bool( "hq-resampling", 1, AOUT_RESAMP_TEXT,
-              AOUT_RESAMP_LONGTEXT, true )
-#endif
+    add_float( "gain", 1., GAIN_TEXT, GAIN_LONGTEXT, true )
+        change_float_range( 0., 8. )
+    add_obsolete_integer( "volume" ) /* since 2.1.0 */
+    add_float( "volume-step", AOUT_VOLUME_STEP, VOLUME_STEP_TEXT,
+                 VOLUME_STEP_LONGTEXT, true )
+        change_float_range( 1., AOUT_VOLUME_DEFAULT )
+    add_bool( "volume-save", true, VOLUME_SAVE_TEXT, VOLUME_SAVE_TEXT, true )
+    add_obsolete_integer( "aout-rate" ) /* since 2.0.0 */
+    add_obsolete_bool( "hq-resampling" ) /* since 1.1.8 */
     add_bool( "spdif", 0, SPDIF_TEXT, SPDIF_LONGTEXT, false )
     add_integer( "force-dolby-surround", 0, FORCE_DOLBY_TEXT,
                  FORCE_DOLBY_LONGTEXT, false )
         change_integer_list( pi_force_dolby_values, ppsz_force_dolby_descriptions )
+    add_integer( "stereo-mode", 0, STEREO_MODE_TEXT, STEREO_MODE_TEXT, true )
+        change_integer_list( pi_stereo_mode_values, ppsz_stereo_mode_texts )
     add_integer( "audio-desync", 0, DESYNC_TEXT,
                  DESYNC_LONGTEXT, true )
         change_safe ()
 
+    add_module( "audio-resampler", "audio resampler", NULL,
+                AUDIO_RESAMPLER_TEXT, AUDIO_RESAMPLER_LONGTEXT, true )
+
     /* FIXME TODO create a subcat replay gain ? */
     add_string( "audio-replay-gain-mode", ppsz_replay_gain_mode[0], AUDIO_REPLAY_GAIN_MODE_TEXT,
                 AUDIO_REPLAY_GAIN_MODE_LONGTEXT, false )
-        change_string_list( ppsz_replay_gain_mode, ppsz_replay_gain_mode_text, 0 )
+        change_string_list( ppsz_replay_gain_mode, ppsz_replay_gain_mode_text )
     add_float( "audio-replay-gain-preamp", 0.0,
                AUDIO_REPLAY_GAIN_PREAMP_TEXT, AUDIO_REPLAY_GAIN_PREAMP_LONGTEXT, false )
     add_float( "audio-replay-gain-default", -7.0,
@@ -1664,7 +1490,7 @@ vlc_module_begin ()
     add_bool( "audio-replay-gain-peak-protection", true,
               AUDIO_REPLAY_GAIN_PEAK_PROTECTION_TEXT, AUDIO_REPLAY_GAIN_PEAK_PROTECTION_LONGTEXT, true )
 
-    add_bool( "audio-time-stretch", HAVE_FPU,
+    add_bool( "audio-time-stretch", true,
               AUDIO_TIME_STRETCH_TEXT, AUDIO_TIME_STRETCH_LONGTEXT, false )
 
     set_subcategory( SUBCAT_AUDIO_AOUT )
@@ -1672,10 +1498,10 @@ vlc_module_begin ()
                 true )
         change_short('A')
     set_subcategory( SUBCAT_AUDIO_AFILTER )
-    add_module_list_cat( "audio-filter", SUBCAT_AUDIO_AFILTER, NULL,
-                         AUDIO_FILTER_TEXT, AUDIO_FILTER_LONGTEXT, false )
+    add_module_list( "audio-filter", "audio filter", NULL,
+                     AUDIO_FILTER_TEXT, AUDIO_FILTER_LONGTEXT, false )
     set_subcategory( SUBCAT_AUDIO_VISUAL )
-    add_module( "audio-visual", "visualization2", NULL,AUDIO_VISUAL_TEXT,
+    add_module( "audio-visual", "visualization", "none", AUDIO_VISUAL_TEXT,
                 AUDIO_VISUAL_LONGTEXT, false )
 
 /* Video options */
@@ -1687,20 +1513,11 @@ vlc_module_begin ()
         change_safe ()
     add_bool( "grayscale", 0, GRAYSCALE_TEXT,
               GRAYSCALE_LONGTEXT, true )
-#if defined (HAVE_MAEMO)
-# define FULLSCREEN_DEFAULT true
-#else
-# define FULLSCREEN_DEFAULT false
-#endif
-    add_bool( "fullscreen", FULLSCREEN_DEFAULT, FULLSCREEN_TEXT,
-              FULLSCREEN_LONGTEXT, false )
+    add_bool( "fullscreen", false, FULLSCREEN_TEXT, FULLSCREEN_LONGTEXT, false )
         change_short('f')
         change_safe ()
     add_bool( "embedded-video", 1, EMBEDDED_TEXT, EMBEDDED_LONGTEXT,
               true )
-#ifdef __APPLE__
-       add_deprecated_alias( "macosx-embedded" ) /*deprecated since 0.9.0 */
-#endif
     add_bool( "xlib", true, "", "", true )
         change_private ()
     add_bool( "drop-late-frames", 1, DROP_LATE_FRAMES_TEXT,
@@ -1724,9 +1541,6 @@ vlc_module_begin ()
               VIDEO_ON_TOP_LONGTEXT, false )
     add_bool( "video-wallpaper", false, WALLPAPER_TEXT,
               WALLPAPER_LONGTEXT, false )
-#ifdef WIN32
-        add_deprecated_alias( "directx-wallpaper" )
-#endif
     add_bool( "disable-screensaver", true, SS_TEXT, SS_LONGTEXT,
               true )
 
@@ -1740,8 +1554,8 @@ vlc_module_begin ()
                  VIDEO_TITLE_POSITION_LONGTEXT, false )
         change_safe()
         change_integer_list( pi_pos_values, ppsz_pos_descriptions )
-    // autohide after 1.5s
-    add_integer( "mouse-hide-timeout", 1500, MOUSE_HIDE_TIMEOUT_TEXT,
+    // autohide after 1 second
+    add_integer( "mouse-hide-timeout", 1000, MOUSE_HIDE_TIMEOUT_TEXT,
                  MOUSE_HIDE_TIMEOUT_LONGTEXT, false )
     set_section( N_("Snapshot") , NULL )
     add_directory( "snapshot-path", NULL, SNAP_PATH_TEXT,
@@ -1750,7 +1564,7 @@ vlc_module_begin ()
                    SNAP_PREFIX_LONGTEXT, false )
     add_string( "snapshot-format", "png", SNAP_FORMAT_TEXT,
                    SNAP_FORMAT_LONGTEXT, false )
-        change_string_list( ppsz_snap_formats, NULL, 0 )
+        change_string_list( ppsz_snap_formats, ppsz_snap_formats )
     add_bool( "snapshot-preview", true, SNAP_PREVIEW_TEXT,
               SNAP_PREVIEW_LONGTEXT, false )
     add_bool( "snapshot-sequential", false, SNAP_SEQUENTIAL_TEXT,
@@ -1791,14 +1605,14 @@ vlc_module_begin ()
                  VIDEO_TITLE_LONGTEXT, true )
     add_integer( "align", 0, ALIGN_TEXT, ALIGN_LONGTEXT, true )
         change_integer_list( pi_align_values, ppsz_align_descriptions )
-    add_float( "zoom", 1, ZOOM_TEXT, ZOOM_LONGTEXT, true )
+    add_float( "zoom", 1., ZOOM_TEXT, ZOOM_LONGTEXT, true )
     add_integer( "deinterlace", 0,
                  DEINTERLACE_TEXT, DEINTERLACE_LONGTEXT, false )
         change_integer_list( pi_deinterlace, ppsz_deinterlace_text )
         change_safe()
     add_string( "deinterlace-mode", "blend",
                 DEINTERLACE_MODE_TEXT, DEINTERLACE_MODE_LONGTEXT, false )
-        change_string_list( ppsz_deinterlace_mode, ppsz_deinterlace_mode_text, 0 )
+        change_string_list( ppsz_deinterlace_mode, ppsz_deinterlace_mode_text )
         change_safe()
 
     set_subcategory( SUBCAT_VIDEO_VOUT )
@@ -1808,9 +1622,9 @@ vlc_module_begin ()
     set_subcategory( SUBCAT_VIDEO_VFILTER )
     add_module_list_cat( "video-filter", SUBCAT_VIDEO_VFILTER, NULL,
                 VIDEO_FILTER_TEXT, VIDEO_FILTER_LONGTEXT, false )
-    add_module_list_cat( "video-splitter", SUBCAT_VIDEO_VFILTER, NULL,
-                        VIDEO_SPLITTER_TEXT, VIDEO_SPLITTER_LONGTEXT, false )
-    add_deprecated_alias( "vout-filter" )
+    add_module_list( "video-splitter", "video splitter", NULL,
+                     VIDEO_SPLITTER_TEXT, VIDEO_SPLITTER_LONGTEXT, false )
+    add_obsolete_string( "vout-filter" ) /* since 2.0.0 */
 #if 0
     add_string( "pixel-ratio", "1", PIXEL_RATIO_TEXT, PIXEL_RATIO_TEXT )
 #endif
@@ -1834,20 +1648,20 @@ vlc_module_begin ()
                  SUB_AUTO_TEXT, SUB_AUTO_LONGTEXT, false )
     add_integer( "sub-autodetect-fuzzy", 3,
                  SUB_FUZZY_TEXT, SUB_FUZZY_LONGTEXT, true )
-#if defined( WIN32 ) || defined( __OS2__ )
-#   define SUB_PATH ".\\subtitles"
+#if defined( _WIN32 ) || defined( __OS2__ )
+#   define SUB_PATH ".\\subtitles, .\\subs"
 #else
-#   define SUB_PATH "./Subtitles, ./subtitles"
+#   define SUB_PATH "./Subtitles, ./subtitles, ./Subs, ./subs"
 #endif
     add_string( "sub-autodetect-path", SUB_PATH,
                  SUB_PATH_TEXT, SUB_PATH_LONGTEXT, true )
     add_integer( "sub-margin", 0, SUB_MARGIN_TEXT,
                  SUB_MARGIN_LONGTEXT, true )
     set_section( N_( "Overlays" ) , NULL )
-    add_module_list_cat( "sub-source", SUBCAT_VIDEO_SUBPIC, NULL,
-                SUB_SOURCE_TEXT, SUB_SOURCE_LONGTEXT, false )
-    add_module_list_cat( "sub-filter", SUBCAT_VIDEO_SUBPIC, NULL,
-                SUB_FILTER_TEXT, SUB_FILTER_LONGTEXT, false )
+    add_module_list( "sub-source", "sub source", NULL,
+                     SUB_SOURCE_TEXT, SUB_SOURCE_LONGTEXT, false )
+    add_module_list( "sub-filter", "sub filter", NULL,
+                     SUB_FILTER_TEXT, SUB_FILTER_LONGTEXT, false )
 
 /* Input options */
     set_category( CAT_INPUT )
@@ -1880,6 +1694,10 @@ vlc_module_begin ()
     add_integer( "sub-track-id", -1,
                  INPUT_SUBTRACK_ID_TEXT, INPUT_SUBTRACK_ID_LONGTEXT, true )
         change_safe ()
+    add_integer( "preferred-resolution", -1, INPUT_PREFERREDRESOLUTION_TEXT,
+                 INPUT_PREFERREDRESOLUTION_LONGTEXT, false )
+        change_safe ()
+        change_integer_list( pi_prefres, ppsz_prefres )
 
     set_section( N_( "Playback control" ) , NULL)
     add_integer( "input-repeat", 0,
@@ -1921,8 +1739,8 @@ vlc_module_begin ()
     set_section( N_( "Network settings" ), NULL )
 
     add_integer( "mtu", MTU_DEFAULT, MTU_TEXT, MTU_LONGTEXT, true )
-    add_obsolete_bool( "ipv6" ) /* since 1.2.0 */
-    add_obsolete_bool( "ipv4" ) /* since 1.2.0 */
+    add_obsolete_bool( "ipv6" ) /* since 2.0.0 */
+    add_obsolete_bool( "ipv4" ) /* since 2.0.0 */
     add_integer( "ipv4-timeout", 5 * 1000, TIMEOUT_TEXT,
                  TIMEOUT_LONGTEXT, true )
 
@@ -1931,17 +1749,17 @@ vlc_module_begin ()
         change_integer_range( 1, 65535 )
     add_integer( "https-port", 8443, HTTPS_PORT_TEXT, HTTPS_PORT_LONGTEXT, true )
         change_integer_range( 1, 65535 )
-    add_string( "rtsp-host", NULL, RTSP_HOST_TEXT, HOST_LONGTEXT, true )
-    add_integer( "rtsp-port", 5554, RTSP_PORT_TEXT, RTSP_PORT_LONGTEXT, true )
+    add_string( "rtsp-host", NULL, RTSP_HOST_TEXT, RTSP_HOST_LONGTEXT, true )
+    add_integer( "rtsp-port", 554, RTSP_PORT_TEXT, RTSP_PORT_LONGTEXT, true )
         change_integer_range( 1, 65535 )
     add_loadfile( "http-cert", NULL, HTTP_CERT_TEXT, CERT_LONGTEXT, true )
-        add_deprecated_alias( "sout-http-cert" ) /* since 1.2.0 */
+    add_obsolete_string( "sout-http-cert" ) /* since 2.0.0 */
     add_loadfile( "http-key", NULL, HTTP_KEY_TEXT, KEY_LONGTEXT, true )
-        add_deprecated_alias( "sout-http-key" ) /* since 1.2.0 */
+    add_obsolete_string( "sout-http-key" ) /* since 2.0.0 */
     add_loadfile( "http-ca", NULL, HTTP_CA_TEXT, CA_LONGTEXT, true )
-        add_deprecated_alias( "sout-http-ca" ) /* since 1.2.0 */
+    add_obsolete_string( "sout-http-ca" ) /* since 2.0.0 */
     add_loadfile( "http-crl", NULL, HTTP_CRL_TEXT, CRL_LONGTEXT, true )
-        add_deprecated_alias( "sout-http-crl" ) /* since 1.2.0 */
+    add_obsolete_string( "sout-http-crl" ) /* since 2.0.0 */
 
     set_section( N_( "Socks proxy") , NULL )
     add_string( "socks", NULL,
@@ -1980,6 +1798,52 @@ vlc_module_begin ()
 
     set_section( N_( "Advanced" ), NULL )
 
+    add_integer( "file-caching", DEFAULT_PTS_DELAY / 1000,
+                 CACHING_TEXT, CACHING_LONGTEXT, true )
+        change_integer_range( 0, 60000 )
+        change_safe()
+    add_obsolete_integer( "vdr-caching" ) /* 2.0.0 */
+    add_integer( "live-caching", DEFAULT_PTS_DELAY / 1000,
+                 CAPTURE_CACHING_TEXT, CAPTURE_CACHING_LONGTEXT, true )
+        change_integer_range( 0, 60000 )
+        change_safe()
+    add_obsolete_integer( "alsa-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "dshow-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "dv-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "dvb-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "eyetv-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "gnomevfs-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "jack-input-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "linsys-hdsdi-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "linsys-sdi-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "oss-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "screen-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "v4l2-caching" ) /* 2.0.0 */
+    add_integer( "disc-caching", DEFAULT_PTS_DELAY / 1000,
+                 DISC_CACHING_TEXT, DISC_CACHING_LONGTEXT, true )
+        change_integer_range( 0, 60000 )
+        change_safe()
+    add_obsolete_integer( "bd-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "bluray-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "cdda-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "dvdnav-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "dvdread-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "vcd-caching" ) /* 2.0.0 */
+    add_integer( "network-caching", CLOCK_FREQ / 1000,
+                 NETWORK_CACHING_TEXT, NETWORK_CACHING_LONGTEXT, true )
+        change_integer_range( 0, 60000 )
+        change_safe()
+    add_obsolete_integer( "ftp-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "http-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "mms-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "realrtsp-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "rtp-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "rtsp-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "sftp-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "smb-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "tcp-caching" ) /* 2.0.0 */
+    add_obsolete_integer( "udp-caching" ) /* 2.0.0 */
+
     add_integer( "cr-average", 40, CR_AVERAGE_TEXT,
                  CR_AVERAGE_LONGTEXT, true )
     add_integer( "clock-synchro", -1, CLOCK_SYNCHRO_TEXT,
@@ -2023,8 +1887,8 @@ vlc_module_begin ()
     add_obsolete_bool( "prefer-system-codecs" )
 
     set_subcategory( SUBCAT_INPUT_STREAM_FILTER )
-    add_module_list_cat( "stream-filter", SUBCAT_INPUT_STREAM_FILTER, NULL,
-                STREAM_FILTER_TEXT, STREAM_FILTER_LONGTEXT, false )
+    add_module_list( "stream-filter", "stream_filter", NULL,
+                     STREAM_FILTER_TEXT, STREAM_FILTER_LONGTEXT, false )
 
 
 /* Stream output options */
@@ -2055,6 +1919,9 @@ vlc_module_begin ()
 
 
     set_subcategory( SUBCAT_SOUT_STREAM )
+    add_integer( "sap-interval", 5, ANN_SAPINTV_TEXT,
+                               ANN_SAPINTV_LONGTEXT, true )
+
     set_subcategory( SUBCAT_SOUT_MUX )
     add_module( "mux", "sout mux", NULL, MUX_TEXT, MUX_LONGTEXT, true )
     set_subcategory( SUBCAT_SOUT_ACO )
@@ -2062,53 +1929,45 @@ vlc_module_begin ()
                 ACCESS_OUTPUT_TEXT, ACCESS_OUTPUT_LONGTEXT, true )
     add_integer( "ttl", -1, TTL_TEXT, TTL_LONGTEXT, true )
     add_string( "miface", NULL, MIFACE_TEXT, MIFACE_LONGTEXT, true )
-    add_string( "miface-addr", NULL, MIFACE_ADDR_TEXT, MIFACE_ADDR_LONGTEXT, true )
+    add_obsolete_string( "miface-addr" ) /* since 2.0.0 */
     add_integer( "dscp", 0, DSCP_TEXT, DSCP_LONGTEXT, true )
 
     set_subcategory( SUBCAT_SOUT_PACKETIZER )
     add_module( "packetizer", "packetizer", NULL,
                 PACKETIZER_TEXT, PACKETIZER_LONGTEXT, true )
 
-    set_subcategory( SUBCAT_SOUT_SAP )
-    add_integer( "sap-interval", 5, ANN_SAPINTV_TEXT,
-                               ANN_SAPINTV_LONGTEXT, true )
-
     set_subcategory( SUBCAT_SOUT_VOD )
 
 /* CPU options */
     set_category( CAT_ADVANCED )
-    set_subcategory( SUBCAT_ADVANCED_CPU )
-    add_category_hint( N_("CPU"), CPU_CAT_LONGTEXT, true )
     add_obsolete_bool( "fpu" )
 #if defined( __i386__ ) || defined( __x86_64__ )
-    add_bool( "mmx", 1, MMX_TEXT, MMX_LONGTEXT, true )
-    add_bool( "3dn", 1, THREE_DN_TEXT, THREE_DN_LONGTEXT, true )
-    add_bool( "mmxext", 1, MMXEXT_TEXT, MMXEXT_LONGTEXT, true )
-    add_bool( "sse", 1, SSE_TEXT, SSE_LONGTEXT, true )
-    add_bool( "sse2", 1, SSE2_TEXT, SSE2_LONGTEXT, true )
-    add_bool( "sse3", 1, SSE3_TEXT, SSE3_LONGTEXT, true )
-    add_bool( "ssse3", 1, SSSE3_TEXT, SSSE3_LONGTEXT, true )
-    add_bool( "sse41", 1, SSE4_1_TEXT, SSE4_1_LONGTEXT, true )
-    add_bool( "sse42", 1, SSE4_2_TEXT, SSE4_2_LONGTEXT, true )
+    add_obsolete_bool( "mmx" ) /* since 2.0.0 */
+    add_obsolete_bool( "3dn" ) /* since 2.0.0 */
+    add_obsolete_bool( "mmxext" ) /* since 2.0.0 */
+    add_obsolete_bool( "sse" ) /* since 2.0.0 */
+    add_obsolete_bool( "sse2" ) /* since 2.0.0 */
+    add_obsolete_bool( "sse3" ) /* since 2.0.0 */
+    add_obsolete_bool( "ssse3" ) /* since 2.0.0 */
+    add_obsolete_bool( "sse41" ) /* since 2.0.0 */
+    add_obsolete_bool( "sse42" ) /* since 2.0.0 */
 #endif
 #if defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc64__ )
-    add_bool( "altivec", 1, ALTIVEC_TEXT, ALTIVEC_LONGTEXT, true )
+    add_obsolete_bool( "altivec" ) /* since 2.0.0 */
 #endif
 
 /* Misc options */
     set_subcategory( SUBCAT_ADVANCED_MISC )
     set_section( N_("Special modules"), NULL )
     add_category_hint( N_("Miscellaneous"), MISC_CAT_LONGTEXT, true )
-    add_module( "memcpy", "memcpy", NULL, MEMCPY_TEXT, MEMCPY_LONGTEXT, true )
     add_module( "vod-server", "vod server", NULL, VOD_SERVER_TEXT,
                 VOD_SERVER_LONGTEXT, true )
 
     set_section( N_("Plugins" ), NULL )
     add_bool( "plugins-cache", true, PLUGINS_CACHE_TEXT,
               PLUGINS_CACHE_LONGTEXT, true )
-    add_obsolete_string( "plugin-path" )
-    add_directory( "data-path", NULL, DATA_PATH_TEXT,
-                   DATA_PATH_LONGTEXT, true )
+    add_obsolete_string( "plugin-path" ) /* since 2.0.0 */
+    add_obsolete_string( "data-path" ) /* since 2.1.0 */
 
     set_section( N_("Performance options"), NULL )
 
@@ -2126,24 +1985,17 @@ vlc_module_begin ()
               INHIBIT_LONGTEXT, true )
 #endif
 
-#if defined(WIN32) || defined(HAVE_DBUS)
-    add_bool( "one-instance", 0, ONEINSTANCE_TEXT,
-              ONEINSTANCE_LONGTEXT, true )
-    add_bool( "started-from-file", 0, STARTEDFROMFILE_TEXT,
-              STARTEDFROMFILE_LONGTEXT, true )
-        change_volatile ()
-    add_bool( "one-instance-when-started-from-file", 1,
-              ONEINSTANCEWHENSTARTEDFROMFILE_TEXT,
-              ONEINSTANCEWHENSTARTEDFROMFILE_LONGTEXT, true )
-    add_bool( "playlist-enqueue", 0, PLAYLISTENQUEUE_TEXT,
-              PLAYLISTENQUEUE_LONGTEXT, true )
-#endif
-
-#if defined(WIN32)
+#if defined(_WIN32) || defined(__OS2__)
     add_bool( "high-priority", 0, HPRIORITY_TEXT,
               HPRIORITY_LONGTEXT, false )
 #endif
 
+#define CLOCK_SOURCE_TEXT N_("Clock source")
+#ifdef _WIN32
+    add_string( "clock-source", NULL, CLOCK_SOURCE_TEXT, CLOCK_SOURCE_TEXT, true )
+        change_string_cb( EnumClockSource )
+#endif
+
 /* Playlist options */
     set_category( CAT_PLAYLIST )
     set_subcategory( SUBCAT_PLAYLIST_GENERAL )
@@ -2164,11 +2016,20 @@ vlc_module_begin ()
         change_safe()
     add_bool( "playlist-autostart", true,
               AUTOSTART_TEXT, AUTOSTART_LONGTEXT, false )
-    add_bool( "media-library", 0, ML_TEXT, ML_LONGTEXT, false )
-#if defined( MEDIA_LIBRARY )
-    add_bool( "load-media-library-on-startup", 1, LOAD_ML_TEXT,
-            LOAD_ML_LONGTEXT, false )
+    add_bool( "playlist-cork", true, CORK_TEXT, CORK_LONGTEXT, false )
+#if defined(_WIN32) || defined(HAVE_DBUS) || defined(__OS2__)
+    add_bool( "one-instance", 0, ONEINSTANCE_TEXT,
+              ONEINSTANCE_LONGTEXT, true )
+    add_bool( "started-from-file", 0, STARTEDFROMFILE_TEXT,
+              STARTEDFROMFILE_LONGTEXT, true )
+        change_volatile ()
+    add_bool( "one-instance-when-started-from-file", 1,
+              ONEINSTANCEWHENSTARTEDFROMFILE_TEXT,
+              ONEINSTANCEWHENSTARTEDFROMFILE_TEXT, true )
+    add_bool( "playlist-enqueue", 0, PLAYLISTENQUEUE_TEXT,
+              PLAYLISTENQUEUE_LONGTEXT, true )
 #endif
+    add_bool( "media-library", 0, ML_TEXT, ML_LONGTEXT, false )
     add_bool( "playlist-tree", 0, PLTREE_TEXT, PLTREE_LONGTEXT, false )
 
     add_string( "open", "", OPEN_TEXT, OPEN_LONGTEXT, false )
@@ -2191,12 +2052,13 @@ vlc_module_begin ()
     add_integer( "verbose", 0, VERBOSE_TEXT, VERBOSE_LONGTEXT,
                  false )
         change_short('v')
-    add_string( "verbose-objects", 0, VERBOSE_OBJECTS_TEXT, VERBOSE_OBJECTS_LONGTEXT,
-                 false )
+        change_volatile ()
+    add_obsolete_string( "verbose-objects" ) /* since 2.1.0 */
     add_bool( "quiet", 0, QUIET_TEXT, QUIET_LONGTEXT, false )
         change_short('q')
+        change_volatile ()
 
-#if !defined(WIN32)
+#if !defined(_WIN32) && !defined(__OS2__)
     add_bool( "daemon", 0, DAEMON_TEXT, DAEMON_LONGTEXT, true )
         change_short('d')
 
@@ -2211,13 +2073,12 @@ vlc_module_begin ()
                true )
 #endif
 
-#if defined (WIN32) || defined (__APPLE__)
-    add_string( "language", "auto", LANGUAGE_TEXT, LANGUAGE_LONGTEXT,
-                false )
-        change_string_list( ppsz_language, ppsz_language_text, 0 )
+#if defined (_WIN32) || defined (__APPLE__)
+    add_obsolete_string( "language" ) /* since 2.1.0 */
 #endif
 
     add_bool( "color", true, COLOR_TEXT, COLOR_LONGTEXT, true )
+        change_volatile ()
     add_bool( "advanced", false, ADVANCED_TEXT, ADVANCED_LONGTEXT,
                     false )
     add_bool( "interact", true, INTERACTION_TEXT,
@@ -2241,6 +2102,10 @@ vlc_module_begin ()
     set_subcategory( SUBCAT_INTERFACE_HOTKEYS )
     add_category_hint( N_("Hot keys"), HOTKEY_CAT_LONGTEXT , false )
 
+    add_integer( "hotkeys-mousewheel-mode", 0, MOUSE_WHEEL_MODE_TEXT,
+                 MOUSE_WHEEL_MODE_LONGTEXT, false )
+        change_integer_list( mouse_wheel_values, mouse_wheel_texts )
+
 #if defined(__APPLE__)
 /* Don't use the following combo's */
 
@@ -2276,7 +2141,7 @@ vlc_module_begin ()
  */
 #   define KEY_TOGGLE_FULLSCREEN  "Command+f"
 #   define KEY_LEAVE_FULLSCREEN   "Esc"
-#   define KEY_PLAY_PAUSE         "Command+p"
+#   define KEY_PLAY_PAUSE         "Space"
 #   define KEY_PAUSE              NULL
 #   define KEY_PLAY               NULL
 #   define KEY_FASTER             "Command+="
@@ -2310,18 +2175,26 @@ vlc_module_begin ()
 #   define KEY_SUBDELAY_DOWN      "h"
 #   define KEY_SUBPOS_DOWN        NULL
 #   define KEY_SUBPOS_UP          NULL
+#   define KEY_SUBSYNC_MARKAUDIO  "Shift+h"
+#   define KEY_SUBSYNC_MARKSUB    "Shift+j"
+#   define KEY_SUBSYNC_APPLY      "Shift+k"
+#   define KEY_SUBSYNC_RESET      "Command+Shift+k"
 #   define KEY_AUDIODELAY_UP      "g"
 #   define KEY_AUDIODELAY_DOWN    "f"
 #   define KEY_AUDIO_TRACK        "l"
 #   define KEY_SUBTITLE_TRACK     "s"
+#   define KEY_PROGRAM_SID_NEXT   "x"
+#   define KEY_PROGRAM_SID_PREV   "Shift+x"
 #   define KEY_ASPECT_RATIO       "a"
 #   define KEY_CROP               "c"
 #   define KEY_TOGGLE_AUTOSCALE   "o"
 #   define KEY_SCALE_UP           "Alt+o"
 #   define KEY_SCALE_DOWN         "Shift+Alt+o"
 #   define KEY_DEINTERLACE        "d"
-#   define KEY_INTF_SHOW          "i"
-#   define KEY_INTF_HIDE          "Shift+i"
+#   define KEY_DEINTERLACE_MODE   "Shift+d"
+#   define KEY_INTF_TOGGLE_FSC    "i"
+#   define KEY_INTF_BOSS          NULL
+#   define KEY_INTF_POPUP_MENU    "Menu"
 #   define KEY_DISC_MENU          "Ctrl+m"
 #   define KEY_TITLE_PREV         "Ctrl+p"
 #   define KEY_TITLE_NEXT         "Ctrl+n"
@@ -2370,15 +2243,8 @@ vlc_module_begin ()
 #   define KEY_PLAY_BOOKMARK10    NULL
 #   define KEY_RECORD             "Command+Shift+r"
 #   define KEY_WALLPAPER          "w"
-
-#   define KEY_MENU_ON            "Alt+m"
-#   define KEY_MENU_OFF           "Alt+Shift+m"
-#   define KEY_MENU_RIGHT         "Alt+Shift+Right"
-#   define KEY_MENU_LEFT          "Alt+Shift+Left"
-#   define KEY_MENU_UP            "Alt+Shift+Up"
-#   define KEY_MENU_DOWN          "Alt+Shift+Down"
-#   define KEY_MENU_SELECT        "Alt+Shift+Enter"
 #   define KEY_AUDIODEVICE_CYCLE  "Shift+a"
+#   define KEY_PLAY_CLEAR         NULL
 
 #else /* Non Mac OS X */
     /*
@@ -2390,17 +2256,17 @@ vlc_module_begin ()
      */
 #   define KEY_TOGGLE_FULLSCREEN  "f"
 #   define KEY_LEAVE_FULLSCREEN   "Esc"
-#   define KEY_PLAY_PAUSE         "Space"
-#   define KEY_PAUSE              NULL
-#   define KEY_PLAY               NULL
+#   define KEY_PLAY_PAUSE         "Space\tMedia Play Pause"
+#   define KEY_PAUSE              "Browser Stop"
+#   define KEY_PLAY               "Browser Refresh"
 #   define KEY_FASTER             "+"
 #   define KEY_SLOWER             "-"
 #   define KEY_RATE_NORMAL        "="
 #   define KEY_RATE_FASTER_FINE   "]"
 #   define KEY_RATE_SLOWER_FINE   "["
-#   define KEY_NEXT               "n"
-#   define KEY_PREV               "p"
-#   define KEY_STOP               "s"
+#   define KEY_NEXT               "n\tMedia Next Track"
+#   define KEY_PREV               "p\tMedia Prev Track"
+#   define KEY_STOP               "s\tMedia Stop"
 #   define KEY_POSITION           "t"
 #   define KEY_JUMP_MEXTRASHORT   "Shift+Left"
 #   define KEY_JUMP_PEXTRASHORT   "Shift+Right"
@@ -2410,20 +2276,24 @@ vlc_module_begin ()
 #   define KEY_JUMP_PMEDIUM       "Ctrl+Right"
 #   define KEY_JUMP_MLONG         "Ctrl+Alt+Left"
 #   define KEY_JUMP_PLONG         "Ctrl+Alt+Right"
-#   define KEY_FRAME_NEXT         "e"
+#   define KEY_FRAME_NEXT         "e\tBrowser Next"
 #   define KEY_NAV_ACTIVATE       "Enter"
 #   define KEY_NAV_UP             "Up"
 #   define KEY_NAV_DOWN           "Down"
 #   define KEY_NAV_LEFT           "Left"
 #   define KEY_NAV_RIGHT          "Right"
 #   define KEY_QUIT               "Ctrl+q"
-#   define KEY_VOL_UP             "Ctrl+Up"
-#   define KEY_VOL_DOWN           "Ctrl+Down"
-#   define KEY_VOL_MUTE           "m"
+#   define KEY_VOL_UP             "Ctrl+Up\tVolume Up"
+#   define KEY_VOL_DOWN           "Ctrl+Down\tVolume Down"
+#   define KEY_VOL_MUTE           "m\tVolume Mute"
 #   define KEY_SUBDELAY_UP        "h"
 #   define KEY_SUBDELAY_DOWN      "g"
 #   define KEY_SUBPOS_DOWN        NULL
 #   define KEY_SUBPOS_UP          NULL
+#   define KEY_SUBSYNC_MARKAUDIO  "Shift+h"
+#   define KEY_SUBSYNC_MARKSUB    "Shift+j"
+#   define KEY_SUBSYNC_APPLY      "Shift+k"
+#   define KEY_SUBSYNC_RESET      "Ctrl+Shift+k"
 #   define KEY_AUDIODELAY_UP      "k"
 #   define KEY_AUDIODELAY_DOWN    "j"
 #   define KEY_RANDOM             "r"
@@ -2431,14 +2301,18 @@ vlc_module_begin ()
 
 #   define KEY_AUDIO_TRACK        "b"
 #   define KEY_SUBTITLE_TRACK     "v"
+#   define KEY_PROGRAM_SID_NEXT   "x"
+#   define KEY_PROGRAM_SID_PREV   "Shift+x"
 #   define KEY_ASPECT_RATIO       "a"
 #   define KEY_CROP               "c"
 #   define KEY_TOGGLE_AUTOSCALE   "o"
 #   define KEY_SCALE_UP           "Alt+o"
 #   define KEY_SCALE_DOWN         "Alt+Shift+o"
 #   define KEY_DEINTERLACE        "d"
-#   define KEY_INTF_SHOW          "i"
-#   define KEY_INTF_HIDE          "Shift+i"
+#   define KEY_DEINTERLACE_MODE   "Shift+d"
+#   define KEY_INTF_TOGGLE_FSC    "i"
+#   define KEY_INTF_BOSS          NULL
+#   define KEY_INTF_POPUP_MENU    "Menu"
 #   define KEY_DISC_MENU          "Shift+m"
 #   define KEY_TITLE_PREV         "Shift+o"
 #   define KEY_TITLE_NEXT         "Shift+b"
@@ -2492,19 +2366,12 @@ vlc_module_begin ()
 #   define KEY_PLAY_BOOKMARK9     "F9"
 #   define KEY_PLAY_BOOKMARK10    "F10"
 
-/* OSD menu */
-#   define KEY_MENU_ON            "Alt+Shift+m"
-#   define KEY_MENU_OFF           "Ctrl+Alt+m"
-#   define KEY_MENU_RIGHT         "Alt+Shift+Right"
-#   define KEY_MENU_LEFT          "Alt+Shift+Left"
-#   define KEY_MENU_UP            "Alt+Shift+Up"
-#   define KEY_MENU_DOWN          "Alt+Shift+Down"
-#   define KEY_MENU_SELECT        "Alt+Shift+Enter"
+/* Playlist clear */
+#   define KEY_PLAY_CLEAR         "Ctrl+w"
 #endif
 
     add_key( "key-toggle-fullscreen", KEY_TOGGLE_FULLSCREEN, TOGGLE_FULLSCREEN_KEY_TEXT,
              TOGGLE_FULLSCREEN_KEY_LONGTEXT, false )
-       add_deprecated_alias( "key-fullscreen" ) /*deprecated since 0.9.0 */
     add_key( "key-leave-fullscreen", KEY_LEAVE_FULLSCREEN, LEAVE_FULLSCREEN_KEY_TEXT,
              LEAVE_FULLSCREEN_KEY_LONGTEXT, false )
     add_key( "key-play-pause", KEY_PLAY_PAUSE, PLAY_PAUSE_KEY_TEXT,
@@ -2582,6 +2449,14 @@ vlc_module_begin ()
              SUBDELAY_UP_KEY_TEXT, SUBDELAY_UP_KEY_LONGTEXT, true )
     add_key( "key-subdelay-down", KEY_SUBDELAY_DOWN,
              SUBDELAY_DOWN_KEY_TEXT, SUBDELAY_DOWN_KEY_LONGTEXT, true )
+    add_key( "key-subsync-markaudio", KEY_SUBSYNC_MARKAUDIO,
+             SUBSYNC_MARKAUDIO_KEY_TEXT, SUBSYNC_MARKAUDIO_KEY_LONGTEXT, true )
+    add_key( "key-subsync-marksub", KEY_SUBSYNC_MARKSUB,
+             SUBSYNC_MARKSUB_KEY_TEXT, SUBSYNC_MARKSUB_KEY_LONGTEXT, true )
+    add_key( "key-subsync-apply", KEY_SUBSYNC_APPLY,
+             SUBSYNC_APPLY_KEY_TEXT, SUBSYNC_APPLY_KEY_LONGTEXT, true )
+     add_key( "key-subsync-reset", KEY_SUBSYNC_RESET,
+              SUBSYNC_RESET_KEY_TEXT, SUBSYNC_RESET_KEY_LONGTEXT, true )
     add_key( "key-subpos-up", KEY_SUBPOS_UP,
              SUBPOS_UP_KEY_TEXT, SUBPOS_UP_KEY_LONGTEXT, true )
     add_key( "key-subpos-down", KEY_SUBPOS_DOWN,
@@ -2596,6 +2471,10 @@ vlc_module_begin ()
              AUDI_DEVICE_CYCLE_KEY_LONGTEXT, false )
     add_key( "key-subtitle-track", KEY_SUBTITLE_TRACK,
              SUBTITLE_TRACK_KEY_TEXT, SUBTITLE_TRACK_KEY_LONGTEXT, false )
+    add_key( "key-program-sid-next", KEY_PROGRAM_SID_NEXT,
+             PROGRAM_SID_NEXT_KEY_TEXT, PROGRAM_SID_NEXT_KEY_LONGTEXT, false )
+    add_key( "key-program-sid-prev", KEY_PROGRAM_SID_PREV,
+             PROGRAM_SID_PREV_KEY_TEXT, PROGRAM_SID_PREV_KEY_LONGTEXT, false )
     add_key( "key-aspect-ratio", KEY_ASPECT_RATIO,
              ASPECT_RATIO_KEY_TEXT, ASPECT_RATIO_KEY_LONGTEXT, false )
     add_key( "key-crop", KEY_CROP,
@@ -2608,10 +2487,16 @@ vlc_module_begin ()
              SCALE_DOWN_KEY_TEXT, SCALE_DOWN_KEY_LONGTEXT, false )
     add_key( "key-deinterlace", KEY_DEINTERLACE,
              DEINTERLACE_KEY_TEXT, DEINTERLACE_KEY_LONGTEXT, false )
-    add_key( "key-intf-show", KEY_INTF_SHOW,
-             INTF_SHOW_KEY_TEXT, INTF_SHOW_KEY_LONGTEXT, true )
-    add_key( "key-intf-hide", KEY_INTF_HIDE,
-             INTF_HIDE_KEY_TEXT, INTF_HIDE_KEY_LONGTEXT, true )
+    add_key( "key-deinterlace-mode", KEY_DEINTERLACE_MODE,
+             DEINTERLACE_MODE_KEY_TEXT, DEINTERLACE_MODE_KEY_LONGTEXT, false )
+    add_key( "key-intf-show", KEY_INTF_TOGGLE_FSC,
+             INTF_TOGGLE_FSC_KEY_TEXT, INTF_TOGGLE_FSC_KEY_TEXT, false )
+    add_obsolete_inner( "key-intf-hide", CONFIG_ITEM_KEY )
+
+    add_key( "key-intf-boss", KEY_INTF_BOSS,
+             INTF_BOSS_KEY_TEXT, INTF_BOSS_KEY_LONGTEXT, true )
+    add_key( "key-intf-popup-menu", KEY_INTF_POPUP_MENU,
+             INTF_POPUP_MENU_KEY_TEXT, INTF_POPUP_MENU_KEY_LONGTEXT, true )
     add_key( "key-snapshot", KEY_SNAPSHOT,
         SNAP_KEY_TEXT, SNAP_KEY_LONGTEXT, true )
     add_key( "key-record", KEY_RECORD,
@@ -2623,21 +2508,6 @@ vlc_module_begin ()
     add_key( "key-wallpaper", KEY_WALLPAPER, WALLPAPER_KEY_TEXT,
              WALLPAPER_KEY_LONGTEXT, false )
 
-    add_key( "key-menu-on", KEY_MENU_ON,
-             MENU_ON_KEY_TEXT, MENU_ON_KEY_LONGTEXT, true )
-    add_key( "key-menu-off", KEY_MENU_OFF,
-             MENU_OFF_KEY_TEXT, MENU_OFF_KEY_LONGTEXT, true )
-    add_key( "key-menu-right", KEY_MENU_RIGHT,
-             MENU_RIGHT_KEY_TEXT, MENU_RIGHT_KEY_LONGTEXT, true )
-    add_key( "key-menu-left", KEY_MENU_LEFT,
-             MENU_LEFT_KEY_TEXT, MENU_LEFT_KEY_LONGTEXT, true )
-    add_key( "key-menu-up", KEY_MENU_UP,
-             MENU_UP_KEY_TEXT, MENU_UP_KEY_LONGTEXT, true )
-    add_key( "key-menu-down", KEY_MENU_DOWN,
-             MENU_DOWN_KEY_TEXT, MENU_DOWN_KEY_LONGTEXT, true )
-    add_key( "key-menu-select", KEY_MENU_SELECT,
-             MENU_SELECT_KEY_TEXT, MENU_SELECT_KEY_LONGTEXT, true )
-
     add_key( "key-crop-top", KEY_CROP_TOP,
              CROP_TOP_KEY_TEXT, CROP_TOP_KEY_LONGTEXT, true )
     add_key( "key-uncrop-top", KEY_UNCROP_TOP,
@@ -2722,6 +2592,8 @@ vlc_module_begin ()
              PLAY_BOOKMARK9_KEY_TEXT, PLAY_BOOKMARK_KEY_LONGTEXT, true )
     add_key( "key-play-bookmark10", KEY_PLAY_BOOKMARK10,
              PLAY_BOOKMARK10_KEY_TEXT, PLAY_BOOKMARK_KEY_LONGTEXT, true )
+    add_key( "key-clear-playlist", KEY_PLAY_CLEAR,
+             PLAY_CLEAR_KEY_TEXT, PLAY_CLEAR_KEY_LONGTEXT, true )
 
 
     add_string( "bookmark1", NULL,
@@ -2811,7 +2683,6 @@ vlc_module_begin ()
     /* add_usage_hint( PLAYLIST_USAGE ) */
 
     set_description( N_("main program") )
-    set_capability( "main", 100 )
 vlc_module_end ()
 
 /*****************************************************************************