Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to compile ffmpeg extension with NDK 23 + CMake-3.22 #9933

Closed
goffioul opened this issue Feb 3, 2022 · 15 comments
Closed

Unable to compile ffmpeg extension with NDK 23 + CMake-3.22 #9933

goffioul opened this issue Feb 3, 2022 · 15 comments
Assignees
Labels

Comments

@goffioul
Copy link
Contributor

goffioul commented Feb 3, 2022

My setup:

  • ExoPlayer 2.15.1
  • Android NDK 23.1.7779620
  • CMake 3.22.2 (using system package from Fedora)

In order to build with this setup, I'm using the following patch:

diff --git a/extensions/ffmpeg/build.gradle b/extensions/ffmpeg/build.gradle
index a9edeaff6b..14d3bc9fbb 100644
--- a/extensions/ffmpeg/build.gradle
+++ b/extensions/ffmpeg/build.gradle
@@ -17,7 +17,8 @@ apply from: "$gradle.ext.exoplayerSettingsDir/common_library_config.gradle"
 // failures if ffmpeg hasn't been built according to the README instructions.
 if (project.file('src/main/jni/ffmpeg').exists()) {
     android.externalNativeBuild.cmake.path = 'src/main/jni/CMakeLists.txt'
-    android.externalNativeBuild.cmake.version = '3.7.1+'
+    android.externalNativeBuild.cmake.version = '3.18.0+'
+    android.ndkVersion = '23.1.7779620'
 }
 
 dependencies {
diff --git a/extensions/ffmpeg/src/main/jni/build_ffmpeg.sh b/extensions/ffmpeg/src/main/jni/build_ffmpeg.sh
index 7b2e933902..e678d2ef2e 100755
--- a/extensions/ffmpeg/src/main/jni/build_ffmpeg.sh
+++ b/extensions/ffmpeg/src/main/jni/build_ffmpeg.sh
@@ -49,10 +49,10 @@ cd "${FFMPEG_EXT_PATH}/jni/ffmpeg"
     --arch=arm \
     --cpu=armv7-a \
     --cross-prefix="${TOOLCHAIN_PREFIX}/armv7a-linux-androideabi16-" \
-    --nm="${TOOLCHAIN_PREFIX}/arm-linux-androideabi-nm" \
-    --ar="${TOOLCHAIN_PREFIX}/arm-linux-androideabi-ar" \
-    --ranlib="${TOOLCHAIN_PREFIX}/arm-linux-androideabi-ranlib" \
-    --strip="${TOOLCHAIN_PREFIX}/arm-linux-androideabi-strip" \
+    --nm="${TOOLCHAIN_PREFIX}/llvm-nm" \
+    --ar="${TOOLCHAIN_PREFIX}/llvm-ar" \
+    --ranlib="${TOOLCHAIN_PREFIX}/llvm-ranlib" \
+    --strip="${TOOLCHAIN_PREFIX}/llvm-strip" \
     --extra-cflags="-march=armv7-a -mfloat-abi=softfp" \
     --extra-ldflags="-Wl,--fix-cortex-a8" \
     ${COMMON_OPTIONS}
@@ -64,10 +64,10 @@ make clean
     --arch=aarch64 \
     --cpu=armv8-a \
     --cross-prefix="${TOOLCHAIN_PREFIX}/aarch64-linux-android21-" \
-    --nm="${TOOLCHAIN_PREFIX}/aarch64-linux-android-nm" \
-    --ar="${TOOLCHAIN_PREFIX}/aarch64-linux-android-ar" \
-    --ranlib="${TOOLCHAIN_PREFIX}/aarch64-linux-android-ranlib" \
-    --strip="${TOOLCHAIN_PREFIX}/aarch64-linux-android-strip" \
+    --nm="${TOOLCHAIN_PREFIX}/llvm-nm" \
+    --ar="${TOOLCHAIN_PREFIX}/llvm-ar" \
+    --ranlib="${TOOLCHAIN_PREFIX}/llvm-ranlib" \
+    --strip="${TOOLCHAIN_PREFIX}/llvm-strip" \
     ${COMMON_OPTIONS}
 make -j$JOBS
 make install-libs
@@ -77,10 +77,10 @@ make clean
     --arch=x86 \
     --cpu=i686 \
     --cross-prefix="${TOOLCHAIN_PREFIX}/i686-linux-android16-" \
-    --nm="${TOOLCHAIN_PREFIX}/i686-linux-android-nm" \
-    --ar="${TOOLCHAIN_PREFIX}/i686-linux-android-ar" \
-    --ranlib="${TOOLCHAIN_PREFIX}/i686-linux-android-ranlib" \
-    --strip="${TOOLCHAIN_PREFIX}/i686-linux-android-strip" \
+    --nm="${TOOLCHAIN_PREFIX}/llvm-nm" \
+    --ar="${TOOLCHAIN_PREFIX}/llvm-ar" \
+    --ranlib="${TOOLCHAIN_PREFIX}/llvm-ranlib" \
+    --strip="${TOOLCHAIN_PREFIX}/llvm-strip" \
     --disable-asm \
     ${COMMON_OPTIONS}
 make -j$JOBS
@@ -91,10 +91,10 @@ make clean
     --arch=x86_64 \
     --cpu=x86_64 \
     --cross-prefix="${TOOLCHAIN_PREFIX}/x86_64-linux-android21-" \
-    --nm="${TOOLCHAIN_PREFIX}/x86_64-linux-android-nm" \
-    --ar="${TOOLCHAIN_PREFIX}/x86_64-linux-android-ar" \
-    --ranlib="${TOOLCHAIN_PREFIX}/x86_64-linux-android-ranlib" \
-    --strip="${TOOLCHAIN_PREFIX}/x86_64-linux-android-strip" \
+    --nm="${TOOLCHAIN_PREFIX}/llvm-nm" \
+    --ar="${TOOLCHAIN_PREFIX}/llvm-ar" \
+    --ranlib="${TOOLCHAIN_PREFIX}/llvm-ranlib" \
+    --strip="${TOOLCHAIN_PREFIX}/llvm-strip" \
     --disable-asm \
     ${COMMON_OPTIONS}
 make -j$JOBS

I compile ffmpeg code according to build instructions:

cd extensions/ffmpeg/src/main/jni/
git clone git://source.ffmpeg.org/ffmpeg
(cd ffmpeg && \
    git checkout release/4.2)
./build_ffmpeg.sh \
    /path/to/ExoPlayer/extensions/ffmpeg/src/main \
    /path/to/android-sdk-linux/ndk/23.1.7779620 \
    linux-x86_64 \
    ac3 mp3

Finally I try to compile the demo app:

./gradlew :demo:assembleWithDecoderExtensionsDebug

Build fails at task :extension-ffmpeg:externalNativeBuildDebug. The output log at the failure is the following (there are actually a bunch of link errors, I just copied the first ones):

 [2/2] Linking CXX shared library /path/to/ExoPlayer/extensions/ffmpeg/buildout/intermediates/cmake/debug/obj/arm64-v8a/libffmpegJNI.so
  FAILED: /path/to/ExoPlayer/extensions/ffmpeg/buildout/intermediates/cmake/debug/obj/arm64-v8a/libffmpegJNI.so 
  : && /path/to/android-sdk-linux/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --sysroot=/path/to/android-sdk-linux/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fexceptions -frtti -stdlib=libc++ -g  -fno-limit-debug-info  -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Qunused-arguments -Wl,--no-undefined -shared -Wl,-soname,libffmpegJNI.so -o /path/to/ExoPlayer/extensions/ffmpeg/buildout/intermediates/cmake/debug/obj/arm64-v8a/libffmpegJNI.so CMakeFiles/ffmpegJNI.dir/ffmpeg_jni.cc.o  -landroid  /path/to/ExoPlayer/extensions/ffmpeg/src/main/jni/ffmpeg/android-libs/arm64-v8a/libswresample.a  /path/to/ExoPlayer/extensions/ffmpeg/src/main/jni/ffmpeg/android-libs/arm64-v8a/libavcodec.a  /path/to/ExoPlayer/extensions/ffmpeg/src/main/jni/ffmpeg/android-libs/arm64-v8a/libavutil.a  /path/to/android-sdk-linux/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so   -static-libstdc++ -latomic -lm && :
  ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_32; recompile with -fPIC
  >>> defined in /path/to/ExoPlayer/extensions/ffmpeg/src/main/jni/ffmpeg/android-libs/arm64-v8a/libavcodec.a(fft_float.o)
  >>> referenced by fft_neon.S:356 (libavcodec/aarch64/fft_neon.S:356)
  >>>               fft_neon.o:(fft32_neon) in archive /path/to/ExoPlayer/extensions/ffmpeg/src/main/jni/ffmpeg/android-libs/arm64-v8a/libavcodec.a
  
  ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_32 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output
  >>> defined in /path/to/ExoPlayer/extensions/ffmpeg/src/main/jni/ffmpeg/android-libs/arm64-v8a/libavcodec.a(fft_float.o)
  >>> referenced by fft_neon.S:356 (libavcodec/aarch64/fft_neon.S:356)
  >>>               fft_neon.o:(fft32_neon) in archive /path/to/ExoPlayer/extensions/ffmpeg/src/main/jni/ffmpeg/android-libs/arm64-v8a/libavcodec.a

Previously, I was using Android NDK 21.0.6113669 and CMake 3.10.2.4988404 (installed with sdkmanager), which worked fine.

@goffioul
Copy link
Contributor Author

goffioul commented Feb 4, 2022

After some research, I found these useful references:

I added the following to extensions/ffmpeg/build.gradle and that fixed the link error:

android.defaultConfig.externalNativeBuild.cmake.cppFlags = [ '-Wl,-Bsymbolic' ]

@AquilesCanta
Copy link
Contributor

Thanks for the report. We will only be fixing build_ffmpeg.sh, though. I don't think CMake is related to the failure, and we don't need to enforce a specific NDK version at gradle level.

A patch will appear below once this is pushed, when we'd appreciate you verify our fix satisfies your usecase.

@goffioul
Copy link
Contributor Author

The change in CMake version as I made in extensions/ffmpeg/build.gradle is indeed not necessary (but the others in build_ffmpeg.sh and the additional link flag in extensions/ffmpeg/build.gradle are; the specific NDK version was just specific to my dev setup). However there are a few things to consider when using an older CMake version:

  1. you'll see a series of warning about using an old CMake:
    https://android.googlesource.com/platform/ndk/+/refs/tags/ndk-r23b/build/cmake/android-legacy.toolchain.cmake#416
  2. if you upgrade to a newer CMake, you'll run into this issue, which is the reason I changed the min CMake version:
    https://gitlab.kitware.com/cmake/cmake/-/issues/22021

icbaker pushed a commit to androidx/media that referenced this issue Feb 17, 2022
NDK 23 removes GNU's bin utils. More info in
https://android.googlesource.com/platform/ndk/+/master/docs/BuildSystemMaintainers.md#binutils.

LLVM bin utils are available in all modern NDK versions.

#minor-release
Issue: google/ExoPlayer#9933
PiperOrigin-RevId: 429299806
icbaker pushed a commit that referenced this issue Feb 17, 2022
NDK 23 removes GNU's bin utils. More info in
https://android.googlesource.com/platform/ndk/+/master/docs/BuildSystemMaintainers.md#binutils.

LLVM bin utils are available in all modern NDK versions.

#minor-release
Issue: #9933
PiperOrigin-RevId: 429299806
icbaker pushed a commit that referenced this issue Feb 23, 2022
NDK 23 removes GNU's bin utils. More info in
https://android.googlesource.com/platform/ndk/+/master/docs/BuildSystemMaintainers.md#binutils.

LLVM bin utils are available in all modern NDK versions.

#minor-release
Issue: #9933
PiperOrigin-RevId: 429299806
@icbaker icbaker closed this as completed Feb 23, 2022
@goffioul
Copy link
Contributor Author

goffioul commented Feb 23, 2022

I see the commit doesn't include the linker flag change. Didn't run into link error when compiling? If not, what NDK version, ffmpeg version and ffmpeg codecs did you test with? (in my case, using NDK 23 and ffmpeg's ac3 + mp3, I get an error at link time)

@goffioul
Copy link
Contributor Author

For the record, the link error is still present in 2.17.0 with NDK 23.

@icbaker icbaker reopened this Feb 25, 2022
icbaker pushed a commit to androidx/media that referenced this issue Feb 25, 2022
NDK 23 removes GNU's bin utils. More info in
https://android.googlesource.com/platform/ndk/+/master/docs/BuildSystemMaintainers.md#binutils.

LLVM bin utils are available in all modern NDK versions.

#minor-release
Issue: google/ExoPlayer#9933
PiperOrigin-RevId: 429299806
@AquilesCanta
Copy link
Contributor

I'll take another look. I was on holiday.

@AquilesCanta
Copy link
Contributor

Didn't run into link error when compiling

No. I tried it end to end and FFMPEG plays MP3 normally:

FfmpegAudioRenderer [
    Group:0, adaptive_supported=N/A [
        [X] Track:0, id=null, mimeType=audio/mpeg, channels=2, sample_rate=44100, supported=YES
    ]

I managed to run into a CMake-related error on my linux setup, but this only manifests itself as an Android studio syncing issue. Updating the CMake version fixes the AndroidStudio issue (the error message is rather cryptic so I won't paste it).

I want to clarify something: In your original PR you propose:

+    android.externalNativeBuild.cmake.version = '3.18.0+'

But that would allow using 3.18 which according to the link you posted we should not use, we should use 3.19 or newer. Additionally you also post a link which states that 3.20 has another issue, so it's unclear why you propose 3.18, and not '3.21.0+', for instance. Can you clarify this bit?

@goffioul
Copy link
Contributor Author

I used 3.18, because that's the highest version I can see in sdkmanager. If cmake is not present in the system, the android gradle plugin will download it automatically according to the spec used in the gradle file. Ideally, you'd specify a newer version, but there was none listed by sdkmanager. Although I didn't explicitly try that scenario, I assumed that the build would fail if cmake was not present at OS-level, and build.gradle was specifying a version higher than what sdkmanager can provide.

As described in my initial note, I actually used cmake 3.22, installed at OS-level. Using 3.18 in the gradle file was basically a trade-off between the ability to auto-download cmake if required, and not running into the problem described here: https://gitlab.kitware.com/cmake/cmake/-/issues/22021

Note that in the end, I reverted all the changes related to cmake. I keep android.externalNativeBuild.cmake.version unmodified, and the android gradle plugin then download cmake-3.10.2.4988404. There is a warning from NDK 23 about using too old cmake, but the compilation still go through.

What version of cmake are you using? Thinking about it, maybe this can be the cause of the link error I'm seeing. If it's possible for you, and assuming your setup is different then mine, could you try with the same versions I'm using: NDK 23, no cmake at system-level, AGP downloading cmake-3.10.2.4988404?

@AquilesCanta
Copy link
Contributor

Unfortunately I don't have the bandwidth to fully investigate multiple combinations of setup params (example: avoiding a system-level CMake). I would rather address this in a case by case basis, unless impossible.

For what it's worth, in my Android Studio instance, CMake 3.22 is available.
image

Anyhow, I'll be soon pushing a new commit updating the gradle-defined CMake version to 3.21+:

if (project.file('src/main/jni/ffmpeg').exists()) {
    android.externalNativeBuild.cmake.path = 'src/main/jni/CMakeLists.txt'
    android.externalNativeBuild.cmake.version = '3.21.0+'
}

If this fixes the issue then we can leave this be. Else I would ask that you try all steps from scratch, from a fresh exoplayer copy, and paste all relevant info in a fresh issue. I think this issue was originally meant to address only the GNU bin-utils part of the problem. You don't need to wait until the commit is available since you can manually make this change and try it out. Let me know how it goes.

ojw28 pushed a commit that referenced this issue Mar 15, 2022
Issue: #9933
#minor-release
PiperOrigin-RevId: 434449816
@goffioul
Copy link
Contributor Author

I tried again with unmodified dev-v2 branch, but 2 things happened:

  1. gradle downloads NDK 21.4.7075529 during the build, so you're actually not using NDK 23 to compile the extension; this may be why you don't get any link error; if you force the NDK version in extensions/ffmpeg/build.gradle, you might then see it
  2. build now fails, because CMake 3.21+ is not available when using the Android SDK command line tools (this is what I'm using, latest version available 8092744)

icbaker pushed a commit to androidx/media that referenced this issue Mar 25, 2022
Issue: google/ExoPlayer#9933
#minor-release
PiperOrigin-RevId: 434449816
@moneytoo
Copy link
Contributor

moneytoo commented Jul 2, 2022

CMake 3.22.1 is still not in stable so I had to install it from canary (--channel=3 "cmake;3.22.1" when using sdkmanager).

However just as the OP, I'm unable to build the ffmpeg extension with Cmake 3.22.1 and NDK 23.2.8568313.

> Task :extension-ffmpeg:buildCMakeRelWithDebInfo[arm64-v8a] FAILED
C/C++: ninja: Entering directory `/home/mdop/fdroiddata/build/srclib/ExoPlayer/extensions/ffmpeg/.cxx/RelWithDebInfo/564p1y67/arm64-v8a'
C/C++: /home/mdop/fdroiddata/build/srclib/ExoPlayer/extensions/ffmpeg/src/main/jni/ffmpeg_jni.cc:106:3: warning: 'avcodec_register_all' is deprecated [-Wdeprecated-declarations]
C/C++: /home/mdop/fdroiddata/build/srclib/ExoPlayer/extensions/ffmpeg/src/main/jni/ffmpeg/libavcodec/avcodec.h:4158:1: note: 'avcodec_register_all' has been explicitly marked deprecated here
C/C++: /home/mdop/fdroiddata/build/srclib/ExoPlayer/extensions/ffmpeg/src/main/jni/ffmpeg/libavutil/attributes.h:94:49: note: expanded from macro 'attribute_deprecated'
C/C++: ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_32; recompile with -fPIC
C/C++: ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_32 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output
C/C++: ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_64; recompile with -fPIC
C/C++: ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_64 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output
C/C++: ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_128; recompile with -fPIC
C/C++: ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_128 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output
C/C++: ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_256; recompile with -fPIC
C/C++: ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_256 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output
C/C++: ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_512; recompile with -fPIC
C/C++: ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_512 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output
C/C++: ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_1024; recompile with -fPIC
C/C++: ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_1024 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output
C/C++: ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_2048; recompile with -fPIC
C/C++: ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_2048 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output
C/C++: ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_4096; recompile with -fPIC
C/C++: ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_4096 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output
C/C++: ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_8192; recompile with -fPIC
C/C++: ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_8192 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output
C/C++: ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_16384; recompile with -fPIC
C/C++: ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_16384 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output
C/C++: ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)
C/C++: clang++: error: linker command failed with exit code 1 (use -v to see invocation)

FAILURE: Build failed with an exception.

@AquilesCanta AquilesCanta assigned tonihei and unassigned AquilesCanta Jul 7, 2022
@tonihei
Copy link
Collaborator

tonihei commented Aug 12, 2022

gradle downloads NDK 21.4.7075529 during the build

This is the recommended NDK version for the current Android Studio release (Dolphin | 20221.3.1). See https://developer.android.com/studio/projects/install-ndk#default-ndk-per-agp. Using this NDK version works well without modifications as pointed out above.

The issue only reproduces for NDK versions 23.1.7779620 and above (I tested with 25.0.8775105) and can be solved by the additional flags mentioned in #9933 (comment). I'll submit a fix that turns these flags on for the "arm64-v8a" ABI (that's the only one that needs it). Even though the default NDK doesn't have this problem yet, it's likely the default NDK will be updated in an upcoming Android Studio release and it's definitely worth fixing it.

@tonihei tonihei removed the question label Aug 12, 2022
@tonihei tonihei added bug and removed needs triage labels Aug 12, 2022
@menscikov
Copy link

@tonihei i've noticed that you forgot to update CMake version in the AV1 extension.
But latest CMake version is giving an error, i had to use 3.18.1 for AV1.

@tonihei
Copy link
Collaborator

tonihei commented Aug 15, 2022

@menscikov Thanks for the hint, we'll fix this as well.

@tonihei
Copy link
Collaborator

tonihei commented Sep 6, 2022

The fix should appear here soon and will be part of the next release.

@tonihei tonihei closed this as completed Sep 6, 2022
marcbaechinger pushed a commit to androidx/media that referenced this issue Sep 30, 2022
From NDK 23.1.7779620 and above, the arm64-v8a ABI needs additional
build flags to correctly link the ffmpeg libraries.

Issue: google/ExoPlayer#9933
PiperOrigin-RevId: 467161973
marcbaechinger pushed a commit to androidx/media that referenced this issue Sep 30, 2022
The specified CMake version doesn't work with the latest
Android Studio releases. Updating to a more recent version
fixes the problem.

Issue: google/ExoPlayer#9933
PiperOrigin-RevId: 467634063
marcbaechinger pushed a commit that referenced this issue Oct 20, 2022
From NDK 23.1.7779620 and above, the arm64-v8a ABI needs additional
build flags to correctly link the ffmpeg libraries.

Issue: #9933
PiperOrigin-RevId: 467161973
marcbaechinger pushed a commit that referenced this issue Oct 20, 2022
The specified CMake version doesn't work with the latest
Android Studio releases. Updating to a more recent version
fixes the problem.

Issue: #9933
PiperOrigin-RevId: 467634063
@google google locked and limited conversation to collaborators Nov 6, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

7 participants