Skip to content

Commit 097d9df

Browse files
committed
v0.33.0
1 parent 12eb489 commit 097d9df

File tree

11 files changed

+59
-14
lines changed

11 files changed

+59
-14
lines changed

Changelog.md

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,41 @@
11
Change log:
22

3+
# 0.33.0
4+
5+
- API:
6+
- Audio/VideoFrame is ref counted
7+
- Add `VideoFrame.get(DX11Resource*, ID3D11Device*)` to get underlying dx11 resource, or convert to dx11 textures if device is provided(cuda only)
8+
- 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.
9+
- MFT:
10+
- Support async and hardware mft via property `hardware=1` or `async=1`, hardware implies async. jpeg and vp8 can be async decoder
11+
- `hardware` property value can be a vendor name, e.g. `nvidia`, `intel`, `amd`, `qcom`
12+
- packed yuv format is not preferred
13+
- D3D11:
14+
- 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
15+
- 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.
16+
- Fix signal on a wrong fence
17+
- Improve cross device rendering w/o cpu wait
18+
- OpenGL:
19+
- Fix yuv sampler shader
20+
- Don't use GL_OES_EGL_image_external for ES3, fix error on some devices(e.g. rk3588 mali driver)
21+
- More EGL platform types, and platform extension is used when possible.
22+
- Metal: render target supports array texture
23+
- CUDA:
24+
- Add decoder property `array=N` or global option `cuda.array` for dx11 to use an array texture as output
25+
- Add decoder property `persistent` or global option `cuda.persistent` for gl and dx11 to map as cuda resource only once
26+
- Dolby vision: support profile 20, used by MV-HEVC
27+
- Use rgba format for GBM to fix no EGLConfig for rgb. env var `GBM_FORMAT` can force another format, the value is a GBM fourcc, e.g. `AR24`
28+
- record() without any decoder will remux the media. steps: `setMedia(..., {}) => record(file,...) => set(State::Playing) => waitFor(State::Stopped)`
29+
- Fix avfilter processed audio format
30+
- Fix bitmap subtitle display area
31+
- Fix some subtitle crash
32+
- Fix mirror for rotated video used by OpenGL FBO
33+
- build with libc++21
34+
- lto is disabled for apple platforms because of compiler bug.
35+
- FFmpeg: support 8.0 abi
36+
- Add global option `ffmpeg` and `libffmpeg` to reload all av modules, value can be libffmpeg path or handle
37+
38+
339
# 0.32.0
440

541
- API:
@@ -19,7 +55,7 @@ Change log:
1955
- VT: `RequestedMVHEVCVideoLayerIDs` bug reported by me in 2024 is fixed in macOS 15.4, so remove workaroud for macOS 15.4+
2056
- VAAPI: add "vpp" property, 1 to convert to rgb via vpp
2157
- EGL:
22-
- Prefer storage extension instead of external image for desktop gl, supported formats is vendor dependent. Works well on raspberry pi, previously only OpenGL ES + external image is supported.
58+
- Prefer storage extension for desktop gl. external only formats support is vendor dependent. Works well on all gpus including raspberry pi. previously only OpenGL ES + external image can be used for extenal only formats.
2359
- Fix no hdr metadata warnings in system log on android
2460
- Support android platform display
2561
- Fix HDR display if no colorspace extension(regression in 0.31.0)

