vlc/vlc-1.1 | branch: master | Laurent Aimar <[email protected]> | Mon Jun 28 01:43:51 2010 +0200| [e6d64660a0c29c1dae139211594b9f2e292c4932] | committer: Jean-Baptiste Kempf
Fixed the selection of a program list in TS demuxer. (cherry picked from commit 3c1e28fa63be40577a1c678252dc2b51e829f210) Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc/vlc-1.1.git/?a=commit;h=e6d64660a0c29c1dae139211594b9f2e292c4932 --- modules/demux/ts.c | 26 +++++++++++++++++++------- 1 files changed, 19 insertions(+), 7 deletions(-) diff --git a/modules/demux/ts.c b/modules/demux/ts.c index 3748a5a..49ff2ea 100644 --- a/modules/demux/ts.c +++ b/modules/demux/ts.c @@ -1282,17 +1282,26 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) p_list = (vlc_list_t *)va_arg( args, vlc_list_t * ); msg_Dbg( p_demux, "DEMUX_SET_GROUP %d %p", i_int, p_list ); - if( i_int > 0 ) + if( i_int == 0 && p_sys->i_current_program > 0 ) + i_int = p_sys->i_current_program; + + if( p_sys->i_current_program > 0 ) { - if( i_int != p_sys->i_current_program ) - { + if( p_sys->i_current_program != i_int ) SetPrgFilter( p_demux, p_sys->i_current_program, false ); + } + else if( p_sys->i_current_program < 0 ) + { + for( int i = 0; i < p_sys->programs_list.i_count; i++ ) + SetPrgFilter( p_demux, p_sys->programs_list.p_values[i].i_int, false ); + } - p_sys->i_current_program = i_int; - SetPrgFilter( p_demux, p_sys->i_current_program, true ); - } + if( i_int > 0 ) + { + p_sys->i_current_program = i_int; + SetPrgFilter( p_demux, p_sys->i_current_program, true ); } - else + else if( i_int < 0 ) { p_sys->i_current_program = -1; p_sys->programs_list.i_count = 0; @@ -1307,7 +1316,10 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) { p_dst->i_count = p_list->i_count; for( int i = 0; i < p_list->i_count; i++ ) + { p_dst->p_values[i] = p_list->p_values[i]; + SetPrgFilter( p_demux, p_dst->p_values[i].i_int, true ); + } } } } _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
