]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
plumbing plugins: multiple SMT_START might occur when filtered components are empty
authorJaroslav Kysela <perex@perex.cz>
Thu, 13 Oct 2016 18:53:16 +0000 (20:53 +0200)
committerJaroslav Kysela <perex@perex.cz>
Thu, 13 Oct 2016 18:58:58 +0000 (20:58 +0200)
src/plumbing/globalheaders.c
src/plumbing/transcoding.c
src/plumbing/tsfix.c

index 7ccd67cd7e8c6b0877cd1f4f9e887eeb96c1983f..52e906af1572846de51fd16ce8945e34cdf56741 100644 (file)
@@ -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;
 
index 630bb62b8b832d228eb758ddacdf848f6e55b772..1f2427bd0bba991c975ae39591976f09fe1bdf8e 100644 (file)
@@ -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;
index e12f97358761ac39d2778d0eb7b1a2c847960612..35ad025b425734538aced3c2538bab4ba8894bf2 100644 (file)
@@ -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);