Skip to content

Commit

Permalink
version 0.10.4
Browse files Browse the repository at this point in the history
- Support macCatalyst
- Support vulkan on apple sillicon
- VT decoder:
    - Support VP9 on macOS 11+. Profile 0 and 2 are confirmed
    - Support more(all) semi-planar formats, output a format with the same chroma subsample size as original format, e.g. 'p410' for hevc yuv444p10le.
    - Fix high depth channel formats output error on apple sillicon. It's r10g10a10a2 for 10bit Y plane, but not support yet in renderer, so use p010('x420')
    - Add "hardware" property to enable/disable hardware acceleration
    - Add "width" and "height" property
    - Support HDR in mkv
    - Reduce compressed packet copy
- VAAPI, VDPAU: fix not work since 0.10.2
- MFT video decoder: fix h264 constrained baseline profile check
- CUDA decoder: fix chroma format
- FFmpeg:
    - Fix a crash if avio open error
    - Fix "drop" option does not work correctly
- Improve decoder switch in paused state
- Fix can't switch to a new decoder via setVideoDecoders() since 0.10.0
- Fix a blank frame in gapless playback
- Fix 2 crashes in player dtor, 1 race in setNextMedia(), 1 race/crash if faile to open a media
- Examples:
    - Enable glfw for apple sillicon
  • Loading branch information
wang-bin committed Feb 17, 2021
1 parent 2d25908 commit 19580c8
Show file tree
Hide file tree
Showing 11 changed files with 60 additions and 32 deletions.
15 changes: 8 additions & 7 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: Build

# TODO: nuget, vcpkg on macOS, $(brew --prefix llvm)/bin/clang (llvm11), llvm12 is default
on:
push:
schedule:
Expand All @@ -17,7 +17,7 @@ env:
jobs:
macOS:
# See: https://docs.github.com/en/actions/configuring-and-managing-workflows/configuring-a-workflow#configuring-a-build-matrix
runs-on: macos-11.0
runs-on: macos-latest
env:
TARGET_OS: 'macOS'
TARGET_ARCH: ${{ matrix.arch }}
Expand All @@ -36,8 +36,8 @@ jobs:
fetch-depth: 1
token: ${{ secrets.CLONE_PAT }}
submodules: 'recursive'
- name: Setup Xcode
run: sudo xcode-select -s /Applications/Xcode_12.3.app
# - name: Setup Xcode
# run: sudo xcode-select -s /Applications/Xcode_12.4.app
- name: 'Restore External Dep cache'
id: external-dep-cache
uses: actions/cache@v2
Expand Down Expand Up @@ -94,7 +94,7 @@ jobs:
macCatalyst:
runs-on: macos-11.0
runs-on: macos-latest
env:
TARGET_OS: 'macCatalyst'
strategy:
Expand All @@ -111,8 +111,8 @@ jobs:
fetch-depth: 1
token: ${{ secrets.CLONE_PAT }}
submodules: 'recursive'
- name: Setup Xcode
run: sudo xcode-select -s /Applications/Xcode_12.3.app
# - name: Setup Xcode
# run: sudo xcode-select -s /Applications/Xcode_12.4.app
- name: 'Restore External Dep cache'
id: external-dep-cache
uses: actions/cache@v2
Expand Down Expand Up @@ -716,6 +716,7 @@ jobs:
shell: bash
run: sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-sdk-${TARGET_OS}.tar.xz ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/

# TODO: use macos-11.0 to use the latest ndk ANDROID_NDK_LATEST_HOME, ANDROID_SDK_ROOT
Android:
runs-on: ubuntu-latest
env:
Expand Down
27 changes: 27 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,32 @@
Change log:


0.10.4 - 2021-02-17

- Support macCatalyst
- Support vulkan on apple sillicon
- VT decoder:
- Support VP9 on macOS 11+. Profile 0 and 2 are confirmed
- Support more(all) semi-planar formats, output a format with the same chroma subsample size as original format, e.g. 'p410' for hevc yuv444p10le.
- Fix high depth channel formats output error on apple sillicon. It's r10g10a10a2 for 10bit Y plane, but not support yet in renderer, so use p010('x420')
- Add "hardware" property to enable/disable hardware acceleration
- Add "width" and "height" property
- Support HDR in mkv
- Reduce compressed packet copy
- VAAPI, VDPAU: fix not work since 0.10.2
- MFT video decoder: fix h264 constrained baseline profile check
- CUDA decoder: fix chroma format
- FFmpeg:
- Fix a crash if avio open error
- Fix "drop" option does not work correctly
- Improve decoder switch in paused state
- Fix can't switch to a new decoder via setVideoDecoders() since 0.10.0
- Fix a blank frame in gapless playback
- Fix 2 crashes in player dtor, 1 race in setNextMedia(), 1 race/crash if faile to open a media
- Examples:
- Enable glfw for apple sillicon


0.10.3 - 2020-12-31

- Player.setMedia() will stop previous media
Expand Down
2 changes: 1 addition & 1 deletion README.Android.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,5 +63,5 @@ MediaCodec/AMediaCodec decoder will not be destroyed if app go to background, an
- libmediandk and other java classes implemented in C++: https://github.com/wang-bin/AND
- JNI Modern Interface: https://github.com/wang-bin/JMI

Copyright (c) 2016-2020 WangBin(the author of QtAV) <wbsecg1 at gmail.com>
Copyright (c) 2016-2021 WangBin(the author of QtAV) <wbsecg1 at gmail.com>
Free for opensource softwares, non-commercial softwares, QtAV donors and contributors.
4 changes: 2 additions & 2 deletions README.Linux.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ If ffmpeg any module is not set, it's searched in the following order


## About SDK for Linux
SDK is built by clang 11.0 with
SDK is built by clang 12.0 with
- ffmpeg: https://sourceforge.net/projects/avbuild/files/linux/ffmpeg-master-linux-clang-lite.tar.xz/download
- libc++ 10.0.0

Expand Down Expand Up @@ -89,5 +89,5 @@ N videos renderers for 1 player: multiwidnows url
- OBS Studio plugin: https://github.com/wang-bin/obs-mdk
- QtMultimedia plugin: https://github.com/wang-bin/qtmultimedia-plugins-mdk

Copyright (c) 2016-2020 WangBin(the author of QtAV) <wbsecg1 at gmail.com>
Copyright (c) 2016-2021 WangBin(the author of QtAV) <wbsecg1 at gmail.com>
Free for opensource softwares, non-commercial softwares, QtAV donors and contributors.
4 changes: 2 additions & 2 deletions README.WinRT.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ If ffmpeg any module is not set, it's searched in the following order


## About SDK for Windows Store
SDK is built by clang-cl 11.0 + lld with
SDK is built by clang-cl 12.0 + lld with
- FFmpeg: https://sourceforge.net/projects/avbuild/files/windows-store/ffmpeg-master-windows-store-clang-static-lite.tar.xz/download
- Windows SDK 10.0.19041.0
- MSVC CRT 14.26.28801
Expand Down Expand Up @@ -62,5 +62,5 @@ Optional:
- OBS Studio plugin: https://github.com/wang-bin/obs-mdk
- QtMultimedia plugin: https://github.com/wang-bin/qtmultimedia-plugins-mdk

Copyright (c) 2016-2020 WangBin(the author of QtAV) <wbsecg1 at gmail.com>
Copyright (c) 2016-2021 WangBin(the author of QtAV) <wbsecg1 at gmail.com>
Free for opensource softwares, non-commercial softwares, QtAV donors and contributors.
4 changes: 2 additions & 2 deletions README.Windows.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ If ffmpeg any module is not set, it's searched in the following order


