[FFmpeg-devel] [PATCH] qsv: Use the installed mfx include headers if possibile

Mark Thompson sw at jkqxz.net
Fri May 11 13:38:52 EEST 2018


On 11/05/18 08:52, Haihao Xiang wrote:
> Currently an extra copy of mfx include headers from {MSDK_INSTALL_PREFIX}/include
> to {MSDK_INSTALL_PREFIX}/include/mfx is required when using pkg-config for
> libmfx detection. This fix checks the installed mfx include headers first,
> and falls back to the legacy way if that fails
> 
> Signed-off-by: Haihao Xiang <haihao.xiang at intel.com>
> ---
>  configure                        |  3 ++-
>  fftools/ffmpeg_qsv.c             |  5 +++++
>  libavcodec/qsv.c                 | 10 ++++++++++
>  libavcodec/qsv.h                 |  4 ++++
>  libavcodec/qsv_internal.h        |  4 ++++
>  libavcodec/qsvdec.c              |  4 ++++
>  libavcodec/qsvdec.h              |  4 ++++
>  libavcodec/qsvdec_h2645.c        |  4 ++++
>  libavcodec/qsvdec_other.c        |  4 ++++
>  libavcodec/qsvenc.c              |  5 +++++
>  libavcodec/qsvenc.h              |  4 ++++
>  libavcodec/qsvenc_h264.c         |  4 ++++
>  libavcodec/qsvenc_hevc.c         |  4 ++++
>  libavcodec/qsvenc_jpeg.c         |  4 ++++
>  libavcodec/qsvenc_mpeg2.c        |  4 ++++
>  libavfilter/qsvvpp.h             |  4 ++++
>  libavfilter/vf_deinterlace_qsv.c |  4 ++++
>  libavfilter/vf_scale_qsv.c       |  4 ++++
>  libavutil/hwcontext_opencl.c     |  4 ++++
>  libavutil/hwcontext_qsv.c        |  4 ++++
>  libavutil/hwcontext_qsv.h        |  4 ++++
>  21 files changed, 90 insertions(+), 1 deletion(-)

I don't think it's a good idea to put an #ifdef like this in every file.

> 
> diff --git a/configure b/configure
> index a1f13a7109..e1f72495fb 100755
> --- a/configure
> +++ b/configure
> @@ -6007,7 +6007,8 @@ enabled libkvazaar        && require_pkg_config libkvazaar "kvazaar >= 0.8.1" kv
>  # Media SDK or Intel Media Server Studio, these don't come with
>  # pkg-config support.  Instead, users should make sure that the build
>  # can find the libraries and headers through other means.
> -enabled libmfx            && { check_pkg_config libmfx libmfx "mfx/mfxvideo.h" MFXInit ||
> +enabled libmfx            && { { check_pkg_config libmfx libmfx "mfxvideo.h" MFXInit && add_cflags -DMFX_DEFAULT_INC_PATH; } ||
> +                               { check_pkg_config libmfx libmfx "mfx/mfxvideo.h" MFXInit; } ||
>                                 { require libmfx "mfx/mfxvideo.h" MFXInit "-llibmfx $advapi32_extralibs" && warn "using libmfx without pkg-config"; } }
>  enabled libmodplug        && require_pkg_config libmodplug libmodplug libmodplug/modplug.h ModPlug_Load
>  enabled libmp3lame        && require "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame $libm_extralibs
So in the current code, the first test is for the open-source dispatcher (<https://github.com/lu-zero/mfx_dispatch>), which gets used everywhere that pkgconfig is supported, including mingw on Windows.  The second test is for Windows cases where you can't make make pkgconfig work.

What installs the headers directly in $PREFIX/include?  Presumably this is a new change - can we ask them not to do that?  (Because organising them in a subdirectory is I think much more sensible.)

- Mark


More information about the ffmpeg-devel mailing list