videodecoder: Handle return value of gst_video_decoder_drain()
authorSebastian Dröge <sebastian@centricular.com>
Tue, 28 Feb 2017 13:11:42 +0000 (15:11 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Tue, 28 Feb 2017 13:11:42 +0000 (15:11 +0200)
CID 1362896

gst-libs/gst/video/gstvideodecoder.c

index 28a9f49..5ff48eb 100644 (file)
@@ -2152,9 +2152,9 @@ gst_video_decoder_chain_forward (GstVideoDecoder * decoder,
      * Also this function is only called for reverse playback to gather frames
      * GOP by GOP, and does not do any actual decoding. That would be done by
      * flush_decode() */
-    if (was_keyframe && decoder->input_segment.rate > 0.0
+    if (ret == GST_FLOW_OK && was_keyframe && decoder->input_segment.rate > 0.0
         && (decoder->input_segment.flags & GST_SEEK_FLAG_TRICKMODE_KEY_UNITS))
-      gst_video_decoder_drain_out (decoder, FALSE);
+      ret = gst_video_decoder_drain_out (decoder, FALSE);
   } else {
     gst_adapter_push (priv->input_adapter, buf);