Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
mpegts open service: do not add pid multiple times, handle filtered P…
…IDs correctly
  • Loading branch information
perexg committed Mar 17, 2015
1 parent fd24aa9 commit 2665e13
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions src/input/mpegts/mpegts_input.c
Expand Up @@ -554,13 +554,17 @@ mpegts_input_open_service ( mpegts_input_t *mi, mpegts_service_t *s, int flags,
mpegts_pid_add(pids, s->s_pmt_pid);
mpegts_pid_add(pids, s->s_pcr_pid);
/* Open only filtered components here */
TAILQ_FOREACH(st, &s->s_filt_components, es_filt_link) {
TAILQ_FOREACH(st, &s->s_filt_components, es_filt_link)
if (st->es_type != SCT_CA) {
st->es_pid_opened = 1;
mi->mi_open_pid(mi, s->s_dvb_mux, st->es_pid, MPS_SERVICE, s);
mpegts_pid_add(pids, st->es_pid);
}
}

/* Ensure that filtered PIDs are not send in ts_recv_raw */
TAILQ_FOREACH(st, &s->s_filt_components, es_filt_link)
if (st->es_type != SCT_CA)
if (!mpegts_pid_exists(pids, st->es_pid))
mpegts_pid_add(pids, st->es_pid);

LIST_FOREACH(s2, &s->s_masters, s_masters_link) {
pthread_mutex_lock(&s2->s_stream_mutex);
Expand Down

0 comments on commit 2665e13

Please sign in to comment.