[Bug 721666] videodecoder: push newsegment earlier for reverse playback

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Thu Jan 9 08:41:03 PST 2014


https://bugzilla.gnome.org/show_bug.cgi?id=721666
  GStreamer | gst-plugins-base | unspecified

--- Comment #6 from Thiago Sousa Santos <thiago.sousa.santos at collabora.co.uk> 2014-01-09 16:40:58 UTC ---
(In reply to comment #5)
> I think this is only a workaround. You should not special case the segment
> event, but handle all events < segment like this and properly push them at the
> right time.

AFAIK they are being pushed on the right time, the problem is on
decoder_finish_frame:

  if (decoder->output_segment.rate < 0.0) {
    GST_LOG_OBJECT (decoder, "queued frame");
    priv->output_queued = g_list_prepend (priv->output_queued, output_buffer);
  } else {
    ret = gst_video_decoder_clip_and_push_buf (decoder, output_buffer);
  }

It needs the output_segment to be properly set to be able to know if it is
doing reverse playback and avoiding trying to push the buffers.

Note that the segment event isn't discarded or pushed at that check, it is just
applied to output_segment so this piece of code works reliably.

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