[media] videodev2.h: fix sYCC/AdobeYCC default quantization range
The default quantization range of the Y'CbCr encodings of sRGB and AdobeRGB are full range instead of limited range according to the corresponding standards. Fix this in the V4L2_MAP_QUANTIZATION_DEFAULT macro. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
bee3d51156
commit
7e0739cd9c
|
@ -367,7 +367,7 @@ The :ref:`adobergb` standard defines the colorspace used by computer
|
||||||
graphics that use the AdobeRGB colorspace. This is also known as the
|
graphics that use the AdobeRGB colorspace. This is also known as the
|
||||||
:ref:`oprgb` standard. The default transfer function is
|
:ref:`oprgb` standard. The default transfer function is
|
||||||
``V4L2_XFER_FUNC_ADOBERGB``. The default Y'CbCr encoding is
|
``V4L2_XFER_FUNC_ADOBERGB``. The default Y'CbCr encoding is
|
||||||
``V4L2_YCBCR_ENC_601``. The default Y'CbCr quantization is limited
|
``V4L2_YCBCR_ENC_601``. The default Y'CbCr quantization is full
|
||||||
range. The chromaticities of the primary colors and the white reference
|
range. The chromaticities of the primary colors and the white reference
|
||||||
are:
|
are:
|
||||||
|
|
||||||
|
@ -448,7 +448,7 @@ the following ``V4L2_YCBCR_ENC_601`` encoding:
|
||||||
|
|
||||||
Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range
|
Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range
|
||||||
[-0.5…0.5]. This transform is identical to one defined in SMPTE
|
[-0.5…0.5]. This transform is identical to one defined in SMPTE
|
||||||
170M/BT.601. The Y'CbCr quantization is limited range.
|
170M/BT.601. The Y'CbCr quantization is full range.
|
||||||
|
|
||||||
|
|
||||||
.. _col-bt2020:
|
.. _col-bt2020:
|
||||||
|
|
|
@ -345,8 +345,8 @@ enum v4l2_quantization {
|
||||||
/*
|
/*
|
||||||
* The default for R'G'B' quantization is always full range, except
|
* The default for R'G'B' quantization is always full range, except
|
||||||
* for the BT2020 colorspace. For Y'CbCr the quantization is always
|
* for the BT2020 colorspace. For Y'CbCr the quantization is always
|
||||||
* limited range, except for COLORSPACE_JPEG, SYCC, XV601 or XV709:
|
* limited range, except for COLORSPACE_JPEG, SRGB, ADOBERGB,
|
||||||
* those are full range.
|
* XV601 or XV709: those are full range.
|
||||||
*/
|
*/
|
||||||
V4L2_QUANTIZATION_DEFAULT = 0,
|
V4L2_QUANTIZATION_DEFAULT = 0,
|
||||||
V4L2_QUANTIZATION_FULL_RANGE = 1,
|
V4L2_QUANTIZATION_FULL_RANGE = 1,
|
||||||
|
@ -361,7 +361,8 @@ enum v4l2_quantization {
|
||||||
#define V4L2_MAP_QUANTIZATION_DEFAULT(is_rgb, colsp, ycbcr_enc) \
|
#define V4L2_MAP_QUANTIZATION_DEFAULT(is_rgb, colsp, ycbcr_enc) \
|
||||||
(((is_rgb) && (colsp) == V4L2_COLORSPACE_BT2020) ? V4L2_QUANTIZATION_LIM_RANGE : \
|
(((is_rgb) && (colsp) == V4L2_COLORSPACE_BT2020) ? V4L2_QUANTIZATION_LIM_RANGE : \
|
||||||
(((is_rgb) || (ycbcr_enc) == V4L2_YCBCR_ENC_XV601 || \
|
(((is_rgb) || (ycbcr_enc) == V4L2_YCBCR_ENC_XV601 || \
|
||||||
(ycbcr_enc) == V4L2_YCBCR_ENC_XV709 || (colsp) == V4L2_COLORSPACE_JPEG) ? \
|
(ycbcr_enc) == V4L2_YCBCR_ENC_XV709 || (colsp) == V4L2_COLORSPACE_JPEG) || \
|
||||||
|
(colsp) == V4L2_COLORSPACE_ADOBERGB || (colsp) == V4L2_COLORSPACE_SRGB ? \
|
||||||
V4L2_QUANTIZATION_FULL_RANGE : V4L2_QUANTIZATION_LIM_RANGE))
|
V4L2_QUANTIZATION_FULL_RANGE : V4L2_QUANTIZATION_LIM_RANGE))
|
||||||
|
|
||||||
enum v4l2_priority {
|
enum v4l2_priority {
|
||||||
|
|
Loading…
Reference in New Issue