## About SDK for Windows Desktop
SDK is built by clang-cl 11.0 + lld with
SDK is built by clang-cl 12.0 + lld with
- FFmpeg: https://sourceforge.net/projects/avbuild/files/windows-desktop/ffmpeg-master-windows-desktop-clang-static-lite.tar.xz/download
- Windows SDK 10.0.19041.0
- MSVC CRT 14.26.28801
Expand Down Expand Up @@ -84,5 +84,5 @@ N videos renderers for 1 player: multiwidnows url
- OBS Studio plugin: https://github.com/wang-bin/obs-mdk
- QtMultimedia plugin: https://github.com/wang-bin/qtmultimedia-plugins-mdk

Copyright (c) 2016-2020 WangBin(the author of QtAV) <wbsecg1 at gmail.com>
Copyright (c) 2016-2021 WangBin(the author of QtAV) <wbsecg1 at gmail.com>
Free for opensource softwares, non-commercial softwares, QtAV donors and contributors.
6 changes: 3 additions & 3 deletions README.iOS.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ If ffmpeg any module is not set, it's searched in the following order
https://github.com/wang-bin/swiftMDK

## About SDK for iOS
SDK is built by Xcode 12.3 with
SDK is built by Xcode 12.4 with
- ffmpeg: https://sourceforge.net/projects/avbuild/files/iOS/ffmpeg-master-iOS-lite.tar.xz/download
- Minimal system: iOS 8.0
- Support Metal renderer
Expand All @@ -34,7 +34,7 @@ SDK is built by Xcode 12.3 with

### Supported Video Decoders:
- FFmpeg. Direct rendering via property "pool=CVPixelBuffer"
- VT: videotoolbox hardware decoder. avcC, hvcC support. propertyes: threads, realTime, async, format. e.g. `player.setVideoDecoders({"VT:format=nv12:async=1", "FFmpeg"})`
- VT: videotoolbox hardware decoder. h264, hevc support. propertyes: threads, realTime, async, format, hardware, width, height. e.g. `player.setVideoDecoders({"VT:format=nv12:async=1", "FFmpeg"})`
- VideoToolbox: via ffmpeg

### Use in CMake Projects
Expand All @@ -58,5 +58,5 @@ Choose any of
- OBS Studio plugin: https://github.com/wang-bin/obs-mdk
- QtMultimedia plugin: https://github.com/wang-bin/qtmultimedia-plugins-mdk

Copyright (c) 2016-2020 WangBin(the author of QtAV) <wbsecg1 at gmail.com>
Copyright (c) 2016-2021 WangBin(the author of QtAV) <wbsecg1 at gmail.com>
Free for opensource softwares, non-commercial softwares, QtAV donors and contributors.
18 changes: 8 additions & 10 deletions README.macOS.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,14 @@ If ffmpeg any module is not set, it's searched in the following order
https://github.com/wang-bin/swiftMDK

## About SDK for macOS
SDK is built by Xcode 12.3 with
- ffmpeg: https://sourceforge.net/projects/avbuild/files/macOS/ffmpeg-master-macOS-lite.tar.xz/download

SDK can be used by any C or C++11 compiler, e.g. g++, clang

Support Apple sillicon
- Support Apple sillicon
- Support Metal and Vulkan renderer
- Support VP9 on macOS 11+
- Support X11 if runtime libraries exist

Support Metal and Vulkan renderer.

Support X11 if runtime libraries exist.
SDK is built by Xcode 12.4 with
- ffmpeg: https://sourceforge.net/projects/avbuild/files/macOS/ffmpeg-master-macOS-lite.tar.xz/download

### macOS 10.15+
Executables download from internet are not able to run. Try
Expand All @@ -55,7 +53,7 @@ Optional:

### Supported Video Decoders:
- FFmpeg. Direct rendering via property "pool=CVPixelBuffer"
- VT: videotoolbox hardware decoder. avcC, hvcC support. propertyes: threads, realTime, async, format. e.g. -c:v VT:format=nv12:async=1
- VT: videotoolbox hardware decoder. h264, hevc, vp9 support. propertyes: threads, realTime, async, format, hardware, width, height. e.g. `player.setVideoDecoders({"VT:format=nv12:async=1", "FFmpeg"})`
- VideoToolbox: via ffmpeg

