vlc | branch: master | Francois Cartegnie <[email protected]> | Sat Oct 29 15:18:33 2016 +0200| [7d903c541845635a6da02124ab7c4c0265b4d4f6] | committer: Francois Cartegnie
demux: ts: simplify component tag matching > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=7d903c541845635a6da02124ab7c4c0265b4d4f6 --- modules/demux/mpeg/ts_psi.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/modules/demux/mpeg/ts_psi.c b/modules/demux/mpeg/ts_psi.c index 02ebf97..023a2d3 100644 --- a/modules/demux/mpeg/ts_psi.c +++ b/modules/demux/mpeg/ts_psi.c @@ -324,8 +324,8 @@ static bool PMTEsHasRegistration( demux_t *p_demux, return !memcmp( p_dr->p_data, psz_tag, 4 ); } -static bool PMTEsHasComponentTag( const dvbpsi_pmt_es_t *p_es, - int i_component_tag ) +static bool PMTEsHasComponentTagBetween( const dvbpsi_pmt_es_t *p_es, + uint8_t i_low, uint8_t i_high ) { dvbpsi_descriptor_t *p_dr = PMTEsFindDescriptor( p_es, 0x52 ); if( !p_dr ) @@ -334,7 +334,7 @@ static bool PMTEsHasComponentTag( const dvbpsi_pmt_es_t *p_es, if( !p_si ) return false; - return p_si->i_component_tag == i_component_tag; + return p_si->i_component_tag >= i_low && p_si->i_component_tag <= i_high; } static void SetupISO14496Descriptors( demux_t *p_demux, ts_pes_t *p_pes, @@ -877,23 +877,15 @@ static void PMTSetupEs0x06( demux_t *p_demux, ts_pes_t *p_pes, /* and check that it maps to something ARIB STD B14 Table 5.1/5.2 */ if ( p_dr && p_dr->i_length >= 2 ) { - if( !memcmp( p_dr->p_data, "\x00\x08", 2 ) && ( - PMTEsHasComponentTag( p_dvbpsies, 0x30 ) || - PMTEsHasComponentTag( p_dvbpsies, 0x31 ) || - PMTEsHasComponentTag( p_dvbpsies, 0x32 ) || - PMTEsHasComponentTag( p_dvbpsies, 0x33 ) || - PMTEsHasComponentTag( p_dvbpsies, 0x34 ) || - PMTEsHasComponentTag( p_dvbpsies, 0x35 ) || - PMTEsHasComponentTag( p_dvbpsies, 0x36 ) || - PMTEsHasComponentTag( p_dvbpsies, 0x37 ) ) ) + if( !memcmp( p_dr->p_data, "\x00\x08", 2 ) && + PMTEsHasComponentTagBetween( p_dvbpsies, 0x30, 0x37 ) ) { es_format_Init( p_fmt, SPU_ES, VLC_CODEC_ARIB_A ); p_fmt->psz_language = strndup ( "jpn", 3 ); p_fmt->psz_description = strdup( _("ARIB subtitles") ); } - else if( !memcmp( p_dr->p_data, "\x00\x12", 2 ) && ( - PMTEsHasComponentTag( p_dvbpsies, 0x87 ) || - PMTEsHasComponentTag( p_dvbpsies, 0x88 ) ) ) + else if( !memcmp( p_dr->p_data, "\x00\x12", 2 ) && + PMTEsHasComponentTagBetween( p_dvbpsies, 0x87, 0x88 ) ) { es_format_Init( p_fmt, SPU_ES, VLC_CODEC_ARIB_C ); p_fmt->psz_language = strndup ( "jpn", 3 ); _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
