From 88e06607b004e852b2c03155e8e0dde7af37e97e Mon Sep 17 00:00:00 2001 From: Adam Sutton Date: Tue, 24 Dec 2013 23:49:39 +0000 Subject: [PATCH] mpegts: ensure that PCR (and PMT) are properly opened by service and recorded. Fixes #1884. --- src/input/mpegts/dvb_psi.c | 1 + src/input/mpegts/mpegts_input.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/input/mpegts/dvb_psi.c b/src/input/mpegts/dvb_psi.c index 1904f6b0..9727a3fd 100644 --- a/src/input/mpegts/dvb_psi.c +++ b/src/input/mpegts/dvb_psi.c @@ -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; diff --git a/src/input/mpegts/mpegts_input.c b/src/input/mpegts/mpegts_input.c index 9e1e0e8c..ead26106 100644 --- a/src/input/mpegts/mpegts_input.c +++ b/src/input/mpegts/mpegts_input.c @@ -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);