]> git.sesse.net Git - vlc/blobdiff - modules/access/dshow/dshow.cpp
DShow: fix compilation after change on caching
[vlc] / modules / access / dshow / dshow.cpp
index 4209c14675573b9340c6296fb7992357774ba7a1..c5ee319c7d770d08bf3d7c2eb7d6933e256cdfbd 100644 (file)
@@ -34,6 +34,8 @@
 #define __STDC_FORMAT_MACROS 1
 #define CFG_PREFIX "dshow-"
 #include <inttypes.h>
+#include <list>
+#include <string>
 
 #include <vlc_common.h>
 #include <vlc_plugin.h>
 #include <vlc_dialog.h>      /* dialog_Fatal */
 #include <vlc_charset.h>     /* FromWide */
 
-#include "common.h"
+#include <initguid.h>
+#include "vlc_dshow.h"
+
+#include "access.h"
 #include "filter.h"
 
 /*****************************************************************************
@@ -125,10 +130,6 @@ static const char *const ppsz_standards_list_text[] =
         "PAL_N_COMBO"
     };
 
-#define CACHING_TEXT N_("Caching value in ms")
-#define CACHING_LONGTEXT N_( \
-    "Caching value for DirectShow streams. " \
-    "This value should be set in milliseconds." )
 #define VDEV_TEXT N_("Video device name")
 #define VDEV_LONGTEXT N_( \
     "Name of the video device that will be used by the " \
@@ -223,69 +224,78 @@ vlc_module_begin ()
     set_description( N_("DirectShow input") )
     set_category( CAT_INPUT )
     set_subcategory( SUBCAT_INPUT_ACCESS )
-    add_integer( CFG_PREFIX "caching", (mtime_t)(0.2*CLOCK_FREQ) / 1000, NULL,
-                 CACHING_TEXT, CACHING_LONGTEXT, true )
 
-    add_string( CFG_PREFIX "vdev", NULL, NULL, VDEV_TEXT, VDEV_LONGTEXT, false)
+    add_string( CFG_PREFIX "vdev", NULL, VDEV_TEXT, VDEV_LONGTEXT, false)
         change_string_list( ppsz_vdev, ppsz_vdev_text, FindDevicesCallback )
         change_action_add( FindDevicesCallback, N_("Refresh list") )
         change_action_add( ConfigDevicesCallback, N_("Configure") )
 
-    add_string( CFG_PREFIX "adev", NULL, NULL, ADEV_TEXT, ADEV_LONGTEXT, false)
+    add_string( CFG_PREFIX "adev", NULL, ADEV_TEXT, ADEV_LONGTEXT, false)
         change_string_list( ppsz_adev, ppsz_adev_text, FindDevicesCallback )
         change_action_add( FindDevicesCallback, N_("Refresh list") )
         change_action_add( ConfigDevicesCallback, N_("Configure") )
 
-    add_string( CFG_PREFIX "size", NULL, NULL, SIZE_TEXT, SIZE_LONGTEXT, false)
+    add_string( CFG_PREFIX "size", NULL, SIZE_TEXT, SIZE_LONGTEXT, false)
+        change_safe()
 
-    add_string( CFG_PREFIX "aspect-ratio", "4:3", NULL, ASPECT_TEXT, ASPECT_LONGTEXT, false)
+    add_string( CFG_PREFIX "aspect-ratio", "4:3", ASPECT_TEXT, ASPECT_LONGTEXT, false)
+        change_safe()
 
-    add_string( CFG_PREFIX "chroma", NULL, NULL, CHROMA_TEXT, CHROMA_LONGTEXT, true )
+    add_string( CFG_PREFIX "chroma", NULL, CHROMA_TEXT, CHROMA_LONGTEXT, true )
+        change_safe()
 
-    add_float( CFG_PREFIX "fps", 0.0f, NULL, FPS_TEXT, FPS_LONGTEXT, true )
+    add_float( CFG_PREFIX "fps", 0.0f, FPS_TEXT, FPS_LONGTEXT, true )
+        change_safe()
 
-    add_bool( CFG_PREFIX "config", false, NULL, CONFIG_TEXT, CONFIG_LONGTEXT, true )
+    add_bool( CFG_PREFIX "config", false, CONFIG_TEXT, CONFIG_LONGTEXT, true )
 
-    add_bool( CFG_PREFIX "tuner", false, NULL, TUNER_TEXT, TUNER_LONGTEXT, true )
+    add_bool( CFG_PREFIX "tuner", false, TUNER_TEXT, TUNER_LONGTEXT, true )
 
-    add_integer( CFG_PREFIX "tuner-channel", 0, NULL, CHANNEL_TEXT, CHANNEL_LONGTEXT,
+    add_integer( CFG_PREFIX "tuner-channel", 0, CHANNEL_TEXT, CHANNEL_LONGTEXT,
                 true )
+        change_safe()
 
-    add_integer( CFG_PREFIX "tuner-frequency", 0, NULL, TVFREQ_TEXT, TVFREQ_LONGTEXT,
+    add_integer( CFG_PREFIX "tuner-frequency", 0, TVFREQ_TEXT, TVFREQ_LONGTEXT,
                 true )
+        change_safe()
 
-    add_integer( CFG_PREFIX "tuner-country", 0, NULL, COUNTRY_TEXT, COUNTRY_LONGTEXT,
+    add_integer( CFG_PREFIX "tuner-country", 0, COUNTRY_TEXT, COUNTRY_LONGTEXT,
                 true )
 
-    add_integer( CFG_PREFIX "tuner-standard", 0, NULL, STANDARD_TEXT, STANDARD_LONGTEXT,
+    add_integer( CFG_PREFIX "tuner-standard", 0, STANDARD_TEXT, STANDARD_LONGTEXT,
                 false )
         change_integer_list( i_standards_list, ppsz_standards_list_text )
+        change_safe()
 
-    add_integer( CFG_PREFIX "tuner-input", 0, NULL, TUNER_INPUT_TEXT,
+    add_integer( CFG_PREFIX "tuner-input", 0, TUNER_INPUT_TEXT,
                  TUNER_INPUT_LONGTEXT, true )
         change_integer_list( pi_tuner_input, ppsz_tuner_input_text )
+        change_safe()
 
-    add_integer( CFG_PREFIX "video-input",  -1, NULL, VIDEO_IN_TEXT,
+    add_integer( CFG_PREFIX "video-input",  -1, VIDEO_IN_TEXT,
                  VIDEO_IN_LONGTEXT, true )
+        change_safe()
 
-    add_integer( CFG_PREFIX "video-output", -1, NULL, VIDEO_OUT_TEXT,
+    add_integer( CFG_PREFIX "video-output", -1, VIDEO_OUT_TEXT,
                  VIDEO_OUT_LONGTEXT, true )
 
-    add_integer( CFG_PREFIX "audio-input",  -1, NULL, AUDIO_IN_TEXT,
+    add_integer( CFG_PREFIX "audio-input",  -1, AUDIO_IN_TEXT,
                  AUDIO_IN_LONGTEXT, true )
+        change_safe()
 
-    add_integer( CFG_PREFIX "audio-output", -1, NULL, AUDIO_OUT_TEXT,
+    add_integer( CFG_PREFIX "audio-output", -1, AUDIO_OUT_TEXT,
                  AUDIO_OUT_LONGTEXT, true )
 
-    add_integer( CFG_PREFIX "amtuner-mode", AMTUNER_MODE_TV, NULL,
+    add_integer( CFG_PREFIX "amtuner-mode", AMTUNER_MODE_TV,
                 AMTUNER_MODE_TEXT, AMTUNER_MODE_LONGTEXT, false)
         change_integer_list( pi_amtuner_mode, ppsz_amtuner_mode_text )
+        change_safe()
 
-    add_integer( CFG_PREFIX "audio-channels", 0, NULL, AUDIO_CHANNELS_TEXT,
+    add_integer( CFG_PREFIX "audio-channels", 0, AUDIO_CHANNELS_TEXT,
                  AUDIO_CHANNELS_LONGTEXT, true )
-    add_integer( CFG_PREFIX "audio-samplerate", 0, NULL, AUDIO_SAMPLERATE_TEXT,
+    add_integer( CFG_PREFIX "audio-samplerate", 0, AUDIO_SAMPLERATE_TEXT,
                  AUDIO_SAMPLERATE_LONGTEXT, true )
-    add_integer( CFG_PREFIX "audio-bitspersample", 0, NULL, AUDIO_BITSPERSAMPLE_TEXT,
+    add_integer( CFG_PREFIX "audio-bitspersample", 0, AUDIO_BITSPERSAMPLE_TEXT,
                  AUDIO_BITSPERSAMPLE_LONGTEXT, true )
 
     add_shortcut( "dshow" )
@@ -489,8 +499,6 @@ static int CommonOpen( vlc_object_t *p_this, access_sys_t *p_sys,
     var_Create( p_this, CFG_PREFIX "amtuner-mode",
                 VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
 
-    var_Create( p_this, CFG_PREFIX "caching", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
-
     var_Create( p_this, CFG_PREFIX "video-input", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
     var_Create( p_this, CFG_PREFIX "audio-input", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
     var_Create( p_this, CFG_PREFIX "video-output", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
@@ -1010,11 +1018,11 @@ static int OpenDevice( vlc_object_t *p_this, access_sys_t *p_sys,
 
     /* Enumerate devices and display their names */
     FindCaptureDevice( p_this, NULL, &list_devices, b_audio );
