• Dafna Hirschfeld's avatar
    media: v4l2: add support for colorspace conversion API (CSC) for video capture · b38c73ca
    Dafna Hirschfeld authored
    For video capture it is the driver that reports the colorspace,
    transfer function, Y'CbCr/HSV encoding and quantization range
    used by the video, and there is no way to request something
    different, even though many HDTV receivers have some sort of
    colorspace conversion capabilities.
    
    For output video this feature already exists since the application
    specifies this information for the video format it will send out, and
    the transmitter will enable any available CSC if a format conversion has
    to be performed in order to match the capabilities of the sink.
    
    For video capture we propose adding new v4l2_pix_format flag:
    V4L2_PIX_FMT_FLAG_SET_CSC. The flag is set by the application,
    the driver will interpret the colorspace, xfer_func, ycbcr_enc/hsv_enc
    and quantization fields as the requested colorspace information and will
    attempt to do the conversion it supports.
    
    Drivers set the flags
    V4L2_FMT_FLAG_CSC_COLORSPACE,
    V4L2_FMT_FLAG_CSC_XFER_FUNC,
    V4L2_FMT_FLAG_CSC_YCBCR_ENC/V4L2_FMT_FLAG_CSC_HSV_ENC,
    V4L2_FMT_FLAG_CSC_QUANTIZATION,
    in the flags field of the struct v4l2_fmtdesc during enumeration to
    indicate that they support colorspace conversion for the respective field.
    
    Drivers do not have to actually look at the flags. If the flags are not
    set, then the fields 'colorspace', 'xfer_func', 'ycbcr_enc/hsv_enc',
    and 'quantization' are set to the default values by the core, i.e. just
    pass on the received format without conversion.
    Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
    Signed-off-by: default avatarDafna Hirschfeld <dafna.hirschfeld@collabora.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
    b38c73ca
videodev2.h.rst.exceptions 25.2 KB