Commit afeef4ee authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab

[media] vivid-tpg: improve Y16 color setup

Currently the colors for the Y16 and Y16_BE pixelformats are in the range
0x0000-0xff00. So pure white (0xffff) is never created.

Improve this by making white really white. For other colors the lsb remains 0
so vivid can be used to detect endian problems.
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Reviewed-by: default avatarRicardo Ribalda <ricardo.ribalda@gmail.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 4d38cde7
...@@ -900,12 +900,19 @@ static void gen_twopix(struct tpg_data *tpg, ...@@ -900,12 +900,19 @@ static void gen_twopix(struct tpg_data *tpg,
buf[0][offset] = r_y; buf[0][offset] = r_y;
break; break;
case V4L2_PIX_FMT_Y16: case V4L2_PIX_FMT_Y16:
buf[0][offset] = 0; /*
* Ideally both bytes should be set to r_y, but then you won't
* be able to detect endian problems. So keep it 0 except for
* the corner case where r_y is 0xff so white really will be
* white (0xffff).
*/
buf[0][offset] = r_y == 0xff ? r_y : 0;
buf[0][offset+1] = r_y; buf[0][offset+1] = r_y;
break; break;
case V4L2_PIX_FMT_Y16_BE: case V4L2_PIX_FMT_Y16_BE:
/* See comment for V4L2_PIX_FMT_Y16 above */
buf[0][offset] = r_y; buf[0][offset] = r_y;
buf[0][offset+1] = 0; buf[0][offset+1] = r_y == 0xff ? r_y : 0;
break; break;
case V4L2_PIX_FMT_YUV422P: case V4L2_PIX_FMT_YUV422P:
case V4L2_PIX_FMT_YUV420: case V4L2_PIX_FMT_YUV420:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment