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

Xiang, Haihao haihao.xiang at intel.com
Sat Oct 10 07:44:59 EEST 2020


On Tue, 2020-09-29 at 16:09 +0100, Mark Thompson wrote:
> 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?

The mfx dispatcher from oneVPL works well with the legacy MSDK implementation
(E.g. libmfxhw64.so) except the removed features. 

The soname is libmfx.so.2 for oneVPL dispatcher, libmfx.so.1 for legacy MedSDK,
you can't use legacy MSDK dispatcher at runtime if you build FFmpeg against
oneVPL. It doesn't work too if building against legacy MSDK and use oneVPL
dispatcher at runtime. 

Thanks
Haihao

> 
> - Mark
> _______________________________________________
> 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