[FFmpeg-devel] [PATCH 2/2] lavfi/vaapi: add more factors when using VAProcColorStandardExplicit

Mark Thompson sw at jkqxz.net
Sun Apr 26 21:16:50 EEST 2020


On 26/04/2020 04:02, Fei Wang wrote:
> Use VAProcColorStandardExplicit only if the color properties all
> specificed.
> 
> Signed-off-by: Fei Wang <fei.w.wang at intel.com>
> ---
>  libavfilter/vaapi_vpp.c | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/libavfilter/vaapi_vpp.c b/libavfilter/vaapi_vpp.c
> index 6ffc09d..e1d3373 100644
> --- a/libavfilter/vaapi_vpp.c
> +++ b/libavfilter/vaapi_vpp.c
> @@ -278,10 +278,14 @@ static void vaapi_vpp_fill_colour_standard(VAAPIColourProperties *props,
>      // use them and avoid doing any mapping.  (The driver may not support
>      // some particular code point, but it still has enough information to
>      // make a better fallback choice than we do in that case.)
> -    for (i = 0; i < nb_vacs; i++) {
> -        if (vacs[i] == VAProcColorStandardExplicit) {
> -            props->va_color_standard = VAProcColorStandardExplicit;
> -            return;
> +    if ((props->colorspace != AVCOL_SPC_UNSPECIFIED) &&
> +        (props->color_trc != AVCOL_TRC_UNSPECIFIED) &&
> +        (props->color_primaries != AVCOL_PRI_UNSPECIFIED)) {
> +        for (i = 0; i < nb_vacs; i++) {
> +            if (vacs[i] == VAProcColorStandardExplicit) {
> +                props->va_color_standard = VAProcColorStandardExplicit;
> +                return;
> +            }
>          }
>      }
>  #endif

This seems like it's throwing away information in a way you don't want.  For example, suppose the input was decoded from VP9: in that case you only know the matrix coefficients (props->colorspace) and the other values will be unspecified, but that's still better to know than nothing at all.

Alternatively: if you think this should be handled at a layer above VAAPI, maybe it should say that in the libva documentation?  Then here we would want to guess the other values and fill them in.

- Mark


More information about the ffmpeg-devel mailing list