From: Sven Wegener Date: Fri, 13 Nov 2015 19:32:12 +0000 (+0100) Subject: mpegts: factor out service auto-enable function X-Git-Tag: v4.2.1~1546 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d1ce213d535bb3a4d7e6380a66557362e7825b91;p=thirdparty%2Ftvheadend.git mpegts: factor out service auto-enable function Signed-off-by: Sven Wegener --- diff --git a/src/input/mpegts/dvb_psi.c b/src/input/mpegts/dvb_psi.c index 5ff9a6841..21c4183e9 100644 --- a/src/input/mpegts/dvb_psi.c +++ b/src/input/mpegts/dvb_psi.c @@ -110,6 +110,17 @@ dvb_bouquet_comment ( bouquet_t *bq, mpegts_mux_t *mm ) bouquet_change_comment(bq, comment, 0); } +static void +dvb_service_autoenable( mpegts_service_t *s, const char *where ) +{ + if (!s->s_enabled && s->s_auto == SERVICE_AUTO_PAT_MISSING) { + tvhinfo("mpegts", "enabling service %s [sid %04X/%d] (found in %s)", + s->s_nicename, s->s_dvb_service_id, s->s_dvb_service_id, where); + service_set_enabled((service_t *)s, 1, SERVICE_AUTO_NORMAL); + } + s->s_dvb_check_seen = dispatch_clock; +} + #if ENABLE_MPEGTS_DVB static mpegts_mux_t * dvb_fs_mux_find ( mpegts_mux_t *mm, uint16_t onid, uint16_t tsid ) @@ -1464,14 +1475,8 @@ dvb_sdt_mux s = mpegts_service_find(mm, service_id, 0, 1, &save); charset = dvb_charset_find(mn, mm, s); - if (s) { - if (!s->s_enabled && s->s_auto == SERVICE_AUTO_PAT_MISSING) { - tvhinfo("mpegts", "enabling service %s [sid %04X/%d] (found in SDT)", - s->s_nicename, s->s_dvb_service_id, s->s_dvb_service_id); - service_set_enabled((service_t *)s, 1, SERVICE_AUTO_NORMAL); - } - s->s_dvb_check_seen = dispatch_clock; - } + if (s) + dvb_service_autoenable(s, "SDT"); /* Descriptor loop */ DVB_DESC_EACH(lptr, llen, dtag, dlen, dptr) { @@ -2420,14 +2425,9 @@ psi_parse_pmt descrambler_caid_changed((service_t *)t); } - if (service_has_audio_or_video((service_t *)t)) { - t->s_dvb_check_seen = dispatch_clock; - if (!t->s_enabled && t->s_auto == SERVICE_AUTO_PAT_MISSING) { - tvhinfo("mpegts", "enabling service %s [sid %04X/%d] (found in PAT and PMT)", - t->s_nicename, t->s_dvb_service_id, t->s_dvb_service_id); - service_set_enabled((service_t *)t, 1, SERVICE_AUTO_NORMAL); - } - } + if (service_has_audio_or_video((service_t *)t)) + dvb_service_autoenable(t, "PAT and PMT"); + return ret; }