mpegts_input: Open only PIDs for filtered components

This commit is contained in:
Jaroslav Kysela 2014-06-16 15:14:26 +02:00
parent 64ed672850
commit b088a7598b

View file

@ -316,7 +316,8 @@ mpegts_input_open_service ( mpegts_input_t *mi, mpegts_service_t *s, int init )
pthread_mutex_lock(&s->s_stream_mutex);
mi->mi_open_pid(mi, s->s_dvb_mux, s->s_pmt_pid, MPS_STREAM, s);
mi->mi_open_pid(mi, s->s_dvb_mux, s->s_pcr_pid, MPS_STREAM, s);
TAILQ_FOREACH(st, &s->s_components, es_link) {
/* Open only filtered components here */
TAILQ_FOREACH(st, &s->s_filt_components, es_link) {
if (st->es_type != SCT_CA)
mi->mi_open_pid(mi, s->s_dvb_mux, st->es_pid, MPS_STREAM, s);
}
@ -352,6 +353,7 @@ mpegts_input_close_service ( mpegts_input_t *mi, mpegts_service_t *s )
pthread_mutex_lock(&s->s_stream_mutex);
mi->mi_close_pid(mi, s->s_dvb_mux, s->s_pmt_pid, MPS_STREAM, s);
mi->mi_close_pid(mi, s->s_dvb_mux, s->s_pcr_pid, MPS_STREAM, s);
/* Close all PIDs (the component filter may be changed at runtime) */
TAILQ_FOREACH(st, &s->s_components, es_link) {
if (st->es_type != SCT_CA)
mi->mi_close_pid(mi, s->s_dvb_mux, st->es_pid, MPS_STREAM, s);