GNOME Bugzilla – Bug 647498
xvidenc not forwarding caps
Last modified: 2011-04-13 18:28:14 UTC
xvidenc breaks the pipeline when you try to set caps of encodebin since it doesn't forward the caps. This means that when I try to get encodebin to resize a video the pipeline hangs as the new size never reaches videoscale from the capsfilter found after xvidenc in the encodebin pipeline
What do you mean by forwarding caps? Do you have a testcase? xvidenc forwards the caps (i.e. the framerate, width, height, PAR) the same way as x264enc from what I see. The only thing that could be improved here is implementing a getcaps function that converts the downstream and upstream caps. Is this what you mean and do you need the same for x264enc?
Created attachment 185896 [details] pipeline graph As you can see in attached pipeline dump from Transmageddon the caps set on the last caps filter never reaches the videoscale in the pipeline, seeming stopping behind the xvidenc element.
Ah yes, for that a getcaps function has to be implemented in xvidenc (and x264enc and probably others). Will look at this later
Here's the change for xvidenc. Please test this with other encoders too, I'll add this to x264enc now but I'm sure other encoders have the same problem :) commit d309cd5771615c11fd0a02c3191f41c8bbafbed6 Author: Sebastian Dröge <sebastian.droege@collabora.co.uk> Date: Wed Apr 13 20:26:11 2011 +0200 xvidenc: Implement getcaps function This allows to set width/height/etc restrictions to be set downstream. Fixes bug #647498.