[Bug 720597] decodebin: query allocation always sent twice

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Dec 18 02:32:32 PST 2013


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

--- Comment #5 from Julien Isorce <julien.isorce at gmail.com> 2013-12-18 10:32:27 UTC ---
(In reply to comment #3)
> No you're right :) The flag should be unset somewhere in the middle of the
> allocation procedure before doing the allocation query


I was about to do the fix like the following in
gst_video_decoder_negotiate_default:

 ret = gst_pad_set_caps (decoder->srcpad, state->caps);
+if (ret)
+  gst_pad_check_reconfigure (decoder->srcpad);


But then I noticed that when using playbin (or even 2 decodebin: gst-launch-1.0
filesrc location=/home/julien/Videos/mp4/big_buck_bunny.mp4 ! decodebin !
decodebin !  xvimagesink )

then the call gst_pad_peer_query set the reconfigure flag.

So maybe clearing  the flag before calling klass->decide_allocation (decoder,
query) is a better place than between gst_pad_set_caps and gst_pad_peer_query.

So something like that in gst_video_decoder_negotiate_pool:

+gst_pad_check_reconfigure (decoder->srcpad);
+
 g_assert (klass->decide_allocation != NULL);
 ret = klass->decide_allocation (decoder, query);

what do you think ?

Also I think in the end this patch will increase the time that the pipeline
spends before reaching the PAUSED state, mostly for big graphs.

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