[FFmpeg-devel] [PATCH v2] avcodec/libkvazaar: Respect codec context color settings.

Jan Ekström jeebjp at gmail.com
Sat Sep 30 17:20:47 EEST 2023


On Sat, Sep 30, 2023 at 12:12 AM John Mather via ffmpeg-devel
<ffmpeg-devel at ffmpeg.org> wrote:
>
> This patch makes the libkvazaar encoder respect color settings that are
> present on the codec context, including color range, primaries, transfer
> function and colorspace.
> ---
>  libavcodec/libkvazaar.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/libavcodec/libkvazaar.c b/libavcodec/libkvazaar.c
> index 2ef34dd82e..984f78ba65 100644
> --- a/libavcodec/libkvazaar.c
> +++ b/libavcodec/libkvazaar.c
> @@ -101,6 +101,15 @@ FF_ENABLE_DEPRECATION_WARNINGS
>          cfg->rc_algorithm = KVZ_LAMBDA;
>      }
>
> +    if (avctx->color_range != AVCOL_RANGE_UNSPECIFIED)
> +        cfg->vui.fullrange = avctx->color_range == AVCOL_RANGE_JPEG;
> +    if (avctx->color_primaries != AVCOL_PRI_UNSPECIFIED)
> +        cfg->vui.colorprim = avctx->color_primaries;
> +    if (avctx->color_trc != AVCOL_TRC_UNSPECIFIED)
> +        cfg->vui.transfer = avctx->color_trc;
> +    if (avctx->colorspace != AVCOL_SPC_UNSPECIFIED)
> +        cfg->vui.colormatrix = avctx->colorspace;
> +

Just one thing that I was going to type on IRC but then didn't have the moment:

If kvazaar does support chroma location, please could you add that as
well? :) You can see in libx264 wrapper how that is done when just a
single field needs to be filled, while libx265 wrapper's
9b2281a4a383677ded522e603514789cc22498fa shows how to handle the case
where both the bool and both the internal values have to be written
out.

Of course is kvazaar doesn't yet support writing this out, then
discard this part.

Finally, do these VUI entries require a new minimum kvazaar version
compared to the current configure check? As in, if you try to build
the wrapper with your commit together with... 0.8.1 - does it build
successfully?

Jan


More information about the ffmpeg-devel mailing list