From: Lauri Myllari Date: Fri, 9 Jan 2015 18:08:06 +0000 (-0800) Subject: mpegts: store ATSC source_id to allow associating EIT X-Git-Tag: v4.2.1~1837 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=322f935ae183864141b95e147dc2dabc616934ce;p=thirdparty%2Ftvheadend.git mpegts: store ATSC source_id to allow associating EIT --- diff --git a/src/input/mpegts.h b/src/input/mpegts.h index bc748eb0a..0f61f3cab 100644 --- a/src/input/mpegts.h +++ b/src/input/mpegts.h @@ -549,6 +549,7 @@ struct mpegts_service int s_dvb_eit_enable; uint64_t s_dvb_opentv_chnum; uint16_t s_dvb_opentv_id; + uint16_t s_atsc_source_id; /* * Link to carrying multiplex and active adapter diff --git a/src/input/mpegts/dvb_psi.c b/src/input/mpegts/dvb_psi.c index 194b5ecf7..01462520f 100644 --- a/src/input/mpegts/dvb_psi.c +++ b/src/input/mpegts/dvb_psi.c @@ -1625,6 +1625,7 @@ atsc_vct_callback int i, r, sect, last, ver, extraid, save, dlen; int maj, min, count; uint16_t tsid, sid, type; + uint16_t srcid; char chname[256]; mpegts_mux_t *mm = mt->mt_mux, *mm_orig = mm; mpegts_network_t *mn = mm->mm_network; @@ -1660,11 +1661,13 @@ atsc_vct_callback tsid = (ptr[22]) << 8 | ptr[23]; sid = (ptr[24]) << 8 | ptr[25]; type = ptr[27] & 0x3f; + srcid = (ptr[28]) << 8 | ptr[29]; tvhdebug("vct", "tsid %04X (%d)", tsid, tsid); tvhdebug("vct", "sid %04X (%d)", sid, sid); tvhdebug("vct", "chname %s", chname); tvhdebug("vct", "chnum %d.%d", maj, min); tvhdebug("vct", "type %02X (%d)", type, type); + tvhdebug("vct", "srcid %04X (%d)", srcid, srcid); /* Skip */ if (type > 3) @@ -1687,6 +1690,11 @@ atsc_vct_callback s->s_dvb_channel_minor = min; save = 1; } + if (s->s_atsc_source_id != srcid) { + s->s_atsc_source_id = srcid; + save = 1; + } + /* Save */ if (save) s->s_config_save((service_t*)s); diff --git a/src/input/mpegts/mpegts_service.c b/src/input/mpegts/mpegts_service.c index 77d446ffa..7674968f3 100644 --- a/src/input/mpegts/mpegts_service.c +++ b/src/input/mpegts/mpegts_service.c @@ -137,6 +137,13 @@ const idclass_t mpegts_service_class = .opts = PO_RDONLY, .off = offsetof(mpegts_service_t, s_dvb_opentv_chnum), }, + { + .type = PT_U16, + .id = "srcid", + .name = "ATSC Source ID", + .opts = PO_RDONLY, + .off = offsetof(mpegts_service_t, s_atsc_source_id), + }, { .type = PT_STR, .id = "svcname",