[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