vrawdepay: return output buffer from process
authorWim Taymans <wim.taymans@collabora.co.uk>
Wed, 24 Apr 2013 14:24:25 +0000 (16:24 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Wed, 24 Apr 2013 14:24:25 +0000 (16:24 +0200)
Return the output buffer from the process function instead of pushing
it ourselves. This way, the subclass can actually deal with the return
value of the push.

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

gst/rtp/gstrtpvrawdepay.c

index e597858..c2fca1b 100644 (file)
@@ -301,6 +301,7 @@ gst_rtp_vraw_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   GstRTPBuffer rtp = { NULL };
   GstVideoFrame frame;
   gboolean marker;
+  GstBuffer *outbuf = NULL;
 
   rtpvrawdepay = GST_RTP_VRAW_DEPAY (depayload);
 
@@ -528,13 +529,11 @@ gst_rtp_vraw_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
 
   if (marker) {
     GST_LOG_OBJECT (depayload, "marker, flushing frame");
-    if (rtpvrawdepay->outbuf) {
-      gst_rtp_base_depayload_push (depayload, rtpvrawdepay->outbuf);
-      rtpvrawdepay->outbuf = NULL;
-    }
+    outbuf = rtpvrawdepay->outbuf;
+    rtpvrawdepay->outbuf = NULL;
     rtpvrawdepay->timestamp = -1;
   }
-  return NULL;
+  return outbuf;
 
   /* ERRORS */
 unknown_sampling: