diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 5520d68..7c6bc53 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -853,7 +853,7 @@ jobs:
sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-*.md5 ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
Android:
- runs-on: macos-latest
+ runs-on: ubuntu-latest # ndk 25 removed
env:
#FF_VER: 6.1 # 7.0 and master is very slow in avformat_find_stream_info
TARGET_OS: android
@@ -888,23 +888,13 @@ jobs:
EXTERNAL_DEP_CACHE_HIT: ${{ steps.external-dep-cache.outputs.cache-hit }}
working-directory: mdk
run: ../ci-before-build.sh
- - name: Configure for armeabi-v7a
- env:
- ARCH: armeabi-v7a
- MIN_API: 19 # android 4.4. ndk25
- shell: bash
- working-directory: mdk
- run: cmake -DUSE_LTO=1 -DANDROID_LD=lld -DANDROID_ABI=${ARCH} -DANDROID_PLATFORM=android-${MIN_API} -DANDROID_TOOLCHAIN=clang -DANDROID_STL=c++_shared -DANDROID_PIE=ON -DCMAKE_TOOLCHAIN_FILE=$ANDROID_HOME/ndk/25.2.9519653/build/cmake/android.toolchain.cmake -GNinja -H$PWD -B$PWD/build/${TARGET_OS}-${ARCH} -DCMAKE_BUILD_TYPE=${{ matrix.config }} -DCMAKE_INSTALL_PREFIX=$PWD/mdk-sdk-${ARCH} -DCMAKE_VERBOSE_MAKEFILE=1
- - name: Build for armeabi-v7a
- shell: bash
- working-directory: mdk
- run: cmake --build build/${TARGET_OS}-armeabi-v7a
- name: Configure for arm64-v8a
env:
ARCH: arm64-v8a
shell: bash
working-directory: mdk
run: |
+ ls ${ANDROID_HOME}
MIN_API_64=21
[ $MIN_API -gt 21 ] && MIN_API_64=$MIN_API
cmake -DUSE_LTO=1 -DANDROID_LD=lld -DANDROID_ABI=${ARCH} -DANDROID_PLATFORM=android-${MIN_API_64} -DANDROID_TOOLCHAIN=clang -DANDROID_STL=c++_shared -DANDROID_PIE=ON -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -GNinja -H$PWD -B$PWD/build/${TARGET_OS}-${ARCH} -DCMAKE_BUILD_TYPE=${{ matrix.config }} -DCMAKE_INSTALL_PREFIX=$PWD/mdk-sdk-${ARCH} -DCMAKE_VERBOSE_MAKEFILE=1
@@ -912,17 +902,6 @@ jobs:
shell: bash
working-directory: mdk
run: cmake --build build/${TARGET_OS}-arm64-v8a
- - name: Configure for x86
- env:
- ARCH: x86
- MIN_API: 19 # android 4.4. ndk25
- shell: bash
- working-directory: mdk
- run: cmake -DUSE_LTO=1 -DANDROID_LD=lld -DANDROID_ABI=${ARCH} -DANDROID_PLATFORM=android-${MIN_API} -DANDROID_TOOLCHAIN=clang -DANDROID_STL=c++_shared -DANDROID_PIE=ON -DCMAKE_TOOLCHAIN_FILE=$ANDROID_HOME/ndk/25.2.9519653/build/cmake/android.toolchain.cmake -GNinja -H$PWD -B$PWD/build/${TARGET_OS}-${ARCH} -DCMAKE_BUILD_TYPE=${{ matrix.config }} -DCMAKE_INSTALL_PREFIX=$PWD/mdk-sdk-${ARCH} -DCMAKE_VERBOSE_MAKEFILE=1
- - name: Build for x86
- shell: bash
- working-directory: mdk
- run: cmake --build build/${TARGET_OS}-x86
- name: Configure for x86_64
env:
ARCH: x86_64
@@ -936,6 +915,35 @@ jobs:
shell: bash
working-directory: mdk
run: cmake --build build/${TARGET_OS}-x86_64
+ - uses: nttld/setup-ndk@v1
+ id: setup-ndk
+ with:
+ ndk-version: r25c
+ local-cache: true
+ - name: Configure for armeabi-v7a
+ env:
+ ARCH: armeabi-v7a
+ MIN_API: 19 # android 4.4. ndk25
+ ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }}
+ shell: bash
+ working-directory: mdk
+ run: cmake -DUSE_LTO=1 -DANDROID_LD=lld -DANDROID_ABI=${ARCH} -DANDROID_PLATFORM=android-${MIN_API} -DANDROID_TOOLCHAIN=clang -DANDROID_STL=c++_shared -DANDROID_PIE=ON -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake -GNinja -H$PWD -B$PWD/build/${TARGET_OS}-${ARCH} -DCMAKE_BUILD_TYPE=${{ matrix.config }} -DCMAKE_INSTALL_PREFIX=$PWD/mdk-sdk-${ARCH} -DCMAKE_VERBOSE_MAKEFILE=1
+ - name: Build for armeabi-v7a
+ shell: bash
+ working-directory: mdk
+ run: cmake --build build/${TARGET_OS}-armeabi-v7a
+ - name: Configure for x86
+ env:
+ ARCH: x86
+ MIN_API: 19 # android 4.4. ndk25
+ ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }}
+ shell: bash
+ working-directory: mdk
+ run: cmake -DUSE_LTO=1 -DANDROID_LD=lld -DANDROID_ABI=${ARCH} -DANDROID_PLATFORM=android-${MIN_API} -DANDROID_TOOLCHAIN=clang -DANDROID_STL=c++_shared -DANDROID_PIE=ON -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake -GNinja -H$PWD -B$PWD/build/${TARGET_OS}-${ARCH} -DCMAKE_BUILD_TYPE=${{ matrix.config }} -DCMAKE_INSTALL_PREFIX=$PWD/mdk-sdk-${ARCH} -DCMAKE_VERBOSE_MAKEFILE=1
+ - name: Build for x86
+ shell: bash
+ working-directory: mdk
+ run: cmake --build build/${TARGET_OS}-x86
- name: Make SDK
shell: bash
working-directory: mdk
diff --git a/Changelog.md b/Changelog.md
index 9fa0132..edc2d4c 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,8 +1,28 @@
Change log:
+# 0.29.1
+
+- Android 64bit is built with 16KB page size support
+- Supprt GL_EXT_EGL_image_storage for drm, via global option "eglimage.storage=1"
+- VAAPI: prefer x11 display to support both EGL and GLX
+- Add privacy manifest for apple platforms
+- Improve demuxer cache
+- Enable http reconnect
+- Fix OpenGL symbols not resolved on android 15 emulator
+- Fix snapshot in OpenGL renderers
+- Fix snapshot callback not invoked if failed
+- Fix muxer write after close
+- Fix a decoder crash when stopping playback
+- Fix waitFor(State::Stopped)
+- Stop demuxer immediately if io is aborted.
+- Apply ffmmpeg muxer options
+- Prefer ffmpeg dynamic library even if statically linked. mainly used by iOS user provided FFmpeg.framework
+
+
# 0.29.0
- Support demuxer cache for http(s), can be enabled via `player.setProperty("demux.buffer.ranges", "8"/*or other positive int*/)`. `{count, "cache.ranges"}` event will be triggered when cached time ranges are created, dropped(via LRU cache) or merged. Other protocols can be enabled via player property `player.setProperty("demux.buffer.ranges", "http,https,proto1,proto2");`.
+- Add `Player.bufferedTimeRanges()`
- Dolby vision: support reading metadata from av1 in all decoders, previously only supported by ffmpeg hwaccels and software decoder.
- Support pause/resume rtsp stream in `Player.set(State)`. Enable via `player.setProperty("reader.pause", "1");`.
- Record video from non-key frame if property "reader.starts_with_key" is "0"
diff --git a/README.Android.md b/README.Android.md
index f6a49b9..857330f 100644
--- a/README.Android.md
+++ b/README.Android.md
@@ -22,7 +22,7 @@
## About SDK for Android
SDK is built with
- ffmpeg: https://sourceforge.net/projects/avbuild/files/android/ffmpeg-master-android-clang-lite-lto.tar.xz/download
-- ndk r25b for 32bit, ndk 26 for b4bit
+- ndk r25b for 32bit, ndk 27 for b4bit
- requires ndk r23 and later because of ndk abi break in r23
SDK can be used by any C or C++11 compiler, e.g. g++, clang
diff --git a/README.md b/README.md
index a848fa0..bddee3f 100644
--- a/README.md
+++ b/README.md
@@ -150,10 +150,13 @@ Install via [NuGet](https://www.nuget.org/packages/mdk) in Visual Studio for bot
[![www.connecting-technology](https://static.wixstatic.com/media/85712a_fe1dd2a84e17437e913dcfcdc89f40a4.jpg/v1/fill/w_460,h_240,al_c,q_80,usm_0.66_1.00_0.01,enc_auto/85712a_fe1dd2a84e17437e913dcfcdc89f40a4.jpg)](https://www.connecting-technology.com)
+[NOTIONTHEORY](https://www.notiontheory.com/)
-[![](https://teleguard.com/images/logo.png)](https://teleguard.com)
+[![](https://teleguard.com/images/logo.png)](https://teleguard.com)[!
+![DaKanji](https://dakanji.app/wp-content/uploads/thegem-logos/logo_a496404d3d63fd29f344146e428d0992_2x.png)](https://dakanji.app)
+
[金嵘达科技](http://www.kingroda.com)
[爱玩宝](https://www.aiwanbao.com)
diff --git a/nuget/mdk.nuspec b/nuget/mdk.nuspec
index 99c7514..0783d0e 100644
--- a/nuget/mdk.nuspec
+++ b/nuget/mdk.nuspec
@@ -2,7 +2,7 @@
mdk
- 0.29.0.0
+ 0.29.1.0
MDK
Wang Bin
Wang Bin
@@ -15,7 +15,7 @@
Cross platform multimedia development kit in C/C++
https://github.com/wang-bin/mdk-sdk/releases
Copyright 2024
- Multimedia MediaPlayer VideoPlayer Video Player Playback HDR DolbyVision FFmpeg CrossPlatform UWP WOA WinUI3 OpenGL Vulkan D3D11 D3D12 BRAW Hap R3D
+ Multimedia MediaPlayer VideoPlayer Video Player Playback HDR DolbyVision FFmpeg CrossPlatform UWP WOA WinUI3 OpenGL Vulkan D3D11 D3D12 BRAW Hap R3D DCP
README.md