diff --git a/.github/workflows/android-build-scripts.yml b/.github/workflows/android-build-scripts.yml
index 659e30fc5..921f12ae2 100644
--- a/.github/workflows/android-build-scripts.yml
+++ b/.github/workflows/android-build-scripts.yml
@@ -35,12 +35,14 @@ jobs:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: set up adopt jdk 17
uses: actions/setup-java@v3
with:
distribution: 'adopt'
java-version: '17'
+ - name: prerequisites
+ run: ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --uninstall "cmake;3.10.2.4988404" "cmake;3.18.1"
- name: set up android ndk
run: |
curl -s "https://dl.google.com/android/repository/android-ndk-${{ matrix.ndk-version }}.zip" -o ndk.zip
@@ -64,12 +66,14 @@ jobs:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: set up adopt jdk 17
uses: actions/setup-java@v3
with:
distribution: 'adopt'
java-version: '17'
+ - name: prerequisites
+ run: ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --uninstall "cmake;3.10.2.4988404" "cmake;3.18.1"
- name: set up android ndk
run: |
curl -s "https://dl.google.com/android/repository/android-ndk-${{ matrix.ndk-version }}.zip" -o ndk.zip
@@ -93,7 +97,7 @@ jobs:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: set up adopt jdk 17
uses: actions/setup-java@v3
with:
@@ -114,7 +118,7 @@ jobs:
run: '[[ -f ./src/ffmpeg/ffbuild/config.log ]] && tail -50 ./src/ffmpeg/ffbuild/config.log'
build-lts-on-macos:
name: android lts on macos
- runs-on: macos-11
+ runs-on: macos-12
strategy:
matrix:
ndk-version: [ 'r22b-darwin-x86_64', 'r23b-darwin' ]
@@ -122,7 +126,7 @@ jobs:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: set up adopt jdk 17
uses: actions/setup-java@v3
with:
@@ -151,12 +155,14 @@ jobs:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: set up adopt jdk 17
uses: actions/setup-java@v3
with:
distribution: 'adopt'
java-version: '17'
+ - name: prerequisites
+ run: ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --uninstall "cmake;3.10.2.4988404" "cmake;3.18.1"
- name: set up android ndk
run: |
curl -s "https://dl.google.com/android/repository/android-ndk-${{ matrix.ndk-version }}.zip" -o ndk.zip
diff --git a/.github/workflows/ios-build-scripts.yml b/.github/workflows/ios-build-scripts.yml
index 29d897858..40387ce7e 100644
--- a/.github/workflows/ios-build-scripts.yml
+++ b/.github/workflows/ios-build-scripts.yml
@@ -27,17 +27,17 @@ on:
- 'ios.sh'
jobs:
- build-main-on-macos-monterey:
- name: ios main on monterey
- runs-on: macos-12
+ build-main-on-macos-sonoma:
+ name: ios main on sonoma
+ runs-on: macos-14
strategy:
matrix:
- xcode: [ '13.4.1', '14.0.1' ]
+ xcode: [ '15.4', '16.0' ]
defaults:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: prerequisites
run: brew install autoconf automake libtool pkg-config curl git cmake nasm
- name: set up xcode
@@ -50,17 +50,17 @@ jobs:
- name: print ffbuild logs
if: ${{ failure() }}
run: '[[ -f ./src/ffmpeg/ffbuild/config.log ]] && tail -50 ./src/ffmpeg/ffbuild/config.log'
- build-main-on-macos-bigsur:
- name: ios main on big sur
- runs-on: macos-11
+ build-main-on-macos-ventura:
+ name: ios main on ventura
+ runs-on: macos-13
strategy:
matrix:
- xcode: [ '12.5.1', '13.2.1' ]
+ xcode: [ '14.3.1', '15.2' ]
defaults:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: prerequisites
run: brew install autoconf automake libtool pkg-config curl git cmake nasm
- name: set up xcode
@@ -73,17 +73,17 @@ jobs:
- name: print ffbuild logs
if: ${{ failure() }}
run: '[[ -f ./src/ffmpeg/ffbuild/config.log ]] && tail -50 ./src/ffmpeg/ffbuild/config.log'
- build-lts-on-macos-bigsur:
- name: ios lts on big sur
- runs-on: macos-11
+ build-lts-on-macos-monterey:
+ name: ios lts on monterey
+ runs-on: macos-12
strategy:
matrix:
- xcode: [ '11.7', '12.4' ]
+ xcode: [ '13.4.1', '14.2' ]
defaults:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: prerequisites
run: brew install autoconf automake libtool pkg-config curl git cmake nasm
- name: set up xcode
diff --git a/.github/workflows/linux-build-scripts.yml b/.github/workflows/linux-build-scripts.yml
index 6f43cf728..a42e980a0 100644
--- a/.github/workflows/linux-build-scripts.yml
+++ b/.github/workflows/linux-build-scripts.yml
@@ -30,7 +30,7 @@ jobs:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: prerequisites
run: sudo apt-get install clang llvm lld libclang-14-dev libstdc++6 nasm autoconf automake libtool pkg-config curl git doxygen rapidjson-dev
- name: run the build script
@@ -48,7 +48,7 @@ jobs:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: prerequisites
run: sudo apt-get install clang llvm lld libclang-14-dev libstdc++6 nasm autoconf automake libtool pkg-config curl git doxygen rapidjson-dev
- name: run the build script
@@ -66,7 +66,7 @@ jobs:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: prerequisites
run: sudo apt-get install clang llvm lld libclang-11-dev libstdc++6 nasm autoconf automake libtool pkg-config curl git doxygen rapidjson-dev
- name: run the build script
@@ -84,7 +84,7 @@ jobs:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: prerequisites
run: sudo apt-get install clang llvm lld libclang-11-dev libstdc++6 nasm autoconf automake libtool pkg-config curl git doxygen rapidjson-dev
- name: run the build script
diff --git a/.github/workflows/macos-build-scripts.yml b/.github/workflows/macos-build-scripts.yml
index fb2d35bc0..d76fcfe65 100644
--- a/.github/workflows/macos-build-scripts.yml
+++ b/.github/workflows/macos-build-scripts.yml
@@ -27,17 +27,17 @@ on:
- 'macos.sh'
jobs:
- build-main-on-macos-monterey:
- name: macos main on monterey
- runs-on: macos-12
+ build-main-on-macos-sonoma:
+ name: macos main on sonoma
+ runs-on: macos-14
strategy:
matrix:
- xcode: [ '13.4.1', '14.0.1' ]
+ xcode: [ '15.4', '16.0' ]
defaults:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: prerequisites
run: brew install autoconf automake libtool pkg-config curl git cmake nasm
- name: set up xcode
@@ -50,17 +50,17 @@ jobs:
- name: print ffbuild logs
if: ${{ failure() }}
run: '[[ -f ./src/ffmpeg/ffbuild/config.log ]] && tail -50 ./src/ffmpeg/ffbuild/config.log'
- build-main-on-macos-bigsur:
- name: macos main on big sur
- runs-on: macos-11
+ build-main-on-macos-ventura:
+ name: macos main on ventura
+ runs-on: macos-13
strategy:
matrix:
- xcode: [ '12.5.1', '13.2.1' ]
+ xcode: [ '14.3.1', '15.2' ]
defaults:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: prerequisites
run: brew install autoconf automake libtool pkg-config curl git cmake nasm
- name: set up xcode
@@ -73,17 +73,17 @@ jobs:
- name: print ffbuild logs
if: ${{ failure() }}
run: '[[ -f ./src/ffmpeg/ffbuild/config.log ]] && tail -50 ./src/ffmpeg/ffbuild/config.log'
- build-lts-on-macos-bigsur:
- name: macos lts on big sur
- runs-on: macos-11
+ build-lts-on-macos-monterey:
+ name: macos lts on monterey
+ runs-on: macos-12
strategy:
matrix:
- xcode: [ '11.7', '12.4' ]
+ xcode: [ '13.4.1', '14.2' ]
defaults:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: prerequisites
run: brew install autoconf automake libtool pkg-config curl git cmake nasm
- name: set up xcode
diff --git a/.github/workflows/periodic-builds-android.yml b/.github/workflows/periodic-builds-android.yml
index d4a690389..d16469680 100644
--- a/.github/workflows/periodic-builds-android.yml
+++ b/.github/workflows/periodic-builds-android.yml
@@ -16,7 +16,7 @@ jobs:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
with:
ref: ${{ matrix.branches }}
- name: set up adopt jdk 17
@@ -25,7 +25,9 @@ jobs:
distribution: 'adopt'
java-version: '17'
- name: prerequisites
- run: sudo apt-get install autoconf automake libtool pkg-config curl git doxygen nasm cmake gcc gperf texinfo yasm bison autogen wget autopoint meson ninja-build ragel groff gtk-doc-tools libtasn1-6
+ run: sudo apt-get install autoconf automake libtool pkg-config curl git doxygen nasm cmake gcc gperf texinfo yasm bison autogen wget autopoint meson ninja-build ragel groff gtk-doc-tools libtasn1-bin
+ - name: prerequisites 2
+ run: ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --uninstall "cmake;3.10.2.4988404" "cmake;3.18.1"
- name: upgrade meson
run: pip install meson --upgrade
- name: set up android ndk
@@ -52,7 +54,7 @@ jobs:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
with:
ref: ${{ matrix.branches }}
- name: set up adopt jdk 17
@@ -61,7 +63,9 @@ jobs:
distribution: 'adopt'
java-version: '17'
- name: prerequisites
- run: sudo apt-get install autoconf automake libtool pkg-config curl git doxygen nasm cmake gcc gperf texinfo yasm bison autogen wget autopoint meson ninja-build ragel groff gtk-doc-tools libtasn1-6
+ run: sudo apt-get install autoconf automake libtool pkg-config curl git doxygen nasm cmake gcc gperf texinfo yasm bison autogen wget autopoint meson ninja-build ragel groff gtk-doc-tools libtasn1-bin
+ - name: prerequisites 2
+ run: ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --uninstall "cmake;3.10.2.4988404" "cmake;3.18.1"
- name: upgrade meson
run: pip install meson --upgrade
- name: set up android ndk
diff --git a/.github/workflows/periodic-builds-apple.yml b/.github/workflows/periodic-builds-apple.yml
index 7832066ba..6b3b19b9f 100644
--- a/.github/workflows/periodic-builds-apple.yml
+++ b/.github/workflows/periodic-builds-apple.yml
@@ -5,156 +5,156 @@ on:
- cron: '0 1 * * 0'
jobs:
- build-ios-main-on-macos-monterey:
- name: ios main on monterey
- runs-on: macos-12
+ build-ios-main-on-macos-sonoma:
+ name: ios main on sonoma
+ runs-on: macos-14
strategy:
matrix:
- xcode: [ '13.4.1' ]
+ xcode: [ '15.4', '16.0' ]
branches: [ 'main', 'development' ]
defaults:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
with:
ref: ${{ matrix.branches }}
- name: prerequisites
- run: brew install autoconf automake libtool pkg-config curl git doxygen nasm cmake gcc gperf texinfo yasm bison autogen wget gettext meson ninja ragel groff gtk-doc-tools libtasn1 --overwrite
+ run: brew install autoconf automake libtool pkg-config curl git doxygen nasm cmake gcc gperf texinfo yasm bison autogen wget gettext meson ninja ragel groff gtk-doc libtasn1 --overwrite
- name: set up xcode
run: echo "export DEVELOPER_DIR=/Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer" > ~/.xcode.for.ffmpeg.kit.sh
- name: run the build script
- run: PATH="/usr/local/opt/bison/bin:$PATH" XML_CATALOG_FILES="/usr/local/etc/xml/catalog" ./ios.sh -x --full --enable-gpl --disable-lib-srt
+ run: PATH="/usr/local/opt/bison/bin:$PATH" XML_CATALOG_FILES="/usr/local/etc/xml/catalog" ./ios.sh -x --full --enable-gpl --disable-lib-srt --disable-lib-gnutls
- name: print build logs
if: ${{ always() }}
run: cat build.log
- name: print ffbuild logs
if: ${{ failure() }}
run: '[[ -f ./src/ffmpeg/ffbuild/config.log ]] && tail -50 ./src/ffmpeg/ffbuild/config.log'
- build-ios-lts-on-macos-bigsur:
- name: ios lts on big sur
- runs-on: macos-11
+ build-ios-lts-on-macos-monterey:
+ name: ios lts on monterey
+ runs-on: macos-12
strategy:
matrix:
- xcode: [ '12.4' ]
+ xcode: [ '13.4.1' ]
branches: [ 'main', 'development' ]
defaults:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
with:
ref: ${{ matrix.branches }}
- name: prerequisites
- run: brew install autoconf automake libtool pkg-config curl git doxygen nasm cmake gcc gperf texinfo yasm bison autogen wget gettext meson ninja ragel groff gtk-doc-tools libtasn1 --overwrite
+ run: brew install autoconf automake libtool pkg-config curl git doxygen nasm cmake gcc gperf texinfo yasm bison autogen wget gettext meson ninja ragel groff gtk-doc libtasn1 --overwrite
- name: set up xcode
run: echo "export DEVELOPER_DIR=/Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer" > ~/.xcode.for.ffmpeg.kit.sh
- name: run the build script
- run: PATH="/usr/local/opt/bison/bin:$PATH" XML_CATALOG_FILES="/usr/local/etc/xml/catalog" ./ios.sh -l --full --enable-gpl --disable-lib-srt
+ run: PATH="/usr/local/opt/bison/bin:$PATH" XML_CATALOG_FILES="/usr/local/etc/xml/catalog" ./ios.sh -l --full --enable-gpl --disable-lib-srt --disable-lib-gnutls --disable-armv7s --disable-arm64e --disable-i386
- name: print build logs
if: ${{ always() }}
run: cat build.log
- name: print ffbuild logs
if: ${{ failure() }}
run: '[[ -f ./src/ffmpeg/ffbuild/config.log ]] && tail -50 ./src/ffmpeg/ffbuild/config.log'
- build-macos-main-on-macos-monterey:
- name: macos main on monterey
- runs-on: macos-12
+ build-macos-main-on-macos-sonoma:
+ name: macos main on sonoma
+ runs-on: macos-14
strategy:
matrix:
- xcode: [ '13.4.1' ]
+ xcode: [ '15.4', '16.0' ]
branches: [ 'main', 'development' ]
defaults:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
with:
ref: ${{ matrix.branches }}
- name: prerequisites
- run: brew install autoconf automake libtool pkg-config curl git doxygen nasm cmake gcc gperf texinfo yasm bison autogen wget gettext meson ninja ragel groff gtk-doc-tools libtasn1 --overwrite
+ run: brew install autoconf automake libtool pkg-config curl git doxygen nasm cmake gcc gperf texinfo yasm bison autogen wget gettext meson ninja ragel groff gtk-doc libtasn1 --overwrite
- name: set up xcode
run: echo "export DEVELOPER_DIR=/Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer" > ~/.xcode.for.ffmpeg.kit.sh
- name: run the build script
- run: PATH="/usr/local/opt/bison/bin:$PATH" XML_CATALOG_FILES="/usr/local/etc/xml/catalog" ./macos.sh -x --full --enable-gpl --disable-lib-srt
+ run: PATH="/usr/local/opt/bison/bin:$PATH" XML_CATALOG_FILES="/usr/local/etc/xml/catalog" ./macos.sh -x --full --enable-gpl --disable-lib-srt --disable-lib-gnutls
- name: print build logs
if: ${{ always() }}
run: cat build.log
- name: print ffbuild logs
if: ${{ failure() }}
run: '[[ -f ./src/ffmpeg/ffbuild/config.log ]] && tail -50 ./src/ffmpeg/ffbuild/config.log'
- build-macos-lts-on-macos-bigsur:
- name: macos lts on big sur
- runs-on: macos-11
+ build-macos-lts-on-macos-monterey:
+ name: macos lts on monterey
+ runs-on: macos-12
strategy:
matrix:
- xcode: [ '12.4' ]
+ xcode: [ '13.4.1' ]
branches: [ 'main', 'development' ]
defaults:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
with:
ref: ${{ matrix.branches }}
- name: prerequisites
- run: brew install autoconf automake libtool pkg-config curl git doxygen nasm cmake gcc gperf texinfo yasm bison autogen wget gettext meson ninja ragel groff gtk-doc-tools libtasn1 --overwrite
+ run: brew install autoconf automake libtool pkg-config curl git doxygen nasm cmake gcc gperf texinfo yasm bison autogen wget gettext meson ninja ragel groff gtk-doc libtasn1 --overwrite
- name: set up xcode
run: echo "export DEVELOPER_DIR=/Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer" > ~/.xcode.for.ffmpeg.kit.sh
- name: run the build script
- run: PATH="/usr/local/opt/bison/bin:$PATH" XML_CATALOG_FILES="/usr/local/etc/xml/catalog" ./macos.sh -l --full --enable-gpl --disable-lib-srt
+ run: PATH="/usr/local/opt/bison/bin:$PATH" XML_CATALOG_FILES="/usr/local/etc/xml/catalog" ./macos.sh -l --full --enable-gpl --disable-lib-srt --disable-lib-gnutls
- name: print build logs
if: ${{ always() }}
run: cat build.log
- name: print ffbuild logs
if: ${{ failure() }}
run: '[[ -f ./src/ffmpeg/ffbuild/config.log ]] && tail -50 ./src/ffmpeg/ffbuild/config.log'
- build-tvos-main-on-macos-monterey:
- name: tvos main on monterey
- runs-on: macos-12
+ build-tvos-main-on-macos-sonoma:
+ name: tvos main on sonoma
+ runs-on: macos-14
strategy:
matrix:
- xcode: [ '13.4.1' ]
+ xcode: [ '15.4', '16.0' ]
branches: [ 'main', 'development' ]
defaults:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
with:
ref: ${{ matrix.branches }}
- name: prerequisites
- run: brew install autoconf automake libtool pkg-config curl git doxygen nasm cmake gcc gperf texinfo yasm bison autogen wget gettext meson ninja ragel groff gtk-doc-tools libtasn1 --overwrite
+ run: brew install autoconf automake libtool pkg-config curl git doxygen nasm cmake gcc gperf texinfo yasm bison autogen wget gettext meson ninja ragel groff gtk-doc libtasn1 --overwrite
- name: set up xcode
run: echo "export DEVELOPER_DIR=/Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer" > ~/.xcode.for.ffmpeg.kit.sh
- name: run the build script
- run: PATH="/usr/local/opt/bison/bin:$PATH" XML_CATALOG_FILES="/usr/local/etc/xml/catalog" ./tvos.sh -x --full --enable-gpl --disable-lib-srt
+ run: PATH="/usr/local/opt/bison/bin:$PATH" XML_CATALOG_FILES="/usr/local/etc/xml/catalog" ./tvos.sh -x --full --enable-gpl --disable-lib-srt --disable-lib-gnutls
- name: print build logs
if: ${{ always() }}
run: cat build.log
- name: print ffbuild logs
if: ${{ failure() }}
run: '[[ -f ./src/ffmpeg/ffbuild/config.log ]] && tail -50 ./src/ffmpeg/ffbuild/config.log'
- build-tvos-lts-on-macos-bigsur:
- name: tvos lts on big sur
- runs-on: macos-11
+ build-tvos-lts-on-macos-monterey:
+ name: tvos lts on monterey
+ runs-on: macos-12
strategy:
matrix:
- xcode: [ '12.4' ]
+ xcode: [ '13.4.1' ]
branches: [ 'main', 'development' ]
defaults:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
with:
ref: ${{ matrix.branches }}
- name: prerequisites
- run: brew install autoconf automake libtool pkg-config curl git doxygen nasm cmake gcc gperf texinfo yasm bison autogen wget gettext meson ninja ragel groff gtk-doc-tools libtasn1 --overwrite
+ run: brew install autoconf automake libtool pkg-config curl git doxygen nasm cmake gcc gperf texinfo yasm bison autogen wget gettext meson ninja ragel groff gtk-doc libtasn1 --overwrite
- name: set up xcode
run: echo "export DEVELOPER_DIR=/Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer" > ~/.xcode.for.ffmpeg.kit.sh
- name: run the build script
- run: PATH="/usr/local/opt/bison/bin:$PATH" XML_CATALOG_FILES="/usr/local/etc/xml/catalog" ./tvos.sh -l --full --enable-gpl --disable-lib-srt
+ run: PATH="/usr/local/opt/bison/bin:$PATH" XML_CATALOG_FILES="/usr/local/etc/xml/catalog" ./tvos.sh -l --full --enable-gpl --disable-lib-srt --disable-lib-gnutls
- name: print build logs
if: ${{ always() }}
run: cat build.log
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
index 171bb1008..c9b592878 100644
--- a/.github/workflows/stale.yml
+++ b/.github/workflows/stale.yml
@@ -11,7 +11,7 @@ jobs:
issues: write
pull-requests: write
steps:
- - uses: actions/stale@v5
+ - uses: actions/stale@v8
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 60
@@ -21,6 +21,6 @@ jobs:
close-pr-message: 'This PR was closed because it has been stalled for 7 days with no activity.'
stale-issue-label: 'no-issue-activity'
stale-pr-label: 'no-pr-activity'
- exempt-issue-labels: 'enhancement,unreleased'
+ exempt-issue-labels: 'enhancement,ffmpeg-bug,unreleased'
exempt-pr-labels: 'enhancement,unreleased'
exempt-all-assignees: 'true'
diff --git a/.github/workflows/tvos-build-scripts.yml b/.github/workflows/tvos-build-scripts.yml
index 116994281..eaee3abd9 100644
--- a/.github/workflows/tvos-build-scripts.yml
+++ b/.github/workflows/tvos-build-scripts.yml
@@ -27,17 +27,17 @@ on:
- 'tvos.sh'
jobs:
- build-main-on-macos-monterey:
- name: tvos main on monterey
- runs-on: macos-12
+ build-main-on-macos-sonoma:
+ name: tvos main on sonoma
+ runs-on: macos-14
strategy:
matrix:
- xcode: [ '13.4.1', '14.0.1' ]
+ xcode: [ '15.4', '16.0' ]
defaults:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: prerequisites
run: brew install autoconf automake libtool pkg-config curl git cmake nasm
- name: set up xcode
@@ -50,17 +50,17 @@ jobs:
- name: print ffbuild logs
if: ${{ failure() }}
run: '[[ -f ./src/ffmpeg/ffbuild/config.log ]] && tail -50 ./src/ffmpeg/ffbuild/config.log'
- build-main-on-macos-bigsur:
- name: tvos main on big sur
- runs-on: macos-11
+ build-main-on-macos-ventura:
+ name: tvos main on ventura
+ runs-on: macos-13
strategy:
matrix:
- xcode: [ '12.5.1', '13.2.1' ]
+ xcode: [ '14.3.1', '15.2' ]
defaults:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: prerequisites
run: brew install autoconf automake libtool pkg-config curl git cmake nasm
- name: set up xcode
@@ -73,17 +73,17 @@ jobs:
- name: print ffbuild logs
if: ${{ failure() }}
run: '[[ -f ./src/ffmpeg/ffbuild/config.log ]] && tail -50 ./src/ffmpeg/ffbuild/config.log'
- build-lts-on-macos-bigsur:
- name: tvos lts on big sur
- runs-on: macos-11
+ build-lts-on-macos-monterey:
+ name: tvos lts on monterey
+ runs-on: macos-12
strategy:
matrix:
- xcode: [ '11.7', '12.4' ]
+ xcode: [ '13.4.1', '14.2' ]
defaults:
run:
shell: bash
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: prerequisites
run: brew install autoconf automake libtool pkg-config curl git cmake nasm
- name: set up xcode
diff --git a/README.md b/README.md
index dcffc03b9..b9299b4aa 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,30 @@
# FFmpegKit     
+## Notice
+FFmpegKit has been officially retired. There will be no further `ffmpeg-kit` releases.
+
+See [Saying Goodbye to FFmpegKit @ medium](https://medium.com/@tanersener/saying-goodbye-to-ffmpegkit-33ae939767e1) to learn why we made this decision.
+
+All previously released `ffmpeg-kit` binaries will be removed according to the following schedule.
+
+| FFmpegKit Version | Available Until |
+|:-----------------:|:------------------:|
+| Less than 6.0 | February 1st, 2025 |
+| 6.0 | April 1st, 2025 |
+
+Thank you for your support and interest in this project.
+
+If you're looking for a replacement, please check out the community-maintained forks available through the package managers below.
+
+| Platform |
+|:-------------------------------------------------------:|
+| [Android](https://central.sonatype.com/search?q=ffmpeg+kit) |
+| [Flutter](https://pub.dev/packages?q=ffmpeg+kit) |
+| [React Native](https://www.npmjs.com/search?q=ffmpeg%20kit) |
+
-`FFmpegKit` is a collection of tools to use `FFmpeg` in `Android`, `iOS`, `Linux`, `macOS`, `tvOS`, `Flutter` and `React Native` applications.
+`FFmpegKit` is a collection of tools to use `FFmpeg`1 in `Android`, `iOS`, `Linux`, `macOS`, `tvOS`, `Flutter` and `React Native` applications.
It includes scripts to build `FFmpeg` native libraries, a wrapper library to run `FFmpeg`/`FFprobe` commands in
applications and 8 prebuilt binary packages available at [Github](https://github.com/arthenica/ffmpeg-kit/releases),
@@ -124,23 +146,28 @@ the same `FFmpeg` release branch.
`dev` part in the version string indicates that `FFmpeg` source code is cloned from the `FFmpeg` `master` branch and
the exact version number of `FFmpeg` is obtained using the `git describe --tags` command.
-| Platforms | FFmpegKit Version | FFmpeg Version | Release Date |
-|:----------------:|:-----------------------------------------------------------------------------------:|:--------------:|:------------:|
-| React Native | [6.0.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v6.0.0) | 6.0.0 | Aug 27, 2023 |
-| Flutter | [6.0.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v6.0.0) | 6.0.0 | Aug 27, 2023 |
-| Android
Apple | [6.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/v6.0) | 6.0 | Aug 21, 2023 |
-| React Native | [5.1.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v5.1.0) | 5.1.2 | Oct 02, 2022 |
-| Flutter | [5.1.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v5.1.0) | 5.1.2 | Oct 02, 2022 |
-| Android
Apple | [5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/v5.1) | 5.1.2 | Sep 29, 2022 |
-| React Native | [4.5.2](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v4.5.2) | 4.5-dev-3393 | May 25, 2022 |
-| Flutter | [4.5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v4.5.1) | 4.5-dev-3393 | Jan 02, 2022 |
-| React Native | [4.5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v4.5.1) | 4.5-dev-3393 | Jan 02, 2022 |
-| Android | [4.5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/v4.5.1) | 4.5-dev-3393 | Jan 01, 2022 |
-| Apple | [4.5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/v4.5.1) | 4.5-dev-3393 | Dec 30, 2021 |
-| Flutter | [4.5.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v4.5.0) | 4.5-dev-2008 | Oct 05, 2021 |
-| React Native | [4.5.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v4.5.0) | 4.5-dev-2008 | Oct 01, 2021 |
-| Android
Apple | [4.5](https://github.com/arthenica/ffmpeg-kit/releases/tag/v4.5) | 4.5-dev-2008 | Sep 18, 2021 |
-| Android
Apple | [4.4](https://github.com/arthenica/ffmpeg-kit/releases/tag/v4.4) | 4.4-dev-3015 | Mar 03, 2021 |
+| Platforms | FFmpegKit Version | FFmpeg Version | Release Date |
+|:----------------:|:---------------------------------------------------------------------------------:|:--------------:|:------------:|
+| Flutter | [6.0.3](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v6.0.3) | 6.0 | Sep 19, 2023 |
+| React Native | [6.0.2](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v6.0.2) | 6.0 | Sep 19, 2023 |
+| Flutter | [6.0.2](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v6.0.2) | 6.0 | Sep 03, 2023 |
+| React Native | [6.0.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v6.0.1) | 6.0 | Sep 03, 2023 |
+| Flutter | [6.0.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v6.0.1) | 6.0 | Sep 03, 2023 |
+| React Native | [6.0.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v6.0.0) | 6.0 | Aug 27, 2023 |
+| Flutter | [6.0.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v6.0.0) | 6.0 | Aug 27, 2023 |
+| Android
Apple | [6.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/v6.0) | 6.0 | Aug 21, 2023 |
+| React Native | [5.1.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v5.1.0) | 5.1.2 | Oct 02, 2022 |
+| Flutter | [5.1.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v5.1.0) | 5.1.2 | Oct 02, 2022 |
+| Android
Apple | [5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/v5.1) | 5.1.2 | Sep 29, 2022 |
+| React Native | [4.5.2](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v4.5.2) | 4.5-dev-3393 | May 25, 2022 |
+| Flutter | [4.5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v4.5.1) | 4.5-dev-3393 | Jan 02, 2022 |
+| React Native | [4.5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v4.5.1) | 4.5-dev-3393 | Jan 02, 2022 |
+| Android | [4.5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/v4.5.1) | 4.5-dev-3393 | Jan 01, 2022 |
+| Apple | [4.5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/v4.5.1) | 4.5-dev-3393 | Dec 30, 2021 |
+| Flutter | [4.5.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v4.5.0) | 4.5-dev-2008 | Oct 05, 2021 |
+| React Native | [4.5.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v4.5.0) | 4.5-dev-2008 | Oct 01, 2021 |
+| Android
Apple | [4.5](https://github.com/arthenica/ffmpeg-kit/releases/tag/v4.5) | 4.5-dev-2008 | Sep 18, 2021 |
+| Android
Apple | [4.4](https://github.com/arthenica/ffmpeg-kit/releases/tag/v4.4) | 4.4-dev-3015 | Mar 03, 2021 |
### 11. LTS Releases
@@ -214,11 +241,15 @@ that you seek legal advice first. See [FFmpeg Patent Mini-FAQ](https://ffmpeg.or
distribute that library, then you are subject to pay MPEG LA licensing fees. Refer to
[OpenH264 FAQ](https://www.openh264.org/faq.html) page for the details.
-### 16. Contributing
+### 16. Trademarks
+
+1 `FFmpeg` is a trademark of [Fabrice Bellard](http://www.bellard.org/). `FFmpegKit` is an independent project and not affiliated with the `FFmpeg` trademark holder.
+
+### 17. Contributing
See our [CONTRIBUTING](CONTRIBUTING.md) guide.
-### 17. See Also
+### 18. See Also
- [FFmpeg API Documentation](https://ffmpeg.org/doxygen/4.0/index.html)
- [FFmpeg Wiki](https://trac.ffmpeg.org/wiki/WikiStart)
diff --git a/android/README.md b/android/README.md
index 95186c93f..b252cb47e 100644
--- a/android/README.md
+++ b/android/README.md
@@ -77,7 +77,7 @@ All libraries created by `android.sh` can be found under the `prebuilt` director
}
dependencies {
- implementation 'com.arthenica:ffmpeg-kit-full:6.0'
+ implementation 'com.arthenica:ffmpeg-kit-full:6.0-2'
}
```
diff --git a/android/ffmpeg-kit-android-lib/build.gradle b/android/ffmpeg-kit-android-lib/build.gradle
index 0cdbe1de3..f1dd6ed19 100644
--- a/android/ffmpeg-kit-android-lib/build.gradle
+++ b/android/ffmpeg-kit-android-lib/build.gradle
@@ -49,6 +49,15 @@ android {
}
}
+task javadoc(type: Javadoc) {
+ title = 'FFmpegKit'
+ destinationDir = file("${projectDir}/../../docs/android/javadoc")
+ classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
+ source = android.sourceSets.main.java.srcDirs
+ configurations.implementation.setCanBeResolved(true)
+ classpath += configurations.implementation
+}
+
dependencies {
api 'com.arthenica:smart-exception-java:0.2.1'
testImplementation "androidx.test.ext:junit:1.1.5"
diff --git a/android/ffmpeg-kit-android-lib/src/main/cpp/fftools_ffmpeg.c b/android/ffmpeg-kit-android-lib/src/main/cpp/fftools_ffmpeg.c
index 19024cbaa..28aa83a86 100644
--- a/android/ffmpeg-kit-android-lib/src/main/cpp/fftools_ffmpeg.c
+++ b/android/ffmpeg-kit-android-lib/src/main/cpp/fftools_ffmpeg.c
@@ -32,6 +32,10 @@
*
* ffmpeg-kit changes by ARTHENICA LTD
*
+ * 09.2023
+ * --------------------------------------------------------
+ * - forward_report method signature accepts pts to calculate the time
+ *
* 07.2023
* --------------------------------------------------------
* - FFmpeg 6.0 changes migrated
@@ -1725,11 +1729,19 @@ static void print_final_stats(int64_t total_size)
}
}
-static void forward_report(uint64_t frame_number, float fps, float quality, int64_t total_size, int seconds, int microseconds, double bitrate, double speed)
+static void forward_report(uint64_t frame_number, float fps, float quality, int64_t total_size, int64_t pts, double bitrate, double speed)
{
// FORWARD DATA
if (report_callback != NULL) {
- report_callback(frame_number, fps, quality, total_size, ((double)seconds*1000) + ((double)microseconds)/1000, bitrate, speed);
+ double milliseconds = 0;
+ if (pts != AV_NOPTS_VALUE) {
+ milliseconds = ((double)FFABS64U(pts)) / 1000;
+ }
+ if (pts < 0) {
+ report_callback(frame_number, fps, quality, total_size, 0 - milliseconds, bitrate, speed);
+ } else {
+ report_callback(frame_number, fps, quality, total_size, milliseconds, bitrate, speed);
+ }
}
}
@@ -1864,11 +1876,7 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti
speed = pts != AV_NOPTS_VALUE && t != 0.0 ? (double)pts / AV_TIME_BASE / t : -1;
// FFmpegKit forward report
- if (pts == AV_NOPTS_VALUE) {
- forward_report(frame_number, fps, q, total_size, 0, 0, bitrate, speed);
- } else {
- forward_report(frame_number, fps, q, total_size, secs, us, bitrate, speed);
- }
+ forward_report(frame_number, fps, q, total_size, pts, bitrate, speed);
if (local_print_stats) {
if (total_size < 0) av_bprintf(&buf, "size=N/A time=");
diff --git a/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/NativeLoader.java b/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/NativeLoader.java
index e9446fecd..163fb5533 100644
--- a/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/NativeLoader.java
+++ b/android/ffmpeg-kit-android-lib/src/main/java/com/arthenica/ffmpegkit/NativeLoader.java
@@ -36,7 +36,7 @@ public class NativeLoader {
static final String[] FFMPEG_LIBRARIES = {"avutil", "swscale", "swresample", "avcodec", "avformat", "avfilter", "avdevice"};
- static final String[] LIBRARIES_LINKED_WITH_CXX = {"chromaprint", "openh264", "rubberband", "snappy", "srt", "tesseract", "x265", "zimg"};
+ static final String[] LIBRARIES_LINKED_WITH_CXX = {"chromaprint", "openh264", "rubberband", "snappy", "srt", "tesseract", "x265", "zimg", "libilbc"};
static boolean isTestModeDisabled() {
return (System.getProperty("enable.ffmpeg.kit.test.mode") == null);
diff --git a/apple/src/fftools_ffmpeg.c b/apple/src/fftools_ffmpeg.c
index 19024cbaa..28aa83a86 100644
--- a/apple/src/fftools_ffmpeg.c
+++ b/apple/src/fftools_ffmpeg.c
@@ -32,6 +32,10 @@
*
* ffmpeg-kit changes by ARTHENICA LTD
*
+ * 09.2023
+ * --------------------------------------------------------
+ * - forward_report method signature accepts pts to calculate the time
+ *
* 07.2023
* --------------------------------------------------------
* - FFmpeg 6.0 changes migrated
@@ -1725,11 +1729,19 @@ static void print_final_stats(int64_t total_size)
}
}
-static void forward_report(uint64_t frame_number, float fps, float quality, int64_t total_size, int seconds, int microseconds, double bitrate, double speed)
+static void forward_report(uint64_t frame_number, float fps, float quality, int64_t total_size, int64_t pts, double bitrate, double speed)
{
// FORWARD DATA
if (report_callback != NULL) {
- report_callback(frame_number, fps, quality, total_size, ((double)seconds*1000) + ((double)microseconds)/1000, bitrate, speed);
+ double milliseconds = 0;
+ if (pts != AV_NOPTS_VALUE) {
+ milliseconds = ((double)FFABS64U(pts)) / 1000;
+ }
+ if (pts < 0) {
+ report_callback(frame_number, fps, quality, total_size, 0 - milliseconds, bitrate, speed);
+ } else {
+ report_callback(frame_number, fps, quality, total_size, milliseconds, bitrate, speed);
+ }
}
}
@@ -1864,11 +1876,7 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti
speed = pts != AV_NOPTS_VALUE && t != 0.0 ? (double)pts / AV_TIME_BASE / t : -1;
// FFmpegKit forward report
- if (pts == AV_NOPTS_VALUE) {
- forward_report(frame_number, fps, q, total_size, 0, 0, bitrate, speed);
- } else {
- forward_report(frame_number, fps, q, total_size, secs, us, bitrate, speed);
- }
+ forward_report(frame_number, fps, q, total_size, pts, bitrate, speed);
if (local_print_stats) {
if (total_size < 0) av_bprintf(&buf, "size=N/A time=");
diff --git a/docs/index.md b/docs/index.md
index 26f674f22..288073dd1 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -1,5 +1,15 @@
# FFmpegKit
+## Notice
+FFmpegKit has been officially retired. There will be no further `ffmpeg-kit` releases. All previously released `ffmpeg-kit` binaries will be removed according to the following schedule. Thank you for your support and interest in this project.
+
+Thank you for your support and contributions over the course of this project.
+
+| FFmpegKit Version | Available Until |
+|:-----------------:|:------------------:|
+| Less than 6.0 | February 1st, 2025 |
+| 6.0 | April 1st, 2025 |
+
`FFmpegKit` is a collection of tools to use `FFmpeg` in `Android`, `iOS`, `Linux`, `macOS`, `tvOS`, `Flutter` and `React Native` applications.
@@ -114,21 +124,26 @@ the exact version number of `FFmpeg` is obtained using the `git describe --tags`
| Platforms | FFmpegKit Version | FFmpeg Version | Release Date |
|:----------------:|:-----------------------------------------------------------------------------------:|:--------------:|:------------:|
-| React Native | [6.0.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v6.0.0) | 6.0.0 | Aug 27, 2023 |
-| Flutter | [6.0.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v6.0.0) | 6.0.0 | Aug 27, 2023 |
-| Android
Apple | [6.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/v6.0) | 6.0 | Aug 21, 2023 |
-| React Native | [5.1.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v5.1.0) | 5.1.2 | Oct 02, 2022 |
-| Flutter | [5.1.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v5.1.0) | 5.1.2 | Oct 02, 2022 |
-| Android
Apple | [5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/v5.1) | 5.1.2 | Sep 29, 2022 |
-| React Native | [4.5.2](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v4.5.2) | 4.5-dev-3393 | May 25, 2022 |
-| Flutter | [4.5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v4.5.1) | 4.5-dev-3393 | Jan 02, 2022 |
-| React Native | [4.5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v4.5.1) | 4.5-dev-3393 | Jan 02, 2022 |
-| Android | [4.5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/v4.5.1) | 4.5-dev-3393 | Jan 01, 2022 |
-| Apple | [4.5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/v4.5.1) | 4.5-dev-3393 | Dec 30, 2021 |
-| Flutter | [4.5.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v4.5.0) | 4.5-dev-2008 | Oct 05, 2021 |
-| React Native | [4.5.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v4.5.0) | 4.5-dev-2008 | Oct 01, 2021 |
-| Android
Apple | [4.5](https://github.com/arthenica/ffmpeg-kit/releases/tag/v4.5) | 4.5-dev-2008 | Sep 18, 2021 |
-| Android
Apple | [4.4](https://github.com/arthenica/ffmpeg-kit/releases/tag/v4.4) | 4.4-dev-3015 | Mar 03, 2021 |
+| Flutter | [6.0.3](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v6.0.3) | 6.0 | Sep 19, 2023 |
+| React Native | [6.0.2](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v6.0.2) | 6.0 | Sep 19, 2023 |
+| Flutter | [6.0.2](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v6.0.2) | 6.0 | Sep 03, 2023 |
+| React Native | [6.0.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v6.0.1) | 6.0 | Sep 03, 2023 |
+| Flutter | [6.0.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v6.0.1) | 6.0 | Sep 03, 2023 |
+| React Native | [6.0.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v6.0.0) | 6.0 | Aug 27, 2023 |
+| Flutter | [6.0.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v6.0.0) | 6.0 | Aug 27, 2023 |
+| Android
Apple | [6.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/v6.0) | 6.0 | Aug 21, 2023 |
+| React Native | [5.1.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v5.1.0) | 5.1.2 | Oct 02, 2022 |
+| Flutter | [5.1.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v5.1.0) | 5.1.2 | Oct 02, 2022 |
+| Android
Apple | [5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/v5.1) | 5.1.2 | Sep 29, 2022 |
+| React Native | [4.5.2](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v4.5.2) | 4.5-dev-3393 | May 25, 2022 |
+| Flutter | [4.5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v4.5.1) | 4.5-dev-3393 | Jan 02, 2022 |
+| React Native | [4.5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v4.5.1) | 4.5-dev-3393 | Jan 02, 2022 |
+| Android | [4.5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/v4.5.1) | 4.5-dev-3393 | Jan 01, 2022 |
+| Apple | [4.5.1](https://github.com/arthenica/ffmpeg-kit/releases/tag/v4.5.1) | 4.5-dev-3393 | Dec 30, 2021 |
+| Flutter | [4.5.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/flutter.v4.5.0) | 4.5-dev-2008 | Oct 05, 2021 |
+| React Native | [4.5.0](https://github.com/arthenica/ffmpeg-kit/releases/tag/react.native.v4.5.0) | 4.5-dev-2008 | Oct 01, 2021 |
+| Android
Apple | [4.5](https://github.com/arthenica/ffmpeg-kit/releases/tag/v4.5) | 4.5-dev-2008 | Sep 18, 2021 |
+| Android
Apple | [4.4](https://github.com/arthenica/ffmpeg-kit/releases/tag/v4.4) | 4.4-dev-3015 | Mar 03, 2021 |
### 11. LTS Releases
diff --git a/flutter/flutter/CHANGELOG.md b/flutter/flutter/CHANGELOG.md
index 1879bf079..a67101556 100644
--- a/flutter/flutter/CHANGELOG.md
+++ b/flutter/flutter/CHANGELOG.md
@@ -1,3 +1,27 @@
+## 6.0.3
+- Bug fix release based on native v6.0
+- Fixes issue 825
+
+## 6.0.3-LTS
+- Bug fix release based on native v6.0.LTS
+- Fixes issue 825
+
+## 6.0.2
+- Bug fix release based on native v6.0
+- Fixes version information in podspec and gradle files
+
+## 6.0.2-LTS
+- Bug fix release based on native v6.0.LTS
+- Fixes version information in podspec and gradle files
+
+## 6.0.1
+- Bug fix release based on native v6.0
+- Fixes issues 804 and 809
+
+## 6.0.1-LTS
+- Bug fix release based on native v6.0.LTS
+- Fixes issues 804 and 809
+
## 6.0.0
- Feature release based on native v6.0
- Renames StreamInformation.getFullCodec() method to getCodecLong()
diff --git a/flutter/flutter/README.md b/flutter/flutter/README.md
index 63f26029a..e9f4825b4 100644
--- a/flutter/flutter/README.md
+++ b/flutter/flutter/README.md
@@ -35,7 +35,7 @@ Add `ffmpeg_kit_flutter` as a dependency in your `pubspec.yaml file`.
```yaml
dependencies:
- ffmpeg_kit_flutter: 6.0.0
+ ffmpeg_kit_flutter: 6.0.3
```
#### 2.1 Packages
@@ -58,7 +58,7 @@ using the following dependency format.
```yaml
dependencies:
- ffmpeg_kit_flutter_: 6.0.0
+ ffmpeg_kit_flutter_: 6.0.3
```
Note that hyphens in the package name must be replaced with underscores. Additionally, do not forget to use the package
@@ -70,7 +70,7 @@ In order to install the `LTS` variant, append `-LTS` to the version you have for
```yaml
dependencies:
- ffmpeg_kit_flutter: 6.0.0-LTS
+ ffmpeg_kit_flutter: 6.0.3-LTS
```
#### 2.4 LTS Releases
diff --git a/flutter/flutter/analysis_options.yaml b/flutter/flutter/analysis_options.yaml
index a5dd89fc5..228b0f642 100644
--- a/flutter/flutter/analysis_options.yaml
+++ b/flutter/flutter/analysis_options.yaml
@@ -1,8 +1,4 @@
analyzer:
- enable-experiment:
- - non-nullable
- strong-mode:
- implicit-dynamic: false
errors:
missing_required_param: warning
missing_return: warning
@@ -27,10 +23,8 @@ linter:
- file_names
- hash_and_equals
- implementation_imports
- - iterable_contains_unrelated_type
- join_return_with_assignment
- - lines_longer_than_80_chars
- - list_remove_unrelated_type
+ - collection_methods_unrelated_type
- missing_whitespace_between_adjacent_strings
- no_runtimeType_toString
- non_constant_identifier_names
diff --git a/flutter/flutter/android/build.gradle b/flutter/flutter/android/build.gradle
index 3f04b74a5..6f049bae5 100644
--- a/flutter/flutter/android/build.gradle
+++ b/flutter/flutter/android/build.gradle
@@ -29,8 +29,8 @@ android {
defaultConfig {
minSdkVersion 24
targetSdkVersion 33
- versionCode 600
- versionName "6.0.0"
+ versionCode 603
+ versionName "6.0.3"
}
buildTypes {
@@ -49,5 +49,5 @@ android {
dependencies {
implementation 'androidx.annotation:annotation:1.5.0'
- implementation 'com.arthenica:ffmpeg-kit-https:6.0'
+ implementation 'com.arthenica:ffmpeg-kit-https:6.0-2'
}
diff --git a/flutter/flutter/ios/ffmpeg_kit_flutter.podspec b/flutter/flutter/ios/ffmpeg_kit_flutter.podspec
index 0d6b034e2..04ba28d51 100644
--- a/flutter/flutter/ios/ffmpeg_kit_flutter.podspec
+++ b/flutter/flutter/ios/ffmpeg_kit_flutter.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'ffmpeg_kit_flutter'
- s.version = '6.0.0'
+ s.version = '6.0.3'
s.summary = 'FFmpeg Kit for Flutter'
s.description = 'A Flutter plugin for running FFmpeg and FFprobe commands.'
s.homepage = 'https://github.com/arthenica/ffmpeg-kit'
diff --git a/flutter/flutter/lib/abstract_session.dart b/flutter/flutter/lib/abstract_session.dart
index 4cbb52189..02f15db95 100644
--- a/flutter/flutter/lib/abstract_session.dart
+++ b/flutter/flutter/lib/abstract_session.dart
@@ -64,7 +64,7 @@ abstract class AbstractSession extends Session {
///
/// Returns FFmpeg session created.
static Future createFFmpegSession(List argumentsArray,
- [LogRedirectionStrategy? logRedirectionStrategy = null]) async {
+ [LogRedirectionStrategy? logRedirectionStrategy]) async {
try {
await FFmpegKitConfig.init();
final Map? nativeSession =
@@ -118,7 +118,7 @@ abstract class AbstractSession extends Session {
/// Returns FFprobe session created.
static Future createFFprobeSession(
List argumentsArray,
- [LogRedirectionStrategy? logRedirectionStrategy = null]) async {
+ [LogRedirectionStrategy? logRedirectionStrategy]) async {
try {
await FFmpegKitConfig.init();
final Map? nativeSession =
diff --git a/flutter/flutter/lib/src/ffmpeg_kit_factory.dart b/flutter/flutter/lib/src/ffmpeg_kit_factory.dart
index d2c55c39b..936b14d32 100644
--- a/flutter/flutter/lib/src/ffmpeg_kit_factory.dart
+++ b/flutter/flutter/lib/src/ffmpeg_kit_factory.dart
@@ -99,7 +99,7 @@ class FFmpegKitFactory {
}
}
- static String getVersion() => "6.0.0";
+ static String getVersion() => "6.0.3";
static LogRedirectionStrategy? getLogRedirectionStrategy(int? sessionId) =>
logRedirectionStrategyMap[sessionId];
diff --git a/flutter/flutter/macos/ffmpeg_kit_flutter.podspec b/flutter/flutter/macos/ffmpeg_kit_flutter.podspec
index ae29e06ed..899a9b1a3 100644
--- a/flutter/flutter/macos/ffmpeg_kit_flutter.podspec
+++ b/flutter/flutter/macos/ffmpeg_kit_flutter.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'ffmpeg_kit_flutter'
- s.version = '6.0.0'
+ s.version = '6.0.3'
s.summary = 'FFmpeg Kit for Flutter'
s.description = 'A Flutter plugin for running FFmpeg and FFprobe commands.'
s.homepage = 'https://github.com/arthenica/ffmpeg-kit'
diff --git a/flutter/flutter/pubspec.yaml b/flutter/flutter/pubspec.yaml
index 08421ae90..45782aa8f 100644
--- a/flutter/flutter/pubspec.yaml
+++ b/flutter/flutter/pubspec.yaml
@@ -3,7 +3,7 @@ description: FFmpeg Kit for Flutter. Supports Android, iOS and macOS platforms.
repository: https://github.com/arthenica/ffmpeg-kit
issue_tracker: https://github.com/arthenica/ffmpeg-kit/issues
homepage: https://github.com/arthenica/ffmpeg-kit
-version: 6.0.0
+version: 6.0.3
environment:
sdk: ">=2.12.0 <4.0.0"
diff --git a/linux/src/fftools_ffmpeg.c b/linux/src/fftools_ffmpeg.c
index 19024cbaa..28aa83a86 100644
--- a/linux/src/fftools_ffmpeg.c
+++ b/linux/src/fftools_ffmpeg.c
@@ -32,6 +32,10 @@
*
* ffmpeg-kit changes by ARTHENICA LTD
*
+ * 09.2023
+ * --------------------------------------------------------
+ * - forward_report method signature accepts pts to calculate the time
+ *
* 07.2023
* --------------------------------------------------------
* - FFmpeg 6.0 changes migrated
@@ -1725,11 +1729,19 @@ static void print_final_stats(int64_t total_size)
}
}
-static void forward_report(uint64_t frame_number, float fps, float quality, int64_t total_size, int seconds, int microseconds, double bitrate, double speed)
+static void forward_report(uint64_t frame_number, float fps, float quality, int64_t total_size, int64_t pts, double bitrate, double speed)
{
// FORWARD DATA
if (report_callback != NULL) {
- report_callback(frame_number, fps, quality, total_size, ((double)seconds*1000) + ((double)microseconds)/1000, bitrate, speed);
+ double milliseconds = 0;
+ if (pts != AV_NOPTS_VALUE) {
+ milliseconds = ((double)FFABS64U(pts)) / 1000;
+ }
+ if (pts < 0) {
+ report_callback(frame_number, fps, quality, total_size, 0 - milliseconds, bitrate, speed);
+ } else {
+ report_callback(frame_number, fps, quality, total_size, milliseconds, bitrate, speed);
+ }
}
}
@@ -1864,11 +1876,7 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti
speed = pts != AV_NOPTS_VALUE && t != 0.0 ? (double)pts / AV_TIME_BASE / t : -1;
// FFmpegKit forward report
- if (pts == AV_NOPTS_VALUE) {
- forward_report(frame_number, fps, q, total_size, 0, 0, bitrate, speed);
- } else {
- forward_report(frame_number, fps, q, total_size, secs, us, bitrate, speed);
- }
+ forward_report(frame_number, fps, q, total_size, pts, bitrate, speed);
if (local_print_stats) {
if (total_size < 0) av_bprintf(&buf, "size=N/A time=");
diff --git a/react-native/android/build.gradle b/react-native/android/build.gradle
index 97f6a366b..2909280ab 100644
--- a/react-native/android/build.gradle
+++ b/react-native/android/build.gradle
@@ -35,8 +35,8 @@ android {
defaultConfig {
minSdkVersion safeExtGet('ffmpegKitPackage', 'https').contains("-lts") ? 16 : 24
targetSdkVersion 33
- versionCode 600
- versionName "6.0.0"
+ versionCode 602
+ versionName "6.0.2"
}
buildTypes {
diff --git a/react-native/android/gradle.properties b/react-native/android/gradle.properties
index 06db36990..a9120281d 100644
--- a/react-native/android/gradle.properties
+++ b/react-native/android/gradle.properties
@@ -1,3 +1,3 @@
android.useAndroidX=true
-ffmpegKit.android.main.version=6.0
-ffmpegKit.android.lts.version=6.0
+ffmpegKit.android.main.version=6.0-2
+ffmpegKit.android.lts.version=6.0-2
diff --git a/react-native/package.json b/react-native/package.json
index b39a4f99c..e39cec33e 100644
--- a/react-native/package.json
+++ b/react-native/package.json
@@ -1,6 +1,6 @@
{
"name": "ffmpeg-kit-react-native",
- "version": "6.0.0",
+ "version": "6.0.2",
"description": "FFmpeg Kit for React Native",
"main": "src/index",
"types": "src/index.d.ts",
diff --git a/react-native/src/index.js b/react-native/src/index.js
index 3144750b8..3789aa87d 100644
--- a/react-native/src/index.js
+++ b/react-native/src/index.js
@@ -1611,7 +1611,7 @@ class FFmpegKitFactory {
}
static getVersion() {
- return "6.0.0";
+ return "6.0.2";
}
static getLogRedirectionStrategy(sessionId) {
diff --git a/scripts/android/libiconv.sh b/scripts/android/libiconv.sh
index 15535c7c6..545c134a2 100755
--- a/scripts/android/libiconv.sh
+++ b/scripts/android/libiconv.sh
@@ -1,8 +1,17 @@
#!/bin/bash
-# INIT SUBMODULES
+# FIX HARD-CODED PATHS
${SED_INLINE} 's|git://git.savannah.gnu.org|https://github.com/arthenica|g' "${BASEDIR}"/src/"${LIB_NAME}"/.gitmodules || return 1
-./gitsub.sh pull || return 1
+ln -s -f $(which aclocal) ${BASEDIR}/.tmp/aclocal-1.16
+ln -s -f $(which automake) ${BASEDIR}/.tmp/automake-1.16
+PATH="${BASEDIR}/.tmp":$PATH
+
+if [[ ! -d "${BASEDIR}"/src/"${LIB_NAME}"/gnulib ]]; then
+
+ # INIT SUBMODULES
+ ./gitsub.sh pull || return 1
+ ./gitsub.sh checkout gnulib 485d983b7795548fb32b12fbe8370d40789e88c4 || return 1
+fi
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
diff --git a/scripts/apple/libogg.sh b/scripts/apple/libogg.sh
index 13f00515f..5e325643a 100755
--- a/scripts/apple/libogg.sh
+++ b/scripts/apple/libogg.sh
@@ -8,9 +8,6 @@ if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_libogg} -e
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
-# FIX INCLUDE PATHS
-${SED_INLINE} 's/sys\/types/stdint/g' ${BASEDIR}/src/libogg/include/ogg/os_types.h
-
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
diff --git a/scripts/apple/libpng.sh b/scripts/apple/libpng.sh
index 2c36e66ff..46e73f06e 100755
--- a/scripts/apple/libpng.sh
+++ b/scripts/apple/libpng.sh
@@ -24,6 +24,13 @@ if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_libpng} -e
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
+# WORKAROUND TO FIX ZLIB VERSION DETECTED - OCCURS ON XCODE 14.3.1
+if [[ -n "$DETECTED_IOS_SDK_VERSION" && $(compare_versions "$DETECTED_IOS_SDK_VERSION" "16.4") -ge 0 ]] ||
+ [[ -n "$DETECTED_MACOS_SDK_VERSION" && $(compare_versions "$DETECTED_MACOS_SDK_VERSION" "13.3") -eq 0 ]] ||
+ [[ -n "$DETECTED_TVOS_SDK_VERSION" && $(compare_versions "$DETECTED_TVOS_SDK_VERSION" "16.4") -ge 0 ]]; then
+ ${SED_INLINE} "s|ZLIB_VERNUM default .*|ZLIB_VERNUM default 0|g" "${BASEDIR}"/src/"${LIB_NAME}"/scripts/pnglibconf.dfa
+fi
+
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
diff --git a/scripts/apple/libvorbis.sh b/scripts/apple/libvorbis.sh
index 00dbee7a1..56a99504f 100755
--- a/scripts/apple/libvorbis.sh
+++ b/scripts/apple/libvorbis.sh
@@ -10,12 +10,9 @@ ${SED_INLINE} 's/\-mno-ieee-fp//g' "${BASEDIR}"/src/"${LIB_NAME}"/configure.ac |
# ALWAYS REGENERATE BUILD FILES - NECESSARY TO APPLY THE WORKAROUNDS
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
-if [[ ${FFMPEG_KIT_BUILD_TYPE} != "macos" ]]; then
-
- # WORKAROUND TO REMOVE -force_cpusubtype_ALL FLAG DUE TO THE FOLLOWING ERROR
- # ld: -force_cpusubtype_ALL and -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES) cannot be used together
- ${SED_INLINE} 's/-force_cpusubtype_ALL//g' ${BASEDIR}/src/${LIB_NAME}/configure
-fi
+# WORKAROUND TO REMOVE -force_cpusubtype_ALL FLAG DUE TO THE FOLLOWING ERROR
+# ld: -force_cpusubtype_ALL and -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES) cannot be used together
+${SED_INLINE} 's/-force_cpusubtype_ALL//g' ${BASEDIR}/src/${LIB_NAME}/configure
PKG_CONFIG= ./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
diff --git a/scripts/function-android.sh b/scripts/function-android.sh
index 36415b4ab..0e4b78a75 100755
--- a/scripts/function-android.sh
+++ b/scripts/function-android.sh
@@ -70,7 +70,7 @@ build_application_mk() {
local LTS_BUILD_FLAG="-DFFMPEG_KIT_LTS "
fi
- if [[ ${ENABLED_LIBRARIES[$LIBRARY_X265]} -eq 1 ]] || [[ ${ENABLED_LIBRARIES[$LIBRARY_TESSERACT]} -eq 1 ]] || [[ ${ENABLED_LIBRARIES[$LIBRARY_OPENH264]} -eq 1 ]] || [[ ${ENABLED_LIBRARIES[$LIBRARY_SNAPPY]} -eq 1 ]] || [[ ${ENABLED_LIBRARIES[$LIBRARY_RUBBERBAND]} -eq 1 ]] || [[ ${ENABLED_LIBRARIES[$LIBRARY_ZIMG]} -eq 1 ]] || [[ ${ENABLED_LIBRARIES[$LIBRARY_SRT]} -eq 1 ]] || [[ ${ENABLED_LIBRARIES[$LIBRARY_CHROMAPRINT]} -eq 1 ]] || [[ -n ${CUSTOM_LIBRARY_USES_CPP} ]]; then
+ if [[ ${ENABLED_LIBRARIES[$LIBRARY_X265]} -eq 1 ]] || [[ ${ENABLED_LIBRARIES[$LIBRARY_TESSERACT]} -eq 1 ]] || [[ ${ENABLED_LIBRARIES[$LIBRARY_OPENH264]} -eq 1 ]] || [[ ${ENABLED_LIBRARIES[$LIBRARY_SNAPPY]} -eq 1 ]] || [[ ${ENABLED_LIBRARIES[$LIBRARY_RUBBERBAND]} -eq 1 ]] || [[ ${ENABLED_LIBRARIES[$LIBRARY_ZIMG]} -eq 1 ]] || [[ ${ENABLED_LIBRARIES[$LIBRARY_SRT]} -eq 1 ]] || [[ ${ENABLED_LIBRARIES[$LIBRARY_CHROMAPRINT]} -eq 1 ]] || [[ ${ENABLED_LIBRARIES[$LIBRARY_LIBILBC]} -eq 1 ]] || [[ -n ${CUSTOM_LIBRARY_USES_CPP} ]]; then
local APP_STL="c++_shared"
else
local APP_STL="none"
@@ -404,9 +404,9 @@ get_common_linked_libraries() {
# SUPPORTED ON API LEVEL 24 AND LATER
if [[ ${API} -ge 24 ]]; then
- echo "-lc -lm -ldl -llog -lcamera2ndk -lmediandk ${COMMON_LIBRARY_PATHS}"
+ echo "-lc -lm -ldl -llog -landroid -lcamera2ndk -lmediandk ${COMMON_LIBRARY_PATHS}"
else
- echo "-lc -lm -ldl -llog ${COMMON_LIBRARY_PATHS}"
+ echo "-lc -lm -ldl -llog -landroid ${COMMON_LIBRARY_PATHS}"
echo -e "INFO: Building ffmpeg without native camera API which is not supported on Android API Level ${API}\n" 1>>"${BASEDIR}"/build.log 2>&1
fi
;;
diff --git a/scripts/function-apple.sh b/scripts/function-apple.sh
index a45b8b9ee..28238d9e9 100755
--- a/scripts/function-apple.sh
+++ b/scripts/function-apple.sh
@@ -1287,6 +1287,15 @@ EOF
create_libiconv_system_package_config() {
local LIB_ICONV_VERSION=$(grep '_LIBICONV_VERSION' "${SDK_PATH}"/usr/include/iconv.h | grep -Eo '0x.*' | grep -Eo '.* ')
+ # AFTER XCODE 15.0, libcharset DOES NOT CONTAIN ALL ARCHITECTURES WE SUPPORT
+ if [[ -n "$DETECTED_IOS_SDK_VERSION" && $(compare_versions "$DETECTED_IOS_SDK_VERSION" "17.0") -ge 0 ]] ||
+ [[ -n "$DETECTED_MACOS_SDK_VERSION" && $(compare_versions "$DETECTED_MACOS_SDK_VERSION" "14.0") -ge 0 ]] ||
+ [[ -n "$DETECTED_TVOS_SDK_VERSION" && $(compare_versions "$DETECTED_TVOS_SDK_VERSION" "17.0") -ge 0 ]]; then
+ local _REQUIRES_LIBS="-liconv"
+ else
+ local _REQUIRES_LIBS="-liconv -lcharset"
+ fi
+
cat >"${INSTALL_PKG_CONFIG_DIR}/libiconv.pc" <