[gst-cvs] gst-plugins-base: oggdemux: Don' t reset the pad when pushing resulted in NOT_LINKED

Sebastian Dröge slomo at kemper.freedesktop.org
Mon Aug 30 06:54:40 PDT 2010


Module: gst-plugins-base
Branch: master
Commit: 6357bdef63b1f6fca0890c1b98132e5ba54f71df
URL:    http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=6357bdef63b1f6fca0890c1b98132e5ba54f71df

Author: Sebastian Dröge <sebastian.droege at collabora.co.uk>
Date:   Mon Aug 30 15:50:26 2010 +0200

oggdemux: Don't reset the pad when pushing resulted in NOT_LINKED

The pad might be linked later and after resetting it it will
only work after resetting all of oggdemux.

---

 ext/ogg/gstoggdemux.c |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/ext/ogg/gstoggdemux.c b/ext/ogg/gstoggdemux.c
index 6716c15..cb1f2dd 100644
--- a/ext/ogg/gstoggdemux.c
+++ b/ext/ogg/gstoggdemux.c
@@ -992,7 +992,9 @@ gst_ogg_pad_stream_out (GstOggPad * pad, gint npackets)
       case 1:
         GST_LOG_OBJECT (ogg, "packetout gave packet of size %ld", packet.bytes);
         result = gst_ogg_pad_submit_packet (pad, &packet);
-        if (result != GST_FLOW_OK)
+        if (result == GST_FLOW_NOT_LINKED)
+          goto not_linked;
+        else if (result <= GST_FLOW_UNEXPECTED)
           goto could_not_submit;
         break;
       default:
@@ -1010,6 +1012,16 @@ gst_ogg_pad_stream_out (GstOggPad * pad, gint npackets)
   return result;
 
   /* ERRORS */
+not_linked:
+  {
+    GST_WARNING_OBJECT (ogg,
+        "could not submit packet for stream %08lx, error: %d",
+        pad->map.serialno, result);
+    /* Not resetting the pad here because it might be linked
+     * later and should work without problems then.
+     */
+    return result;
+  }
 could_not_submit:
   {
     GST_WARNING_OBJECT (ogg,





More information about the Gstreamer-commits mailing list