vlc | branch: master | Francois Cartegnie <[email protected]> | Sat Oct 29 16:50:40 2016 +0200| [23d9a7c4b54e104bfb1cd77809d79dba2c7c7389] | committer: Francois Cartegnie
codec: cc: fix replay tv multiple packets per private data according to samples, there always can be more than 8 bytes > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=23d9a7c4b54e104bfb1cd77809d79dba2c7c7389 --- modules/codec/cc.h | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/modules/codec/cc.h b/modules/codec/cc.h index 8605102..8416821 100644 --- a/modules/codec/cc.h +++ b/modules/codec/cc.h @@ -253,15 +253,12 @@ static inline void cc_Extract( cc_data_t *c, bool b_top_field_first, const uint8 else if( i_payload_type == CC_PAYLOAD_REPLAYTV ) { const uint8_t *cc = &p_src[0]; - int i; - if( c->i_data + 2*3 > CC_MAX_DATA_SIZE ) - return; - - for( i = 0; i < 2; i++, cc += 4 ) + for( int i_cc_count = i_src >> 2; i_cc_count > 0; + i_cc_count--, cc += 4 ) { - const int i_field = i == 0 ? 1 : 0; - - cc_AppendData( c, CC_PKT_BYTE0(i_field), &cc[2] ); + if( c->i_data + 3 > CC_MAX_DATA_SIZE ) + return; + cc_AppendData( c, CC_PKT_BYTE0(i_cc_count % 2), &cc[2] ); } c->b_reorder = false; } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
