[FFmpeg-devel] [PATCH v4 03/10] qsv: remove mfx/ prefix from mfx headers

James Almer jamrial at gmail.com
Tue Sep 28 22:48:19 EEST 2021


On 9/23/2021 3:28 AM, Haihao Xiang wrote:
> The following Cflags has been added to libmfx.pc, so mfx/ prefix is no
> longer needed when including mfx headers in FFmpeg.
>     Cflags: -I${includedir} -I${includedir}/mfx
> 
> Some old versions of libmfx have the following Cflags in libmfx.pc
>     Cflags: -I${includedir}
> 
> We may add -I${includedir}/mfx to CFLAGS when running 'configure
> --enable-libmfx' for old versions of libmfx, if so, mfx headers without
> mfx/ prefix can be included too.
> 
> If libmfx comes without pkg-config support, we may do a small change to
> the settings of the environment(e.g. set -I/opt/intel/mediasdk/include/mfx
> instead of -I/opt/intel/mediasdk/include to CFLAGS), then the build can
> find the mfx headers without mfx/ prefix
> 
> After applying this change, we won't need to change #include for mfx
> headers when mfx headers are installed under a new directory.
> 
> This is in preparation for oneVPL support (mfx headers in oneVPL are
> installed under vpl directory)
> ---
>   configure                        | 13 +++++++++----
>   libavcodec/qsv.c                 |  8 ++++----
>   libavcodec/qsv.h                 |  2 +-
>   libavcodec/qsv_internal.h        |  2 +-
>   libavcodec/qsvdec.c              |  2 +-
>   libavcodec/qsvenc.c              |  2 +-
>   libavcodec/qsvenc.h              |  2 +-
>   libavcodec/qsvenc_h264.c         |  2 +-
>   libavcodec/qsvenc_hevc.c         |  2 +-
>   libavcodec/qsvenc_jpeg.c         |  2 +-
>   libavcodec/qsvenc_mpeg2.c        |  2 +-
>   libavcodec/qsvenc_vp9.c          |  2 +-
>   libavfilter/qsvvpp.h             |  2 +-
>   libavfilter/vf_deinterlace_qsv.c |  2 +-
>   libavfilter/vf_scale_qsv.c       |  2 +-
>   libavutil/hwcontext_opencl.c     |  2 +-
>   libavutil/hwcontext_qsv.c        |  2 +-
>   libavutil/hwcontext_qsv.h        |  2 +-
>   18 files changed, 29 insertions(+), 24 deletions(-)
> 
> diff --git a/configure b/configure
> index 21c744e627..9655a5823e 100755
> --- a/configure
> +++ b/configure
> @@ -6434,13 +6434,18 @@ enabled liblensfun        && require_pkg_config liblensfun lensfun lensfun.h lf_
>   # 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 < 2.0" "mfx/mfxvideo.h" MFXInit ||
> -                                 { require "libmfx < 2.0" "mfx/mfxvideo.h" MFXInit "-llibmfx $advapi32_extralibs" && warn "using libmfx without pkg-config"; } } &&
> +
> +enabled libmfx            && { { check_pkg_config libmfx "libmfx < 2.0" "mfxvideo.h" MFXInit ||
> +# Some old versions of libmfx have the following settings in libmfx.pc:
> +#   includedir=/usr/include
> +#   Cflags: -I${includedir}
> +# So add -I${includedir}/mfx to CFLAGS
> +                                 { check_pkg_config libmfx "libmfx < 2.0" "mfx/mfxvideo.h" MFXInit && add_cflags -I$($pkg_config --variable=includedir libmfx)/mfx; } ||

add_cflags ${libmfx_cflags}/mfx

> +                                 { require "libmfx < 2.0" "mfxvideo.h" MFXInit "-llibmfx $advapi32_extralibs" && warn "using libmfx without pkg-config"; } } &&
>                                  warn "build FFmpeg against libmfx 1.x, obsolete features of libmfx such as OPAQUE memory,\n"\
>                                       "multi-frame encode, user plugins and LA_EXT rate control mode are enabled"; }


More information about the ffmpeg-devel mailing list