mbox series

[FFmpeg-devel,v3,00/10] make QSV works with the Intel's oneVPL

Message ID 20210918023005.30128-1-haihao.xiang@intel.com
Headers show
Series make QSV works with the Intel's oneVPL
Related show

Message

Xiang, Haihao Sept. 18, 2021, 2:29 a.m. UTC
The oneAPI Video Processing Library (oneVPL) is a single interface for
encode, decode and video processing[1]. oneVPL is a successor to Intel(R) Media
SDK, but removed obsolete features. Intel(R) Media SDK lifetime comes to an
end now, new features for new Intel Gen platforms will be supported in oneVPL
only[2].

This patchset added a new option --enable-onevpl to bring the support for oneVPL
in QSV, new features for oneVPL will be implemented in other patchset. --enble-libmfx
option still works with Intel(R) Media SDK. Note user can't enable onevpl and
libmfx together.

oneVPL dispatcher source code:
https://github.com/oneapi-src/oneVPL

oneVPL GPU runtime for new Intel Gen platforms:
https://github.com/oneapi-src/oneVPL-intel-gpu

v3:
  - Rebased this patchset against the latest master
  - Added support for d3d11va

[1] https://spec.oneapi.io/versions/latest/elements/oneVPL/source/index.html
[2] https://github.com/Intel-Media-SDK/MediaSDK/#media-sdk-support-matrix

Haihao Xiang (10):
  configure: ensure --enable-libmfx uses libmfx 1.x
  configure: fix the check for MFX_CODEC_VP9
  qsv: remove mfx/ prefix from mfx headers
  qsv: load user plugin for MFX_VERSION < 2.0
  qsv: build audio related code when MFX_VERSION < 2.0
  qsvenc: support multi-frame encode when MFX_VERSION < 2.0
  qsvenc: support MFX_RATECONTROL_LA_EXT when MFX_VERSION < 2.0
  qsv: support OPAQUE memory when MFX_VERSION < 2.0
  qsv: use a new method to create mfx session when using oneVPL
  configure: add --enable-libvpl option

 configure                        |  28 ++-
 libavcodec/qsv.c                 | 214 +++++++++++++++--
 libavcodec/qsv.h                 |   4 +-
 libavcodec/qsv_internal.h        |   6 +-
 libavcodec/qsvdec.c              |  15 +-
 libavcodec/qsvenc.c              |  25 +-
 libavcodec/qsvenc.h              |   9 +-
 libavcodec/qsvenc_h264.c         |   3 +-
 libavcodec/qsvenc_hevc.c         |   3 +-
 libavcodec/qsvenc_jpeg.c         |   3 +-
 libavcodec/qsvenc_mpeg2.c        |   3 +-
 libavcodec/qsvenc_vp9.c          |   3 +-
 libavfilter/qsvvpp.c             | 139 ++++++++++-
 libavfilter/qsvvpp.h             |  12 +-
 libavfilter/vf_deinterlace_qsv.c |  72 +++---
 libavfilter/vf_scale_qsv.c       |  88 +++----
 libavutil/hwcontext_opencl.c     |   2 +-
 libavutil/hwcontext_qsv.c        | 380 ++++++++++++++++++++++++++-----
 libavutil/hwcontext_qsv.h        |  18 +-
 19 files changed, 839 insertions(+), 188 deletions(-)