From: Jaroslav Kysela Date: Mon, 29 Jan 2018 14:50:05 +0000 (+0100) Subject: linuxdvb: fix the pid management (full mux to pid filter transition), fixes #4895 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9c01ff64ab6190ad397f7ecd105eefefad671d88;p=thirdparty%2Ftvheadend.git linuxdvb: fix the pid management (full mux to pid filter transition), fixes #4895 --- diff --git a/src/input/mpegts/linuxdvb/linuxdvb_frontend.c b/src/input/mpegts/linuxdvb/linuxdvb_frontend.c index 0e75259c6..3deb6aef6 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_frontend.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_frontend.c @@ -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);