From: Jaroslav Kysela Date: Fri, 12 Oct 2018 06:51:50 +0000 (+0200) Subject: pass muxer: another fixed for EIT callback, issue #5062 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7e0cda035feaffbd32e321a09b2d0fe12744672c;p=thirdparty%2Ftvheadend.git pass muxer: another fixed for EIT callback, issue #5062 --- diff --git a/src/muxer/muxer_pass.c b/src/muxer/muxer_pass.c index 28ec31dea..32f127787 100644 --- a/src/muxer/muxer_pass.c +++ b/src/muxer/muxer_pass.c @@ -343,14 +343,12 @@ pass_muxer_eit_cb(mpegts_psi_table_t *mt, const uint8_t *buf, int len) uint8_t *sbuf, *out; int olen; - /* filter out the other transponders */ - if ((buf[0] < 0x50 && buf[0] != 0x4e) || buf[0] > 0x5f || len < 14) + /* filter out wrong tables */ + if (buf[0] < 0x4e || buf[0] > 0x6f || len < 14) return; pm = (pass_muxer_t*)mt->mt_opaque; sid = (buf[3] << 8) | buf[4]; - if (sid != pm->pm_src_sid) - return; /* TODO: set free_CA_mode bit to zero */ @@ -363,6 +361,9 @@ pass_muxer_eit_cb(mpegts_psi_table_t *mt, const uint8_t *buf, int len) sbuf[10] = pm->pm_dst_onid >> 8; sbuf[11] = pm->pm_dst_onid; + if (sid != pm->pm_src_sid) + len = 14; /* no events, just keep the SI tables consistent */ + len = dvb_table_append_crc32(sbuf, len, len + 4); if (len > 0 && (olen = dvb_table_remux(mt, sbuf, len, &out)) > 0) { pass_muxer_write((muxer_t *)pm, out, olen);