add support for zimg openssl and srt, fixes #28 and #241

This commit is contained in:
Taner Sener 2021-12-25 18:07:45 +00:00
parent 38d88e0c12
commit ae708befea
70 changed files with 684 additions and 279 deletions

View File

@ -137,25 +137,25 @@ indicates that `FFmpeg` source code is cloned from the `FFmpeg` `master` branch.
This table shows the differences between two variants.
| | Main Release | LTS Release |
| :----: | :----: | :----: |
| Android API Level | 24 | 16 |
| Android Camera Access | Yes | - |
| | Main Release | LTS Release |
| :----: | :----: |:---------------------------------------------------------:|
| Android API Level | 24 | 16 |
| Android Camera Access | Yes | - |
| Android Architectures | arm-v7a-neon<br/>arm64-v8a<br/>x86<br/>x86-64 | arm-v7a<br/>arm-v7a-neon<br/>arm64-v8a<br/>x86<br/>x86-64 |
| iOS Min SDK | 12.1 | 9.3 |
| iOS VideoToolbox | Yes | - |
| iOS AVFoundation | Yes | - |
| iOS Architectures | arm64<br/>arm64-simulator<br/>arm64-mac-catalyst<br/>x86-64<br/>x86-64-mac-catalyst | armv7<br/>arm64<br/>i386<br/>x86-64 |
| iOS Bundle Format | XCFrameworks | Frameworks |
| Mac Catalyst Min Version | 14.0 | - |
| macOS Min SDK | 10.15 | 10.11 |
| macOS AVFoundation | Yes | - |
| macOS Architectures | arm64<br/>x86-64 | x86-64 |
| macOS Bundle Format | XCFrameworks | Frameworks |
| tvOS Min SDK | 11.0 | 9.2 |
| tvOS VideoToolbox | Yes | - |
| tvOS Architectures | arm64<br/>x86-64<br/>arm64-simulator | arm64<br/>x86-64 |
| tvOS Bundle Format | XCFrameworks | Frameworks |
| iOS Min SDK | 12.1 | 10 |
| iOS VideoToolbox | Yes | - |
| iOS AVFoundation | Yes | - |
| iOS Architectures | arm64<br/>arm64-simulator<br/>arm64-mac-catalyst<br/>x86-64<br/>x86-64-mac-catalyst | armv7<br/>arm64<br/>i386<br/>x86-64 |
| iOS Bundle Format | XCFrameworks | Frameworks |
| Mac Catalyst Min Version | 14.0 | - |
| macOS Min SDK | 10.15 | 10.12 |
| macOS AVFoundation | Yes | - |
| macOS Architectures | arm64<br/>x86-64 | x86-64 |
| macOS Bundle Format | XCFrameworks | Frameworks |
| tvOS Min SDK | 11.0 | 10.0 |
| tvOS VideoToolbox | Yes | - |
| tvOS Architectures | arm64<br/>x86-64<br/>arm64-simulator | arm64<br/>x86-64 |
| tvOS Bundle Format | XCFrameworks | Frameworks |
### 11. Documentation

View File

