KingDownloads

mdk-sdk version history

11 releases tracked, newest first.

v0.37.0

Jun 30, 2026
- Added ProRes Raw color parameter parsing and rendering support - Introduced disk cache for http(s) with configurable protocols and directory - Improved frame drop handling for better playback sync and performance - Enhanced GPU support for bayer formats and ProRes Raw rendering with color correction

6 downloads

v0.36.0

Apr 27, 2026
- Added OpenHarmony (OHOS) support with hardware video decoder and HDR10 passthrough - Introduced new lossless HAP compression and GLRenderer.depth option - Improved Android audio with AAudio as default and AMediaCodec enhancements - Various fixes for decoders, EGL, and performance optimizations

9 downloads

v0.35.1

Dec 30, 2025
- API: Fix frame move assignment and constructor - VT: - Improve AV1 support - Ignore session create error for hvc1, fix decoder open error on macOS 26 - VAAPI: - Fallback to drm display if no wayland - Add drm vendor option: vendor can be "nv", "intel" etc. - rockchip decoder: supprt avs1 p2 p16(avs+), avs2 - Shader: - Fix locale restore - HLG extended model - BRAW: stop decoding on error to fix corrupt file playback - Fix subtitle font scale - Fix audio + cover art wrong position after seek and loop - Fix BC4 channel map and display white as red in dx, metal and vk renderer - FFmpeg: - Add property "codec.$name" to force a decoder for a codec, for example `"FFmpeg:codec.cavs=libcavs"` - Keep streams order for muxer

13 downloads

v0.35.0

Sep 30, 2025
- API: - Add `Player.onSubtitleText()`, a callback to be invoked when new subtile text lines are ready to display - Add global options `video.decoders.hint`, used by `player.setProperty("video.decoders", GetGlobalOption("video.decoders.hint"))` - More properties. `avsync.audio` value "false" can sync to a steady clock - VT: - Fix vp9 alpha layer is not decoded - HEVC alpha is always supported even for sw decoders - Support "only" & "delivery" to drop frames, known to work for jpeg and maybe more - Metal: - Fix renderer and layer colorspace do not match, e.g. bt2100pq is used for prores raw's bt2100 scene referred linear - Update renderer if "cc", "subtitle" property changed even when paused - D3D11: - Disable internal fence if kmt is used - Avoid creating rtv for decoder error - CUDA: - Fix gfx resources are not unregistered - Record active tracks only - Optimize vk spirv blobs - Fix macOS < 10.13 compatibility - Fix wrong subtitle aspect ratio in vo size mode - FFmpeg: - Fix SAR if only exists in container - Add property "avformat.input" to force input format, e.g. can be used by h264 raw stream over udp - BRAW

9 downloads

v0.34.0

Sep 1, 2025
- API: - Add `VideoFrame.rotation()` - Add `VideoFrame.metadata()`. Currently it's only used by exporting frame SEI, see [this feature request](https://github.com/wang-bin/mdk-sdk/issues/323) - Add `Player.setAudioMix()` - Add [rockchip decoder](https://github.com/wang-bin/mdk-rockchip) as a plugin, libmdk-rockchip.so from sdk is required(will be copied automatically if use FindMDK.cmake). `setDeoders(MediaType::Video, {"rockchip", "FFmpeg", "dav1d"})` will enable rockchip decoder. [Document](https://github.com/wang-bin/mdk-sdk/wiki/Decoders#rockchip) - Decoder plugins are loaded automatically when invoking `setDecoders()`. plugin name is `mdk-$decodename_lowercase`. For example, `SetGlobalOption("plugins", "mdk-braw:mdk-r3d")` is no longer required for BRAW and R3D decoder. - VT decoder: - force prores raw output rgbaf16. Previously the default format is used, which is rgbaf16 on M1, `'b16q'`(a 4 planes bayer format) on M2+, but `'b16q'` is not supported by current renderers. - ProRes Raw support scene referred extended linear trc. Now Metal renderer has almost the same result as QuickTime player. - Add `scale` property to output a lower resolution

9 downloads

v0.33.1

