vlc | branch: master | Francois Cartegnie <[email protected]> | Sun Jan 24 17:47:16 2016 +0100| [3a8fd592f112d36f9ba9467473f9fd716741886c] | committer: Francois Cartegnie
demux: ts: process private pmt descriptor according to registration > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3a8fd592f112d36f9ba9467473f9fd716741886c --- modules/demux/mpeg/ts.c | 41 +++++++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/modules/demux/mpeg/ts.c b/modules/demux/mpeg/ts.c index 8abc323..04e3147 100644 --- a/modules/demux/mpeg/ts.c +++ b/modules/demux/mpeg/ts.c @@ -5289,7 +5289,7 @@ static void ParsePMTRegistrations( demux_t *p_demux, const dvbpsi_descriptor_t for( const dvbpsi_descriptor_t *p_dr = p_firstdr; p_dr != NULL; p_dr = p_dr->p_next ) { - /* special descriptors handling */ + /* general descriptors handling < 0x40 and scoring */ switch(p_dr->i_tag) { case 0x05: /* Registration Descriptor */ @@ -5340,13 +5340,7 @@ static void ParsePMTRegistrations( demux_t *p_demux, const dvbpsi_descriptor_t p_pmt->iod = IODNew( VLC_OBJECT(p_demux), p_dr->i_length, p_dr->p_data ); break; - case 0x88: /* EACEM Simulcast HD Logical channels ordering */ - msg_Dbg( p_demux, " * PMT descriptor : EACEM Simulcast HD" ); - /* TODO: apply visibility flags */ - break; - case 0xC1: - msg_Dbg( p_demux, " * PMT descriptor : Digital copy control (0xC1)" ); i_arib_score_flags |= 1 << 2; break; @@ -5355,7 +5349,8 @@ static void ParsePMTRegistrations( demux_t *p_demux, const dvbpsi_descriptor_t break; default: - msg_Dbg( p_demux, " * PMT descriptor : unknown (0x%x)", p_dr->i_tag ); + if( p_dr->i_tag < 0x40 ) + msg_Dbg( p_demux, " * PMT descriptor : unknown (0x%x)", p_dr->i_tag ); break; } } @@ -5368,6 +5363,36 @@ static void ParsePMTRegistrations( demux_t *p_demux, const dvbpsi_descriptor_t p_sys->arib.e_mode = ARIBMODE_ENABLED; } + /* Now process private descriptors >= 0x40 */ + for( const dvbpsi_descriptor_t *p_dr = p_firstdr; p_dr != NULL; p_dr = p_dr->p_next ) + { + if( p_dr->i_tag < 0x40 ) + continue; + + switch(p_dr->i_tag) + { + case 0x88: /* EACEM Simulcast HD Logical channels ordering */ + if( registration_type == TS_PMT_REGISTRATION_NONE ) + msg_Dbg( p_demux, " * PMT descriptor : EACEM Simulcast HD" ); + /* TODO: apply visibility flags */ + break; + + case 0xC1: + if( registration_type == TS_PMT_REGISTRATION_ARIB ) + msg_Dbg( p_demux, " * PMT descriptor : Digital copy control (0xC1)" ); + break; + + case 0xDE: + if( registration_type == TS_PMT_REGISTRATION_ARIB ) + msg_Dbg( p_demux, " * PMT descriptor : Content availability (0xDE)" ); + break; + + default: + msg_Dbg( p_demux, " * PMT descriptor : unknown (0x%x)", p_dr->i_tag ); + break; + } + } + *p_registration_type = registration_type; } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
