summaryrefslogtreecommitdiffstats
path: root/libmpcodecs/vf_rgbtest.c
diff options
context:
space:
mode:
authorcehoyos <cehoyos@b3059339-0415-0410-9bf9-f77b7e298cf2>2010-05-06 10:18:25 +0000
committercehoyos <cehoyos@b3059339-0415-0410-9bf9-f77b7e298cf2>2010-05-06 10:18:25 +0000
commit02641f54eee3ef4117489ba96cc16dce2c20d8c1 (patch)
tree26e8c838795818a960f193176087440fd22578e4 /libmpcodecs/vf_rgbtest.c
parent84de3e95a808dcff4456d67a29dfb50a9152e5df (diff)
downloadmpv-02641f54eee3ef4117489ba96cc16dce2c20d8c1.tar.bz2
mpv-02641f54eee3ef4117489ba96cc16dce2c20d8c1.tar.xz
Add support for 12-bit color mode on framebuffer devices.
Patch Janusz Krzysztofik, jkrzyszt A tis icnet pl git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31139 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs/vf_rgbtest.c')
-rw-r--r--libmpcodecs/vf_rgbtest.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libmpcodecs/vf_rgbtest.c b/libmpcodecs/vf_rgbtest.c
index 3d69ab876a..9179934175 100644
--- a/libmpcodecs/vf_rgbtest.c
+++ b/libmpcodecs/vf_rgbtest.c
@@ -37,11 +37,13 @@ struct vf_priv_s {
static unsigned int getfmt(unsigned int outfmt){
switch(outfmt){
+ case IMGFMT_RGB12:
case IMGFMT_RGB15:
case IMGFMT_RGB16:
case IMGFMT_RGB24:
case IMGFMT_RGBA:
case IMGFMT_ARGB:
+ case IMGFMT_BGR12:
case IMGFMT_BGR15:
case IMGFMT_BGR16:
case IMGFMT_BGR24:
@@ -54,6 +56,12 @@ static unsigned int getfmt(unsigned int outfmt){
static void put_pixel(uint8_t *buf, int x, int y, int stride, int r, int g, int b, int fmt){
switch(fmt){
+ case IMGFMT_BGR12: ((uint16_t*)(buf + y*stride))[x]=
+ ((r >> 4) << 8) | ((g >> 4) << 4) | (b >> 4);
+ break;
+ case IMGFMT_RGB12: ((uint16_t*)(buf + y*stride))[x]=
+ ((b >> 4) << 8) | ((g >> 4) << 4) | (r >> 4);
+ break;
case IMGFMT_BGR15: ((uint16_t*)(buf + y*stride))[x]= ((r>>3)<<10) | ((g>>3)<<5) | (b>>3);
break;
case IMGFMT_RGB15: ((uint16_t*)(buf + y*stride))[x]= ((b>>3)<<10) | ((g>>3)<<5) | (r>>3);