Em Wed, 26 Jul 2017 20:45:55 +0200
Hans Verkuil <hverk...@xs4all.nl> escreveu:

> The SMPTE-2084 transfer functions maps to the luminance range of 0-10000 
> cd/m^2.
> Other transfer functions use the traditional range of 0-100 cd/m^2.
> 
> I didn't take this into account so the luminance was off by a factor of 100.
> 
> Since qv4l2 made the same mistake in reverse I never noticed this until I 
> tested with
> actual SMPTE-2084 video.
> 
> This patch also includes the v4l2-tpg-colors.h relative to this directory when
> building the gen-colors utility, otherwise it would fail. This was needed to 
> regenerate
> the tables.
> 
> Signed-off-by: Hans Verkuil <hans.verk...@cisco.com>
> ---
> diff --git a/drivers/media/common/v4l2-tpg/v4l2-tpg-colors.c 
> b/drivers/media/common/v4l2-tpg/v4l2-tpg-colors.c
> index 9bcbd318489b..ac86cbe08440 100644
> --- a/drivers/media/common/v4l2-tpg/v4l2-tpg-colors.c
> +++ b/drivers/media/common/v4l2-tpg/v4l2-tpg-colors.c
> @@ -36,7 +36,11 @@
>    */
> 
>   #include <linux/videodev2.h>
> +#ifdef COMPILE_APP
> +#include "../../../../include/media/v4l2-tpg-colors.h"
> +#else
>   #include <media/v4l2-tpg-colors.h>
> +#endif
> 
>   /* sRGB colors with range [0-255] */
>   const struct color tpg_colors[TPG_COLOR_MAX] = {

The above sucks. We shouldn't be adding hacks at the Kernel tree due
to userspace.

In particular, this one is evil, as it assumes a particular location
of the header inside libv4l.

Instead of this ugly hack, you could just add an extra line at the
"sync-with-kernel" target at v4l-utils Makefile with:

        sed 
's,<media/v4l2-tpg-colors.h>,"../../../../include/media/v4l2-tpg-colors.h",' -i 
./utils/common/v4l2-tpg-colors.c

Thanks,
Mauro

Reply via email to