mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-24 01:41:39 +00:00
[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: Hans Verkuil <hans.verkuil@cisco.com> Reviewed-by: Ricardo Ribalda <ricardo.ribalda@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
4d38cde776
commit
afeef4ee23
1 changed files with 9 additions and 2 deletions
|
@ -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:
|
||||||
|
|
Loading…
Reference in a new issue