Bug 647498 - xvidenc not forwarding caps
xvidenc not forwarding caps
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal major
: 0.10.22
Assigned To: GStreamer Maintainers
GStreamer Maintainers
:
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2011-04-11 20:24 UTC by Christian Fredrik Kalager Schaller
Modified: 2011-04-13 18:28 UTC (History)
1 user (show)

See Also:
GNOME target: ---
GNOME version: ---


Attachments
pipeline graph (576.08 KB, image/png)
2011-04-13 17:53 UTC, Christian Fredrik Kalager Schaller
Details

Description Christian Fredrik Kalager Schaller 2011-04-11 20:24:17 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
Comment 1 Sebastian Dröge (slomo) 2011-04-13 14:54:10 UTC
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?
Comment 2 Christian Fredrik Kalager Schaller 2011-04-13 17:53:59 UTC
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.
Comment 3 Sebastian Dröge (slomo) 2011-04-13 17:59:24 UTC
Ah yes, for that a getcaps function has to be implemented in xvidenc (and x264enc and probably others). Will look at this later
Comment 4 Sebastian Dröge (slomo) 2011-04-13 18:28:14 UTC
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.

Note You need to log in before you can comment on or make changes to this bug.