[FFmpeg-devel] [PATCH v4 03/10] qsv: remove mfx/ prefix from mfx headers
Xiang, Haihao
haihao.xiang at intel.com
Wed Sep 29 10:21:16 EEST 2021
On Tue, 2021-09-28 at 16:48 -0300, James Almer wrote:
> 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
Because /usr/include is a system path, `pkg-config --cflags libmfx` returns
nothing and libmfx_cflags is set to nothing. Hence the result `add_cflags
${libmfx_cflags}/mfx` is /mfx, which is wrong for libmfx.
>
> > + { 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"; }
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
More information about the ffmpeg-devel
mailing list