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 762736 - compositor: revert 754465
compositor: revert 754465
Status: RESOLVED INCOMPLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
1.7.2
Other All
: Normal normal
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-02-26 15:12 UTC by Philippe Renon
Modified: 2016-05-22 17:41 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Philippe Renon 2016-02-26 15:12:10 UTC
I am pretty sure that https://bugzilla.gnome.org/show_bug.cgi?id=754465 should be reversed has it now addresses no issues and adds unnecessary complexity to the compositor.

See https://bugzilla.gnome.org/show_bug.cgi?id=757610 for related discussions.

This pipeline was used for testing:

compositor name=mixer ! videoconvert ! autovideosink \
videotestsrc ! queue ! mixer. \
udpsrc port=9000 ! textrender ! videorate drop-only=true ! video/x-raw, framerate=10/1 ! queue ! mixer.

Starting it and sending an udp packet to port 9000 will result in this error:

ERREUR¦: de l'element /GstPipeline:pipeline0/GstCompositor:mixer¦: At least one of the input pads contains alpha, but downstream can't support alpha.
Information de d¦bogage suppl¦mentaire¦:
../../../../gst-plugins-bad-1.6.3/gst-libs/gst/video/gstvideoaggregator.c(587): gst_videoaggregator_update_converters (): /GstPipeline:pipeline0/GstCompositor:mixer:
Either convert your inputs to not contain alpha or add a videoconvert after the aggregator

This error is expected and clear. Adding the converter as suggested works and the pipeline will run fine with it.

Now, reverting the fix for 757610 (by simply forcing has_alpha to TRUE in gst_videoaggregator_pad_sink_getcaps()) and re-running the above test will yield the exact same result. The fact that downstream does not support alpha is handled (in all cases) in gst_videoaggregator_update_converters(). This method properly detects that downstream does not support alpha and provides an explicit error message when needed.

This leads me to believe that the fix for 754465 is now obsolete and only adds unneeded complexity to the compositor code.
Comment 1 Thiago Sousa Santos 2016-02-26 17:14:50 UTC
The problem is that, by not filtering alpha formats in getcaps, compositor will report to upstream that it can support alpha formats when it can't.

Imagine a scenario where upstream elements are able to provide both alpha and non-alpha formats and compositor claims to accept both while it will ultimately fail if it receives alpha. In this scenario the getcaps function will let upstream select alpha or non-alpha when, in truth, only non-alpha should be possible.
Comment 2 Philippe Renon 2016-02-26 17:21:22 UTC
Ok, I get it now...

I'll try to reproduce this case and will report back.
Comment 3 Tim-Philipp Müller 2016-04-23 14:36:14 UTC
Setting to NEEDINFO awaiting further information.

There may have been other related commits in the mean time fwiw.
Comment 4 Tim-Philipp Müller 2016-05-22 17:41:37 UTC
Closing this bug report as no further information has been provided. Please feel free to reopen this bug report if you can provide the information that was asked for in a previous comment.
Thanks!