diff options
author | cehoyos <cehoyos@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2010-05-06 10:18:25 +0000 |
---|---|---|
committer | cehoyos <cehoyos@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2010-05-06 10:18:25 +0000 |
commit | 02641f54eee3ef4117489ba96cc16dce2c20d8c1 (patch) | |
tree | 26e8c838795818a960f193176087440fd22578e4 /libmpcodecs/vf_rgbtest.c | |
parent | 84de3e95a808dcff4456d67a29dfb50a9152e5df (diff) | |
download | mpv-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.c | 8 |
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); |