]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
pass muxer: correct SI length for trimed events
authorJaroslav Kysela <perex@perex.cz>
Mon, 3 Dec 2018 17:58:09 +0000 (18:58 +0100)
committerJaroslav Kysela <perex@perex.cz>
Mon, 3 Dec 2018 17:58:09 +0000 (18:58 +0100)
src/muxer/muxer_pass.c

index 8b3bba973353be9d91af21983e993319c70ab6a2..751046eae3478c5cd0827084b89109a11bec39b1 100644 (file)
@@ -361,8 +361,12 @@ 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)
+  if (sid != pm->pm_src_sid) {
     len = 14; /* no events, just keep the SI tables consistent */
+    sbuf[1] &= 0xf0;
+    sbuf[1] |= (len - 3) & 0x0f;
+    sbuf[2] = (len - 3) & 0xff;
+  }
 
   len = dvb_table_append_crc32(sbuf, len, len + 4);
   if (len > 0 && (olen = dvb_table_remux(mt, sbuf, len, &out)) > 0) {