@ -138,7 +138,7 @@ fi
# PROCESS FULL OPTION AS LAST OPTION
if [[ -n ${BUILD_FULL} ]]; then
for library in {0..58}; do
for library in {0..61}; do
if [ ${GPL_ENABLED} == "yes" ]; then
enable_library "$(get_library_name $library)" 1
else
@ -214,7 +214,7 @@ for run_arch in {0..12}; do
. "${BASEDIR}"/scripts/main-android.sh "${ENABLED_LIBRARIES[@]}" || exit 1
# CLEAR FLAGS
for library in {0..58}; do
for library in {0..61}; do
library_name=$(get_library_name ${library})
unset "$(echo "OK_${library_name}" | sed "s/\-/\_/g")"
unset "$(echo "DEPENDENCY_REBUILT_${library_name}" | sed "s/\-/\_/g")"
@ -272,7 +272,7 @@ if [[ -n ${ANDROID_ARCHITECTURES} ]]; then
# COPY LICENSES
LICENSE_BASEDIR="${BASEDIR}"/android/ffmpeg-kit-android-lib/src/main/res/raw
rm -f "${LICENSE_BASEDIR}"/*.txt 1>>"${BASEDIR}"/build.log 2>&1 || exit 1
for library in {0..46}; do
for library in {0..49}; do
if [[ ${ENABLED_LIBRARIES[$library]} -eq 1 ]]; then
ENABLED_LIBRARY=$(get_library_name ${library} | sed 's/-/_/g')
LICENSE_FILE="${LICENSE_BASEDIR}/license_${ENABLED_LIBRARY}.txt"

View File

@ -44,8 +44,8 @@ task javadoc(type: Javadoc) {
}
dependencies {
implementation 'com.arthenica:smart-exception-java:0.1.0'
testImplementation "androidx.test.ext:junit:1.1.2"
implementation 'com.arthenica:smart-exception-java:0.1.1'
testImplementation "androidx.test.ext:junit:1.1.3"
testImplementation "org.json:json:20201115"
}

View File

@ -27,6 +27,7 @@ import java.text.SimpleDateFormat;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Locale;
/**
* <p>Responsible of loading native libraries.
@ -35,6 +36,8 @@ public class NativeLoader {
static final String[] FFMPEG_LIBRARIES = {"avutil", "swscale", "swresample", "avcodec", "avformat", "avfilter", "avdevice"};
static final String[] LIBRARIES_LINKED_WITH_CXX = {"openh264", "rubberband", "snappy", "srt", "tesseract", "x265", "zimg"};
static boolean isTestModeDisabled() {
return (System.getProperty("enable.ffmpeg.kit.test.mode") == null);
}
@ -113,7 +116,7 @@ public class NativeLoader {
if (isTestModeDisabled()) {
return FFmpegKitConfig.getBuildDate();
} else {
return new SimpleDateFormat("yyyyMMdd").format(new Date());
return new SimpleDateFormat("yyyyMMdd", Locale.getDefault()).format(new Date());
}
}
@ -135,8 +138,11 @@ public class NativeLoader {
/* LOADING LINKED LIBRARIES MANUALLY ON API < 21 */
final List<String> externalLibrariesEnabled = loadExternalLibraries();
if (externalLibrariesEnabled.contains("tesseract") || externalLibrariesEnabled.contains("x265") || externalLibrariesEnabled.contains("snappy") || externalLibrariesEnabled.contains("openh264") || externalLibrariesEnabled.contains("rubberband")) {
loadLibrary("c++_shared");
for (String dependantLibrary : LIBRARIES_LINKED_WITH_CXX) {
if (externalLibrariesEnabled.contains(dependantLibrary)) {
loadLibrary("c++_shared");
break;
}
}
if (AbiDetect.ARM_V7A.equals(loadNativeAbi())) {

View File

@ -51,6 +51,7 @@ public class Packages {
supportedExternalLibraries.add("libxml2");
supportedExternalLibraries.add("opencore-amr");
supportedExternalLibraries.add("openh264");
supportedExternalLibraries.add("openssl");
supportedExternalLibraries.add("opus");
supportedExternalLibraries.add("rubberband");
supportedExternalLibraries.add("sdl2");
@ -58,11 +59,13 @@ public class Packages {
supportedExternalLibraries.add("snappy");
supportedExternalLibraries.add("soxr");
supportedExternalLibraries.add("speex");
supportedExternalLibraries.add("srt");
supportedExternalLibraries.add("tesseract");
supportedExternalLibraries.add("twolame");
supportedExternalLibraries.add("x264");
supportedExternalLibraries.add("x265");
supportedExternalLibraries.add("xvid");
supportedExternalLibraries.add("zimg");
}
/**
@ -134,7 +137,8 @@ public class Packages {
externalLibraryList.contains("twolame") &&
externalLibraryList.contains("x264") &&
externalLibraryList.contains("x265") &&
externalLibraryList.contains("xvid")) {
externalLibraryList.contains("xvid") &&
externalLibraryList.contains("zimg")) {
return "full-gpl";
} else {
return "custom";
@ -164,7 +168,8 @@ public class Packages {
externalLibraryList.contains("snappy") &&
externalLibraryList.contains("soxr") &&
externalLibraryList.contains("speex") &&
externalLibraryList.contains("twolame")) {
externalLibraryList.contains("twolame") &&
externalLibraryList.contains("zimg")) {
return "full";
} else {
return "custom";
@ -182,7 +187,8 @@ public class Packages {
externalLibraryList.contains("libtheora") &&
externalLibraryList.contains("libvpx") &&
externalLibraryList.contains("libwebp") &&
externalLibraryList.contains("snappy")) {
externalLibraryList.contains("snappy") &&
externalLibraryList.contains("zimg")) {
return "video";
} else {
return "custom";

View File

@ -63,15 +63,18 @@ After that this script should be used to create an umbrella xcframework.\n"
echo -e " --enable-libxml2\t\tbuild umbrella xcframework for libxml2 [no]"
echo -e " --enable-opencore-amr\t\tbuild umbrella xcframework for opencore-amr [no]"
echo -e " --enable-openh264\t\tbuild umbrella xcframework for openh264 [no]"
echo -e " --enable-openssl\t\tbuild umbrella xcframework for openssl [no]"
echo -e " --enable-opus\t\t\tbuild umbrella xcframework for opus [no]"
echo -e " --enable-sdl\t\t\tbuild umbrella xcframework for sdl [no]"
echo -e " --enable-shine\t\tbuild umbrella xcframework for shine [no]"
echo -e " --enable-snappy\t\tbuild umbrella xcframework for snappy [no]"
echo -e " --enable-soxr\t\t\tbuild umbrella xcframework for soxr [no]"
echo -e " --enable-speex\t\tbuild umbrella xcframework for speex [no]"
echo -e " --enable-srt\t\t\tbuild umbrella xcframework for srt [no]"
echo -e " --enable-tesseract\t\tbuild umbrella xcframework for tesseract [no]"
echo -e " --enable-twolame\t\tbuild umbrella xcframework for twolame [no]"
echo -e " --enable-vo-amrwbenc\t\tbuild umbrella xcframework for vo-amrwbenc [no]\n"
echo -e " --enable-vo-amrwbenc\t\tbuild umbrella xcframework for vo-amrwbenc [no]"
echo -e " --enable-zimg\t\t\tbuild umbrella xcframework for zimg [no]\n"
echo -e "GPL libraries:"
echo -e " --enable-libvidstab\t\tbuild umbrella xcframework for libvidstab [no]"
@ -244,7 +247,7 @@ done
# PROCESS FULL OPTION AS LAST OPTION
if [[ -n ${BUILD_FULL} ]]; then
for library in {0..58}; do
for library in {0..61}; do
if [ ${GPL_ENABLED} == "yes" ]; then
set_library "$(get_library_name "$library")" 1
else
@ -309,45 +312,6 @@ if [[ -n ${TARGET_ARCHITECTURE_VARIANT_INDEX_ARRAY[0]} ]]; then
# INITIALIZE TARGET FOLDERS
initialize_prebuilt_umbrella_xcframework_folders
# BUILD XCFRAMEWORKS FOR ENABLED LIBRARIES ON ENABLED ARCHITECTURE VARIANTS
for library in {0..46}; do
if [[ ${ENABLED_LIBRARIES[${library}]} -eq 1 ]]; then
if [[ ${LIBRARY_LIBTHEORA} == "${library}" ]]; then
create_umbrella_xcframework "libtheora"
create_umbrella_xcframework "libtheoraenc"
create_umbrella_xcframework "libtheoradec"
elif [[ ${LIBRARY_LIBVORBIS} == "${library}" ]]; then
create_umbrella_xcframework "libvorbisfile"
create_umbrella_xcframework "libvorbisenc"
create_umbrella_xcframework "libvorbis"
elif [[ ${LIBRARY_LIBWEBP} == "${library}" ]]; then
create_umbrella_xcframework "libwebpmux"
create_umbrella_xcframework "libwebpdemux"
create_umbrella_xcframework "libwebp"
elif [[ ${LIBRARY_OPENCOREAMR} == "${library}" ]]; then
create_umbrella_xcframework "libopencore-amrnb"
elif [[ ${LIBRARY_NETTLE} == "${library}" ]]; then
create_umbrella_xcframework "libnettle"
create_umbrella_xcframework "libhogweed"
else
create_umbrella_xcframework "$(get_static_archive_name "${library}")"
fi
fi
done
for FFMPEG_LIB in "${FFMPEG_LIBS[@]}"; do
create_umbrella_xcframework "${FFMPEG_LIB}"
done

View File

@ -2,36 +2,36 @@
### 1. Features
#### 1.1 iOS
- Supports `iOS SDK 12.1+` on Main releases and `iOS SDK 9.3+` on LTS releases
- Supports `iOS SDK 12.1+` on Main releases and `iOS SDK 10+` on LTS releases
- Includes `armv7`, `armv7s`, `arm64`, `arm64-simulator`, `arm64e`, `i386`, `x86_64`, `x86_64-mac-catalyst` and
`arm64-mac-catalyst` architectures
- Objective-C API
- Camera access
- `ARC` enabled library
- Built with `-fembed-bitcode` flag
- Creates static `frameworks`, static `xcframeworks` and static `universal (fat)` libraries (.a)
- Creates shared `frameworks` and `xcframeworks`
#### 1.2 macOS
- Supports `macOS SDK 10.15+` on Main releases and `macOS SDK 10.11+` on LTS releases
- Supports `macOS SDK 10.15+` on Main releases and `macOS SDK 10.12+` on LTS releases
- Includes `arm64` and `x86_64` architectures
- Objective-C API
- Camera access
- `ARC` enabled library
- Built with `-fembed-bitcode` flag
- Creates static `frameworks`, static `xcframeworks` and static `universal (fat)` libraries (.a)
- Creates shared `frameworks` and `xcframeworks`
#### 1.3 tvOS
- Supports `tvOS SDK 10.2+` on Main releases and `tvOS SDK 9.2+` on LTS releases
- Supports `tvOS SDK 11.0+` on Main releases and `tvOS SDK 10.0+` on LTS releases
- Includes `arm64`, `arm64-simulator` and `x86_64` architectures
- Objective-C API
- `ARC` enabled library
- Built with `-fembed-bitcode` flag
- Creates static `frameworks`, static `xcframeworks` and static `universal (fat)` libraries (.a)
- Creates shared `frameworks` and `xcframeworks`
### 2. Building
Run `ios.sh`/`macos.sh`/`tvos.sh` at project root directory to build `ffmpeg-kit` and `ffmpeg` static libraries for a
platform.
Run `ios.sh`/`macos.sh`/`tvos.sh` inside the project root to build `ffmpeg-kit` and `ffmpeg` shared libraries
for a platform.
Optionally, use `apple.sh` to combine bundles created by these three scripts in a single bundle.
@ -45,20 +45,20 @@ Please note that `FFmpegKit` project repository includes the source code of `FFm
##### 2.1.1 iOS
- **Xcode 7.3.1** or later
- **iOS SDK 9.3** or later
- **Xcode 8.0** or later
- **iOS SDK 10** or later
- **Command Line Tools**
##### 2.1.2 macOS
- **Xcode 7.3.1** or later
- **macOS SDK 10.11** or later
- **Xcode 8.0** or later
- **macOS SDK 10.12** or later
- **Command Line Tools**
##### 2.1.3 tvOS
- **Xcode 7.3.1** or later
- **tvOS SDK 9.2** or later
- **Xcode 8.0** or later
- **tvOS SDK 10.0** or later
- **Command Line Tools**
##### 2.1.4 Packages

4
ios.sh
View File

@ -144,7 +144,7 @@ done
# PROCESS FULL OPTION AS LAST OPTION
if [[ -n ${BUILD_FULL} ]]; then
for library in {0..58}; do
for library in {0..61}; do
if [ ${GPL_ENABLED} == "yes" ]; then
enable_library "$(get_library_name "$library")" 1
else
@ -240,7 +240,7 @@ for run_arch in {0..12}; do
TARGET_ARCH_LIST+=("${FULL_ARCH}")
# CLEAR FLAGS
for library in {0..58}; do
for library in {0..61}; do
library_name=$(get_library_name "${library}")
unset "$(echo "OK_${library_name}" | sed "s/\-/\_/g")"
unset "$(echo "DEPENDENCY_REBUILT_${library_name}" | sed "s/\-/\_/g")"

View File

@ -139,7 +139,7 @@ done
# PROCESS FULL OPTION AS LAST OPTION
if [[ -n ${BUILD_FULL} ]]; then
for library in {0..58}; do
for library in {0..61}; do
if [ ${GPL_ENABLED} == "yes" ]; then
enable_library "$(get_library_name "$library")" 1
else
@ -209,7 +209,7 @@ for run_arch in {0..12}; do
TARGET_ARCH_LIST+=("${FULL_ARCH}")
# CLEAR FLAGS
for library in {0..58}; do
for library in {0..61}; do
library_name=$(get_library_name "${library}")
unset "$(echo "OK_${library_name}" | sed "s/\-/\_/g")"
unset "$(echo "DEPENDENCY_REBUILT_${library_name}" | sed "s/\-/\_/g")"

View File

@ -72,7 +72,7 @@ CONFIGURE_POSTFIX=""
HIGH_PRIORITY_INCLUDES=""
# SET CONFIGURE OPTIONS
for library in {1..58}; do
for library in {1..62}; do
if [[ ${!library} -eq 1 ]]; then
ENABLED_LIBRARY=$(get_library_name $((library - 1)))
@ -194,6 +194,11 @@ for library in {1..58}; do
LDFLAGS+=" $(pkg-config --libs --static openh264 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libopenh264"
;;
openssl)
CFLAGS+=" $(pkg-config --cflags openssl 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static openssl 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-openssl"
;;
opus)
CFLAGS+=" $(pkg-config --cflags opus 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static opus 2>>"${BASEDIR}"/build.log)"
@ -229,6 +234,11 @@ for library in {1..58}; do
LDFLAGS+=" $(pkg-config --libs --static speex 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libspeex"
;;
srt)
CFLAGS+=" $(pkg-config --cflags srt 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static srt 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libsrt"
;;
tesseract)
CFLAGS+=" $(pkg-config --cflags tesseract 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static tesseract 2>>"${BASEDIR}"/build.log)"
@ -261,6 +271,11 @@ for library in {1..58}; do
LDFLAGS+=" $(pkg-config --libs --static xvidcore 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libxvid --enable-gpl"
;;
zimg)
CFLAGS+=" $(pkg-config --cflags zimg 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static zimg 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libzimg"
;;
expat)
CFLAGS+=" $(pkg-config --cflags expat 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static expat 2>>"${BASEDIR}"/build.log)"
@ -302,6 +317,8 @@ for library in {1..58}; do
CONFIGURE_POSTFIX+=" --disable-zlib"
elif [[ ${library} -eq $((LIBRARY_ANDROID_MEDIA_CODEC + 1)) ]]; then
CONFIGURE_POSTFIX+=" --disable-mediacodec"
elif [[ ${library} -eq $((LIBRARY_OPENSSL + 1)) ]]; then
CONFIGURE_POSTFIX+=" --disable-openssl"
fi
fi
done
@ -394,25 +411,27 @@ fi
--enable-version3 \
--arch="${TARGET_ARCH}" \
--cpu="${TARGET_CPU}" \
--target-os=android \
${ASM_OPTIONS} \
--ar="${AR}" \
--cc="${CC}" \
--cxx="${CXX}" \
--ranlib="${RANLIB}" \
--strip="${STRIP}" \
--nm="${NM}" \
--extra-libs="$(pkg-config --libs --static cpu-features)" \
--target-os=android \
${ASM_OPTIONS} \
--disable-autodetect \
--enable-cross-compile \
--enable-pic \
--enable-jni \
--enable-optimizations \
--enable-swscale \
${BUILD_LIBRARY_OPTIONS} \
--enable-pthreads \
--enable-v4l2-m2m \
--disable-outdev=fbdev \
--disable-indev=fbdev \
${SIZE_OPTIONS} \
--disable-openssl \
--disable-xmm-clobber-test \
${DEBUG_OPTIONS} \
--disable-neon-clobber-test \

View File

@ -11,7 +11,7 @@ make distclean 2>/dev/null 1>/dev/null
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/builds/unix/configure ]] || [[ ${RECONF_freetype} -eq 1 ]]; then
# NOTE THAT FREETYPE DOES NOT SUPPORT AUTORECONF BUT IT COMES WITH AN autogen.sh
./autogen.sh || return 1
./autogen.sh || exit 1
fi
./configure \

View File

@ -5,7 +5,7 @@ make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_harfbuzz} -eq 1 ]]; then
NOCONFIGURE=1 ./autogen.sh || return 1
NOCONFIGURE=1 ./autogen.sh || exit 1
fi
./configure \

View File

@ -16,7 +16,7 @@ if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_libtheora}
# WORKAROUND NOT TO RUN CONFIGURE AT THE END OF autogen.sh
${SED_INLINE} 's/$srcdir\/configure/#$srcdir\/configure/g' "${BASEDIR}"/src/"${LIB_NAME}"/autogen.sh || return 1
./autogen.sh || return 1
./autogen.sh || exit 1
fi
./configure \

View File

@ -0,0 +1,54 @@
#!/bin/bash
if [[ ${ARCH} == "x86" ]]; then
# openssl does not support 32-bit apple architectures
echo -e "ERROR: openssl is not supported on $ARCH architecture for $FFMPEG_KIT_BUILD_TYPE platform.\n" 1>>"${BASEDIR}"/build.log 2>&1
return 200
fi
# SET BUILD OPTIONS
ASM_OPTIONS=""
case ${ARCH} in
arm-v7a | arm-v7a-neon)
ASM_OPTIONS="linux-generic32"
;;
arm64-v8a)
ASM_OPTIONS="linux-generic64 enable-ec_nistp_64_gcc_128"
;;
x86)
ASM_OPTIONS="linux-generic32 386"
;;
x86-64)
ASM_OPTIONS="linux-generic64 enable-ec_nistp_64_gcc_128"
;;
esac
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_openssl} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || exit 1
fi
INT128_AVAILABLE=$($CC -dM -E - </dev/null 2>>"${BASEDIR}"/build.log | grep __SIZEOF_INT128__)
echo -e "INFO: __uint128_t detection output: $INT128_AVAILABLE\n" 1>>"${BASEDIR}"/build.log 2>&1
./Configure \
--prefix="${LIB_INSTALL_PREFIX}" \
zlib \
no-shared \
no-engine \
no-dso \
no-legacy \
${ASM_OPTIONS} \
no-tests || return 1
make -j$(get_cpu_count) build_sw || return 1
make install_sw install_ssldirs || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1

62
scripts/android/srt.sh Normal file
View File

@ -0,0 +1,62 @@
#!/bin/bash
# ALWAYS CLEAN THE PREVIOUS BUILD
git clean -dfx 2>/dev/null 1>/dev/null
# OVERRIDE SYSTEM PROCESSOR
SYSTEM_PROCESSOR=""
case ${ARCH} in
arm-v7a | arm-v7a-neon)
SYSTEM_PROCESSOR="armv7-a"
;;
arm64-v8a)
SYSTEM_PROCESSOR="aarch64"
;;
x86)
SYSTEM_PROCESSOR="i686"
;;
x86-64)
SYSTEM_PROCESSOR="x86_64"
;;
esac
# WORKAROUND TO GENERATE BASE BUILD FILES
./configure || echo "" 2>/dev/null 1>/dev/null
cmake -Wno-dev \
-DUSE_ENCLIB=openssl \
-DCMAKE_VERBOSE_MAKEFILE=0 \
-DCMAKE_C_FLAGS="${CFLAGS}" \
-DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
-DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \
-DCMAKE_SYSROOT="${ANDROID_SYSROOT}" \
-DCMAKE_FIND_ROOT_PATH="${ANDROID_SYSROOT}" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \
-DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_SYSTEM_VERSION=${API} \
-DCMAKE_ANDROID_NDK=${ANDROID_NDK_ROOT} \
-DCMAKE_CXX_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CXX" \
-DCMAKE_C_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CC" \
-DCMAKE_LINKER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$LD" \
-DCMAKE_AR="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AR" \
-DCMAKE_AS="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AS" \
-DCMAKE_SYSTEM_LOADED=1 \
-DCMAKE_SYSTEM_PROCESSOR="${SYSTEM_PROCESSOR}" \
-DENABLE_STDCXX_SYNC=1 \
-DENABLE_MONOTONIC_CLOCK=1 \
-DENABLE_STDCXX_SYNC=1 \
-DENABLE_CXX11=1 \
-DUSE_OPENSSL_PC=1 \
-DENABLE_DEBUG=0 \
-DENABLE_LOGGING=0 \
-DENABLE_HEAVY_LOGGING=0 \
-DENABLE_APPS=0 \
-DENABLE_SHARED=0 "${BASEDIR}"/src/"${LIB_NAME}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# CREATE PACKAGE CONFIG MANUALLY
create_srt_package_config "1.4.4" || return 1

View File

@ -9,7 +9,7 @@ make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_twolame} -eq 1 ]]; then
NOCONFIGURE=1 ./autogen.sh || return 1
NOCONFIGURE=1 ./autogen.sh || exit 1
fi
./configure \

25
scripts/android/zimg.sh Normal file
View File

@ -0,0 +1,25 @@
#!/bin/bash
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_zimg} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || exit 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${SDK_PATH}" \
--enable-static \
--disable-shared \
--disable-fast-install \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# CREATE PACKAGE CONFIG MANUALLY
create_zimg_package_config "3.0.3" || return 1

View File

@ -104,7 +104,7 @@ esac
CONFIGURE_POSTFIX=""
# SET CONFIGURE OPTIONS
for library in {1..59}; do
for library in {1..62}; do
if [[ ${!library} -eq 1 ]]; then
ENABLED_LIBRARY=$(get_library_name $((library - 1)))
@ -211,6 +211,11 @@ for library in {1..59}; do
FFMPEG_LDFLAGS+=" $(pkg-config --libs --static openh264 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libopenh264"
;;
openssl)
FFMPEG_CFLAGS+=" $(pkg-config --cflags openssl 2>>"${BASEDIR}"/build.log)"
FFMPEG_LDFLAGS+=" $(pkg-config --libs --static openssl 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-openssl"
;;
opus)
FFMPEG_CFLAGS+=" $(pkg-config --cflags opus 2>>"${BASEDIR}"/build.log)"
FFMPEG_LDFLAGS+=" $(pkg-config --libs --static opus 2>>"${BASEDIR}"/build.log)"
@ -247,6 +252,11 @@ for library in {1..59}; do
FFMPEG_LDFLAGS+=" $(pkg-config --libs --static speex 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libspeex"
;;
srt)
FFMPEG_CFLAGS+=" $(pkg-config --cflags srt 2>>"${BASEDIR}"/build.log)"
FFMPEG_LDFLAGS+=" $(pkg-config --libs --static srt 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libsrt"
;;
tesseract)
FFMPEG_CFLAGS+=" $(pkg-config --cflags tesseract 2>>"${BASEDIR}"/build.log)"
FFMPEG_LDFLAGS+=" $(pkg-config --libs --static tesseract 2>>"${BASEDIR}"/build.log)"
@ -279,6 +289,11 @@ for library in {1..59}; do
FFMPEG_LDFLAGS+=" $(pkg-config --libs --static xvidcore 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libxvid --enable-gpl"
;;
zimg)
FFMPEG_CFLAGS+=" $(pkg-config --cflags zimg 2>>"${BASEDIR}"/build.log)"
FFMPEG_LDFLAGS+=" $(pkg-config --libs --static zimg 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libzimg"
;;
expat)
FFMPEG_CFLAGS+=" $(pkg-config --cflags expat 2>>"${BASEDIR}"/build.log)"
FFMPEG_LDFLAGS+=" $(pkg-config --libs --static expat 2>>"${BASEDIR}"/build.log)"
@ -371,6 +386,8 @@ for library in {1..59}; do
CONFIGURE_POSTFIX+=" --disable-videotoolbox"
elif [[ ${library} -eq $((LIBRARY_APPLE_ZLIB + 1)) ]]; then
CONFIGURE_POSTFIX+=" --disable-zlib"
elif [[ ${library} -eq $((LIBRARY_OPENSSL + 1)) ]]; then
CONFIGURE_POSTFIX+=" --disable-openssl"
fi
fi
done
@ -473,8 +490,6 @@ ${SED_INLINE} "s/\$version/$FFMPEG_VERSION/g" "${BASEDIR}"/src/"${LIB_NAME}"/ffb
--as="${AS}" \
--ranlib="${RANLIB}" \
--strip="${STRIP}" \
--ranlib="${RANLIB}" \
--strip="${STRIP}" \
--nm="${NM}" \
--extra-ldflags="$(get_min_version_cflags)" \
--disable-autodetect \
@ -491,7 +506,6 @@ ${SED_INLINE} "s/\$version/$FFMPEG_VERSION/g" "${BASEDIR}"/src/"${LIB_NAME}"/ffb
--disable-indev=v4l2 \
--disable-indev=fbdev \
${SIZE_OPTIONS} \
--disable-openssl \
--disable-xmm-clobber-test \
${DEBUG_OPTIONS} \
--disable-neon-clobber-test \

View File

@ -11,7 +11,7 @@ make distclean 2>/dev/null 1>/dev/null
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/builds/unix/configure ]] || [[ ${RECONF_freetype} -eq 1 ]]; then
# NOTE THAT FREETYPE DOES NOT SUPPORT AUTORECONF BUT IT COMES WITH AN autogen.sh
./autogen.sh || return 1
./autogen.sh || exit 1
fi
# UPDATE CONFIG FILES TO SUPPORT APPLE ARCHITECTURES

View File

@ -12,14 +12,6 @@ export HOGWEED_LIBS="-L${LIB_INSTALL_BASE}/nettle/lib -lhogweed -L${LIB_INSTALL_
export GMP_CFLAGS="-I${LIB_INSTALL_BASE}/gmp/include"
export GMP_LIBS="-L${LIB_INSTALL_BASE}/gmp/lib -lgmp"
# SET BUILD OPTIONS
case ${ARCH} in
i386)
# DISABLING thread_local WHICH IS NOT SUPPORTED ON i386
export CFLAGS+=" -D__thread="
;;
esac
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null

View File

@ -5,7 +5,7 @@ make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_harfbuzz} -eq 1 ]]; then
NOCONFIGURE=1 ./autogen.sh || return 1
NOCONFIGURE=1 ./autogen.sh || exit 1
fi
./configure \

View File

@ -9,7 +9,7 @@ if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_libtheora}
# WORKAROUND NOT TO RUN CONFIGURE AT THE END OF autogen.sh
${SED_INLINE} 's/$srcdir\/configure/#$srcdir\/configure/g' "${BASEDIR}"/src/"${LIB_NAME}"/autogen.sh || return 1
./autogen.sh || return 1
./autogen.sh || exit 1
fi
./configure \

49
scripts/apple/openssl.sh Normal file
View File

@ -0,0 +1,49 @@
#!/bin/bash
if [[ ${ARCH} == "i386" ]] || [[ ${ARCH} == "armv7"* ]] || [[ ${FFMPEG_KIT_BUILD_TYPE} == "tvos" ]]; then
# openssl does not support 32-bit apple architectures and tvos yet
echo -e "ERROR: openssl is not supported on $ARCH architecture for $FFMPEG_KIT_BUILD_TYPE platform.\n" 1>>"${BASEDIR}"/build.log 2>&1
return 200
fi
# SET BUILD OPTIONS
ASM_OPTIONS=""
case ${ARCH} in
arm64 | arm64e | arm64-mac-catalyst | arm64-simulator | x86-64 | x86-64-mac-catalyst)
ASM_OPTIONS="enable-ec_nistp_64_gcc_128"
;;
i386)
ASM_OPTIONS="386"
;;
esac
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_openssl} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || exit 1
fi
INT128_AVAILABLE=$($CC -dM -E - </dev/null 2>>"${BASEDIR}"/build.log | grep __SIZEOF_INT128__)
echo -e "INFO: __uint128_t detection output: $INT128_AVAILABLE\n" 1>>"${BASEDIR}"/build.log 2>&1
./Configure \
--prefix="${LIB_INSTALL_PREFIX}" \
zlib \
no-shared \
no-engine \
no-dso \
no-legacy \
${ASM_OPTIONS} \
no-tests \
iphoneos-cross || return 1
make -j$(get_cpu_count) build_sw || return 1
make install_sw install_ssldirs || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1

View File

@ -15,7 +15,7 @@ make distclean 2>/dev/null 1>/dev/null
overwrite_file "${BASEDIR}/tools/patch/make/sdl/configure.in" "${BASEDIR}/src/${LIB_NAME}/configure.in"
# ALWAYS REGENERATE BUILD FILES - NECESSARY TO APPLY THE WORKAROUNDS
./autogen.sh || return 1
./autogen.sh || exit 1
# WORKAROUND TO EXCLUDE libunwind.h ON LTS BUILDS
if [[ -n ${FFMPEG_KIT_LTS_BUILD} ]]; then

54
scripts/apple/srt.sh Normal file
View File

@ -0,0 +1,54 @@
#!/bin/bash
mkdir -p "${BUILD_DIR}" || return 1
cd "${BUILD_DIR}" || return 1
# SET BUILD OPTIONS
ASM_OPTIONS=""
case ${ARCH} in
*-mac-catalyst)
ASM_OPTIONS="-DENABLE_MONOTONIC_CLOCK=0"
;;
*)
ASM_OPTIONS="-DENABLE_MONOTONIC_CLOCK=1"
;;
esac
# ALWAYS CLEAN THE PREVIOUS BUILD
git clean -dfx 2>/dev/null 1>/dev/null
cmake -Wno-dev \
-DUSE_ENCLIB=openssl \
-DCMAKE_VERBOSE_MAKEFILE=0 \
-DCMAKE_C_FLAGS="${CFLAGS}" \
-DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
-DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \
-DCMAKE_SYSROOT="${SDK_PATH}" \
-DCMAKE_FIND_ROOT_PATH="${SDK_PATH}" \
-DCMAKE_OSX_SYSROOT="$(get_sdk_name)" \
-DCMAKE_OSX_ARCHITECTURES="$(get_cmake_osx_architectures)" \
-DCMAKE_SYSTEM_NAME="${CMAKE_SYSTEM_NAME}" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \
-DCMAKE_CXX_COMPILER="$CXX" \
-DCMAKE_C_COMPILER="$CC" \
-DCMAKE_LINKER="$LD" \
-DCMAKE_AR="$(xcrun --sdk $(get_sdk_name) -f ar)" \
-DCMAKE_AS="$AS" \
-DCMAKE_SYSTEM_PROCESSOR="$(get_target_cpu)" \
${ASM_OPTIONS} \
-DENABLE_STDCXX_SYNC=1 \
-DENABLE_CXX11=1 \
-DUSE_OPENSSL_PC=1 \
-DENABLE_DEBUG=0 \
-DENABLE_LOGGING=0 \
-DENABLE_HEAVY_LOGGING=0 \
-DENABLE_APPS=0 \
-DENABLE_SHARED=0 "${BASEDIR}"/src/"${LIB_NAME}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1

View File

@ -9,7 +9,7 @@ make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_twolame} -eq 1 ]]; then
NOCONFIGURE=1 ./autogen.sh || return 1
NOCONFIGURE=1 ./autogen.sh || exit 1
fi
./configure \

34
scripts/apple/zimg.sh Normal file
View File

@ -0,0 +1,34 @@
#!/bin/bash
# SET BUILD OPTIONS
ASM_OPTIONS=""
case ${ARCH} in
armv7 | armv7s)
ASM_OPTIONS="--disable-simd"
;;
esac
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_zimg} -eq 1 ]]; then
./autogen.sh || exit 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${SDK_PATH}" \
--enable-static \
--disable-shared \
--disable-fast-install \
${ASM_OPTIONS} \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./zimg.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1

View File

@ -33,7 +33,7 @@ under the prebuilt folder.\n"
echo -e "Usage: ./$COMMAND [OPTION]... [VAR=VALUE]...\n"
echo -e "Specify environment variables as VARIABLE=VALUE to override default build options.\n"
display_help_options " -l, --lts\t\t\tbuild lts packages to support API 16+ devices" " --api-level=api\t\toverride Android api level" " --no-ffmpeg-kit-protocols\tdisable custom ffmpeg-kit protocols (fd, saf)"
display_help_options " -l, --lts\t\t\tbuild lts packages to support API 16+ devices" " --api-level=api\t\toverride Android api level" " --no-ffmpeg-kit-protocols\tdisable custom ffmpeg-kit protocols (saf)"
display_help_licensing
echo -e "Architectures:"
@ -69,7 +69,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 ]]; 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 ]]; then
local APP_STL="c++_shared"
else
local APP_STL="none"
@ -334,7 +334,7 @@ get_app_specific_cflags() {
rubberband)
APP_FLAGS="-std=c99 -Wno-unused-function"
;;
libvpx | shine)
libvpx | openssl | shine | srt)
APP_FLAGS="-Wno-unused-function"
;;
soxr | snappy | libwebp)
@ -392,7 +392,7 @@ get_cxxflags() {
x265)
echo "-std=c++11 -fno-exceptions ${OPTIMIZATION_FLAGS}"
;;
rubberband)
rubberband | srt | zimg)
echo "-std=c++11 ${OPTIMIZATION_FLAGS}"
;;
*)
@ -418,7 +418,7 @@ get_common_linked_libraries() {
libvpx)
echo "-lc -lm ${COMMON_LIBRARY_PATHS}"
;;
tesseract | x265)
srt | tesseract | x265)
echo "-lc -lm -ldl -llog -lc++_shared ${COMMON_LIBRARY_PATHS}"
;;
*)
@ -803,6 +803,26 @@ Cflags: -I\${includedir}
EOF
}
create_srt_package_config() {
local SRT_VERSION="$1"
cat >"${INSTALL_PKG_CONFIG_DIR}/srt.pc" <<EOF
prefix=${LIB_INSTALL_BASE}/srt
exec_prefix=\${prefix}
libdir=\${exec_prefix}/lib
includedir=\${prefix}/include
Name: srt
Description: SRT library set
Version: ${SRT_VERSION}
Libs: -L\${libdir} -lsrt
Libs.private: -lc -lm -ldl -llog -lc++_shared
Cflags: -I\${includedir} -I\${includedir}/srt
Requires.private: openssl libcrypto
EOF
}
create_tesseract_package_config() {
local TESSERACT_VERSION="$1"
@ -882,6 +902,24 @@ Cflags: -I\${includedir}
EOF
}
create_zimg_package_config() {
local ZIMG_VERSION="$1"
cat >"${INSTALL_PKG_CONFIG_DIR}/zimg.pc" <<EOF
prefix=${LIB_INSTALL_BASE}/zimg
exec_prefix=\${prefix}
libdir=\${exec_prefix}/lib
includedir=\${prefix}/include
Name: zimg
Description: Scaling, colorspace conversion, and dithering library
Version: ${ZIMG_VERSION}
Libs: -L\${libdir} -lzimg -lc++_shared
Cflags: -I\${includedir}
EOF
}
create_zlib_system_package_config() {
ZLIB_VERSION=$(grep '#define ZLIB_VERSION' "${ANDROID_NDK_ROOT}"/toolchains/llvm/prebuilt/"${TOOLCHAIN}"/sysroot/usr/include/zlib.h | grep -Eo '\".*\"' | sed -e 's/\"//g')

View File

@ -255,7 +255,7 @@ create_ffmpeg_universal_library() {
else
cp "${BASEDIR}"/LICENSE.LGPLv3 "${FFMPEG_UNIVERSAL_LIBRARY_DIRECTORY}"/LICENSE 1>>"${BASEDIR}"/build.log 2>&1
fi
for library in {0..46}; do
for library in {0..49}; do
if [[ ${ENABLED_LIBRARIES[$library]} -eq 1 ]]; then
local ENABLED_LIBRARY_NAME="$(get_library_name ${library})"
local ENABLED_LIBRARY_NAME_UPPERCASE=$(echo "${ENABLED_LIBRARY_NAME}" | tr '[a-z]' '[A-Z]')
@ -397,7 +397,7 @@ create_ffmpeg_framework() {
# COPY EXTERNAL LIBRARY LICENSES
if [[ "${FFMPEG_LIB}" == "libavcodec" ]]; then
for library in {0..46}; do
for library in {0..49}; do
if [[ ${ENABLED_LIBRARIES[$library]} -eq 1 ]]; then
local ENABLED_LIBRARY_NAME="$(get_library_name ${library})"
local ENABLED_LIBRARY_NAME_UPPERCASE=$(echo "${ENABLED_LIBRARY_NAME}" | tr '[a-z]' '[A-Z]')

View File

@ -27,7 +27,7 @@ libraries are created under the prebuilt folder.\n"
echo -e "Usage: ./$COMMAND [OPTION]...\n"
echo -e "Specify environment variables as VARIABLE=VALUE to override default build options.\n"
display_help_options " -x, --xcframework\t\tbuild xcframework bundles instead of framework bundles and universal libraries" " -l, --lts build lts packages to support sdk 9.3+ devices" " --target=ios sdk version\t\t\toverride minimum deployment target [12.1]" " --mac-catalyst-target=ios sdk version\toverride minimum deployment target for mac catalyst [14.0]"
display_help_options " -x, --xcframework\t\tbuild xcframework bundles instead of framework bundles and universal libraries" " -l, --lts build lts packages to support sdk 10+ devices" " --target=ios sdk version\t\t\toverride minimum deployment target [12.1]" " --mac-catalyst-target=ios sdk version\toverride minimum deployment target for mac catalyst [14.0]"
display_help_licensing
echo -e "Architectures:"
@ -77,12 +77,12 @@ enable_main_build() {
enable_lts_build() {
export FFMPEG_KIT_LTS_BUILD="1"
if [[ $(compare_versions "$DETECTED_IOS_SDK_VERSION" "9.3") -le 0 ]]; then
if [[ $(compare_versions "$DETECTED_IOS_SDK_VERSION" "10") -le 0 ]]; then
export IOS_MIN_VERSION=$DETECTED_IOS_SDK_VERSION
else
# XCODE 7.3 HAS IOS SDK 9.3
export IOS_MIN_VERSION=9.3
# XCODE 8.0 HAS IOS SDK 10
export IOS_MIN_VERSION=10
fi
if [[ $(compare_versions "$DETECTED_IOS_SDK_VERSION" "13.0") -le 0 ]]; then
@ -139,8 +139,7 @@ get_arch_specific_cflags() {
echo "-arch arm64e -target $(get_target) -march=armv8.3-a+crc+crypto -mcpu=generic -DFFMPEG_KIT_ARM64E"
;;
i386)
# DISABLING thread_local WHICH IS NOT SUPPORTED ON i386
echo "-arch i386 -target $(get_target) -march=i386 -mtune=i386 -mssse3 -mfpmath=sse -m32 -DFFMPEG_KIT_I386 -D__thread= "
echo "-arch i386 -target $(get_target) -march=i386 -mtune=i386 -mssse3 -mfpmath=sse -m32 -DFFMPEG_KIT_I386"
;;
x86-64)
echo "-arch x86_64 -target $(get_target) -march=x86-64 -msse4.2 -mpopcnt -m64 -DFFMPEG_KIT_X86_64"
@ -152,7 +151,6 @@ get_arch_specific_cflags() {
}
get_size_optimization_cflags() {
local ARCH_OPTIMIZATION=""
case ${ARCH} in
armv7 | armv7s | arm64 | arm64e | *-mac-catalyst)
@ -167,7 +165,6 @@ get_size_optimization_cflags() {
}
get_size_optimization_asm_cflags() {
local ARCH_OPTIMIZATION=""
case $1 in
jpeg | ffmpeg)
@ -189,7 +186,6 @@ get_size_optimization_asm_cflags() {
}
get_app_specific_cflags() {
local APP_FLAGS=""
case $1 in
fontconfig)
@ -229,7 +225,7 @@ get_app_specific_cflags() {
soxr | snappy)
APP_FLAGS="-std=gnu99 -Wno-unused-function -DPIC"
;;
openh264 | x265)
openh264 | openssl | x265)
APP_FLAGS="-Wno-unused-function"
;;
*)
@ -304,6 +300,9 @@ get_cxxflags() {
rubberband)
echo "-fno-rtti ${BITCODE_FLAGS} ${COMMON_CFLAGS} ${OPTIMIZATION_FLAGS}"
;;
srt | zimg)
echo "-std=c++11 ${BITCODE_FLAGS} ${COMMON_CFLAGS} ${OPTIMIZATION_FLAGS}"
;;
*)
echo "-std=c++11 -fno-exceptions -fno-rtti ${BITCODE_FLAGS} ${COMMON_CFLAGS} ${OPTIMIZATION_FLAGS}"
;;

View File

@ -19,7 +19,7 @@ When compilation ends, libraries are created under the prebuilt folder.\n"
echo -e "Usage: ./$COMMAND [OPTION]...\n"
echo -e "Specify environment variables as VARIABLE=VALUE to override default build options.\n"
display_help_options " -x, --xcframework\t\tbuild xcframework bundles instead of framework bundles and universal libraries" " -l, --lts build lts packages to support sdk 10.11+ devices" " --target=macos sdk version\toverride minimum deployment target [10.15]"
display_help_options " -x, --xcframework\t\tbuild xcframework bundles instead of framework bundles and universal libraries" " -l, --lts build lts packages to support sdk 10.12+ devices" " --target=macos sdk version\toverride minimum deployment target [10.15]"
display_help_licensing
echo -e "Architectures:"
@ -59,12 +59,12 @@ enable_main_build() {
enable_lts_build() {
export FFMPEG_KIT_LTS_BUILD="1"
if [[ $(compare_versions "$DETECTED_MACOS_SDK_VERSION" "10.11") -le 0 ]]; then
if [[ $(compare_versions "$DETECTED_MACOS_SDK_VERSION" "10.12") -le 0 ]]; then
export MACOS_MIN_VERSION=$DETECTED_MACOS_SDK_VERSION
else
# XCODE 7.3 HAS MACOS SDK 10.11
export MACOS_MIN_VERSION=10.11
# XCODE 8.0 HAS MACOS SDK 10.12
export MACOS_MIN_VERSION=10.12
fi
}
@ -241,6 +241,9 @@ get_cxxflags() {
rubberband)
echo "-fno-rtti ${BITCODE_FLAGS} ${COMMON_CFLAGS} ${OPTIMIZATION_FLAGS}"
;;
srt | zimg)
echo "-std=c++11 ${BITCODE_FLAGS} ${COMMON_CFLAGS} ${OPTIMIZATION_FLAGS}"
;;
*)
echo "-std=c++11 -fno-exceptions -fno-rtti ${BITCODE_FLAGS} ${COMMON_CFLAGS} ${OPTIMIZATION_FLAGS}"
;;

View File

@ -20,7 +20,7 @@ set explicitly. When compilation ends, libraries are created under the prebuilt
echo -e "Usage: ./$COMMAND [OPTION]...\n"
echo -e "Specify environment variables as VARIABLE=VALUE to override default build options.\n"
display_help_options " -x, --xcframework\t\tbuild xcframework bundles instead of framework bundles and universal libraries" " -l, --lts build lts packages to support sdk 9.2+ devices" " --target=tvos sdk version\toverride minimum deployment target [11.0]"
display_help_options " -x, --xcframework\t\tbuild xcframework bundles instead of framework bundles and universal libraries" " -l, --lts build lts packages to support sdk 10.0+ devices" " --target=tvos sdk version\toverride minimum deployment target [11.0]"
display_help_licensing
echo -e "Architectures:"
@ -59,12 +59,12 @@ enable_main_build() {
enable_lts_build() {
export FFMPEG_KIT_LTS_BUILD="1"
if [[ $(compare_versions "$DETECTED_TVOS_SDK_VERSION" "9.2") -le 0 ]]; then
if [[ $(compare_versions "$DETECTED_TVOS_SDK_VERSION" "10.0") -le 0 ]]; then
export TVOS_MIN_VERSION=$DETECTED_TVOS_SDK_VERSION
else
# XCODE 7.3 HAS TVOS SDK 9.2
export TVOS_MIN_VERSION=9.2
# XCODE 8.0 HAS TVOS SDK 10.0
export TVOS_MIN_VERSION=10.0
fi
}
@ -276,6 +276,9 @@ get_cxxflags() {
rubberband)
echo "-fno-rtti ${BITCODE_FLAGS} ${COMMON_CFLAGS} ${OPTIMIZATION_FLAGS}"
;;
srt | zimg)
echo "-std=c++11 ${BITCODE_FLAGS} ${COMMON_CFLAGS} ${OPTIMIZATION_FLAGS}"
;;
*)
echo "-std=c++11 -fno-exceptions -fno-rtti ${BITCODE_FLAGS} ${COMMON_CFLAGS} ${OPTIMIZATION_FLAGS}"
;;

View File

@ -82,22 +82,25 @@ get_library_name() {
31) echo "tesseract" ;;
32) echo "openh264" ;;
33) echo "vo-amrwbenc" ;;
34) echo "giflib" ;;
35) echo "jpeg" ;;
36) echo "libogg" ;;
37) echo "libpng" ;;
38) echo "libuuid" ;;
39) echo "nettle" ;;
40) echo "tiff" ;;
41) echo "expat" ;;
42) echo "libsndfile" ;;
43) echo "leptonica" ;;
44) echo "libsamplerate" ;;
45) echo "harfbuzz" ;;
46) echo "cpu-features" ;;
47) echo "android-zlib" ;;
48) echo "android-media-codec" ;;
49)
34) echo "zimg" ;;
35) echo "openssl" ;;
36) echo "srt" ;;
37) echo "giflib" ;;
38) echo "jpeg" ;;
39) echo "libogg" ;;
40) echo "libpng" ;;
41) echo "libuuid" ;;
42) echo "nettle" ;;
43) echo "tiff" ;;
44) echo "expat" ;;
45) echo "libsndfile" ;;
46) echo "leptonica" ;;
47) echo "libsamplerate" ;;
48) echo "harfbuzz" ;;
49) echo "cpu-features" ;;
50) echo "android-zlib" ;;
51) echo "android-media-codec" ;;
52)
if [[ ${FFMPEG_KIT_BUILD_TYPE} == "ios" ]]; then
echo "ios-zlib"
elif [[ ${FFMPEG_KIT_BUILD_TYPE} == "macos" ]]; then
@ -106,7 +109,7 @@ get_library_name() {
echo "tvos-zlib"
fi
;;
50)
53)
if [[ ${FFMPEG_KIT_BUILD_TYPE} == "ios" ]]; then
echo "ios-audiotoolbox"
elif [[ ${FFMPEG_KIT_BUILD_TYPE} == "macos" ]]; then
@ -115,7 +118,7 @@ get_library_name() {
echo "tvos-audiotoolbox"
fi
;;
51)
54)
if [[ ${FFMPEG_KIT_BUILD_TYPE} == "ios" ]]; then
echo "ios-bzip2"
elif [[ ${FFMPEG_KIT_BUILD_TYPE} == "macos" ]]; then
@ -124,7 +127,7 @@ get_library_name() {
echo "tvos-bzip2"
fi
;;
52)
55)
if [[ ${FFMPEG_KIT_BUILD_TYPE} == "ios" ]]; then
echo "ios-videotoolbox"
elif [[ ${FFMPEG_KIT_BUILD_TYPE} == "macos" ]]; then
@ -133,14 +136,14 @@ get_library_name() {
echo "tvos-videotoolbox"
fi
;;
53)
56)
if [[ ${FFMPEG_KIT_BUILD_TYPE} == "ios" ]]; then
echo "ios-avfoundation"
elif [[ ${FFMPEG_KIT_BUILD_TYPE} == "macos" ]]; then
echo "macos-avfoundation"
fi
;;
54)
57)
if [[ ${FFMPEG_KIT_BUILD_TYPE} == "ios" ]]; then
echo "ios-libiconv"
elif [[ ${FFMPEG_KIT_BUILD_TYPE} == "macos" ]]; then
@ -149,7 +152,7 @@ get_library_name() {
echo "tvos-libiconv"
fi
;;
55)
58)
if [[ ${FFMPEG_KIT_BUILD_TYPE} == "ios" ]]; then
echo "ios-libuuid"
elif [[ ${FFMPEG_KIT_BUILD_TYPE} == "macos" ]]; then
@ -158,17 +161,17 @@ get_library_name() {
echo "tvos-libuuid"
fi
;;
56)
59)
if [[ ${FFMPEG_KIT_BUILD_TYPE} == "macos" ]]; then
echo "macos-coreimage"
fi
;;
57)
60)
if [[ ${FFMPEG_KIT_BUILD_TYPE} == "macos" ]]; then
echo "macos-opencl"
fi
;;
58)
61)
if [[ ${FFMPEG_KIT_BUILD_TYPE} == "macos" ]]; then
echo "macos-opengl"
fi
@ -212,31 +215,34 @@ from_library_name() {
tesseract) echo 31 ;;
openh264) echo 32 ;;
vo-amrwbenc) echo 33 ;;
giflib) echo 34 ;;
jpeg) echo 35 ;;
libogg) echo 36 ;;
libpng) echo 37 ;;
libuuid) echo 38 ;;
nettle) echo 39 ;;
tiff) echo 40 ;;
expat) echo 41 ;;
libsndfile) echo 42 ;;
leptonica) echo 43 ;;
libsamplerate) echo 44 ;;
harfbuzz) echo 45 ;;
cpu-features) echo 46 ;;
android-zlib) echo 47 ;;
android-media-codec) echo 48 ;;
ios-zlib | macos-zlib | tvos-zlib) echo 49 ;;
ios-audiotoolbox | macos-audiotoolbox | tvos-audiotoolbox) echo 50 ;;
ios-bzip2 | macos-bzip2 | tvos-bzip2) echo 51 ;;
ios-videotoolbox | macos-videotoolbox | tvos-videotoolbox) echo 52 ;;
ios-avfoundation | macos-avfoundation) echo 53 ;;
ios-libiconv | macos-libiconv | tvos-libiconv) echo 54 ;;
ios-libuuid | macos-libuuid | tvos-libuuid) echo 55 ;;
macos-coreimage) echo 56 ;;
macos-opencl) echo 57 ;;
macos-opengl) echo 58 ;;
zimg) echo 34 ;;
openssl) echo 35 ;;
srt) echo 36 ;;
giflib) echo 37 ;;
jpeg) echo 38 ;;
libogg) echo 39 ;;
libpng) echo 40 ;;
libuuid) echo 41 ;;
nettle) echo 42 ;;
tiff) echo 43 ;;
expat) echo 44 ;;
libsndfile) echo 45 ;;
leptonica) echo 46 ;;
libsamplerate) echo 47 ;;
harfbuzz) echo 48 ;;
cpu-features) echo 49 ;;
android-zlib) echo 50 ;;
android-media-codec) echo 51 ;;
ios-zlib | macos-zlib | tvos-zlib) echo 52 ;;
ios-audiotoolbox | macos-audiotoolbox | tvos-audiotoolbox) echo 53 ;;
ios-bzip2 | macos-bzip2 | tvos-bzip2) echo 54 ;;
ios-videotoolbox | macos-videotoolbox | tvos-videotoolbox) echo 55 ;;
ios-avfoundation | macos-avfoundation) echo 56 ;;
ios-libiconv | macos-libiconv | tvos-libiconv) echo 57 ;;
ios-libuuid | macos-libuuid | tvos-libuuid) echo 58 ;;
macos-coreimage) echo 59 ;;
macos-opencl) echo 60 ;;
macos-opengl) echo 61 ;;
esac
}
@ -252,12 +258,12 @@ is_library_supported_on_platform() {
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 39 | 40)
echo "0"
;;
41 | 42 | 43 | 44 | 45)
41 | 42 | 43 | 44 | 45 | 46 | 47 | 48)
echo "0"
;;
# ANDROID
7 | 38 | 46 | 47 | 48)
7 | 38 | 49 | 50 | 51)
if [[ ${FFMPEG_KIT_BUILD_TYPE} == "android" ]]; then
echo "0"
else
@ -266,7 +272,7 @@ is_library_supported_on_platform() {
;;
# ONLY IOS AND MACOS
53)
56)
if [[ ${FFMPEG_KIT_BUILD_TYPE} == "ios" ]] && [[ $1 == "ios-avfoundation" ]]; then
echo "0"
elif [[ ${FFMPEG_KIT_BUILD_TYPE} == "macos" ]] && [[ $1 == "macos-avfoundation" ]]; then
@ -277,7 +283,7 @@ is_library_supported_on_platform() {
;;
# IOS, MACOS AND TVOS
49 | 50 | 51 | 52 | 54 | 55)
52 | 53 | 54 | 55 | 57 | 58)
if [[ ${FFMPEG_KIT_BUILD_TYPE} == "ios" ]] || [[ ${FFMPEG_KIT_BUILD_TYPE} == "tvos" ]] || [[ ${FFMPEG_KIT_BUILD_TYPE} == "macos" ]]; then
echo "0"
else
@ -286,7 +292,7 @@ is_library_supported_on_platform() {
;;
# ONLY MACOS
56 | 57 | 58)
59 | 60 | 61)
if [[ ${FFMPEG_KIT_BUILD_TYPE} == "macos" ]]; then
echo "0"
else
@ -363,13 +369,13 @@ get_package_config_file_name() {
27) echo "aom" ;;
28) echo "libchromaprint" ;;
30) echo "sdl2" ;;
35) echo "libjpeg" ;;
36) echo "ogg" ;;
40) echo "libtiff-4" ;;
42) echo "sndfile" ;;
43) echo "lept" ;;
44) echo "samplerate" ;;
55) echo "uuid" ;;
38) echo "libjpeg" ;;
39) echo "ogg" ;;
43) echo "libtiff-4" ;;
45) echo "sndfile" ;;
46) echo "lept" ;;
47) echo "samplerate" ;;
58) echo "uuid" ;;
*) echo "$(get_library_name "$1")" ;;
esac
}
@ -768,15 +774,18 @@ display_help_common_libraries() {
echo -e " --enable-libxml2\t\tbuild with libxml2 [no]"
echo -e " --enable-opencore-amr\t\tbuild with opencore-amr [no]"
echo -e " --enable-openh264\t\tbuild with openh264 [no]"
echo -e " --enable-openssl\t\tbuild with openssl [no]"
echo -e " --enable-opus\t\t\tbuild with opus [no]"
echo -e " --enable-sdl\t\t\tbuild with sdl [no]"
echo -e " --enable-shine\t\tbuild with shine [no]"
echo -e " --enable-snappy\t\tbuild with snappy [no]"
echo -e " --enable-soxr\t\t\tbuild with soxr [no]"
echo -e " --enable-speex\t\tbuild with speex [no]"
echo -e " --enable-srt\t\t\tbuild with srt [no]"
echo -e " --enable-tesseract\t\tbuild with tesseract [no]"
echo -e " --enable-twolame\t\tbuild with twolame [no]"
echo -e " --enable-vo-amrwbenc\t\tbuild with vo-amrwbenc [no]\n"
echo -e " --enable-vo-amrwbenc\t\tbuild with vo-amrwbenc [no]"
echo -e " --enable-zimg\t\t\tbuild with zimg [no]\n"
}
display_help_gpl_libraries() {
@ -806,7 +815,7 @@ reconf_library() {
local RECONF_VARIABLE=$(echo "RECONF_$1" | sed "s/\-/\_/g")
local library_supported=0
for library in {0..46}; do
for library in {0..49}; do
library_name=$(get_library_name ${library})
local library_supported_on_platform=$(is_library_supported_on_platform "${library_name}")
@ -829,7 +838,7 @@ rebuild_library() {
local REBUILD_VARIABLE=$(echo "REBUILD_$1" | sed "s/\-/\_/g")
local library_supported=0
for library in {0..46}; do
for library in {0..49}; do
library_name=$(get_library_name ${library})
local library_supported_on_platform=$(is_library_supported_on_platform "${library_name}")
@ -852,7 +861,7 @@ redownload_library() {
local REDOWNLOAD_VARIABLE=$(echo "REDOWNLOAD_$1" | sed "s/\-/\_/g")
local library_supported=0
for library in {0..46}; do
for library in {0..49}; do
library_name=$(get_library_name ${library})
local library_supported_on_platform=$(is_library_supported_on_platform "${library_name}")
@ -1038,6 +1047,9 @@ set_library() {
openh264)
ENABLED_LIBRARIES[LIBRARY_OPENH264]=$2
;;
openssl)
ENABLED_LIBRARIES[LIBRARY_OPENSSL]=$2
;;
opus)
ENABLED_LIBRARIES[LIBRARY_OPUS]=$2
;;
@ -1062,6 +1074,10 @@ set_library() {
speex)
ENABLED_LIBRARIES[LIBRARY_SPEEX]=$2
;;
srt)
ENABLED_LIBRARIES[LIBRARY_SRT]=$2
set_library "openssl" $2
;;
tesseract)
ENABLED_LIBRARIES[LIBRARY_TESSERACT]=$2
ENABLED_LIBRARIES[LIBRARY_LEPTONICA]=$2
@ -1088,6 +1104,9 @@ set_library() {
xvidcore)
ENABLED_LIBRARIES[LIBRARY_XVIDCORE]=$2
;;
zimg)
ENABLED_LIBRARIES[LIBRARY_ZIMG]=$2
;;
expat | giflib | jpeg | leptonica | libogg | libsamplerate | libsndfile)
# THESE LIBRARIES ARE NOT ENABLED DIRECTLY
;;
@ -1277,6 +1296,9 @@ check_if_dependency_rebuilt() {
nettle)
set_dependency_rebuilt_flag "gnutls"
;;
openssl)
set_dependency_rebuilt_flag "srt"
;;
tiff)
set_dependency_rebuilt_flag "libwebp"
set_dependency_rebuilt_flag "leptonica"
@ -1338,7 +1360,7 @@ print_enabled_libraries() {
let enabled=0
# SUPPLEMENTARY LIBRARIES NOT PRINTED
for library in {47..54} {56..58} {0..33}; do
for library in {50..57} {59..61} {0..36}; do
if [[ ${ENABLED_LIBRARIES[$library]} -eq 1 ]]; then
if [[ ${enabled} -ge 1 ]]; then
echo -n ", "
@ -1361,7 +1383,7 @@ print_enabled_xcframeworks() {
let enabled=0
# SUPPLEMENTARY LIBRARIES NOT PRINTED
for library in {0..46}; do
for library in {0..49}; do
if [[ ${ENABLED_LIBRARIES[$library]} -eq 1 ]]; then
if [[ ${enabled} -ge 1 ]]; then
echo -n ", "
@ -1445,16 +1467,16 @@ print_redownload_requested_libraries() {
# 1 - library index
get_external_library_license_path() {
case $1 in
1) echo "${BASEDIR}/src/$(get_library_name "$1")/LICENSE.TXT" ;;
1 | 35) echo "${BASEDIR}/src/$(get_library_name "$1")/LICENSE.TXT" ;;
3 | 39) echo "${BASEDIR}/src/$(get_library_name "$1")/COPYING.LESSERv3" ;;
5 | 41) echo "${BASEDIR}/src/$(get_library_name "$1")/$(get_library_name "$1")/COPYING" ;;
19) echo "${BASEDIR}/src/$(get_library_name "$1")/$(get_library_name "$1")/LICENSE" ;;
26) echo "${BASEDIR}/src/$(get_library_name "$1")/COPYING.LGPL" ;;
28 | 35) echo "${BASEDIR}/src/$(get_library_name "$1")/LICENSE.md " ;;
28 | 38) echo "${BASEDIR}/src/$(get_library_name "$1")/LICENSE.md " ;;
30) echo "${BASEDIR}/src/$(get_library_name "$1")/COPYING.txt" ;;
40) echo "${BASEDIR}/src/$(get_library_name "$1")/COPYRIGHT" ;;
43) echo "${BASEDIR}/src/$(get_library_name "$1")/leptonica-license.txt" ;;
4 | 10 | 13 | 21 | 27 | 31 | 32 | 37 | 46) echo "${BASEDIR}/src/$(get_library_name "$1")/LICENSE" ;;
43) echo "${BASEDIR}/src/$(get_library_name "$1")/COPYRIGHT" ;;
46) echo "${BASEDIR}/src/$(get_library_name "$1")/leptonica-license.txt" ;;
4 | 10 | 13 | 21 | 27 | 31 | 32 | 36 | 40 | 49) echo "${BASEDIR}/src/$(get_library_name "$1")/LICENSE" ;;
*) echo "${BASEDIR}/src/$(get_library_name "$1")/COPYING" ;;
esac
}
@ -1706,7 +1728,7 @@ downloaded_enabled_library_sources() {
exit 1
fi
for library in {1..47}; do
for library in {1..50}; do
if [[ ${!library} -eq 1 ]]; then
library_name=$(get_library_name $((library - 1)))

View File

@ -43,7 +43,7 @@ fi
# FILTER WHICH EXTERNAL LIBRARIES WILL BE BUILT
# NOTE THAT BUILT-IN LIBRARIES ARE FORWARDED TO FFMPEG SCRIPT WITHOUT ANY PROCESSING
enabled_library_list=()
for library in {1..47}; do
for library in {1..50}; do
if [[ ${!library} -eq 1 ]]; then
ENABLED_LIBRARY=$(get_library_name $((library - 1)))
enabled_library_list+=(${ENABLED_LIBRARY})
@ -138,6 +138,11 @@ while [ ${#enabled_library_list[@]} -gt $completed ]; do
run=1
fi
;;
srt)
if [[ $OK_openssl -eq 1 ]]; then
run=1
fi
;;
tesseract)
if [[ $OK_leptonica -eq 1 ]]; then
run=1
@ -175,12 +180,17 @@ while [ ${#enabled_library_list[@]} -gt $completed ]; do
"${BASEDIR}"/scripts/run-android.sh "${library}" 1>>"${BASEDIR}"/build.log 2>&1
RC=$?
# SET SOME FLAGS AFTER THE BUILD
if [ $? -eq 0 ]; then
if [ $RC -eq 0 ]; then
((completed += 1))
declare "$BUILD_COMPLETED_FLAG=1"
check_if_dependency_rebuilt "${library}"
echo "ok"
elif [ $RC -eq 200 ]; then
echo -e "not supported\n\nSee build.log for details\n"
exit 1
else
echo -e "failed\n\nSee build.log for details\n"
exit 1

View File

@ -38,7 +38,7 @@ fi
# FILTER WHICH EXTERNAL LIBRARIES WILL BE BUILT
# NOTE THAT BUILT-IN LIBRARIES ARE FORWARDED TO FFMPEG SCRIPT WITHOUT ANY PROCESSING
enabled_library_list=()
for library in {1..47}; do
for library in {1..50}; do
if [[ ${!library} -eq 1 ]]; then
ENABLED_LIBRARY=$(get_library_name $((library - 1)))
enabled_library_list+=(${ENABLED_LIBRARY})
@ -108,6 +108,11 @@ while [ ${#enabled_library_list[@]} -gt $completed ]; do
run=1
fi
;;
srt)
if [[ $OK_openssl -eq 1 ]]; then
run=1
fi
;;
tesseract)
if [[ $OK_leptonica -eq 1 ]]; then
run=1
@ -145,12 +150,17 @@ while [ ${#enabled_library_list[@]} -gt $completed ]; do
"${BASEDIR}"/scripts/run-apple.sh "${library}" 1>>"${BASEDIR}"/build.log 2>&1
RC=$?
# SET SOME FLAGS AFTER THE BUILD
if [ $? -eq 0 ]; then
if [ $RC -eq 0 ]; then
((completed += 1))
declare "$BUILD_COMPLETED_FLAG=1"
check_if_dependency_rebuilt "${library}"
echo "ok"
elif [ $RC -eq 200 ]; then
echo -e "not supported\n\nSee build.log for details\n"
exit 1
else
echo -e "failed\n\nSee build.log for details\n"
exit 1

View File

@ -38,7 +38,7 @@ fi
# FILTER WHICH EXTERNAL LIBRARIES WILL BE BUILT
# NOTE THAT BUILT-IN LIBRARIES ARE FORWARDED TO FFMPEG SCRIPT WITHOUT ANY PROCESSING
enabled_library_list=()
for library in {1..47}; do
for library in {1..50}; do
if [[ ${!library} -eq 1 ]]; then
ENABLED_LIBRARY=$(get_library_name $((library - 1)))
enabled_library_list+=(${ENABLED_LIBRARY})
@ -108,6 +108,11 @@ while [ ${#enabled_library_list[@]} -gt $completed ]; do
run=1
fi
;;
srt)
if [[ $OK_openssl -eq 1 ]]; then
run=1
fi
;;
tesseract)
if [[ $OK_leptonica -eq 1 ]]; then
run=1
@ -144,12 +149,17 @@ while [ ${#enabled_library_list[@]} -gt $completed ]; do
"${BASEDIR}"/scripts/run-apple.sh "${library}" 1>>"${BASEDIR}"/build.log 2>&1
RC=$?
# SET SOME FLAGS AFTER THE BUILD
if [ $? -eq 0 ]; then
if [ $RC -eq 0 ]; then
((completed += 1))
declare "$BUILD_COMPLETED_FLAG=1"
check_if_dependency_rebuilt "${library}"
echo "ok"
elif [ $RC -eq 200 ]; then
echo -e "not supported\n\nSee build.log for details\n"
exit 1
else
echo -e "failed\n\nSee build.log for details\n"
exit 1

View File

@ -38,7 +38,7 @@ fi
# FILTER WHICH EXTERNAL LIBRARIES WILL BE BUILT
# NOTE THAT BUILT-IN LIBRARIES ARE FORWARDED TO FFMPEG SCRIPT WITHOUT ANY PROCESSING
enabled_library_list=()
for library in {1..47}; do
for library in {1..50}; do
if [[ ${!library} -eq 1 ]]; then
ENABLED_LIBRARY=$(get_library_name $((library - 1)))
enabled_library_list+=(${ENABLED_LIBRARY})
@ -108,6 +108,11 @@ while [ ${#enabled_library_list[@]} -gt $completed ]; do
run=1
fi
;;
srt)
if [[ $OK_openssl -eq 1 ]]; then
run=1
fi
;;
tesseract)
if [[ $OK_leptonica -eq 1 ]]; then
run=1
@ -143,12 +148,17 @@ while [ ${#enabled_library_list[@]} -gt $completed ]; do
"${BASEDIR}"/scripts/run-apple.sh "${library}" 1>>"${BASEDIR}"/build.log 2>&1
RC=$?
# SET SOME FLAGS AFTER THE BUILD
if [ $? -eq 0 ]; then
if [ $RC -eq 0 ]; then
((completed += 1))
declare "$BUILD_COMPLETED_FLAG=1"
check_if_dependency_rebuilt "${library}"
echo "ok"
elif [ $RC -eq 200 ]; then
echo -e "not supported\n\nSee build.log for details\n"
exit 1
else
echo -e "failed\n\nSee build.log for details\n"
exit 1

View File

@ -182,6 +182,11 @@ get_library_source() {
SOURCE_ID="v2.1.1"
SOURCE_TYPE="TAG"
;;
openssl)
SOURCE_REPO_URL="https://github.com/tanersener/openssl"
SOURCE_ID="openssl-3.0.1"
SOURCE_TYPE="TAG"
;;
opus)
SOURCE_REPO_URL="https://github.com/tanersener/opus"
SOURCE_ID="v1.3.1"
@ -217,6 +222,11 @@ get_library_source() {
SOURCE_ID="Speex-1.2.0"
SOURCE_TYPE="TAG"
;;
srt)
SOURCE_REPO_URL="https://github.com/tanersener/srt"
SOURCE_ID="v1.4.4"
SOURCE_TYPE="TAG"
;;
tesseract)
SOURCE_REPO_URL="https://github.com/tanersener/tesseract"
SOURCE_ID="3.05.02"
@ -252,6 +262,11 @@ get_library_source() {
SOURCE_ID="release-1_3_7"
SOURCE_TYPE="TAG"
;;
zimg)
SOURCE_REPO_URL="https://github.com/tanersener/zimg"
SOURCE_ID="release-3.0.3"
SOURCE_TYPE="TAG"
;;
esac
case $2 in

View File

@ -10,7 +10,7 @@ ENABLED_ARCHITECTURES=(0 0 0 0 0 0 0 0 0 0 0 0 0)
ENABLED_ARCHITECTURE_VARIANTS=(0 0 0 0 0 0 0 0)
# ARRAY OF ENABLED LIBRARIES
ENABLED_LIBRARIES=(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
ENABLED_LIBRARIES=(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
# ARRAY OF LIBRARIES THAT WILL BE RE-CONFIGURED
RECONF_LIBRARIES=()
@ -81,28 +81,31 @@ LIBRARY_SDL=30
LIBRARY_TESSERACT=31
LIBRARY_OPENH264=32
LIBRARY_VO_AMRWBENC=33
LIBRARY_GIFLIB=34
LIBRARY_JPEG=35
LIBRARY_LIBOGG=36
LIBRARY_LIBPNG=37
LIBRARY_LIBUUID=38
LIBRARY_NETTLE=39
LIBRARY_TIFF=40
LIBRARY_EXPAT=41
LIBRARY_SNDFILE=42
LIBRARY_LEPTONICA=43
LIBRARY_LIBSAMPLERATE=44
LIBRARY_HARFBUZZ=45
LIBRARY_CPU_FEATURES=46
LIBRARY_ANDROID_ZLIB=47
LIBRARY_ANDROID_MEDIA_CODEC=48
LIBRARY_APPLE_ZLIB=49
LIBRARY_APPLE_AUDIOTOOLBOX=50
LIBRARY_APPLE_BZIP2=51
LIBRARY_APPLE_VIDEOTOOLBOX=52
LIBRARY_APPLE_AVFOUNDATION=53
LIBRARY_APPLE_LIBICONV=54
LIBRARY_APPLE_LIBUUID=55
LIBRARY_APPLE_COREIMAGE=56
LIBRARY_APPLE_OPENCL=57
LIBRARY_APPLE_OPENGL=58
LIBRARY_ZIMG=34
LIBRARY_OPENSSL=35
LIBRARY_SRT=36
LIBRARY_GIFLIB=37
LIBRARY_JPEG=38
LIBRARY_LIBOGG=39
LIBRARY_LIBPNG=40
LIBRARY_LIBUUID=41
LIBRARY_NETTLE=42
LIBRARY_TIFF=43
LIBRARY_EXPAT=44
LIBRARY_SNDFILE=45
LIBRARY_LEPTONICA=46
LIBRARY_LIBSAMPLERATE=47
LIBRARY_HARFBUZZ=48
LIBRARY_CPU_FEATURES=49
LIBRARY_ANDROID_ZLIB=50
LIBRARY_ANDROID_MEDIA_CODEC=51
LIBRARY_APPLE_ZLIB=52
LIBRARY_APPLE_AUDIOTOOLBOX=53
LIBRARY_APPLE_BZIP2=54
LIBRARY_APPLE_VIDEOTOOLBOX=55
LIBRARY_APPLE_AVFOUNDATION=56
LIBRARY_APPLE_LIBICONV=57
LIBRARY_APPLE_LIBUUID=58
LIBRARY_APPLE_COREIMAGE=59
LIBRARY_APPLE_OPENCL=60
LIBRARY_APPLE_OPENGL=61

3
src/.gitignore vendored
View File

@ -32,6 +32,7 @@ libxml2
nettle
opencore-amr
openh264
openssl
opus
rubberband
sdl
@ -39,6 +40,7 @@ shine
snappy
soxr
speex
srt
tesseract
tiff
twolame
@ -46,3 +48,4 @@ vo-amrwbenc
x264
x265
xvidcore
zimg

View File

@ -44,8 +44,8 @@ task javadoc(type: Javadoc) {
}
dependencies {
implementation 'com.arthenica:smart-exception-java:0.1.0'
testImplementation "androidx.test.ext:junit:1.1.2"
implementation 'com.arthenica:smart-exception-java:0.1.1'
testImplementation "androidx.test.ext:junit:1.1.3"
testImplementation "org.json:json:20201115"
}

View File

@ -44,8 +44,8 @@ task javadoc(type: Javadoc) {
}
dependencies {
implementation 'com.arthenica:smart-exception-java:0.1.0'
testImplementation "androidx.test.ext:junit:1.1.2"
implementation 'com.arthenica:smart-exception-java:0.1.1'
testImplementation "androidx.test.ext:junit:1.1.3"
testImplementation "org.json:json:20201115"
}

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-audio-VERSION-ios-framework.zip" }
s.ios.deployment_target = '9.3'
s.ios.deployment_target = '10'
s.ios.frameworks = 'AudioToolbox','AVFoundation','CoreMedia','VideoToolbox'
s.ios.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-full-gpl-VERSION-ios-framework.zip" }
s.ios.deployment_target = '9.3'
s.ios.deployment_target = '10'
s.ios.frameworks = 'AudioToolbox','AVFoundation','CoreMedia','VideoToolbox'
s.ios.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-full-VERSION-ios-framework.zip" }
s.ios.deployment_target = '9.3'
s.ios.deployment_target = '10'
s.ios.frameworks = 'AudioToolbox','AVFoundation','CoreMedia','VideoToolbox'
s.ios.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-https-gpl-VERSION-ios-framework.zip" }
s.ios.deployment_target = '9.3'
s.ios.deployment_target = '10'
s.ios.frameworks = 'AudioToolbox','AVFoundation','CoreMedia','VideoToolbox'
s.ios.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-https-VERSION-ios-framework.zip" }
s.ios.deployment_target = '9.3'
s.ios.deployment_target = '10'
s.ios.frameworks = 'AudioToolbox','AVFoundation','CoreMedia','VideoToolbox'
s.ios.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-min-gpl-VERSION-ios-framework.zip" }
s.ios.deployment_target = '9.3'
s.ios.deployment_target = '10'
s.ios.frameworks = 'AudioToolbox','AVFoundation','CoreMedia','VideoToolbox'
s.ios.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-min-VERSION-ios-framework.zip" }
s.ios.deployment_target = '9.3'
s.ios.deployment_target = '10'
s.ios.frameworks = 'AudioToolbox','AVFoundation','CoreMedia','VideoToolbox'
s.ios.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-video-VERSION-ios-framework.zip" }
s.ios.deployment_target = '9.3'
s.ios.deployment_target = '10'
s.ios.frameworks = 'AudioToolbox','AVFoundation','CoreMedia','VideoToolbox'
s.ios.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-audio-VERSION-macos-framework.zip" }
s.osx.deployment_target = '10.11'
s.osx.deployment_target = '10.12'
s.osx.frameworks = 'AudioToolbox','AVFoundation','CoreAudio','CoreImage','CoreMedia','OpenCL','OpenGL','VideoToolbox'
s.osx.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-full-gpl-VERSION-macos-framework.zip" }
s.osx.deployment_target = '10.11'
s.osx.deployment_target = '10.12'
s.osx.frameworks = 'AudioToolbox','AVFoundation','CoreAudio','CoreImage','CoreMedia','OpenCL','OpenGL', 'Security', 'VideoToolbox'
s.osx.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-full-VERSION-macos-framework.zip" }
s.osx.deployment_target = '10.11'
s.osx.deployment_target = '10.12'
s.osx.frameworks = 'AudioToolbox','AVFoundation','CoreAudio','CoreImage','CoreMedia','OpenCL','OpenGL', 'Security', 'VideoToolbox'
s.osx.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-https-gpl-VERSION-macos-framework.zip" }
s.osx.deployment_target = '10.11'
s.osx.deployment_target = '10.12'
s.osx.frameworks = 'AudioToolbox','AVFoundation','CoreAudio','CoreImage','CoreMedia','OpenCL','OpenGL', 'Security', 'VideoToolbox'
s.osx.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-https-VERSION-macos-framework.zip" }
s.osx.deployment_target = '10.11'
s.osx.deployment_target = '10.12'
s.osx.frameworks = 'AudioToolbox','AVFoundation','CoreAudio','CoreImage','CoreMedia','OpenCL','OpenGL', 'Security', 'VideoToolbox'
s.osx.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-min-gpl-VERSION-macos-framework.zip" }
s.osx.deployment_target = '10.11'
s.osx.deployment_target = '10.12'
s.osx.frameworks = 'AudioToolbox','AVFoundation','CoreAudio','CoreImage','CoreMedia','OpenCL','OpenGL','VideoToolbox'
s.osx.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-min-VERSION-macos-framework.zip" }
s.osx.deployment_target = '10.11'
s.osx.deployment_target = '10.12'
s.osx.frameworks = 'AudioToolbox','AVFoundation','CoreAudio','CoreImage','CoreMedia','OpenCL','OpenGL','VideoToolbox'
s.osx.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-video-VERSION-macos-framework.zip" }
s.osx.deployment_target = '10.11'
s.osx.deployment_target = '10.12'
s.osx.frameworks = 'AudioToolbox','AVFoundation','CoreAudio','CoreImage','CoreMedia','OpenCL','OpenGL','VideoToolbox'
s.osx.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-audio-VERSION-tvos-framework.zip" }
s.tvos.deployment_target = '9.2'
s.tvos.deployment_target = '10.0'
s.tvos.frameworks = 'AudioToolbox','VideoToolbox','CoreMedia'
s.tvos.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-full-gpl-VERSION-tvos-framework.zip" }
s.tvos.deployment_target = '9.2'
s.tvos.deployment_target = '10.0'
s.tvos.frameworks = 'AudioToolbox','VideoToolbox','CoreMedia'
s.tvos.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-full-VERSION-tvos-framework.zip" }
s.tvos.deployment_target = '9.2'
s.tvos.deployment_target = '10.0'
s.tvos.frameworks = 'AudioToolbox','VideoToolbox','CoreMedia'
s.tvos.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-https-gpl-VERSION-tvos-framework.zip" }
s.tvos.deployment_target = '9.2'
s.tvos.deployment_target = '10.0'
s.tvos.frameworks = 'AudioToolbox','VideoToolbox','CoreMedia'
s.tvos.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-https-VERSION-tvos-framework.zip" }
s.tvos.deployment_target = '9.2'
s.tvos.deployment_target = '10.0'
s.tvos.frameworks = 'AudioToolbox','VideoToolbox','CoreMedia'
s.tvos.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-min-gpl-VERSION-tvos-framework.zip" }
s.tvos.deployment_target = '9.2'
s.tvos.deployment_target = '10.0'
s.tvos.frameworks = 'AudioToolbox','VideoToolbox','CoreMedia'
s.tvos.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-min-VERSION-tvos-framework.zip" }
s.tvos.deployment_target = '9.2'
s.tvos.deployment_target = '10.0'
s.tvos.frameworks = 'AudioToolbox','VideoToolbox','CoreMedia'
s.tvos.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source = { :http => "https://github.com/tanersener/ffmpeg-kit/releases/download/vVERSION/ffmpeg-kit-video-VERSION-tvos-framework.zip" }
s.tvos.deployment_target = '9.2'
s.tvos.deployment_target = '10.0'
s.tvos.frameworks = 'AudioToolbox','VideoToolbox','CoreMedia'
s.tvos.vendored_frameworks = 'ffmpegkit.framework', 'libavcodec.framework', 'libavdevice.framework', 'libavfilter.framework', 'libavformat.framework', 'libavutil.framework', 'libswresample.framework', 'libswscale.framework'

View File

@ -27,7 +27,7 @@ create_package() {
sed -i '' "s/\.framework/\.xcframework/g" "${CURRENT_PACKAGE}"/"${PACKAGE_NAME}".podspec || exit 1
sed -i '' "s/-framework/-xcframework/g" "${CURRENT_PACKAGE}"/"${PACKAGE_NAME}".podspec || exit 1
sed -i '' "s/ios\.xcframeworks/ios\.frameworks/g" "${CURRENT_PACKAGE}"/"${PACKAGE_NAME}".podspec || exit 1
sed -i '' "s/9\.3/12\.1/g" "${CURRENT_PACKAGE}"/"${PACKAGE_NAME}".podspec || exit 1
sed -i '' "s/10/12\.1/g" "${CURRENT_PACKAGE}"/"${PACKAGE_NAME}".podspec || exit 1
sed -i '' "s/ffmpegkit\.xcframework\/LICENSE/ffmpegkit\.xcframework\/ios-arm64\/ffmpegkit\.framework\/LICENSE/g" "${CURRENT_PACKAGE}"/"${PACKAGE_NAME}".podspec || exit 1
}

View File

@ -27,7 +27,7 @@ create_package() {
sed -i '' "s/\.framework/\.xcframework/g" "${CURRENT_PACKAGE}"/"${PACKAGE_NAME}".podspec || exit 1
sed -i '' "s/-framework/-xcframework/g" "${CURRENT_PACKAGE}"/"${PACKAGE_NAME}".podspec || exit 1
sed -i '' "s/osx\.xcframeworks/osx\.frameworks/g" "${CURRENT_PACKAGE}"/"${PACKAGE_NAME}".podspec || exit 1
sed -i '' "s/10\.11/10\.15/g" "${CURRENT_PACKAGE}"/"${PACKAGE_NAME}".podspec || exit 1
sed -i '' "s/10\.12/10\.15/g" "${CURRENT_PACKAGE}"/"${PACKAGE_NAME}".podspec || exit 1
sed -i '' "s/ffmpegkit\.xcframework\/LICENSE/ffmpegkit\.xcframework\/macos-arm64_x86_64\/ffmpegkit\.framework\/LICENSE/g" "${CURRENT_PACKAGE}"/"${PACKAGE_NAME}".podspec || exit 1
}

View File

@ -27,7 +27,7 @@ create_package() {
sed -i '' "s/\.framework/\.xcframework/g" "${CURRENT_PACKAGE}"/"${PACKAGE_NAME}".podspec || exit 1
sed -i '' "s/-framework/-xcframework/g" "${CURRENT_PACKAGE}"/"${PACKAGE_NAME}".podspec || exit 1
sed -i '' "s/tvos\.xcframeworks/tvos\.frameworks/g" "${CURRENT_PACKAGE}"/"${PACKAGE_NAME}".podspec || exit 1
sed -i '' "s/9\.2/10\.2/g" "${CURRENT_PACKAGE}"/"${PACKAGE_NAME}".podspec || exit 1
sed -i '' "s/10\.0/11\.0/g" "${CURRENT_PACKAGE}"/"${PACKAGE_NAME}".podspec || exit 1
sed -i '' "s/ffmpegkit\.xcframework\/LICENSE/ffmpegkit\.xcframework\/tvos-arm64\/ffmpegkit\.framework\/LICENSE/g" "${CURRENT_PACKAGE}"/"${PACKAGE_NAME}".podspec || exit 1
}

View File

@ -139,7 +139,7 @@ done
# PROCESS FULL OPTION AS LAST OPTION
if [[ -n ${BUILD_FULL} ]]; then
for library in {0..58}; do
for library in {0..61}; do
if [ ${GPL_ENABLED} == "yes" ]; then
enable_library "$(get_library_name "$library")" 1
else
@ -220,7 +220,7 @@ for run_arch in {0..12}; do
TARGET_ARCH_LIST+=("${FULL_ARCH}")
# CLEAR FLAGS
for library in {0..58}; do
for library in {0..61}; do
library_name=$(get_library_name "${library}")
unset "$(echo "OK_${library_name}" | sed "s/\-/\_/g")"
unset "$(echo "DEPENDENCY_REBUILT_${library_name}" | sed "s/\-/\_/g")"