gst/videorate/gstvideorate.c: There is no sensible way to handle incoming buffers...
authorEdward Hervey <bilboed@bilboed.com>
Thu, 3 May 2007 10:47:22 +0000 (10:47 +0000)
committerEdward Hervey <bilboed@bilboed.com>
Thu, 3 May 2007 10:47:22 +0000 (10:47 +0000)
Original commit message from CVS:
* gst/videorate/gstvideorate.c: (gst_video_rate_chain):
There is no sensible way to handle incoming buffers which don't have a
valid timestamp. We therefore discard them and wait for the next one.

ChangeLog
gst/videorate/gstvideorate.c

index f2ec139..08d4a57 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-05-03  Edward Hervey  <edward@fluendo.com>
+
+       * gst/videorate/gstvideorate.c: (gst_video_rate_chain):
+       There is no sensible way to handle incoming buffers which don't have a
+       valid timestamp. We therefore discard them and wait for the next one.
+
 2007-05-01  Tim-Philipp Müller  <tim at centricular dot net>
 
        * gst/playback/gstdecodebin.c: (type_found), (plugin_init):
index d71f051..b6cf25c 100644 (file)
@@ -569,6 +569,9 @@ gst_video_rate_chain (GstPad * pad, GstBuffer * buffer)
 
   in_ts = GST_BUFFER_TIMESTAMP (buffer);
 
+  if (G_UNLIKELY (in_ts == GST_CLOCK_TIME_NONE))
+    goto invalid_buffer;
+
   GST_DEBUG_OBJECT (videorate, "got buffer with timestamp %" GST_TIME_FORMAT,
       GST_TIME_ARGS (in_ts));
 
@@ -683,6 +686,14 @@ not_negotiated:
     res = GST_FLOW_NOT_NEGOTIATED;
     goto done;
   }
+
+invalid_buffer:
+  {
+    GST_WARNING_OBJECT (videorate,
+        "Got buffer with GST_CLOCK_TIME_NONE timestamp, discarding it");
+    gst_buffer_unref (buffer);
+    goto done;
+  }
 }
 
 static void