ac3parse: fix not-linked handling causing glitches when selecting stream
authorSky Juan <skyjuan@realtek.com>
Mon, 14 Aug 2017 07:28:22 +0000 (15:28 +0800)
committerTim-Philipp Müller <tim@centricular.com>
Wed, 16 Aug 2017 13:09:31 +0000 (14:09 +0100)
Fix chain function not handling not-linked from baseparse.

When an input data is separated into 2 buffers, the second buffer
would not be pushed into the adapter if baseparse returns not-linked
for first buffer.

This caused glitches when switching streams and selecting
a stream that was previously unselected.

https://bugzilla.gnome.org/show_bug.cgi?id=786268

gst/audioparsers/gstac3parse.c

index ae75038..afc8770 100644 (file)
@@ -728,7 +728,7 @@ gst_ac3_parse_chain_priv (GstPad * pad, GstObject * parent, GstBuffer * buf)
     GST_BUFFER_DTS (subbuf) = GST_CLOCK_TIME_NONE;
     GST_BUFFER_PTS (subbuf) = GST_CLOCK_TIME_NONE;
     ret = ac3parse->baseparse_chainfunc (pad, parent, subbuf);
-    if (ret != GST_FLOW_OK) {
+    if (ret != GST_FLOW_OK && ret != GST_FLOW_NOT_LINKED) {
       gst_buffer_unref (buf);
       goto done;
     }