|
1 | 1 | Change log:
|
2 | 2 |
|
| 3 | +0.21.0 - 2023-05-31 |
| 4 | + |
| 5 | +- New D3D12 renderer via `D3D12RenderAPI`. Support all decoders. Performance is similar to D3D11. Optimal texture upload for iGPU, env var "GPU_OPTIMAL_UPLOAD=0" can disale optimal upload to compare performance. You can try [Qt6 QML example](https://github.com/wang-bin/mdk-examples/blob/master/Qt/qmlrhi/VideoTextureNodePub.cpp#L143) or `./glfwplay -d3d12 video_file`. |
| 6 | +- D3D11: |
| 7 | + - Texture upload optimize for iGPU on win10. env var "GPU_OPTIMAL_UPLOAD", significantly reduce vram usage, about 50~70%, and even more for compressed textures. Software decoders and built-in hap decoder will benifit from it. |
| 8 | + - Cache shader binaries |
| 9 | + - Fix crash on win7 if default swapchain format is not supported |
| 10 | +- DRM Prime: |
| 11 | + - Auto detect external texture requirements via modifiers |
| 12 | + - Fix fd leak in 0.20.0 |
| 13 | + - Support reusing EGLImage to improve performance via global option `SetGlobalOption("eglimage.reuse", 1)`, or decoder option `reuse=1`. Known to work for raspberry pi. |
| 14 | +- Vulkan: |
| 15 | + - Fix `snapshot()` error, a regression in previous release |
| 16 | + - Fix a crash for Hap videos |
| 17 | +- Metal: |
| 18 | + - Fix BC3CoCgSY |
| 19 | + - Support BC formats for iOS 16.4+ |
| 20 | +- OpenGL: Fix deleting queries without a context, fix potential leaks |
| 21 | +- MFT: |
| 22 | + - Supports `d3d=12` option to enable d3d12 decoding. Currently 0-copy renderer is only D3D12, requires `copy=1` option to be used in other renderers. |
| 23 | + - `d3d=11` is default |
| 24 | + - Fallback to lower d3d version or software decoder if open error. So now using `MFT` without option as decoder name is enough. |
| 25 | + - Fix decode error on win7 |
| 26 | +- VAAPI: |
| 27 | + - [Support windows](https://devblogs.microsoft.com/directx/video-acceleration-api-va-api-now-available-on-windows), backend is d3d12 decoder. Currently only supported by D3D12 renderer 0-copy rendering, or use `copy=1` option for other renderers. Requires dlls from https://www.nuget.org/packages/Microsoft.Direct3D.VideoAccelerationCompatibilityPack can be found by `LoadLibrary()` |
| 28 | + - Fix render error because of drm fd leak |
| 29 | +- Raspberry Pi 3/4: |
| 30 | + - Perfectly support h264, hevc hardware decoder and 0-copy rendering in Raspberry Pi OS via `Player.setDecoders(MediaType::Video, {"V4L2M2M","FFmpeg:hwcontext=drm"})`. System ffmpeg is required, MUST delete libffmpeg.so.* in mdk sdk package. May also work with https://github.com/jc-kynesim/rpi-ffmpeg . EGL + OpenGL ES2/3 is recommended by hevc. You can test with `./glfwplay -c:v V4L2M2M,FFmpeg:hwcontext=drm -gl test.mp4` |
| 31 | +- Android: |
| 32 | + - AMediaCodec video decoder enable `image=1` option by default, lower latency |
| 33 | + - Fix acquiring AImage when it's not ready |
| 34 | + - Fix jni env detach |
| 35 | + - Add `low_latency` option for AMediaCodec video decoder, default is 0. requires api level 30+ |
| 36 | +- Fix alpha value for opaque formats in all renderers |
| 37 | +- Enable `SeekFlag::InCache` for `Default` flag |
| 38 | +- Support programs, add `MediaInfo.program`. `setActiveTracks(MediaType::Unknown, {N})` will select Nth program and it's audio/video tracks will be active. Useful for mpegts programs |
| 39 | +- Add `SubtitleStreamInfo.metadata`, subtitle(and other streams) language is `metadata["language"]` |
| 40 | +- New pixel formats supported by dx, drm |
| 41 | +- Fix a/v sync if audio duration is a lot less than video |
| 42 | +- Fix BRAW seek |
| 43 | +- FFmpeg: |
| 44 | + - Improve abi compatibility, better support ffmpeg 4.x and 5.x |
| 45 | + |
| 46 | + |
3 | 47 | 0.20.0 - 2023-02-28
|
4 | 48 |
|
5 | 49 | - Support R3D raw videos via R3D SDK. Document: https://github.com/wang-bin/mdk-sdk/wiki/Decoders#r3d
|
@@ -28,6 +72,7 @@ Change log:
|
28 | 72 | - Support build plugins(braw, r3d) with sdk + abi headers. Add global options "plugins_dir"
|
29 | 73 |
|
30 | 74 |
|
| 75 | + |
31 | 76 | 0.19.0 - 2022-12-28
|
32 | 77 |
|
33 | 78 | - New: support subtitle rendering. Can be embedded or external text/bitmap subtitle tracks. The first embedded subtitle track is enabled by default. Use `setActiveTrack(MediaType::Subtitle, ...)` to switch embedded subtitle track. External subtitle must be explicitly enabled by user via `setMedia(file, MediaType::Subtitle)`, and must call it at some point after main video `setMedia(mainVideoFile)`. Text subtitle is rendered by libass, only windows desktop and macOS prebuilt libass is provided for now. Linux users can install system libass. Text subtitles must be UTF-8 encoded.
|
|
0 commit comments