[Bug 675773] Reverse video playback does not work anymore

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Jun 12 17:34:03 PDT 2012


https://bugzilla.gnome.org/show_bug.cgi?id=675773
  GStreamer | gst-plugins-base | 0.10.x

Jan Schmidt <thaytan> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |thaytan at mad.scientist.com

--- Comment #4 from Jan Schmidt <thaytan at mad.scientist.com> 2012-06-13 00:33:58 UTC ---
That's effectively what the patch I put in theoradec does, although it doesn't
seem to be a complete fix. With that patch, it'll play backward for a little
bit, and then stop - I suspect when it tries to loop backward to the
next/previous segment, although I didn't debug it yet.

The question is, is it appropriate to fix it like I did and require that
subclasses *always* call either gst_video_decoder_finish_frame() or
gst_video_decoder_drop_frame() for a given input frame, or is it better to put
the call to gst_video_decoder_drop_frame() in the base class as a response to
the GST_VIDEO_DECODER_FLOW_NEED_DATA return value?

commit 2fbb803d85295fe1b69ccb0425b81d3dd9db0fe5
Author: Jan Schmidt <thaytan at noraisin.net>
Date:   Wed Jun 13 03:17:27 2012 +1000

    theoradec: Always inform base class when dropping frames

    Partially fixes backwards playback. Informing the base class
    of the dropped frame lets it manage the timestamping and events
    better.

diff --git a/ext/theora/gsttheoradec.c b/ext/theora/gsttheoradec.c
index 317d05a..4ea7803 100644
--- a/ext/theora/gsttheoradec.c
+++ b/ext/theora/gsttheoradec.c
@@ -819,6 +819,7 @@ theora_dec_handle_frame (GstVideoDecoder * bdec,
GstVideoCodecFrame * frame)
       res = gst_video_decoder_finish_frame (bdec, frame);
       break;
     case GST_CUSTOM_FLOW_DROP:
+    case GST_VIDEO_DECODER_FLOW_NEED_DATA:
       res = gst_video_decoder_drop_frame (bdec, frame);
       break;
     default:

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list