vlc | branch: master | Francois Cartegnie <[email protected]> | Fri Jun 6 21:41:39 2014 +0200| [b557f55da6d3cd8b18cba9f1771dd888aaab6f7e] | committer: Francois Cartegnie
demux: ts: fix IOD parsing (fix #11573) IOD bytes must be read in order. introduced by 8fdf1f20beb53ec72b7f2a903071857596ce0d72 > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b557f55da6d3cd8b18cba9f1771dd888aaab6f7e --- modules/demux/ts.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/demux/ts.c b/modules/demux/ts.c index c22c266..e882623 100644 --- a/modules/demux/ts.c +++ b/modules/demux/ts.c @@ -2625,6 +2625,7 @@ static iod_descriptor_t *IODNew( int i_data, uint8_t *p_data ) ts_debug( "\n* ERR missing DecoderConfigDescr" ); continue; } + int i_config_desc_length = IODDescriptorLength( &i_data, &p_data ); /* DecoderConfigDescr_length */ decoder_config_descriptor_t *dec_descr = &es_descr->dec_descr; dec_descr->i_objectTypeIndication = IODGetBytes( &i_data, &p_data, 1 ); i_flags = IODGetBytes( &i_data, &p_data, 1 ); @@ -2634,8 +2635,7 @@ static iod_descriptor_t *IODNew( int i_data, uint8_t *p_data ) IODGetBytes( &i_data, &p_data, 4); /* maxBitrate */ IODGetBytes( &i_data, &p_data, 4 ); /* avgBitrate */ - int i_decoderConfigDescr_length = IODDescriptorLength( &i_data, &p_data ); - if( i_decoderConfigDescr_length > 13 && IODGetBytes( &i_data, &p_data, 1 ) == 0x05 ) + if( i_config_desc_length > 13 && IODGetBytes( &i_data, &p_data, 1 ) == 0x05 ) { dec_descr->i_extra = IODDescriptorLength( &i_data, &p_data ); if( dec_descr->i_extra > 0 ) _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
