[FFmpeg-devel] [PATCH 0/6] qsv: Fix compiler errors when using libmfx 2.0 (oneVPL)

Mark Thompson sw at jkqxz.net
Tue Sep 29 18:09:41 EEST 2020


On 16/09/2020 07:44, Haihao Xiang wrote:
> The oneAPI Video Processing Library (oneVPL) is a single interface for
> encode, decode and video processing, the obsolete features in Intel
> Media Software Development Kit are removed from oneVPL.
> 
> The oneVPL specification:
> https://spec.oneapi.com/versions/latest/elements/oneVPL/source/index.html
> The oneVPL source code:
> https://github.com/oneapi-src/oneVPL
> 
> This patchset fixes compiler errors when building FFmpeg against oneVPL
> 
> Note this patchset includes some patches in the FFmpeg archives:
> http://ffmpeg.org/pipermail/ffmpeg-devel/2020-August/268141.html
> http://ffmpeg.org/pipermail/ffmpeg-devel/2020-September/269334.html
> 
> Haihao Xiang (6):
>    qsv: add ${includedir}/mfx to the search path for old versions of
>      libmfx
>    qsv: libmfx no longer supports user plugin since version 2.0 (oneVPL)
>    qsv: libmfx no longer supports audio since version 2.0 (oneVPL)
>    qsvenc: libmfx no longer supports multi-frame encode since version 2.0
>      (oneVPL)
>    qsvenc: libmfx no longer supports MFX_RATECONTROL_LA_EXT since version
>      2.0 (oneVPL)
>    qsv: libmfx no longer supports OPAQUE memory since version 2.0
>      (oneVPL)
> 
>   configure                        | 15 +++++--
>   fftools/ffmpeg_qsv.c             |  2 +-
>   libavcodec/qsv.c                 | 21 +++++++--
>   libavcodec/qsv.h                 |  4 +-
>   libavcodec/qsv_internal.h        |  4 +-
>   libavcodec/qsvdec.c              | 11 ++++-
>   libavcodec/qsvdec.h              |  2 +-
>   libavcodec/qsvdec_h2645.c        |  2 +-
>   libavcodec/qsvdec_other.c        |  2 +-
>   libavcodec/qsvenc.c              | 25 ++++++++++-
>   libavcodec/qsvenc.h              |  6 ++-
>   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.c             | 24 +++++++++-
>   libavfilter/qsvvpp.h             |  4 +-
>   libavfilter/vf_deinterlace_qsv.c | 58 +++++++++++++-----------
>   libavfilter/vf_scale_qsv.c       | 76 ++++++++++++++++++--------------
>   libavutil/hwcontext_opencl.c     |  2 +-
>   libavutil/hwcontext_qsv.c        | 58 +++++++++++++++++-------
>   libavutil/hwcontext_qsv.h        |  2 +-
>   23 files changed, 225 insertions(+), 103 deletions(-)

Can you explain the compatibility effects here?  In particular:

If you build against oneVPL, does everything still work on old MSDK setups?  (In particular, those like Haswell which are technically out of support but still very widely used.)

If you build against MSDK, does everything still work on a oneVPL setup?

- Mark


More information about the ffmpeg-devel mailing list