[Bug 720597] New: decodebin: query allocation always sent twice

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Dec 17 04:07:39 PST 2013


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

           Summary: decodebin: query allocation always sent twice
    Classification: Platform
           Product: GStreamer
           Version: 1.2.1
        OS/Version: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-base
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: julien.isorce at gmail.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Created an attachment (id=264406)
 View: https://bugzilla.gnome.org/attachment.cgi?id=264406
 Review: https://bugzilla.gnome.org/review?bug=720597&attachment=264406

videodecoder: make sure reconfigure flag is unset when negotiated

* steps to reproduce: gst-launch-1.0 filesrc
location=/home/julien/Videos/mp4/big_buck_bunny.mp4 ! decodebin ! xvimagesink

* but it does not happen when setting the decode chain manually: gst-launch-1.0
filesrc location=/home/julien/Videos/mp4/big_buck_bunny.mp4 ! qtdemux !
avdec_h264 ! xvimagesink

* what happen:

- gst_video_decoder_negotiate is called from the decoder
- gst_pad_check_reconfigure (decoder->srcpad); is called from
gst_video_decoder_negotiate so NEED_RECONFIGURE flag is unset on decoder src
pad
- then gst_video_decoder_negotiate_default is called which itself calls
gst_pad_set_caps.
in the mean time gst_pad_link_full between the decodebin and the sink
which create a reconfigure event.
- the result is that before this "gst_pad_set_caps" call the reconfigure flag
is unset and just after "gst_pad_set_caps" the reconfigure flag is marked
reconfigure.

So that the gst_pad_check_reconfigure call from gst_video_decoder_negotiate is
crossed out (like no effect)

I think gst_pad_set_caps implies the link of the decodebin src pad but I'm not
sure why. So that this is 100% reproductible.

- the solution is to move gst_pad_check_reconfigure (decoder->srcpad); to the
end of gst_video_decoder_negotiate, so that we make sure the reconfigure flag
is unset when returing from this function.

I'm not sure if the attached patch is just a workaround or if something should
also be fixed in decodebin.
In the case the patch is ok let me know and I'll do it for videoencoder,
audiodec and audioenc too.

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