Revert "videodecoder: drain current segment upon new one to ensure correct flow return"
authorMark Nauwelaerts <mnauw@users.sourceforge.net>
Sun, 22 Feb 2015 15:57:57 +0000 (16:57 +0100)
committerMark Nauwelaerts <mnauw@users.sourceforge.net>
Sun, 22 Feb 2015 15:59:08 +0000 (16:59 +0100)
This reverts commit cc1b4eaf9ebe4568f9c2c64338cef1b2edbdca3f.

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

gst-libs/gst/video/gstvideodecoder.c

index c7e637d6342713ff351a36ffc9ca7f5bfe577227..f4b41364cd74fd516d92a4306e9ba7334d3e53da 100644 (file)
@@ -1123,16 +1123,6 @@ gst_video_decoder_sink_event_default (GstVideoDecoder * decoder,
     {
       GstSegment segment;
 
-      /* need to drain here because:
-       * - done in case of GAP and this is no less invasive
-       * - upstream now thinks in terms of a new segment so it will get
-       *   confused if remaining data of the old segment is delay decoded, then
-       *   dropped with EOS return due to clipping
-       * - it is said in @finish documentation subclass should expect this upon
-       *   end of a segment and be able to handle this
-       */
-      gst_video_decoder_drain_out (decoder, TRUE);
-
       gst_event_copy_segment (event, &segment);
 
       if (segment.format == GST_FORMAT_TIME) {
@@ -2839,14 +2829,12 @@ gst_video_decoder_clip_and_push_buf (GstVideoDecoder * decoder, GstBuffer * buf)
         GST_TIME_ARGS (start), GST_TIME_ARGS (stop),
         GST_TIME_ARGS (segment->start),
         GST_TIME_ARGS (segment->stop), GST_TIME_ARGS (segment->time));
-#if 1
     if (segment->rate >= 0) {
       if (GST_BUFFER_PTS (buf) >= segment->stop)
         ret = GST_FLOW_EOS;
     } else if (GST_BUFFER_PTS (buf) < segment->start) {
       ret = GST_FLOW_EOS;
     }
-#endif
     gst_buffer_unref (buf);
     goto done;
   }