From 085dfc34b501189b156f4b94e3afe8d0bf1c9043 Mon Sep 17 00:00:00 2001 From: wang-bin Date: Fri, 30 Aug 2024 14:31:29 +0800 Subject: [PATCH] v0.29.1 --- .github/workflows/build.yml | 54 +++++++++++++++++++++---------------- Changelog.md | 20 ++++++++++++++ README.Android.md | 2 +- README.md | 5 +++- nuget/mdk.nuspec | 4 +-- 5 files changed, 58 insertions(+), 27 deletions(-) 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) kalismart +[NOTIONTHEORY](https://www.notiontheory.com/) smartplayer smartplayer -[![](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