[vlc-commits] demux: ts: check extra es for pid filtering

Francois Cartegnie git at videolan.org
Tue Apr 21 15:22:23 CEST 2015


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Tue Apr 21 15:19:41 2015 +0200| [f35dfa61094a5d2cc6ef9e55a9d36cf096b9a34e] | committer: Francois Cartegnie

demux: ts: check extra es for pid filtering

main es might not have been selected (teletext extra es)

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f35dfa61094a5d2cc6ef9e55a9d36cf096b9a34e
---

 modules/demux/mpeg/ts.c |   10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/modules/demux/mpeg/ts.c b/modules/demux/mpeg/ts.c
index 32b39d4..99fb4a6 100644
--- a/modules/demux/mpeg/ts.c
+++ b/modules/demux/mpeg/ts.c
@@ -1383,8 +1383,18 @@ static void UpdatePESFilters( demux_t *p_demux, bool b_all )
             ts_pid_t *espid = p_pmt->e_streams.p_elems[j];
             bool b_stream_selected = b_program_selected;
             if( b_program_selected && !b_all && espid->u.p_pes->es.id )
+            {
                 es_out_Control( p_demux->out, ES_OUT_GET_ES_STATE,
                                 espid->u.p_pes->es.id, &b_stream_selected );
+                for( int k=0; !b_stream_selected &&
+                               k< espid->u.p_pes->extra_es.i_size; k++ )
+                {
+                    if( espid->u.p_pes->extra_es.p_elems[k]->id )
+                        es_out_Control( p_demux->out, ES_OUT_GET_ES_STATE,
+                                        espid->u.p_pes->extra_es.p_elems[k]->id,
+                                        &b_stream_selected );
+                }
+            }
 
             if( espid->u.p_pes->es.fmt.i_cat == UNKNOWN_ES )
             {



More information about the vlc-commits mailing list