Commit 665b85ad authored by Francois Cartegnie's avatar Francois Cartegnie

demux: ts: allow to skip services

parent 477597f2
...@@ -305,6 +305,11 @@ typedef struct ...@@ -305,6 +305,11 @@ typedef struct
} ts_pid_t; } ts_pid_t;
typedef struct
{
int i_service;
} vdr_info_t;
struct demux_sys_t struct demux_sys_t
{ {
stream_t *stream; stream_t *stream;
...@@ -378,6 +383,8 @@ struct demux_sys_t ...@@ -378,6 +383,8 @@ struct demux_sys_t
mtime_t i_first_dts; mtime_t i_first_dts;
} pcrfix; } pcrfix;
vdr_info_t vdr;
/* */ /* */
bool b_start_record; bool b_start_record;
}; };
...@@ -607,6 +614,7 @@ static int Open( vlc_object_t *p_this ) ...@@ -607,6 +614,7 @@ static int Open( vlc_object_t *p_this )
int i_packet_size, i_packet_header_size = 0; int i_packet_size, i_packet_header_size = 0;
ts_pid_t *pat; ts_pid_t *pat;
vdr_info_t vdr = {0};
/* Search first sync byte */ /* Search first sync byte */
i_packet_size = DetectPacketSize( p_demux, &i_packet_header_size ); i_packet_size = DetectPacketSize( p_demux, &i_packet_header_size );
...@@ -632,6 +640,8 @@ static int Open( vlc_object_t *p_this ) ...@@ -632,6 +640,8 @@ static int Open( vlc_object_t *p_this )
p_sys->i_dvb_start = 0; p_sys->i_dvb_start = 0;
p_sys->i_dvb_length = 0; p_sys->i_dvb_length = 0;
p_sys->vdr = vdr;
p_sys->arib.b25stream = NULL; p_sys->arib.b25stream = NULL;
p_sys->stream = p_demux->s; p_sys->stream = p_demux->s;
...@@ -3091,6 +3101,13 @@ static void SDTCallBack( demux_t *p_demux, dvbpsi_sdt_t *p_sdt ) ...@@ -3091,6 +3101,13 @@ static void SDTCallBack( demux_t *p_demux, dvbpsi_sdt_t *p_sdt )
p_srv->b_eit_present, p_srv->i_running_status, p_srv->b_eit_present, p_srv->i_running_status,
p_srv->b_free_ca ); p_srv->b_free_ca );
if( p_sys->vdr.i_service && p_srv->i_service_id != p_sys->vdr.i_service )
{
msg_Dbg( p_demux, " * service id=%d skipped (not declared in vdr header)",
p_sys->vdr.i_service );
continue;
}
p_meta = vlc_meta_New(); p_meta = vlc_meta_New();
for( p_dr = p_srv->p_first_descriptor; p_dr; p_dr = p_dr->p_next ) for( p_dr = p_srv->p_first_descriptor; p_dr; p_dr = p_dr->p_next )
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment