From bf75b272f67e76bf59eaa8b2f6aece8f044698c7 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Thu, 13 Oct 2016 20:53:16 +0200 Subject: [PATCH] plumbing plugins: multiple SMT_START might occur when filtered components are empty --- src/plumbing/globalheaders.c | 3 ++- src/plumbing/transcoding.c | 1 + src/plumbing/tsfix.c | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) 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); -- 2.47.3