SpinSDK v7.0 Release Notes – December 2024
SDK
- Add preliminary support for macOS 14 Sonoma (ARM64 and x86-64), Windows 11 ARM64 and Linux ARM64
- Binaries not included in public package, contact support for more information
- macOS (macOS 14 Sonoma)
- Support SDK modules: SpinDec, SpinEnc and SpinFilter
- Windows 11 ARM64 and Linux ARM64
- All SDK modules and applications are available, but some restriction in features
- Add statmux support in sample
- Add support for Windows unicode input in
streamenc
andstreamplay
streamenc
- Application level chunk size configuration for DASH/HLS with multiple streams
- Application level total thread count, with automatic thread subdivision to modules in the pipeline based on module complexity
- Add stereo3D and spherical format override in decoders
streamplay
- Add
--loopdelay
option to control waiting time before looping - Add desktop coordinates when listing devices (Windows only)
- Prevent sleep and turning off display when app is running (Windows only)
- Add
- Add ST2110 support with Rivermax devices (contact support for more information)
- Licensing improvements
- Discontinued SCL and RMS licenses.
- Add support for CodeMeter Cloud License (CmCloudLicense)
- Rebased SpinLAV libraries on FFmpeg 7.0
- Update Decklink SDK to version 14.2
SpinEnc
- Add API
SpinEncLib_UpdateRateParams
- Control bitrate/QP targets and buffer sizes at runtime
- Adjust internal RC buffer levels at runtime
- Add separate configuration of IDR/CRA to improve efficiency when using larger chunk sizes
- Add statmux support
- Share bitrate for multiple constant quality CQP/PQP encodings
- Callback APIs
SpinEnc_Param::RateControl::cbUpdatePredBits
,SpinEnc_Param::RateControl::cbReturnActualBits
,SpinEnc_Param::RateControl::cbGetBitrateFactor
- A statmux controller can determine how much bitrate should be reduced based on the predicted future bits and actual past bits.
- The bitrate factor is retrieved by each SpinEnc instance. Bitrate factors can range from 0.1x to 2.0x.
- Add external control of rate control model bias factor (
RateControl::fRcBiasFactor
) - Add real-time boost feature to dynamically reduce encoding complexity based on frame deadlines
- Add new window based rate control for VBR and PQP
- Maximum bitrate is controlled by the bitrate of a sliding window instead of a leaky bucket buffer model
- Matches better chunk size limitation for DASH/HLS delivery
- Add support for Chroma RDO, Dualtree, and MTT tools for VVC encoder
- Add
SpinEnc_Param::RateControl::bPermissive
to allow experimenting with lower bitrates, smaller HRD buffers, and larger GOP sizes for given HRD buffers - New QP cascading algorithm that models effect quantization on prediction
- Modulates QP cascading depths for better compression (up to 5% avg BD-rate compression gains)
- Improve rate control
- Add rate control for already inflight frames to reduce risk of buffer overflow
- Improve buffer target projection with small buffer and lookahead sizes (low latency configs)
- Improve perceptual model and coding
- Improve VVC reshaper modelling to keep resulting bitrates closer to original targets
- Improve PQP mode by simplifying the temporal strength and leveraging the QP cascading quantization model
- Switch to local average temporal complexity for temporal perceptual factor to preserve quality of small objects
- Change default GOP size to 32 for >100 fps streams
- Fix AUD fields VVC
- Fix sub pictures encoding in 8bit with md5sum generation
- Fix minimum bitrate check when gop size is 32
SpinDec
- Add support for extra VVC tools
- Dualtree
- 4×4 min CU size
- Add ARM SIMD optimization
- Improve error resilience VVC
- Fix HEVC deblocking with very low QP
- Fix VVC streams without loopfilters
- Fix VVC reference picture selection
- Fix VVC streams with DQP and max TU size < max CU size
- Fix logo blending when using demo license
SpinRender
- Add support for Rivermax ST2110-20 outputs allowing up to 8K 120Hz 422-10b video rendering over 100Gb link (ConnectX-6 DX)
- Add support for Decklink 8K Pro G2 device
- Introduce the new option
SpinRender_Param::bNoDynResChange
, which allows disabling support for dynamic input resolution to improve rendering performance using SDI and IP devices. - Add new API
SpinRenderLib_GetRefTime
to retrieve the device reference time of the first render device. - Change bDmaCoreId and uiDmaCoreId to a core range for the video IO threads
- Fix tiled rendering mode for input with cropping margins
- Fix tiled mode for inputs with a dimension larger than 16384
SpinAudRen
- Add support for Rivermax ST2110-20
- Add windows default audio device as first device in enumeration
- Remove 32ch limit for Decklink devices
SpinRawIO
- Add support for Rivermax ST2110 video and audio capture
- Extend SLS mode to interleave frames from multiple inputs to create higher framerates
- Change bDmaCoreId and uiDmaCoreId to a core range for the video IO threads
SpinStream
- Update to FFmpeg 7.0.1 base
- Add support for parsing HEVC/AV1/OPUS in FLV container
- In live mode throttle file output to realtime as well
- Add support for live RTMP HEVC reception
- Update SRT to v1.5.3
- Fix deadlock when one stream is too far ahead/behind