README.Android.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
- Subtitle rendering, including ass, plain text, bitmap, closed caption
1818
- [Seamless/Gapless media and bitrate switch for any media](https://github.com/wang-bin/mdk-sdk/wiki/Player-APIs#player-setcolorspace-value-void-vo_opaque--nullptr)
1919
- Optimized Continuous seeking. As fast as mpv, but much lower cpu, memory and gpu load. Suitable for [timeline preview](https://github.com/wang-bin/mdk-sdk/wiki/Typical-Usage#timeline-preview)
20-
- [Smart FFmpeg runtime, dynamic load, binary compatible with 4.0~7.x](https://github.com/wang-bin/mdk-sdk/wiki/FFmpeg-Runtime)
20+
- [Smart FFmpeg runtime, dynamic load, binary compatible with 4.0~8.x](https://github.com/wang-bin/mdk-sdk/wiki/FFmpeg-Runtime)
2121

2222

2323
## About SDK for Android

README.Linux.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
- Subtitle rendering, including ass, plain text, bitmap, closed caption
1818
- [Seamless/Gapless media and bitrate switch for any media](https://github.com/wang-bin/mdk-sdk/wiki/Player-APIs#player-setcolorspace-value-void-vo_opaque--nullptr)
1919
- Optimized Continuous seeking. As fast as mpv, but much lower cpu, memory and gpu load. Suitable for [timeline preview](https://github.com/wang-bin/mdk-sdk/wiki/Typical-Usage#timeline-preview)
20-
- [Smart FFmpeg runtime, dynamic load, binary compatible with 4.0~7.x](https://github.com/wang-bin/mdk-sdk/wiki/FFmpeg-Runtime)
20+
- [Smart FFmpeg runtime, dynamic load, binary compatible with 4.0~8.x](https://github.com/wang-bin/mdk-sdk/wiki/FFmpeg-Runtime)
2121

2222

2323
## About SDK for Linux

README.WinRT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
- Subtitle rendering, including ass, plain text, bitmap, closed caption
1818
- [Seamless/Gapless media and bitrate switch for any media](https://github.com/wang-bin/mdk-sdk/wiki/Player-APIs#player-setcolorspace-value-void-vo_opaque--nullptr)
1919
- Optimized Continuous seeking. As fast as mpv, but much lower cpu, memory and gpu load. Suitable for [timeline preview](https://github.com/wang-bin/mdk-sdk/wiki/Typical-Usage#timeline-preview)
20-
- [Smart FFmpeg runtime, dynamic load, binary compatible with 4.0~7.x](https://github.com/wang-bin/mdk-sdk/wiki/FFmpeg-Runtime)
20+
- [Smart FFmpeg runtime, dynamic load, binary compatible with 4.0~8.x](https://github.com/wang-bin/mdk-sdk/wiki/FFmpeg-Runtime)
2121

2222

2323
## About SDK for Windows Desktop & UWP

README.Windows.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
- Subtitle rendering, including ass, plain text, bitmap, closed caption
2020
- [Seamless/Gapless media and bitrate switch for any media](https://github.com/wang-bin/mdk-sdk/wiki/Player-APIs#player-setcolorspace-value-void-vo_opaque--nullptr)
2121
- Optimized Continuous seeking. As fast as mpv, but much lower cpu, memory and gpu load. Suitable for [timeline preview](https://github.com/wang-bin/mdk-sdk/wiki/Typical-Usage#timeline-preview)
22-
- [Smart FFmpeg runtime, dynamic load, binary compatible with 4.0~7.x](https://github.com/wang-bin/mdk-sdk/wiki/FFmpeg-Runtime)
22+
- [Smart FFmpeg runtime, dynamic load, binary compatible with 4.0~8.x](https://github.com/wang-bin/mdk-sdk/wiki/FFmpeg-Runtime)
2323

2424

2525
## About SDK for Windows Desktop & UWP

README.iOS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
- Subtitle rendering, including ass, plain text, bitmap, closed caption
1818
- [Seamless/Gapless media and bitrate switch for any media](https://github.com/wang-bin/mdk-sdk/wiki/Player-APIs#player-setcolorspace-value-void-vo_opaque--nullptr)
1919
- Optimized Continuous seeking. As fast as mpv, but much lower cpu, memory and gpu load. Suitable for [timeline preview](https://github.com/wang-bin/mdk-sdk/wiki/Typical-Usage#timeline-preview)
20-
- [Smart FFmpeg runtime, dynamic load, binary compatible with 4.0~7.x](https://github.com/wang-bin/mdk-sdk/wiki/FFmpeg-Runtime)
20+
- [Smart FFmpeg runtime, dynamic load, binary compatible with 4.0~8.x](https://github.com/wang-bin/mdk-sdk/wiki/FFmpeg-Runtime)
2121

2222

2323
## Swift

README.macOS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
- Subtitle rendering, including ass, plain text, bitmap, closed caption
1818
- [Seamless/Gapless media and bitrate switch for any media](https://github.com/wang-bin/mdk-sdk/wiki/Player-APIs#player-setcolorspace-value-void-vo_opaque--nullptr)
1919
- Optimized Continuous seeking. As fast as mpv, but much lower cpu, memory and gpu load. Suitable for [timeline preview](https://github.com/wang-bin/mdk-sdk/wiki/Typical-Usage#timeline-preview)
20-
- [Smart FFmpeg runtime, dynamic load, binary compatible with 4.0~7.x](https://github.com/wang-bin/mdk-sdk/wiki/FFmpeg-Runtime)
20+
- [Smart FFmpeg runtime, dynamic load, binary compatible with 4.0~8.x](https://github.com/wang-bin/mdk-sdk/wiki/FFmpeg-Runtime)
2121

2222

2323
## Swift

README.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ NuGet[![NuGet](https://img.shields.io/nuget/dt/mdk)](https://www.nuget.org/packa
1616
## Features
1717

1818
- [Simple and powerful API set](https://github.com/wang-bin/mdk-sdk/wiki/Player-APIs)
19-
- [Cross platform: Windows(x86, arm), UWP, Linux, macOS, Android, iOS, tvOS, visionOS, Raspberry Pi](https://github.com/wang-bin/mdk-sdk/wiki/System-Requirements)
19+
- [Cross platform: Windows(x86, arm), UWP, Linux, macOS, Android, iOS, tvOS, visionOS, Raspberry Pi, RockChip](https://github.com/wang-bin/mdk-sdk/wiki/System-Requirements)
2020
- [Hardware accelerated decoders for all platforms](https://github.com/wang-bin/mdk-sdk/wiki/Decoders)
2121
- [0-copy GPU rendering for all platforms and all renderers(Vulkan is WIP.)](https://github.com/wang-bin/mdk-sdk/wiki/Zero-Copy-Renderer)
2222
- [Dynamic OpenGL](https://github.com/wang-bin/mdk-sdk/wiki/OpenGL-Support-Matrix)
@@ -29,7 +29,7 @@ NuGet[![NuGet](https://img.shields.io/nuget/dt/mdk)](https://www.nuget.org/packa
2929
- Subtitle rendering, including ass, plain text, bitmap, closed caption
3030
- [Seamless/Gapless media and bitrate switch for any media](https://github.com/wang-bin/mdk-sdk/wiki/Player-APIs#player-setcolorspace-value-void-vo_opaque--nullptr)
3131
- Optimized Continuous seeking. As fast as mpv, but much lower cpu, memory and gpu load. Suitable for [timeline preview](https://github.com/wang-bin/mdk-sdk/wiki/Typical-Usage#timeline-preview)
32-
- [Smart FFmpeg runtime, dynamic load, binary compatible with 4.0~7.x](https://github.com/wang-bin/mdk-sdk/wiki/FFmpeg-Runtime)
32+
- [Smart FFmpeg runtime, dynamic load, binary compatible with 4.0~8.x](https://github.com/wang-bin/mdk-sdk/wiki/FFmpeg-Runtime)
3333

3434

3535
## Install
@@ -103,6 +103,14 @@ You may fail to run(or codesign) with default hardened runtime options because t
103103
```cpp
104104
player.setDecoders(MediaType::Video, {"V4L2M2M", "FFmpeg:hwcontext=drm", "FFmpeg"});
105105
```
106+
107+
- RockChip: use [mdk-sdk-linux.tar.xz](https://sourceforge.net/projects/mdk-sdk/files/nightly/mdk-sdk-linux.tar.xz/download), delete libffmpeg.so.* and use https://github.com/nyanmisaka/ffmpeg-rockchip to support rkmpp hardware decoders and use OpenGL ES2/3(mali driver only?) 0-copy rendering, including rendering 10bit videos w/o rga filters(the only player supports this feature!)
108+
109+
```cpp
110+
SetGlobalOption("gl.yuv_sampler" "1"); // optional
111+
player.setDecoders(MediaType::Video, {"rkmpp", "FFmpeg"});
112+
```
113+
106114
- Android:
107115
```cpp
108116
SetGlobalOption("JavaVM", JvmPtr); // REQUIRED
@@ -160,7 +168,8 @@ You may fail to run(or codesign) with default hardened runtime options because t
160168
![DaKanji](https://dakanji.app/wp-content/uploads/thegem-logos/logo_a496404d3d63fd29f344146e428d0992_2x.png)](https://dakanji.app)
161169
[![Pimosa](https://pimosa.app/_next/image?url=%2Flogo_final.png&w=64&q=75)](https://pimosa.app)
162170
<a href="https://apidash.dev"><img src="https://apidash.dev/media/apidash.png" alt="API Dash" width=120 height=120 style="background-color:black"></a>
163-
<a href="https://www.iptv-smarters-expert.app"><img src="https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/5b/28/ca/5b28ca83-3685-f6fb-70eb-a0205c6f1a87/AppIcon-0-0-85-220-0-5-0-2x.png/460x0w.webp" width=120 height=120 style="background-color:black"></a>
171+
<a href="https://www.iptv-smarters-expert.app"><img src="https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/5b/28/ca/5b28ca83-3685-f6fb-70eb-a0205c6f1a87/AppIcon-0-0-85-220-0-5-0-2x.png/460x0w.webp" alt="IPTV Smarters Expert" width=120 height=120 style="background-color:black"></a>
172+
<a href="https://app.nextv.fr"><img src="https://app.nextv.fr/images/nextv-logo.svg" alt="NexTv" width=180 height=180 style="background-color:black"></a>
164173

165174
[easy live tv](https://github.com/aiyakuaile/easy_tv_live)
166175
[Kazumi](https://github.com/Predidit/Kazumi)

mdk.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
Pod::Spec.new do |s|
22
s.name = 'mdk'
3-
s.version = '0.32.0'
3+
s.version = '0.33.0'
44
s.summary = 'Multimedia Development Kit'
55
s.homepage = 'https://github.com/wang-bin/mdk-sdk'
66

77
s.author = { 'Wang Bin' => 'wbsecg1@gmail.com' }
8-
s.license = { :type => 'MIT', :text => <<-LICENSE
8+
s.license = { :type => 'Commercial', :text => <<-LICENSE
99
Copyright 2020-2025 WangBin
1010
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
1111
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

nuget/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
- Subtitle rendering, including ass, plain text, bitmap, closed caption
2020
- [Seamless/Gapless media and bitrate switch for any media](https://github.com/wang-bin/mdk-sdk/wiki/Player-APIs#player-setcolorspace-value-void-vo_opaque--nullptr)
2121
- Optimized Continuous seeking. As fast as mpv, but much lower cpu, memory and gpu load. Suitable for [timeline preview](https://github.com/wang-bin/mdk-sdk/wiki/Typical-Usage#timeline-preview)
22-
- [Smart FFmpeg runtime, dynamic load, binary compatible with 4.0~7.x](https://github.com/wang-bin/mdk-sdk/wiki/FFmpeg-Runtime)
22+
- [Smart FFmpeg runtime, dynamic load, binary compatible with 4.0~8.x](https://github.com/wang-bin/mdk-sdk/wiki/FFmpeg-Runtime)
2323

2424

2525
## About SDK for Windows Desktop & UWP

0 commit comments

Comments
 (0)