[FFmpeg-devel] [PATCH v2 1/2] configure: Change the configure check for tonemap_vaapi

Mark Thompson sw at jkqxz.net
Tue Jan 7 02:07:01 EET 2020


On 30/12/2019 07:32, Xinpeng Sun wrote:
> "VAProcFilterParameterBufferHDRToneMapping" was defined in libva 2.4.1, which will lead to
> build failure for the filter tonemap_vaapi for libva 2.3.0 with current check. This patch
> is to fix this build error.
> 
> Signed-off-by: Xinpeng Sun <xinpeng.sun at intel.com>
> ---
>  configure | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/configure b/configure
> index 43dc409fe6..01b4acd77e 100755
> --- a/configure
> +++ b/configure
> @@ -3579,7 +3579,7 @@ tinterlace_filter_deps="gpl"
>  tinterlace_merge_test_deps="tinterlace_filter"
>  tinterlace_pad_test_deps="tinterlace_filter"
>  tonemap_filter_deps="const_nan"
> -tonemap_vaapi_filter_deps="vaapi VAProcPipelineParameterBuffer_output_hdr_metadata"
> +tonemap_vaapi_filter_deps="vaapi VAProcFilterParameterBufferHDRToneMapping"
>  tonemap_opencl_filter_deps="opencl const_nan"
>  transpose_opencl_filter_deps="opencl"
>  transpose_vaapi_filter_deps="vaapi VAProcPipelineCaps_rotation_flags"
> @@ -6584,7 +6584,7 @@ if enabled vaapi; then
>  
>      check_type "va/va.h va/va_dec_hevc.h" "VAPictureParameterBufferHEVC"
>      check_struct "va/va.h" "VADecPictureParameterBufferVP9" bit_depth
> -    check_struct "va/va.h va/va_vpp.h" "VAProcPipelineParameterBuffer" output_hdr_metadata
> +    check_type   "va/va.h va/va_vpp.h" "VAProcFilterParameterBufferHDRToneMapping"
>      check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps" rotation_flags
>      check_type "va/va.h va/va_enc_hevc.h" "VAEncPictureParameterBufferHEVC"
>      check_type "va/va.h va/va_enc_jpeg.h" "VAEncPictureParameterBufferJPEG"
> 

Thanks, applied.

Relatedly: can you explain how to get this filter to work?

So far the only non-identity transformation I have managed to achieve is to make the output entirely black (which happens if the set the output colour matrix to anything other than the same as the input).

E.g. given an input which is:

    Stream #0:0[0x101]: Video: hevc (Main 10) ([36][0][0][0] / 0x0024), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 25 tbc
[Parsed_showinfo_0 @ 0x5609cc1a6d00]   side data - mastering display: has_primaries:1 has_luminance:1 r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290) min_luminance=0.050000, max_luminance=1200.000000

then doing:

-vf tonemap_vaapi=format=nv12

gives identical output to:

-vf scale_vaapi=format=nv12

while:

-vf tonemap_vaapi=format=nv12:t=bt709:p=bt709:m=bt709

gives output which is entirely black.

(Hardware is Icelake 1065G7.)

- Mark


More information about the ffmpeg-devel mailing list