[Bug 725145] libde265 based HEVC/H.265 decoder plugin

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Thu Aug 28 10:01:56 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=725145
  GStreamer | gst-plugins-bad | git

--- Comment #10 from Joachim Bauch <jojo at struktur.de> 2014-08-28 17:01:51 UTC ---
(In reply to comment #9)
> > > @@ +283,3 @@
> > > +  GstVideoInfo *info;
> > > +
> > > +  frame = gst_video_decoder_get_frame (base, dec->frame_number);
> > > 
> > > Why this usage of dec->frame_number, which is bsaically the current system
> > > frame number?
> > 
> > This function is called from the decoder, so it needs to access the current
> > frame. I was looking into gst-ffmpeg as a reference how direct rendering should
> > be implemented. Is there a better way to do this?
> 
> But that will always give the current frame number to the decoder. Is it
> guaranteed that it will never be called for an older frame?

Yes, as the plugin is triggering the decoding immediately after pushing data
into the decoder, so it will call the "get_buffer" function for the currently
decoded frame.

> > > This uses the input frame for output if I'm not mistaken... which is going to
> > > cause problems if the input is not in presentation order.
> > 
> > As before I was following gst-ffmpeg on this. I have a couple of streams for
> > testing where the input is not in presentation order, but don't see any obvious
> > problems.
> 
> As this is in the code path without direct rendering, did you make sure it goes
> through that actually? The problem here is that you will output the current
> GstVideoCodecFrame (which has the current PTS and DTS) with an actual video
> frame that has a DTS before the current one, but has the PTS of the frame that
> should come now.

I also tested the code with the non-direct rendering path which runs fine with
my non-presentation order streams. Shouldn't that be the case anyway as the
plugin returns frames with correct PTS?

> Where do you make sure to drain all remaining frames from the decoder at EOS?

Right, I just noticed the "finish" function was missing. Will add that.

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