]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
linuxdvb: fix the pid management (full mux to pid filter transition), fixes #4895
authorJaroslav Kysela <perex@perex.cz>
Mon, 29 Jan 2018 14:50:05 +0000 (15:50 +0100)
committerJaroslav Kysela <perex@perex.cz>
Mon, 29 Jan 2018 14:51:49 +0000 (15:51 +0100)
src/input/mpegts/linuxdvb/linuxdvb_frontend.c

index 0e75259c625c19b54815c22e2e0cf8af5c952b3d..3deb6aef6fa97d08d9e6e5d0c24ea5ccf9260146 100644 (file)
@@ -1334,6 +1334,8 @@ linuxdvb_update_pids ( linuxdvb_frontend_t *lfe, const char *name,
        linuxdvb_frontend_open_pid0(lfe, name, pids, pids_size, padd.pids[i].pid);
       mpegts_pid_done(&padd);
       mpegts_pid_done(&pdel);
+      mpegts_pid_done(tuned);
+      mpegts_pid_weighted(tuned, &lfe->lfe_pids, max);
     }
   }
 
@@ -1342,8 +1344,6 @@ linuxdvb_update_pids ( linuxdvb_frontend_t *lfe, const char *name,
   else if (!all && linuxdvb_pid_exists(pids, pids_size, MPEGTS_FULLMUX_PID))
     linuxdvb_frontend_close_pid0(lfe, name, pids, pids_size, MPEGTS_FULLMUX_PID);
 
-  mpegts_pid_done(tuned);
-  mpegts_pid_weighted(tuned, &lfe->lfe_pids, max);
   tuned->all = lfe->lfe_pids.all;
 
   pthread_mutex_unlock(&lfe->lfe_dvr_lock);