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/2024q3 (tag: 2024q3)
Supported Intel Platforms:
- ARL (Arrow Lake)
- LNL (Lunar Lake)
- MTL (Meteor Lake)
- ATS-M (Arctic Sound)
- DG2 (Discrete Graphics 2)
- RPL (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)
- CFLx (CFL/Coffee Lake; WHL/Whiskey Lake; CML/Comet Lake; AML/Amber Lake)
Tested Features:
- Decode: VVC (8/10bit), AVC/H264, HEVC/H265 (8/10/12bit), AV1 (8/10bit), VP9 (8/10/12bit), VP8, JPEG/MJPEG, MPEG2
- Encode: AV1 (8/10), AVC/H264, HEVC/H265 (8/10/12bit), 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/intel/libvpl/releases/tag/v2.13.0
- VPL Runtime: https://github.com/intel/vpl-gpu-rt/releases/tag/intel-onevpl-24.3.4
- Media SDK: Intel-Media-SDK/MediaSDK@7a72de3
- Media driver: https://github.com/intel/media-driver/releases/tag/intel-media-24.3.4
- Libva: https://github.com/intel/libva/releases/tag/2.22.0
- Libva-utils: https://github.com/intel/libva-utils/releases/tag/2.22.0
- Gmmlib: https://github.com/intel/gmmlib/releases/tag/intel-gmmlib-22.5.2
Binary:
these components binary of media stack (LibVA/iHD/VPL/GmmLib) can be found from https://github.com/intel/vpl-gpu-rt/releases/tag/intel-onevpl-24.3.4
Contactors:
Please contact [email protected], if you have any question.
New Detail
2024Q3:
- GStreamer added Intel new LNL and ARL platforms support
- gstreamer-msdk and gstreamer-va supported Intel new XE driver
- gstreamer-msdk msdkvpp added interpolation mode for scaling
- gstreamer-va added vajpengenc support
2024Q2:
- gstreamer-va added VVC decode support
- gstreamer-msdk add main-422-12 profile to hevc encoder
- gstreamer-msdk BGRx format in mjpegenc
- gstreamer-msdk Fix encoding incomplete issue in multi-channel vpp -included transcoding case
2024Q1:
- cartwheel-gstreamer patches supported the latest gstreamer 1.24 release
- Prioritize va memory when dynamically creating caps
- Fix lots of memory leaks
- Fix msdkvpp dma caps negotiation issue
- Fix issue of va-plugins mix with msdk-plugins in multi-channel case
2023Q4:
- GStreamer added Intel new MTL platform support
- both gstreamer-msdk and gst-va can support user-specified card on multi-gpu platform (such as dGPU+iGPU configure)
- gstreamer-msdk decoder support dynamic frame allocation from libvpl 2.9 version
- gstreamer-msdk add icq encode mode support
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