[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