Intel gstreamer patches upstream 2023q3 queue
Gstreamer-va, Gstreamer-msdk (in gst-plugins-bad) and Gstreamer-vaapi upstream patches commits tested:
- Cartwheel-gstreamer: https://github.com/intel/cartwheel-gstreamer/releases/tag/2023q3 (tag: 2023q3)
Supported Intel Platforms:
- ATS-M
- DG2
- RPL-S (Raptor Lake-S/P)
- ADL-S (Alder Lake-S/P/N)
- SG1/DG1
- RKL (Rocket Lake)
- TGL (Tiger Lake)
- ICL (Ice Lake)
- JSL (Jasper Lake)/EHL (Elkhart Lake)
- KBLx (KBL/Kaby Lake; CFL/Coffee Lake; WHL/Whiskey Lake; CML/Comet Lake; AML/Amber Lake)
Tested Features:
- Decode: AVC/H264, HEVC/H265 (8, 10, 12bit), AV1 (8, 10bit), VP9 (8, 10, 12bit), VP8, JPEG/MJPEG, MPEG2
- Encode: AV1(8, 10bit), AVC/H264, HEVC/H265 (8, 10bit), VP9 (8, 10bit), VP8, JPEG/MJPEG, MPEG2
- VPP: procamp (brightness/contrast/saturation/hue), csc, deinterlace, denoise, scale, sharpen, mirroring, rotation, transpose
Supported Features among Intel platforms:
For features supported on each Intel platform, please refer to links below:
- decode/encode features: https://github.com/intel/media-driver/#decodingencoding-features
- VPP features: https://github.com/intel/media-driver/#video-processing-features
Build configures
Gstreamer build configure:
- #meson -Dprefix=$ROOT_INSTALL_DIR -Dlibdir=$ROOT_INSTALL_DIR/lib -Dbase=enabled -Dgood=enabled -Dugly=enabled -Dbad=enabled -Dvaapi=enabled -Dgst-plugins-bad:va=enabled -Dgst-plugins-bad:msdk=enabled build
- #ninja -C build
- #ninja -C build install
Reference Configure Used: Intel Libva/iHD driver, MediaSDK, oneVPL and oneVPL GPU Runtime
- VPL Dispatcher: https://github.com/oneapi-src/oneVPL/releases/tag/v2023.3.1
- VPL Runtime: https://github.com/oneapi-src/oneVPL-intel-gpu/releases/tag/intel-onevpl-23.3.4
- Media SDK: https://github.com/Intel-Media-SDK/MediaSDK/releases/tag/intel-mediasdk-23.2.2
- Media driver: https://github.com/intel/media-driver/releases/tag/intel-media-23.3.5
- Libva: https://github.com/intel/libva/releases/tag/2.20.0
- Libva-utils: https://github.com/intel/libva-utils/releases/tag/2.20.0
- Gmmlib: https://github.com/intel/gmmlib/releases/tag/intel-gmmlib-22.3.12
Binary:
these components binary of media stack (LibVA/iHD/OneVPL/GmmLib) can be found from https://github.com/oneapi-src/oneVPL-intel-gpu/releases/tag/intel-onevpl-23.3.4
Contactors:
Please contact open.source.media.framework@intel.com, if you have any question.
New Detail
2023Q3:
Gstreamer-va plug-in support for Gstreamer (supported all Intel Gen platforms). Gstreamer-va is a refined gstreamer-vaapi from Gstreamer community which provides well designed video codec and post processing plugins based on the standard VA-API. Gstreamer-va has higher quality, better performance and provides better memory management mechanism. It is based on the common video codecs library provided by gstreamer framework and has much better code style
Gstreamer
- gst-va add Dec/enc/vpp modifier supports
- gst-msdk add Dec/enc/vpp modifier supports
- gst-msdk add Vpp supports HDR to SDR tone mapping
- gst-msdk add VPP scaling adds compute mode (using EUs)
Comments: playback through gst-va and gst-msdk pay attention to Gstreamer-modifier-playback-notice
2023Q2:
Firstly added Gstreamer-va plug-in support for Gstreamer (currently only support Gen12+ or TGL+ platforms). Gstreamer-va is a refined gstreamer-vaapi from Gstreamer community which provides well designed video codec and post processing plugins based on the standard VA-API. Gstreamer-va has higher quality, better performance and provides better memory management mechanism. It is based on the common video codecs library provided by gstreamer framework and has much better code style.
- New gstreamer-va plug-in added, which can replace gstreamer-vaapi on Intel Gen12+/TGL+ platforms
- gst-msdk support dynamic queries of dec/enc/vpp capabilities on linux path
- gst-msdk remove encoder's internal vpp of color format coversion
- gst-msdk add support to update encoders' properties dynamicly
- gst-msdk fix vp9 decoder case with reduced resolution
2023Q1
- gstreamer-msdk enabled va memory sharing for msdk decoder
- gstreamer-msdk supported d3d11 video memory for msdk decoder
- gstreamer-msdk fix encoder's failure of encoding frame without pts info into container format
2022Q4:
- Add d3d11 video memory support for encoder and vpp
- Fix decoder pts issue
- Fix vpp upper framerate conversion issue
2022Q3:
- gst-msdk improve memory abstraction for encoder and vpp, which enables the direct share of VA surface between gst-msdk enc/vpp and gst-va element
- gst-msdk fix msdkav1enc's failure with some resolutions
2022Q2:
- gst-msdk added av1 encode support;
- gst-msdk added VUYA interleaved color format in dmabuf mode
- gst-msdk added intra refresh for avc/hevc encode
2022Q1:
- gst-msdk avc/hevc decoder added SFC support for csc and scaling
- gst-msdk encoders enabled VA surface input path
- gst-vaapi improved av1 parse and fixed some av1 decode failed cases (such as film grain)
- fixed some h264 decode failed cases for gst-msdk, which needs check for width and height in mfxVideoParam
2021Q4:
- Gstmsdk vpp supports csc to 12bit format
- Gstmsdk hevc encoder supports to encode HDR SEIs