Message ID | 20210923062818.18892-4-haihao.xiang@intel.com |
---|---|
State | New |
Headers | show |
Series | make QSV works with the Intel's oneVPL | expand |
Context | Check | Description |
---|---|---|
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
andriy/make_ppc | success | Make finished |
andriy/make_fate_ppc | success | Make fate finished |
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"; }
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@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
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; } || + { 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"; } - if enabled libmfx; then - check_cc MFX_CODEC_VP9 "mfx/mfxdefs.h mfx/mfxstructures.h" "MFX_CODEC_VP9" + check_cc MFX_CODEC_VP9 "mfxdefs.h mfxstructures.h" "MFX_CODEC_VP9" fi enabled libmodplug && require_pkg_config libmodplug libmodplug libmodplug/modplug.h ModPlug_Load diff --git a/libavcodec/qsv.c b/libavcodec/qsv.c index 9d08485c92..84f0401b0f 100644 --- a/libavcodec/qsv.c +++ b/libavcodec/qsv.c @@ -18,9 +18,9 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include <mfx/mfxvideo.h> -#include <mfx/mfxplugin.h> -#include <mfx/mfxjpeg.h> +#include <mfxvideo.h> +#include <mfxplugin.h> +#include <mfxjpeg.h> #include <stdio.h> #include <string.h> @@ -39,7 +39,7 @@ #define MFX_IMPL_VIA_MASK(impl) (0x0f00 & (impl)) #if QSV_VERSION_ATLEAST(1, 12) -#include "mfx/mfxvp8.h" +#include "mfxvp8.h" #endif int ff_qsv_codec_id_to_mfx(enum AVCodecID codec_id) diff --git a/libavcodec/qsv.h b/libavcodec/qsv.h index b77158ec26..04ae0d6f34 100644 --- a/libavcodec/qsv.h +++ b/libavcodec/qsv.h @@ -21,7 +21,7 @@ #ifndef AVCODEC_QSV_H #define AVCODEC_QSV_H -#include <mfx/mfxvideo.h> +#include <mfxvideo.h> #include "libavutil/buffer.h" diff --git a/libavcodec/qsv_internal.h b/libavcodec/qsv_internal.h index 8090b748b3..24c3e9307e 100644 --- a/libavcodec/qsv_internal.h +++ b/libavcodec/qsv_internal.h @@ -39,7 +39,7 @@ #include "libavutil/hwcontext_vaapi.h" #endif -#include <mfx/mfxvideo.h> +#include <mfxvideo.h> #include "libavutil/frame.h" diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c index 8bce9f2cf0..1cadb846f5 100644 --- a/libavcodec/qsvdec.c +++ b/libavcodec/qsvdec.c @@ -25,7 +25,7 @@ #include <string.h> #include <sys/types.h> -#include <mfx/mfxvideo.h> +#include <mfxvideo.h> #include "libavutil/common.h" #include "libavutil/fifo.h" diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c index f7bb3f5eff..5e76299372 100644 --- a/libavcodec/qsvenc.c +++ b/libavcodec/qsvenc.c @@ -23,7 +23,7 @@ #include <string.h> #include <sys/types.h> -#include <mfx/mfxvideo.h> +#include <mfxvideo.h> #include "libavutil/common.h" #include "libavutil/hwcontext.h" diff --git a/libavcodec/qsvenc.h b/libavcodec/qsvenc.h index 31516b8e55..7a71ffe98f 100644 --- a/libavcodec/qsvenc.h +++ b/libavcodec/qsvenc.h @@ -26,7 +26,7 @@ #include <stdint.h> #include <sys/types.h> -#include <mfx/mfxvideo.h> +#include <mfxvideo.h> #include "libavutil/avutil.h" #include "libavutil/fifo.h" diff --git a/libavcodec/qsvenc_h264.c b/libavcodec/qsvenc_h264.c index 80fe3cc280..9134e6a68c 100644 --- a/libavcodec/qsvenc_h264.c +++ b/libavcodec/qsvenc_h264.c @@ -24,7 +24,7 @@ #include <stdint.h> #include <sys/types.h> -#include <mfx/mfxvideo.h> +#include <mfxvideo.h> #include "libavutil/common.h" #include "libavutil/opt.h" diff --git a/libavcodec/qsvenc_hevc.c b/libavcodec/qsvenc_hevc.c index b7b2f5633e..a268a002d6 100644 --- a/libavcodec/qsvenc_hevc.c +++ b/libavcodec/qsvenc_hevc.c @@ -22,7 +22,7 @@ #include <stdint.h> #include <sys/types.h> -#include <mfx/mfxvideo.h> +#include <mfxvideo.h> #include "libavutil/common.h" #include "libavutil/opt.h" diff --git a/libavcodec/qsvenc_jpeg.c b/libavcodec/qsvenc_jpeg.c index dd082692be..ad8f09befe 100644 --- a/libavcodec/qsvenc_jpeg.c +++ b/libavcodec/qsvenc_jpeg.c @@ -22,7 +22,7 @@ #include <stdint.h> #include <sys/types.h> -#include <mfx/mfxvideo.h> +#include <mfxvideo.h> #include "libavutil/common.h" #include "libavutil/opt.h" diff --git a/libavcodec/qsvenc_mpeg2.c b/libavcodec/qsvenc_mpeg2.c index 525df99e50..610bbf79c1 100644 --- a/libavcodec/qsvenc_mpeg2.c +++ b/libavcodec/qsvenc_mpeg2.c @@ -22,7 +22,7 @@ #include <stdint.h> #include <sys/types.h> -#include <mfx/mfxvideo.h> +#include <mfxvideo.h> #include "libavutil/common.h" #include "libavutil/opt.h" diff --git a/libavcodec/qsvenc_vp9.c b/libavcodec/qsvenc_vp9.c index 9329990d11..0a382eb76d 100644 --- a/libavcodec/qsvenc_vp9.c +++ b/libavcodec/qsvenc_vp9.c @@ -22,7 +22,7 @@ #include <stdint.h> #include <sys/types.h> -#include <mfx/mfxvideo.h> +#include <mfxvideo.h> #include "libavutil/common.h" #include "libavutil/opt.h" diff --git a/libavfilter/qsvvpp.h b/libavfilter/qsvvpp.h index e0f4c8f5bb..8c0cf3ed95 100644 --- a/libavfilter/qsvvpp.h +++ b/libavfilter/qsvvpp.h @@ -24,7 +24,7 @@ #ifndef AVFILTER_QSVVPP_H #define AVFILTER_QSVVPP_H -#include <mfx/mfxvideo.h> +#include <mfxvideo.h> #include "avfilter.h" #include "libavutil/fifo.h" diff --git a/libavfilter/vf_deinterlace_qsv.c b/libavfilter/vf_deinterlace_qsv.c index 173c314bb8..ab849558ef 100644 --- a/libavfilter/vf_deinterlace_qsv.c +++ b/libavfilter/vf_deinterlace_qsv.c @@ -21,7 +21,7 @@ * deinterlace video filter - QSV */ -#include <mfx/mfxvideo.h> +#include <mfxvideo.h> #include <stdio.h> #include <string.h> diff --git a/libavfilter/vf_scale_qsv.c b/libavfilter/vf_scale_qsv.c index 5a37cef63d..19c9bb6463 100644 --- a/libavfilter/vf_scale_qsv.c +++ b/libavfilter/vf_scale_qsv.c @@ -21,7 +21,7 @@ * scale video filter - QSV */ -#include <mfx/mfxvideo.h> +#include <mfxvideo.h> #include <stdio.h> #include <string.h> diff --git a/libavutil/hwcontext_opencl.c b/libavutil/hwcontext_opencl.c index 26a3a24593..194165fba2 100644 --- a/libavutil/hwcontext_opencl.c +++ b/libavutil/hwcontext_opencl.c @@ -47,7 +47,7 @@ #if HAVE_OPENCL_VAAPI_INTEL_MEDIA #if CONFIG_LIBMFX -#include <mfx/mfxstructures.h> +#include <mfxstructures.h> #endif #include <va/va.h> #include <CL/cl_va_api_media_sharing_intel.h> diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c index 225ae768a9..7ded65e6b5 100644 --- a/libavutil/hwcontext_qsv.c +++ b/libavutil/hwcontext_qsv.c @@ -19,7 +19,7 @@ #include <stdint.h> #include <string.h> -#include <mfx/mfxvideo.h> +#include <mfxvideo.h> #include "config.h" diff --git a/libavutil/hwcontext_qsv.h b/libavutil/hwcontext_qsv.h index b98d611cfc..42e34d0dda 100644 --- a/libavutil/hwcontext_qsv.h +++ b/libavutil/hwcontext_qsv.h @@ -19,7 +19,7 @@ #ifndef AVUTIL_HWCONTEXT_QSV_H #define AVUTIL_HWCONTEXT_QSV_H -#include <mfx/mfxvideo.h> +#include <mfxvideo.h> /** * @file