[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