mpegts: ensure that PCR (and PMT) are properly opened by service and recorded.

Fixes #1884.
This commit is contained in:
Adam Sutton 2013-12-24 23:49:39 +00:00
parent 821a854d90
commit 88e06607b0
2 changed files with 5 additions and 0 deletions

View file

@ -1346,6 +1346,7 @@ psi_parse_pmt
t->s_pcr_pid = pcr_pid;
update |= PMT_UPDATE_PCR;
}
tvhdebug("pmt", " pcr_pid %04X", pcr_pid);
ptr += 9;
len -= 9;

View file

@ -226,6 +226,8 @@ mpegts_input_open_service ( mpegts_input_t *mi, mpegts_service_t *s, int init )
/* Register PIDs */
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)
mi->mi_open_pid(mi, s->s_dvb_mux, st->es_pid, MPS_STREAM, s);
@ -247,6 +249,8 @@ mpegts_input_close_service ( mpegts_input_t *mi, mpegts_service_t *s )
/* Close PID */
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);
TAILQ_FOREACH(st, &s->s_components, es_link)
mi->mi_close_pid(mi, s->s_dvb_mux, st->es_pid, MPS_STREAM, s);