Bug#572848: gstreamer0.10-plugins-base: When used with phonon-gstreamer-backend and KDE4 plasma video widgets colors are wrong

George Kiagiadakis kiagiadakis.george at gmail.com
Thu Apr 15 15:29:02 UTC 2010


reassign 572848 phonon-backend-gstreamer
tags 572848 + upstream
thanks

Hello,

2010/4/15 Sebastian Dröge <slomo at circular-chaos.org>:
> On Thu, 2010-04-15 at 11:57 +0300, George Kiagiadakis wrote:
>> This has also been reported to nokia as a bug in the phonon backend, with a
>> trivial fix, but I'm still not sure if the bug is in phonon or gstreamer. The
>> fix looks like a hack.
>>
>> http://bugreports.qt.nokia.com/browse/QTBUG-8737
>
> The Nokia bug is a problem in phonon's gstreamer backend...
>
> It claims to support all kinds of RGB formats but in fact only supports
> xRGB in native endianness.

Hmm, thanks for the explanation, I think I understand the issue now
and what a proper fix would be.

> Could you add that to the Nokia bugreport? The code in question is in
> qwidgetvideosink.cpp:
>
>>
>> static GstStaticPadTemplate template_factory_yuv =
>>     GST_STATIC_PAD_TEMPLATE("sink",
>>                             GST_PAD_SINK,
>>                             GST_PAD_ALWAYS,
>>                             GST_STATIC_CAPS("video/x-raw-yuv, "
>>                                             "framerate = (fraction) [ 0, MAX ], "
>>                                             "width = (int) [ 1, MAX ], "
>>                                             "height = (int) [ 1, MAX ],"
>>                                             "bpp = (int) 32"));
>>
>> static GstStaticPadTemplate template_factory_rgb =
>>     GST_STATIC_PAD_TEMPLATE("sink",
>>                             GST_PAD_SINK,
>>                             GST_PAD_ALWAYS,
>>                             GST_STATIC_CAPS("video/x-raw-rgb, "
>>                                             "framerate = (fraction) [ 0, MAX ], "
>>                                             "width = (int) [ 1, MAX ], "
>>                                             "height = (int) [ 1, MAX ],"
>>                                             "bpp = (int) 32"));
>
> Not only does it claim to support all 32bpp RGB formats but also *all* YUV
> formats (and a "bpp" field is not used for YUV at all).

That's not true, it claims either RGB or YUV depending on the template
parameter. Note that QWidgetVideoSink is a template ;) The "bpp" for
YUV may not be needed but it doesn't hurt either, plus this is
completely unrelated to this bug since the code in question uses the
RGB version of the template.

> If they need some help with fixing this they can contact me via mail but
> I don't want to subscribe to yet another bugtracker...

So, from what I understand, the RGB caps need to specify the endianess
so that it matches the endianess used by QImage. I'll try to fix it
and inform them. If I need help I'll contact you. Thanks :)





More information about the Pkg-gstreamer-maintainers mailing list