[Bug 742922] vaapidecode: support reverse playback

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Jun 29 18:09:30 UTC 2016


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

--- Comment #31 from Víctor Manuel Jáquez Leal <vjaquez at igalia.com> ---
Review of attachment 328781:
 --> (https://bugzilla.gnome.org/review?bug=742922&attachment=328781)

Hey! 

I just tested it. As we talked, it is not perfect, there are bad spots, but
overall it is a great achievement!

A couple comments:

I would like to split this patch in two: one for the vmethod and other for the
frame dropping in decoder.

We need to find a way to make the reverse playback terser. Have you checked
GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT?? Perhaps we could avoid the deadlock
with it.

::: gst/vaapi/gstvaapidecode.c
@@ +537,3 @@
+  if (decode->in_segment.rate < 0.0
+      && !GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT (out_frame)) {
+    GST_DEBUG_OBJECT (decode, "drop frame in reverse playback");

I would use GST_TRACE_OBJECT to avoid a flood of debug messages

@@ +1247,3 @@
+  }
+
+  ret = GST_VIDEO_DECODER_CLASS (parent_class)->sink_event (vdec, event);

This ret variable seems not need. I would code it like

switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_SEGMENT:
  gst_event_copy_segment (event, &decode->in_segment);
  break;
default:
  break;
}

return GST_VIDEO_DECODER_CLASS (parent_class)->sink_event (vdec, event);

-- 
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