#include <vlc_common.h>
#include <vlc_plugin.h>
#include <vlc_access.h>
+#include <vlc_input.h>
#include <vlc_interface.h>
#ifdef HAVE_UNISTD_H
# include <dvbpsi/psi.h>
# include <dvbpsi/demux.h>
# include <dvbpsi/sdt.h>
-# include <dvbpsi/nit.h>
#else
# include "dvbpsi.h"
# include "descriptor.h"
# include "descriptors/dr.h"
# include "psi.h"
# include "demux.h"
-# include "sdt.h"
-# include "nit.h"
+# include "tables/sdt.h"
#endif
#ifdef ENABLE_HTTPD
#define CRL_TEXT N_( "CRL file" )
#define CRL_LONGTEXT N_( "HTTP interface Certificates Revocation List file" )
-vlc_module_begin();
- set_shortname( N_("DVB") );
- set_description( N_("DVB input with v4l2 support") );
- set_category( CAT_INPUT );
- set_subcategory( SUBCAT_INPUT_ACCESS );
+vlc_module_begin ()
+ set_shortname( N_("DVB") )
+ set_description( N_("DVB input with v4l2 support") )
+ set_category( CAT_INPUT )
+ set_subcategory( SUBCAT_INPUT_ACCESS )
add_integer( "dvb-caching", DEFAULT_PTS_DELAY / 1000, NULL, CACHING_TEXT,
CACHING_LONGTEXT, true );
false );
add_integer( "dvb-inversion", 2, NULL, INVERSION_TEXT, INVERSION_LONGTEXT,
true );
- add_bool( "dvb-probe", 1, NULL, PROBE_TEXT, PROBE_LONGTEXT, true );
+ add_bool( "dvb-probe", 1, NULL, PROBE_TEXT, PROBE_LONGTEXT, true )
add_bool( "dvb-budget-mode", 0, NULL, BUDGET_TEXT, BUDGET_LONGTEXT,
true );
/* DVB-S (satellite) */
HIGH_VOLTAGE_LONGTEXT, true );
add_integer( "dvb-tone", -1, NULL, TONE_TEXT, TONE_LONGTEXT,
true );
- add_integer( "dvb-fec", 9, NULL, FEC_TEXT, FEC_LONGTEXT, true );
+ add_integer( "dvb-fec", 9, NULL, FEC_TEXT, FEC_LONGTEXT, true )
add_integer( "dvb-srate", 27500000, NULL, SRATE_TEXT, SRATE_LONGTEXT,
false );
add_integer( "dvb-lnb-lof1", 0, NULL, LNB_LOF1_TEXT,
CODE_RATE_LP_LONGTEXT, true );
add_integer( "dvb-bandwidth", 0, NULL, BANDWIDTH_TEXT, BANDWIDTH_LONGTEXT,
true );
- add_integer( "dvb-guard", 0, NULL, GUARD_TEXT, GUARD_LONGTEXT, true );
+ add_integer( "dvb-guard", 0, NULL, GUARD_TEXT, GUARD_LONGTEXT, true )
add_integer( "dvb-transmission", 0, NULL, TRANSMISSION_TEXT,
TRANSMISSION_LONGTEXT, true );
add_integer( "dvb-hierarchy", 0, NULL, HIERARCHY_TEXT, HIERARCHY_LONGTEXT,
true );
#ifdef ENABLE_HTTPD
/* MMI HTTP interface */
- set_section( N_("HTTP server" ), 0 );
+ set_section( N_("HTTP server" ), 0 )
add_string( "dvb-http-host", NULL, NULL, HOST_TEXT, HOST_LONGTEXT,
true );
add_string( "dvb-http-user", NULL, NULL, USER_TEXT, USER_LONGTEXT,
true );
#endif
- set_capability( "access", 0 );
- add_shortcut( "dvb" ); /* Generic name */
+ set_capability( "access", 0 )
+ add_shortcut( "dvb" ) /* Generic name */
- add_shortcut( "dvb-s" ); /* Satellite */
- add_shortcut( "qpsk" );
- add_shortcut( "satellite" );
+ add_shortcut( "dvb-s" ) /* Satellite */
+ add_shortcut( "qpsk" )
+ add_shortcut( "satellite" )
- add_shortcut( "dvb-c" ); /* Cable */
- add_shortcut( "cable" );
+ add_shortcut( "dvb-c" ) /* Cable */
+ add_shortcut( "cable" )
- add_shortcut( "dvb-t" ); /* Terrestrial */
- add_shortcut( "terrestrial" );
+ add_shortcut( "dvb-t" ) /* Terrestrial */
+ add_shortcut( "terrestrial" )
- add_shortcut( "atsc" ); /* Atsc */
- add_shortcut( "usdigital" );
+ add_shortcut( "atsc" ) /* Atsc */
+ add_shortcut( "usdigital" )
- set_callbacks( Open, Close );
+ set_callbacks( Open, Close )
-vlc_module_end();
+vlc_module_end ()
/*****************************************************************************
p_access->pf_block = Block;
p_access->pf_control = Control;
p_access->pf_seek = NULL;
- p_access->info.i_update = 0;
- p_access->info.i_size = 0;
- p_access->info.i_pos = 0;
- p_access->info.b_eof = false;
- p_access->info.i_title = 0;
- p_access->info.i_seekpoint = 0;
-
- p_access->p_sys = p_sys = malloc( sizeof( access_sys_t ) );
+
+ access_InitFields( p_access );
+
+ p_access->p_sys = p_sys = calloc( 1, sizeof( access_sys_t ) );
if( !p_sys )
return VLC_ENOMEM;
- memset( p_sys, 0, sizeof( access_sys_t ) );
-
/* Create all variables */
VarInit( p_access );
if( p_sys->i_read_once < DVB_READ_ONCE )
p_sys->i_read_once++;
+ /* Update moderatly the signal properties */
+ if( (p_sys->i_stat_counter++ % 100) == 0 )
+ p_access->info.i_update |= INPUT_UPDATE_SIGNAL;
+
return p_block;
}
static int Control( access_t *p_access, int i_query, va_list args )
{
access_sys_t *p_sys = p_access->p_sys;
- bool *pb_bool, b_bool;
+ bool *pb_bool, b_bool;
int *pi_int, i_int;
int64_t *pi_64;
+ double *pf1, *pf2;
dvbpsi_pmt_t *p_pmt;
+ frontend_statistic_t stat;
switch( i_query )
{
case ACCESS_GET_CONTENT_TYPE:
return VLC_EGENERIC;
+ case ACCESS_GET_SIGNAL:
+ pf1 = (double*)va_arg( args, double * );
+ pf2 = (double*)va_arg( args, double * );
+
+ *pf1 = *pf2 = 0;
+ if( !FrontendGetStatistic( p_access, &stat ) )
+ {
+ *pf1 = (double)stat.i_snr / 65535.0;
+ *pf2 = (double)stat.i_signal_strenth / 65535.0;
+ }
+ return VLC_SUCCESS;
+
case ACCESS_SET_PRIVATE_ID_STATE:
if( p_sys->b_scan_mode )
return VLC_EGENERIC;