After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 504760 - Videoscale element keeps renegotiating endlessly
Videoscale element keeps renegotiating endlessly
Status: RESOLVED NOTABUG
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
git master
Other Linux
: Normal major
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-12-20 21:43 UTC by Benjamin Schmitz
Modified: 2007-12-21 10:00 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Benjamin Schmitz 2007-12-20 21:43:10 UTC
Introduction:

I was developing a gstreamer-enabled player application in python using the gst-python bindings when I discovered that my application does not work with video sinks that lack hardware scaling and hence require a videoscale element.

I did add a videoscale element to the pipeline, but it's not doing it's job correctly: as soon as you resize the video window it will start to renegotiate endlessly and does not scale at all anymore.

I have extracted the core player part from my application so you can reproduce this bug.

Steps to reproduce:

1. download my code from http://wolpzone.de/dir/vortex/azure_minimal.tar.gz and extract the archive

2. run wrapper.py with "/some/file" as argument

3. resize the video window

4. watch what happens

Expected result:

The Video is resized nicely along with the window.

Actual result:

The Video is not resized at all. Framerate drops to 0 and CPU load raises to 100%.

Additional information:

The player code is contained in azure_core.py. Take a look at the Videobin class there, it contains the videoscale element and video sink.
Comment 1 Wim Taymans 2007-12-21 10:00:50 UTC
The custom Tagcatcher element says that it can accept ANY caps on the sinkpad, making the sink believe it can perform the image scaling, which it then doesn't do.

The getcaps function on the srcpad should return the result of peer_get_caps on the srcpad.

I'm not sure there is anything else that can be done. Maybe the videosink can only try to renegotiate once instead of trying repeadedly.