Jul 5, 2025
- GL: - Support debug output, via `GLRenderAPI.debug = true` or env var `GL_DEBUG=1` - Prefer EGL platform window - Improve EGL init for GBM - Prefer YUV sampler except [android](https://github.com/wang-bin/mdk-sdk/issues/314) - [Fix immutable storage texture leak when rendering DRM objects](https://github.com/wang-bin/mdk-sdk/issues/304) - CUDA: - Use a stream for output - Fix blank lines at bottom if coded height != height - VAAPI: - Support wayland display via `SetGlobalOption("wl_display*")`. It's optional because x11 and drm also work in wayland environment - Fix dri3 interop was disabled and unusable long times ago - va display is shared by default to avoid an potential crash in x11, can be disabled by decoder option `shared=0` or `SetGlobalOption("vaapi.shared", 0)` - D3D11: - Fix RTV leak in 0.33.0 - Disable `IDXSync` introduced in 0.33.0 for D3D11RenderAPI.rtv because a leak issue not yet fixed - Fix high cpu load on linux when EOF is read - Fix global options not applied for decoders output drm objects, except vaapi - Fix a mem leak: drmGetFormatModifierName, pulse audio init - Apple: fix audio renderer re

9 downloads

v0.33.0

May 28, 2025
- API: - Audio/VideoFrame is ref counted - Add `VideoFrame.get(DX11Resource*, ID3D11Device*)` to get underlying dx11 resource, or convert to dx11 textures if device is provided(cuda only) - Rockchip rkmpp decoder 10bit output can be directly imported by EGLImage w/o rga format conversion. Maybe it's the only player supports this feature. - MFT: - Support async and hardware mft via property `hardware=1` or `async=1`, hardware implies async. jpeg and vp8 can be async decoder - `hardware` property value can be a vendor name, e.g. `nvidia`, `intel`, `amd`, `qcom` - packed yuv format is not preferred - D3D11: - Render target D3D11RenderAPI.rtv can be an array texture. array index starts from 0, and increases if renderVideo() draws a new frame, i.e. returns a new timestamp - Expose [IDXSync](https://github.com/wang-bin/mdk-sdk/wiki/Render-API#idxsync) for user, which can be used to sync between contexts if render decoded dx11 resource from `VideoFrame.get(DX11Resource*)` or encode/process dx11 texture rendered by `renderVideo()`. It's also used internally. - Fix signal on a wrong fence - Improve cross device rendering w/o cpu wait - OpenGL

9 downloads

v0.32.0

Mar 22, 2025
- API: - Add `AudioFrame` and `Player.onFrame<AudioFrame>()`. Example: [obs](https://github.com/wang-bin/obs-mdk/commit/b5027fffa08765626954af8e5ca0566416e50f38) - `VideoFrame.from()` can import CUDA and VAAPI resources - **NEW: VP8/9, HEVC with Alpha support.** Maybe it's the 1st player engine supports those standard alpha videos. - VP8/9, HEVC alpha layer decoding for all decoders. - alpha layer rendering in all renderers. Alpha and base layer can be from different decoders and have different strides, and sampler types can be different. - `alpha=0` can disable alpha layer decoding, e.g. `player.setProperty("video.decoder", "alpha=0")` - non-standard alpha videos whose alpha data is at bottom or right, enable via decoder property `alpha=right` or `alpha=bottom`. sw decoder or hw decoder copy mode only. - MFT: support HEVC base layer decoding if has multiple layers(alpha and MV-HEVC). By default such bitstream is rejected by MFT - D3D11: fix downloading from stage texture, previously may crash on amd, arm64 - CUDA: - Only decode base layer of has multiple layers. By default it decodes all layers(alpha and MV-HEVC). - Add properties `device`,

10 downloads

v0.31.0

Jan 30, 2025
- API: - Add color space and dolby vision profile in MediaInfo - Add `VideoEffect::ScaleChannels` and `ShiftChannels` - Add `Player.subtitleText()` to get subtitle text(except bitmap subtitles) with ass style or not, even if subtitle rendering is disabled by `setProperty("subtitle", "0")`. see https://github.com/wang-bin/mdk-sdk/wiki/Player-APIs#stdstring-subtitletextdouble-time---1-int-style--0-const - EGL: - Support HDR color spaces. `player.set(ColorSpaceUnknown)` will switch between HDR and SDR color space depending on current rendering video frame. Tested on android, may work on linux - Enable HDR10 metadata pass through, can be disabled by env var `EGL_HDR_METADATA=0` - Prefer rgb10a2 to avoid recreating context when switching between SDR and HDR - Support KHR_no_config_context to avoid recreating context when switching between SDR and HDR - Subtitle: - Fix properties not applied if set before play - Support splitting ASS rendered rgba image into several smaller regions when possible to reduce total size and gpu bandwidth. controlled by player property `subtitle.ass.regions.max` or env `ASS_REGIONS_MAX`, value is int. use `subtit

9 downloads

v0.30.1

Nov 23, 2024
- Fix a crash in audio renderer if get delay - renderVideo() before the 1st frame will clear render target with background color. useful if render target content is undefined - Fix some global options not applied immediately - FFmpeg: prefer new avcodec_get_supported_config()

9 downloads

v0.30.0

Nov 8, 2024
- API: - Add `Player.appendBuffer()` to play streams with user provided data, for example data is from [websocket](https://github.com/wang-bin/mdk-examples/blob/master/Native/stream.cpp). media protocol is `stream`, i.e. `player.setMedia("stream:empty_or_any_string")`. `setTimeout()` can abort current playback if timedout to read data from user. - Plain text subtitle(srt for example) style can be changed by user via [subtitle properties](https://github.com/wang-bin/mdk-sdk/wiki/Player-APIs#subtitle-properties) - Multi channels audio rendering, no downmix to stereo - Support dolby vision in mpeg ts - PulseAudio is the default audio render for linux - Improve audio renderer delay and AV sync - VT: Fix hardware decoder disabled if hvcC has no PS NALUs - D3D11: - Fix UMA check if run x64 on arm64 and failed to create textures - Disable cross context 0-copy for AMD gpus to avoid corrupt result on many gpus - Set usage for swapchain, fix back buffer RTV create error on some win7 devices - VAAPI: - Map YUYV fourcc, fix jpeg yuv 422 rendering - Convert to RGB with VPP if DRM to EGLImage is not possible(desktop gl + external only formats) - DRM Prime:

9 downloads