Spin SDK v8.0 – Release Notes – October 2025
SDK Package
- Merged the Lite SDK package into the Standard SDK package to provide a unified distribution.
Platform
- Add support for deployment in Docker (Linux guest system).
Samples
- Replace the CMake option
-DSPINSDK_LINUX_LIBwith-DSPINSDK_LIB_SUB_DIRfor specifying library variants on Linux.
Stream CLI apps
- Rework framework and implementation to allow for low latency
- Global –lowlat option
- Rework pipeline setup to allow for easier multi-input multi-output elements
- Fix NVDEC dts generation
- Add LibAV hardware decoder support (–ffhwdec, linux only)
- Update to NVCodec SDK 13.0.19
- Moved the NVCodec-supported versions of streamenc and streamplay to the standard SpinSDK package as
streamenc_nvandstreamplay_nv. streamenc- Add support for rendering preview
- Add spincompare support
streamplay- Add support for stream sink (–sout) to remux and store incoming streams
- Fix logo overlay toggling
- Linked zoom with multiple renderer windows
License
- Fix crash when SpinLib_InitLicense is called with a null pointer
SpinCommon
- Add support for the BC5 formats (SE_PF_BC5_420, SE_PF_BC5_422)
- Add SE_STEREO3D_Left and SE_STEREO3D_Right to identify views
- Add Spin_ExtVideoFormat to describe multilayer video
- Remove deprecated SD_E_INVALIDPICTURE, use SD_E_INVALID_PICTURE instead
- Add SD_E_INVALID_ARGS error code
- Extend SE_SEI enum types
SpinEnc
- Add support for MV-HEVC, compatible with Apple Vision Pro
- Add support for low latency encoding (1 frame latency).
- Lookahead and encoding stage now share the combined number of frames-in-flight
- Improve rate control in low latency conditions (small lookahead and small buffer scenarios)
- Add support for GDR (experimental)
- Add support for multilayer VVC (multiview and scalable coding, experimental)
- Add ITUT-T35 user registered SEI support
- Add SpinSEI_UserDataRegisteredT35 struct
- Add support for per frame HDR SEI metadata
- Add support for inserting dynamic random access points (CRA/IDR)
- Add support for output of the decoded picture together with the compressed picture
- Add codec Level and Tier override option
- Add MCTF enable/disable control
- Add more fine-grained perceptual mode controls
- SpinEnc_Param::Perceptual::fPerceptStrength to attenuate the overall factor strength factor
- SpinEnc_Param::Perceptual::fPerceptTempStr to attenuate the strength of the temporal component
- SpinEnc_Param::Perceptual::fPerceptPenStr to attenuate the strength of penalties
- New screen content detector and handling
- Significantly better classification
- Disables MCTF for screen content
- Disable some perceptual optimization for screen content
- Use default flat quantization matrix with screen content
- Fix intra mode RDO on 64×64 block level
- Add SD_E_BUFFER_LAYER_MISMATCH error code
- API changes
- Restructure SpinEnc_Descript with SpinEnc_Descript::LayerDescript to allow for multilayer description
- Rename SpinEncLib_EncodeFrame to SpinEncLib_EncodePicture
- Add SpinEncLib_MapPicture2 and SpinEncLib_EncodePicture2 to allow multilayer encoding
- Old API still available but without new capabilities (SpinEncLib_EncodeFrame, SpinEncLib_MapPicture)
- Extend SpinEncLib_CreateSEINal to allow for layer and temporal layer configuration
- Change Spin_VideoFormat to Spin_ExtVideoFormat for sEncInFmt to allow for multilayer encoding input config
- Rearrange some options to allow specifiying them per layer SpinEnc_Param::LayerOptions
SpinDec
- Reduce latency SpinDecLib_DecodeFrame interface
- Assume user supplied entire compressed frame data and start decoding immediately
- Fix inferring number of sublayer MV-HEVC
- Add SD_E_INVALID_SLICE error code
- Add layerId and maxNumReorder to SpinDec_Descriptor
SpinFilter
- Introduce the merge filter (SE_FILT_Merge) for combining multiple inputs to single output image.
- Replace and extend split filter (SE_FILT_Split) with the new expand filter (SE_FILT_Expand).
- Implement clone (SE_OUT_Clone) output mode
- Add stereo split (SE_OUT_StereoSplit) outout mode
- Introduce a new filter (SE_FILT_BlurSharp) for blurring and sharpening
- Fix cropping filter when intermediate results is used for output
- API changes
- Replace Spin_Picture sFiltInFmt to Spin_ExtVideoFormat sInFmt to allow for multiple inputs
SpinRender
- Add support for collecting E2E latency stats (time until final present call)
- Add cx and cy option to specify center of overlay
- Add tracking of end-to-end latency in SpinRender_StatConf
- Disable default high accuracy timing option
- Fix wrong aspect ratio black bars appearing when zooming out
- Fix zoom low latency renderer
- Use single device zooming in non-tiled modes
- Adjust overlay sizing for videos with height > width
SpinRawIO
- Add support for Windows Media Foundation capture sources (SE_IODEV_MFCAPTURE)
SpinStream
- Add low latency streaming support
- Incoming packets are demuxed as soon as possible
- Outgoing frames are muxed and sent as soon as possible
- Currently supported for MPEG-TS using RTP sender and receiver
- Update MPEG-TS (de)muxing to use PS packet size to reduce latency
- Add tracking of end-to-end latency in SpinStream_StatConf
- Add option to output SDP file when muxing RTP streams
- Add bRealTime param to simulate real-time sources with files
- Add support for the Caton streaming protocol
- Add SD_E_SRT_BIND, SD_E_CATON_MISSING_ID, SD_E_CATON_MISSING_KEY error codes
- API changes
- Add SpinStreamLib_GetPacket2 to allow for non-blocking and timer based packet retrieval
- Rename “muxrate” to “maxrate” in the url options
SpinCompare
- Add VMAF support (linux only, NEG model, 1080P/4K autoselect)