AnsweredAssumed Answered

IPU color keying

Question asked by laurent GONZALEZ on Mar 30, 2015
Latest reply on Apr 10, 2015 by laurent GONZALEZ

Hi there,


i am running graphical+video app on imx35 + Linux 2.6.31. I want to display graphics over video (rear camera for vehicle).

The graphic layer is painted (Qt manages fb0) with a key color and the composition is all right.

Unfortunately this setting only works in 32bpp (normally color keying is not required since 32bpp has alpha channel), and switching to 24bpp or 16bpp makes color keying not working anymore.

This is a major issue as we drive VGA/SVGA panels and 32bpp sucks too much memory bandwith, 16bpp would be great.


See how I enabled color keying:

ipu_sdc_color_key param = { .channel=MEM_SDC_BG, .enable=1, .colorKey=0x080808 };
error = ioctl(fd_ipu, IPU_SDC_SET_COLOR_KEY, &param);


See how I switch between 16bpp(default in the frame buffer driver) and 32bpp:

fd_fb = open("/dev/fb0", O_RDWR, 0);
ioctl(fd_fb, FBIOGET_VSCREENINFO, &var);
var.bits_per_pixel = 32;
ioctl(fd_fb, FBIOPUT_VSCREENINFO, &var);


Are there any known bugs with 16bpp color keying ? Does Linux 3.x has a clever IPU initialisation/implementation ?


Thanks for help.