[FFmpeg-devel] [PATCH V4] avfilter: Add tonemap vaapi filter for H2S

Marton Balint cus at passwd.hu
Sun Dec 22 23:14:54 EET 2019



On Thu, 12 Dec 2019, Ruiling Song wrote:

> From: Xinpeng Sun <xinpeng.sun at intel.com>
>
> It performs HDR(High Dynamic Range) to SDR(Standard Dynamic Range) conversion
> with tone-mapping. It only supports HDR10 as input temporarily.
>
> An example command to use this filter with vaapi codecs:
> FFMPEG -hwaccel vaapi -vaapi_device /dev/dri/renderD128 -hwaccel_output_format vaapi \
> -i INPUT -vf 'tonemap_vaapi=format=p010' -c:v hevc_vaapi -profile 2 OUTPUT
>
> Signed-off-by: Xinpeng Sun <xinpeng.sun at intel.com>
> Signed-off-by: Zachary Zhou <zachary.zhou at intel.com>
> Signed-off-by: Ruiling Song <ruiling.song at intel.com>
> ---
> When I re-think about the document part. I find it is not necessary to repeat
> how to set up vaapi device in this filter part. There is already good explanation
> of it(https://trac.ffmpeg.org/wiki/Hardware/VAAPI), so I add a link to it.
> I only make code changes requested by Vittoria and me. So if no further comment,
> I am going to apply the patch next week. Thanks!
>
> Ruiling
>
> configure                      |   2 +
> doc/filters.texi               |  59 +++++
> libavfilter/Makefile           |   1 +
> libavfilter/allfilters.c       |   1 +
> libavfilter/vf_tonemap_vaapi.c | 419 +++++++++++++++++++++++++++++++++
> 5 files changed, 482 insertions(+)
> create mode 100644 libavfilter/vf_tonemap_vaapi.c
>
> diff --git a/configure b/configure
> index 42e7df3941..74f2d38317 100755
> --- a/configure
> +++ b/configure
> @@ -3576,6 +3576,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_opencl_filter_deps="opencl const_nan"
> transpose_opencl_filter_deps="opencl"
> transpose_vaapi_filter_deps="vaapi VAProcPipelineCaps_rotation_flags"
> @@ -6577,6 +6578,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

This check does not seem to be enough, I am getting errors like this for 
libva 2.3.0:

libavfilter/vf_tonemap_vaapi.c: In function 
‘tonemap_vaapi_set_filter_params’:
libavfilter/vf_tonemap_vaapi.c:156:5: error: unknown type name 
‘VAProcFilterParameterBufferHDRToneMapping’; did you mean 
‘VAProcFilterParameterBufferDeinterlacing’?
      VAProcFilterParameterBufferHDRToneMapping *hdrtm_param;
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      VAProcFilterParameterBufferDeinterlacing


Regards,
Marton


More information about the ffmpeg-devel mailing list