-    if( !list_devices.size() )
+    if( list_devices.empty() )
         return VLC_EGENERIC;
 
     list<string>::iterator iter;
-    for( iter = list_devices.begin(); iter != list_devices.end(); iter++ )
+    for( iter = list_devices.begin(); iter != list_devices.end(); ++iter )
         msg_Dbg( p_this, "found device: %s", iter->c_str() );
 
     /* If no device name was specified, pick the 1st one */
@@ -1937,7 +1945,8 @@ static int AccessControl( access_t *p_access, int i_query, va_list args )
     /* */
     case ACCESS_GET_PTS_DELAY:
         pi_64 = (int64_t*)va_arg( args, int64_t * );
-        *pi_64 = var_GetInteger( p_access, CFG_PREFIX "caching" ) * 1000;
+        *pi_64 =
+            INT64_C(1000) * var_InheritInteger( p_access, "live-caching" );
         break;
 
     /* */
@@ -1977,7 +1986,8 @@ static int DemuxControl( demux_t *p_demux, int i_query, va_list args )
 
     case DEMUX_GET_PTS_DELAY:
         pi64 = (int64_t*)va_arg( args, int64_t * );
-        *pi64 = var_GetInteger( p_demux, CFG_PREFIX "caching" ) * 1000;
+        *pi64 =
+            INT64_C(1000) * var_InheritInteger( p_demux, "live-caching" );
         return VLC_SUCCESS;
 
     case DEMUX_GET_TIME:
@@ -1997,7 +2007,7 @@ static int DemuxControl( demux_t *p_demux, int i_query, va_list args )
  * config variable callback
  *****************************************************************************/
 static int FindDevicesCallback( vlc_object_t *p_this, char const *psz_name,
-                               vlc_value_t newval, vlc_value_t oldval, void * )
+                               vlc_value_t, vlc_value_t, void * )
 {
     module_config_t *p_item;
     bool b_audio = false;
@@ -2043,7 +2053,7 @@ static int FindDevicesCallback( vlc_object_t *p_this, char const *psz_name,
 
     list<string>::iterator iter;
     for( iter = list_devices.begin(), i = 2; iter != list_devices.end();
-         iter++, i++ )
+         ++iter, i++ )
     {
         p_item->ppsz_list[i] = strdup( iter->c_str() );
         p_item->ppsz_list_text[i] = NULL;
@@ -2059,7 +2069,7 @@ static int FindDevicesCallback( vlc_object_t *p_this, char const *psz_name,
 }
 
 static int ConfigDevicesCallback( vlc_object_t *p_this, char const *psz_name,
-                               vlc_value_t newval, vlc_value_t oldval, void * )
+                                  vlc_value_t newval, vlc_value_t, void * )
 {
     module_config_t *p_item;
     bool b_audio = false;
@@ -2269,8 +2279,9 @@ static void ShowTunerProperties( vlc_object_t *p_this,
 static void ConfigTuner( vlc_object_t *p_this, ICaptureGraphBuilder2 *p_graph,
                          IBaseFilter *p_device_filter )
 {
-    int i_channel, i_country, i_input, i_amtuner_mode, i_standard, i_frequency;
+    int i_channel, i_country, i_input, i_amtuner_mode, i_standard;
     long l_modes = 0;
+    unsigned i_frequency;
     IAMTVTuner *p_TV;
     HRESULT hr;
 
@@ -2364,9 +2375,10 @@ static void ConfigTuner( vlc_object_t *p_this, ICaptureGraphBuilder2 *p_graph,
             goto free_on_error;
         }
 
-        msg_Dbg( p_this, "Frequency range supproted from %d to %d.", ModeCaps.MinFrequency, ModeCaps.MaxFrequency);
-        msg_Dbg( p_this, "Video standards supproted by the tuner: ");
-        for(int i = 0 ; i < ARRAY_SIZE(ppsz_standards_list_text); i++) {
+        msg_Dbg( p_this, "Frequency range supported from %ld to %ld.",
+                 ModeCaps.MinFrequency, ModeCaps.MaxFrequency);
+        msg_Dbg( p_this, "Video standards supported by the tuner: ");
+        for(size_t i = 0 ; i < ARRAY_SIZE(ppsz_standards_list_text); i++) {
             if(ModeCaps.StandardsSupported & i_standards_list[i])
                 msg_Dbg( p_this, "%s, ", ppsz_standards_list_text[i]);
         }