VT default use async mode, and the performance is better performance then FFmpeg's sync VideoToolbox
Expand Down Expand Up @@ -91,5 +89,5 @@ Choose any of
- OBS Studio plugin: https://github.com/wang-bin/obs-mdk
- QtMultimedia plugin: https://github.com/wang-bin/qtmultimedia-plugins-mdk

Copyright (c) 2016-2020 WangBin(the author of QtAV) <wbsecg1 at gmail.com>
Copyright (c) 2016-2021 WangBin(the author of QtAV) <wbsecg1 at gmail.com>
Free for opensource softwares, non-commercial softwares, QtAV donors and contributors.
4 changes: 3 additions & 1 deletion README.rpi.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ In mesa vc4/6 driver environment(fake/full kms), hardware decoder is available,

Tested on rpi1 and rpi3.

> Note: the latest sdk links against libGL.so.1, so no need to set LD_PRELOAD.
### Use in CMake Projects
```
include(mdk-sdk-dir/lib/cmake/FindMDK.cmake)
Expand All @@ -69,5 +71,5 @@ Tested on rpi1 and rpi3.
- OBS Studio plugin: https://github.com/wang-bin/obs-mdk
- QtMultimedia plugin: https://github.com/wang-bin/qtmultimedia-plugins-mdk

Copyright (c) 2016-2020 WangBin(the author of QtAV) <wbsecg1 at gmail.com>
Copyright (c) 2016-2021 WangBin(the author of QtAV) <wbsecg1 at gmail.com>
Free for opensource softwares, non-commercial softwares, QtAV donors and contributors.
4 changes: 2 additions & 2 deletions README.sunxi.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ If ffmpeg any module is not set, it's searched in the following order

mdk sdk for linux sunxi, with allwinner cedarv and vdpau decoder support

SDK is cross built by clang 11.0 with
SDK is cross built by clang 12.0 with
- cmake toolchain file https://github.com/wang-bin/cmake-tools/blob/master/sunxi.clang.cmake
- sysroot: https://sourceforge.net/projects/avbuild/files/sunxi/sunxi-sysroot.tar.xz/download
- ffmpeg: https://sourceforge.net/projects/avbuild/files/sunxi/ffmpeg-master-sunxi-clang-lite.tar.xz/download
Expand Down Expand Up @@ -77,5 +77,5 @@ if default audio device does not sound correctly, try to change the device name
- OBS Studio plugin: https://github.com/wang-bin/obs-mdk
- QtMultimedia plugin: https://github.com/wang-bin/qtmultimedia-plugins-mdk

Copyright (c) 2016-2020 WangBin(the author of QtAV) <wbsecg1 at gmail.com>
Copyright (c) 2016-2021 WangBin(the author of QtAV) <wbsecg1 at gmail.com>
Free for opensource softwares, non-commercial softwares, QtAV donors and contributors.
4 changes: 2 additions & 2 deletions nuget/mdk.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>mdk</id>
<version>0.10.3.0</version>
<version>0.10.4.0</version>
<title>MDK</title>
<authors>Wang Bin</authors>
<owners>Wang Bin</owners>
Expand All @@ -14,7 +14,7 @@
<description>C/C++ Multimedia Development Kit</description>
<summary>Cross platform multimedia development kit in C/C++</summary>
<releaseNotes>https://github.com/wang-bin/mdk-sdk/releases</releaseNotes>
<copyright>Copyright 2020</copyright>
<copyright>Copyright 2021</copyright>
<tags>Multimedia MediaPlayer VideoPlayer Video Player Playback SDK HDR FFmpeg native CrossPlatform UWP Win32 cross-platform OpenGL OpenGLES D3D11</tags>
</metadata>
<files>
Expand Down

0 comments on commit 19580c8

Please sign in to comment.