/*****************************************************************************
* Module descriptor
*****************************************************************************/
+#define CACHING_TEXT N_("Caching value in ms")
+#define CACHING_LONGTEXT N_( \
+ "Allows you to modify the default caching value for dvb streams. This " \
+ "value should be set in millisecond units." )
+
#define PROGRAM_TEXT N_("Program to decode")
#define PROGRAM_LONGTEXT N_("This is a workaround for a bug in the input")
#define HIERARCHY_LONGTEXT ""
vlc_module_begin();
+ set_shortname( _("DVB") );
set_description( N_("DVB input with v4l2 support") );
+ add_integer( "dvb-caching", DEFAULT_PTS_DELAY / 1000, NULL, CACHING_TEXT,
+ CACHING_LONGTEXT, VLC_TRUE );
add_integer( "dvb-adapter", 0, NULL, ADAPTER_TEXT, ADAPTER_LONGTEXT,
VLC_FALSE );
add_integer( "dvb-device", 0, NULL, DEVICE_TEXT, DEVICE_LONGTEXT,
- VLC_FALSE );
+ VLC_TRUE );
add_integer( "dvb-frequency", 11954000, NULL, FREQ_TEXT, FREQ_LONGTEXT,
VLC_FALSE );
add_integer( "dvb-inversion", 2, NULL, INVERSION_TEXT, INVERSION_LONGTEXT,
VLC_TRUE );
add_bool( "dvb-probe", 1, NULL, PROBE_TEXT, PROBE_LONGTEXT, VLC_TRUE );
- add_integer( "dvb-lnb-lof1", 9750000, NULL, LNB_LOF1_TEXT, LNB_LOF1_LONGTEXT,
- VLC_TRUE );
- add_integer( "dvb-lnb-lof2", 10600000, NULL, LNB_LOF2_TEXT, LNB_LOF2_LONGTEXT,
- VLC_TRUE );
+ add_integer( "dvb-lnb-lof1", 9750000, NULL, LNB_LOF1_TEXT,
+ LNB_LOF1_LONGTEXT, VLC_TRUE );
+ add_integer( "dvb-lnb-lof2", 10600000, NULL, LNB_LOF2_TEXT,
+ LNB_LOF2_LONGTEXT, VLC_TRUE );
add_integer( "dvb-lnb-slof", 11700000, NULL, LNB_SLOF_TEXT,
LNB_SLOF_LONGTEXT, VLC_TRUE );
/* DVB-S (satellite) */
add_bool( "dvb-budget-mode", 0, NULL, BUDGET_TEXT, BUDGET_LONGTEXT,
- VLC_FALSE );
+ VLC_TRUE );
add_integer( "dvb-satno", 0, NULL, SATNO_TEXT, SATNO_LONGTEXT,
VLC_TRUE );
add_integer( "dvb-voltage", 13, NULL, VOLTAGE_TEXT, VOLTAGE_LONGTEXT,
- VLC_FALSE );
+ VLC_TRUE );
add_integer( "dvb-tone", -1, NULL, TONE_TEXT, TONE_LONGTEXT,
- VLC_FALSE );
+ VLC_TRUE );
add_integer( "dvb-fec", 9, NULL, FEC_TEXT, FEC_LONGTEXT, VLC_TRUE );
add_integer( "dvb-srate", 27500000, NULL, SRATE_TEXT, SRATE_LONGTEXT,
VLC_FALSE );
/* DVB-T (terrestrial) */
- add_integer( "dvb-modulation", 0, NULL, MODULATION_TEXT, MODULATION_LONGTEXT,
- VLC_TRUE );
+ add_integer( "dvb-modulation", 0, NULL, MODULATION_TEXT,
+ MODULATION_LONGTEXT, VLC_TRUE );
/* DVB-T (terrestrial) */
add_integer( "dvb-code-rate-hp", 9, NULL, CODE_RATE_HP_TEXT,
CODE_RATE_HP_LONGTEXT, VLC_TRUE );
int i_test;
/* Initialize structure */
- p_dvb = malloc( sizeof( thread_dvb_data_t ) );
+ p_dvb = (thread_dvb_data_t *)malloc( sizeof( thread_dvb_data_t ) );
if( p_dvb == NULL )
{
msg_Err( p_input, "out of memory" );
return( -1 );
}
+ var_Create( p_input, "dvb-caching", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
+ var_Get( p_input, "dvb-caching", &val );
+ p_input->i_pts_delay = val.i_int * 1000;
+
var_Create( p_input, "dvb-adapter", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
var_Create( p_input, "dvb-device", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
var_Create( p_input, "dvb-frequency", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
if( input_InitStream( p_input, sizeof( stream_ts_data_t ) ) == -1 )
{
msg_Err( p_input, "could not initialize stream structure" );
+ E_(FrontendClose)( p_input );
close( p_dvb->i_handle );
free( p_dvb );
return( -1 );
E_(DMXUnsetFilter)( p_input, p_dvb->p_demux_handles[0].i_handle );
p_dvb->p_demux_handles[0].i_type = 0;
}
+ E_(DVRClose)( p_input );
+ E_(FrontendClose)( p_input );
+ free( p_dvb );
}
/*****************************************************************************