[gstreamer-bugs] [Bug 166207] [ffmpegcolorspace] AYUV->RGB is broken

bugzilla-daemon at bugzilla.gnome.org bugzilla-daemon at bugzilla.gnome.org
Wed Feb 16 00:46:39 PST 2005


Please DO NOT reply to this by email. All additional comments should be made in
the comments box of this bug report.

 http://bugzilla.gnome.org/show_bug.cgi?id=166207
 GStreamer | gst-plugins | Ver: HEAD CVS





------- Additional Comments From Gergely Nagy  2005-02-16 03:46 -------
I've done some digging, and found that in the AYUV->RGB555 case img_convert does
a temporary AYUV->RGBA32 conversion, and converts that to RGB555.

While doing this, it looks up the AYUV->RGBA32 from convert_table, and uses the
convert function specified therein. This function is ayuv4444_to_rgba32. Now,
for some weird reason, BPP and RGBA_OUT are defined as for RGB555 output instead
of RGBA32 (most probably due to the messy way imgconvert_template.h is included
around). This breaks the conversion badly.

Further investigation showed, that ayuv4444_to_rgba32 gets defined as soon as
the !defined(FMT_RGBA32) && defined(RGBA_OUT) conditions apply. Ie, at the time
of the first rgb definition in imgconvert.c.

The fix here is to only define ayuv4444_to_rgba32 when FMT_RGBA32 is defined.
This means splitting the large #if !defined(FMT_RGBA32) && defined(RGBA_OUT)
before ayuv4444_to_rgba32 into two. End it just before ayuv4444_to_rgba32, and
then do another condition: #if defined(FMT_RGBA32).

I'll attach a patch that does this, after some testing.

------- You are receiving this mail because: -------
You are the assignee for the bug.
You are the QA contact for the bug.




More information about the Gstreamer-bugs mailing list