From: Jaroslav Kysela Date: Thu, 13 Oct 2016 18:53:16 +0000 (+0200) Subject: plumbing plugins: multiple SMT_START might occur when filtered components are empty X-Git-Tag: v4.2.1~268 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bf75b272f67e76bf59eaa8b2f6aece8f044698c7;p=thirdparty%2Ftvheadend.git plumbing plugins: multiple SMT_START might occur when filtered components are empty --- diff --git a/src/plumbing/globalheaders.c b/src/plumbing/globalheaders.c index 7ccd67cd7..52e906af1 100644 --- a/src/plumbing/globalheaders.c +++ b/src/plumbing/globalheaders.c @@ -329,7 +329,8 @@ gh_hold(globalheaders_t *gh, streaming_message_t *sm) break; case SMT_START: - assert(gh->gh_ss == NULL); + if (gh->gh_ss) + gh_flush(gh); gh_start(gh, sm); break; diff --git a/src/plumbing/transcoding.c b/src/plumbing/transcoding.c index 630bb62b8..1f2427bd0 100644 --- a/src/plumbing/transcoding.c +++ b/src/plumbing/transcoding.c @@ -2033,6 +2033,7 @@ transcoder_input(void *opaque, streaming_message_t *sm) break; case SMT_START: + transcoder_stop(t); ss = transcoder_start(t, sm->sm_data); streaming_start_unref(sm->sm_data); sm->sm_data = ss; diff --git a/src/plumbing/tsfix.c b/src/plumbing/tsfix.c index e12f97358..35ad025b4 100644 --- a/src/plumbing/tsfix.c +++ b/src/plumbing/tsfix.c @@ -574,6 +574,7 @@ tsfix_input(void *opaque, streaming_message_t *sm) return; case SMT_START: + tsfix_stop(tf); tsfix_start(tf, sm->sm_data); if (tf->tf_wait_for_video) { streaming_msg_free(sm);