[gstreamer-bugs] [Bug 311848] Renegotiation broken
bugzilla-daemon at bugzilla.gnome.org
bugzilla-daemon at bugzilla.gnome.org
Thu Jul 28 08:48:46 PDT 2005
Please DO NOT reply to this by email. All additional comments should be made in
the comments box of this bug report.
http://bugzilla.gnome.org/show_bug.cgi?id=311848
GStreamer | gstreamer (core) | Ver: HEAD CVS
------- Additional Comments From Ronald Bultje 2005-07-28 15:48 -------
Created an attachment (id=49886)
--> (http://bugzilla.gnome.org/attachment.cgi?id=49886&action=view)
attempt
Above patch tries to implement it.
*) for some reason, it just doesn't work; part of the reason may be that
gst_pad_accept_caps() falsely succeeds.
*) gst_pad_accept_caps() is not recursive, which makes it practically useless,
see above. The reason that it's not recursive is that it calls
gst_pad_get_caps() instead of gst_pad_get_allowed_caps().
*) however, gst_pad_get_allowed_caps() leads to deadlocks.
More design-wise:
*) should videotestsrc ! sizefilter ! queue ! videoscale ! ximagesink have
videotestsrc do the scaling, or should videoscale do it, or should videoscale
do it for cached buffers of the old size and videotestsrc for the rest?
gst_pad_proxy_alloc_buffer() isn't very useful in any of those cases, because
it does not renegotiate the sourcepad doing the buffer request.
*) in-place elements should never change their sourcepad caps without sinkpad
caps being changed and should proxy buffer-alloc calls. Not-in-place elements
should not proxy buffer-alloc calls and call those themselves. But what about
elements that are sometimes in place and sometimes not (ffmpegcolorspace,
videoscale)? How to efficiently implement the ideal behaviour?
I don't really know how to make this system work for the non-synchronous case
(so anything with a queue in it)...
------- You are receiving this mail because: -------
You are the assignee for the bug.
You are the QA contact for the bug.
More information about the Gstreamer-bugs
mailing list