#define __STDC_FORMAT_MACROS 1
#include <inttypes.h>
-#include <vlc/vlc.h>
+#include <vlc_common.h>
#include <vlc_plugin.h>
#include <vlc_input.h>
#include <vlc_access.h>
#define AMTUNER_MODE_TEXT N_("AM Tuner mode")
#define AMTUNER_MODE_LONGTEXT N_( \
- "AM Tuner mode. Can be one of DEFAULT, TV, AM_RADIO, FM_RADIO or DSS.")
+ "AM Tuner mode. Can be one of Default (0), TV (1)," \
+ "AM Radio (2), FM Radio (3) or DSS (4).")
+
+#define AUDIO_CHANNELS_TEXT N_("Number of audio channels")
+#define AUDIO_CHANNELS_LONGTEXT N_( \
+ "Select audio input format with the given number of audio channels (if non 0)" )
+
+#define AUDIO_SAMPLERATE_TEXT N_("Audio sample rate")
+#define AUDIO_SAMPLERATE_LONGTEXT N_( \
+ "Select audio input format with the given sample rate (if non 0)" )
+
+#define AUDIO_BITSPERSAMPLE_TEXT N_("Audio bits per sample")
+#define AUDIO_BITSPERSAMPLE_LONGTEXT N_( \
+ "Select audio input format with the given bits/sample (if non 0)" )
static int CommonOpen ( vlc_object_t *, access_sys_t *, bool );
static void CommonClose( vlc_object_t *, access_sys_t * );
AMTUNER_MODE_TEXT, AMTUNER_MODE_LONGTEXT, false);
change_integer_list( pi_amtuner_mode, ppsz_amtuner_mode_text, 0 );
+ add_integer( "dshow-audio-channels", 0, NULL, AUDIO_CHANNELS_TEXT,
+ AUDIO_CHANNELS_LONGTEXT, true );
+ add_integer( "dshow-audio-samplerate", 0, NULL, AUDIO_SAMPLERATE_TEXT,
+ AUDIO_SAMPLERATE_LONGTEXT, true );
+ add_integer( "dshow-audio-bitspersample", 0, NULL, AUDIO_BITSPERSAMPLE_TEXT,
+ AUDIO_BITSPERSAMPLE_LONGTEXT, true );
+
add_shortcut( "dshow" );
set_capability( "access_demux", 0 );
set_callbacks( DemuxOpen, DemuxClose );
size_t media_count =
EnumDeviceCaps( p_this, p_device_filter, b_audio ? 0 : p_sys->i_chroma,
p_sys->i_width, p_sys->i_height,
- 0, 0, 0, media_types, MAX_MEDIA_TYPES );
+ b_audio ? var_CreateGetInteger( p_this, "dshow-audio-channels" ) : 0,
+ b_audio ? var_CreateGetInteger( p_this, "dshow-audio-samplerate" ) : 0,
+ b_audio ? var_CreateGetInteger( p_this, "dshow-audio-bitspersample" ) : 0,
+ media_types, MAX_MEDIA_TYPES );
AM_MEDIA_TYPE *mt = NULL;
while( 1 )
{
- if( p_access->b_die || p_access->b_error ) return 0;
+ if( !vlc_object_alive (p_access) || p_access->b_error ) return 0;
/* Get new sample/frame from the elementary stream (blocking). */
vlc_mutex_lock( &p_sys->lock );