diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml new file mode 100644 index 0000000..682e6de --- /dev/null +++ b/.github/workflows/publish_release.yml @@ -0,0 +1,56 @@ +name: build release binaries +on: + workflow_dispatch: + inputs: + build_options: + description: 'ffmepg build script options' + required: true + default: '-libbluray -android=21' +jobs: + release: + runs-on: ubuntu-latest + strategy: + matrix: + abi: [ "armeabi-v7a", "arm64-v8a" ] + fail-fast: true + steps: + - uses: actions/checkout@v2 + + - name: Setup the environment + run: | + sudo pip3 install meson==0.58.2 + sudo apt-get install nasm ninja-build + + - name: Executing the script + run: | + export ANDROID_SDK_HOME=$ANDROID_HOME + export ANDROID_NDK_HOME=$ANDROID_NDK_LATEST_HOME + ./ffmpeg-android-maker.sh ${{ build_options }} -abis=${{ matrix.abi }} + - name: Pack artifacts + run: tar -cf build.tar.gz build/ + + - name: Create Draft Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: + release_name: + draft: true + prerelease: false + + - uses: actions/upload-release-asset@v1.0.1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./build.tar.gz + asset_name: build.tar.gz + asset_content_type: application/gz + + - uses: eregon/publish-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + release_id: ${{ steps.create_release.outputs.id }} diff --git a/scripts/ffmpeg/build.sh b/scripts/ffmpeg/build.sh index 18f7b29..e312a54 100755 --- a/scripts/ffmpeg/build.sh +++ b/scripts/ffmpeg/build.sh @@ -42,6 +42,8 @@ DEP_LD_FLAGS="-L${BUILD_DIR_EXTERNAL}/${ANDROID_ABI}/lib $FFMPEG_EXTRA_LD_FLAGS" --extra-cflags="-O3 -fPIC $DEP_CFLAGS" \ --extra-ldflags="$DEP_LD_FLAGS" \ --enable-shared \ + --enable-jni \ + --enable-mediacodec \ --disable-static \ --pkg-config=${PKG_CONFIG_EXECUTABLE} \ ${EXTRA_BUILD_CONFIGURATION_FLAGS} \ diff --git a/scripts/libbluray/build.sh b/scripts/libbluray/build.sh new file mode 100755 index 0000000..8791124 --- /dev/null +++ b/scripts/libbluray/build.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +LIBLURAY_ADDITIONAL_FLAGS= + +CC=${FAM_CC} \ +AR=${FAM_AR} \ +AS=${X264_AS} \ +RANLIB=${FAM_RANLIB} \ +STRIP=${FAM_STRIP} \ +LIBS="-lz" \ +./configure \ + --prefix=${INSTALL_DIR} \ + --host=${TARGET} \ + --with-sysroot=${SYSROOT_PATH} \ + --enable-static \ + --with-pic \ + --without-libxml2 \ + --without-fontconfig \ + --disable-bdjava-jar \ + ${LIBLURAY_ADDITIONAL_FLAGS} || exit 1 + +${MAKE_EXECUTABLE} clean +${MAKE_EXECUTABLE} -j${HOST_NPROC} +${MAKE_EXECUTABLE} install diff --git a/scripts/libbluray/download.sh b/scripts/libbluray/download.sh new file mode 100755 index 0000000..cf86e19 --- /dev/null +++ b/scripts/libbluray/download.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +source ${SCRIPTS_DIR}/common-functions.sh + +LIBBLURAY_VERSION=1.3.1 + +downloadTarArchive \ + "libbluray" \ + "https://download.videolan.org/pub/videolan/libbluray/${LIBBLURAY_VERSION}/libbluray-${LIBBLURAY_VERSION}.tar.bz2" + diff --git a/scripts/parse-arguments.sh b/scripts/parse-arguments.sh index b8cdc43..862f06d 100755 --- a/scripts/parse-arguments.sh +++ b/scripts/parse-arguments.sh @@ -25,6 +25,7 @@ SUPPORTED_LIBRARIES_FREE=( "libwebp" "libfreetype" "libfribidi" + "libbluray" ) # All GPL libraries that are supported @@ -111,6 +112,10 @@ for argument in "$@"; do EXTERNAL_LIBRARIES+=("libx264") FFMPEG_GPL_ENABLED=true ;; + --enable-libbluray | -libbluray) + EXTERNAL_LIBRARIES+=("libfreetype") + EXTERNAL_LIBRARIES+=("libbluray") + ;; --enable-all-free | -all-free) EXTERNAL_LIBRARIES+=" ${SUPPORTED_LIBRARIES_FREE[@]}" ;;