Skip to content

Commit

Permalink
android/patches: add "0004-{abi}-link-prebuilt-staic-libraries-of-ffm…
Browse files Browse the repository at this point in the history
…epg.patch"

update "0002-gradle-upgrade-build-tool-to-2.2.0-beta2.patch"
fix an unpatch issue
  • Loading branch information
ctiao committed Sep 2, 2016
1 parent f1b52f2 commit 95ef185
Show file tree
Hide file tree
Showing 8 changed files with 372 additions and 10 deletions.
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,8 +161,7 @@ cd ..
# }
#
# If you want to enable debugging ijkplayer(native modules) on Android Studio 2.2+: (experimental)
# cd android
# sh patch-debugging-with-lldb.sh armv7a
# sh android/patch-debugging-with-lldb.sh armv7a
# Install Android Studio 2.2(+)
# Preference -> Android SDK -> SDK Tools
# Select (LLDB, NDK, Android SDK Build-tools,Cmake) and install
Expand Down
21 changes: 15 additions & 6 deletions android/patch-debugging-with-lldb.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,14 @@ patch_enable () {
PARAM_TARGET=$1
case "$PARAM_TARGET" in
armv5|armv7a|arm64|x86|x86_64)
git apply -- patches/0001-gitignore-ignore-.externalNativeBuild.patch
git apply -- android/patches/0001-gitignore-ignore-.externalNativeBuild.patch
echo "git apply ==> patches/0001-gitignore-ignore-.externalNativeBuild.patch"
git apply -- patches/0002-gradle-upgrade-build-tool-to-2.2.0-beta2.patch
git apply -- android/patches/0002-gradle-upgrade-build-tool-to-2.2.0-beta2.patch
echo "git apply ==> patches/0002-gradle-upgrade-build-tool-to-2.2.0-beta2.patch"
git apply -- patches/0003-$PARAM_TARGET-enable-debugging-with-LLDB.patch
git apply -- android/patches/0003-$PARAM_TARGET-enable-debugging-with-LLDB.patch
echo "git apply ==> patches/0003-$PARAM_TARGET-enable-debugging-with-LLDB.patch"
git apply -- android/patches/0004-$PARAM_TARGET-link-prebuilt-staic-libraries-of-ffmepg.patch
echo "git apply ==> patches/0004-$PARAM_TARGET-link-prebuilt-staic-libraries-of-ffmepg.patch"
;;
esac
}
Expand All @@ -33,11 +35,18 @@ patch_disable () {
PARAM_TARGET=$1
case "$PARAM_TARGET" in
armv5|armv7a|arm64|x86|x86_64)
git apply -R patches/0003-$PARAM_TARGET-enable-debugging-with-LLDB.patch
git apply -R android/patches/0004-$PARAM_TARGET-link-prebuilt-staic-libraries-of-ffmepg.patch
echo "git apply reverse ==> patches/0004-$PARAM_TARGET-link-prebuilt-staic-libraries-of-ffmepg.patch"

git checkout android/ijkplayer/ijkplayer-$PARAM_TARGET/src/main/jni/Android.mk
git checkout android/ijkplayer/ijkplayer-example/build.gradle
git checkout android/ijkplayer/ijkplayer-$PARAM_TARGET/build.gradle
git checkout android/ijkplayer/settings.gradle
# git apply -R android/patches/0003-$PARAM_TARGET-enable-debugging-with-LLDB.patch
echo "git apply reverse ==> patches/0003-$PARAM_TARGET-enable-debugging-with-LLDB.patch"
git apply -R patches/0002-gradle-upgrade-build-tool-to-2.2.0-beta2.patch
git apply -R android/patches/0002-gradle-upgrade-build-tool-to-2.2.0-beta2.patch
echo "git apply reverse ==> patches/0002-gradle-upgrade-build-tool-to-2.2.0-beta2.patch"
git apply -R patches/0001-gitignore-ignore-.externalNativeBuild.patch
git apply -R android/patches/0001-gitignore-ignore-.externalNativeBuild.patch
echo "git apply reverse ==> patches/0001-gitignore-ignore-.externalNativeBuild.patch"
;;
esac
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 5d70fa0496f9ebfbcfa3786d85c74c690d66781e Mon Sep 17 00:00:00 2001
From: ctiao <[email protected]>
Date: Mon, 29 Aug 2016 14:50:34 +0800
Subject: [PATCH 2/2] gradle: upgrade build-tool to 2.2.0-beta2
Subject: [PATCH 2/2] gradle: upgrade build-tool to 2.2.0-rc1

---
android/ijkplayer/build.gradle | 2 +-
Expand All @@ -16,7 +16,7 @@ index 0de03ec..6132c1d 100644
}
dependencies {
- classpath 'com.android.tools.build:gradle:2.1.3'
+ classpath 'com.android.tools.build:gradle:2.2.0-beta2'
+ classpath 'com.android.tools.build:gradle:2.2.0-rc1'

classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7'
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
From fb17b98cfeb265e09220568df17cc493192e6ebe Mon Sep 17 00:00:00 2001
From: ctiao <[email protected]>
Date: Fri, 2 Sep 2016 16:39:02 +0800
Subject: [PATCH] armv7a: link prebuilt staic libraries of ffmepg

---
.../src/main/jni/ffmpeg/Android.mk | 42 ++++++++++++++++++++--
.../danmaku/ijk/media/player/IjkMediaPlayer.java | 1 -
ijkmedia/ijkplayer/Android.mk | 6 ++--
ijkmedia/ijksdl/Android.mk | 4 +--
4 files changed, 44 insertions(+), 9 deletions(-)

diff --git a/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ffmpeg/Android.mk b/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ffmpeg/Android.mk
index ec33908..3c525bd 100644
--- a/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ffmpeg/Android.mk
+++ b/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ffmpeg/Android.mk
@@ -1,6 +1,42 @@
LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+LOCAL_MODULE := avcodec
+LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/lib/libavcodec.a
+LOCAL_EXPORT_C_INCLUDES := $(MY_APP_FFMPEG_INCLUDE_PATH)
+LOCAL_C_INCLUDES += $(MY_APP_FFMPEG_INCLUDE_PATH)
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := avformat
+LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/lib/libavformat.a
+LOCAL_EXPORT_C_INCLUDES := $(MY_APP_FFMPEG_INCLUDE_PATH)
+LOCAL_C_INCLUDES += $(MY_APP_FFMPEG_INCLUDE_PATH)
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := swscale
+LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/lib/libswscale.a
+LOCAL_EXPORT_C_INCLUDES := $(MY_APP_FFMPEG_OUTPUT_PATH)/include
+LOCAL_C_INCLUDES += $(MY_APP_FFMPEG_INCLUDE_PATH)
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := avutil
+LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/lib/libavutil.a
+LOCAL_EXPORT_C_INCLUDES := $(MY_APP_FFMPEG_INCLUDE_PATH)
+LOCAL_C_INCLUDES += $(MY_APP_FFMPEG_INCLUDE_PATH)
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := avfilter
+LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/lib/libavfilter.a
+LOCAL_EXPORT_C_INCLUDES := $(MY_APP_FFMPEG_INCLUDE_PATH)
+LOCAL_C_INCLUDES += $(MY_APP_FFMPEG_INCLUDE_PATH)
+include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
-LOCAL_MODULE := ijkffmpeg
-LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/libijkffmpeg.so
-include $(PREBUILT_SHARED_LIBRARY)
\ No newline at end of file
+LOCAL_MODULE := swresample
+LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/lib/libswresample.a
+LOCAL_EXPORT_C_INCLUDES := $(MY_APP_FFMPEG_INCLUDE_PATH)
+LOCAL_C_INCLUDES += $(MY_APP_FFMPEG_INCLUDE_PATH)
+include $(PREBUILT_STATIC_LIBRARY)
diff --git a/android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java b/android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java
index 985f848..7ad3fe4 100755
--- a/android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java
+++ b/android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java
@@ -165,7 +165,6 @@ public final class IjkMediaPlayer extends AbstractMediaPlayer {
if (libLoader == null)
libLoader = sLocalLibLoader;

- libLoader.loadLibrary("ijkffmpeg");
libLoader.loadLibrary("ijksdl");
libLoader.loadLibrary("ijkplayer");
mIsLibLoaded = true;
diff --git a/ijkmedia/ijkplayer/Android.mk b/ijkmedia/ijkplayer/Android.mk
index 92372ab..6c9270d 100644
--- a/ijkmedia/ijkplayer/Android.mk
+++ b/ijkmedia/ijkplayer/Android.mk
@@ -26,7 +26,7 @@ ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
LOCAL_CFLAGS += -mfloat-abi=soft
endif
LOCAL_CFLAGS += -std=c99
-LOCAL_LDLIBS += -llog -landroid
+LOCAL_LDLIBS += -llog -landroid -lm -lz

LOCAL_C_INCLUDES += $(LOCAL_PATH)
LOCAL_C_INCLUDES += $(realpath $(LOCAL_PATH)/..)
@@ -59,8 +59,8 @@ LOCAL_SRC_FILES += ijkavformat/ijkurlhook.c
LOCAL_SRC_FILES += ijkavformat/ijklongurl.c
LOCAL_SRC_FILES += ijkavformat/ijksegment.c

-LOCAL_SHARED_LIBRARIES := ijkffmpeg ijksdl
-LOCAL_STATIC_LIBRARIES := android-ndk-profiler
+LOCAL_SHARED_LIBRARIES := ijksdl
+LOCAL_STATIC_LIBRARIES := avformat avcodec swscale swresample avfilter avutil android-ndk-profiler

LOCAL_MODULE := ijkplayer
include $(BUILD_SHARED_LIBRARY)
diff --git a/ijkmedia/ijksdl/Android.mk b/ijkmedia/ijksdl/Android.mk
index 08ebbab..4f6d804 100644
--- a/ijkmedia/ijksdl/Android.mk
+++ b/ijkmedia/ijksdl/Android.mk
@@ -70,8 +70,8 @@ LOCAL_SRC_FILES += android/ijksdl_vout_android_nativewindow.c
LOCAL_SRC_FILES += android/ijksdl_vout_android_surface.c
LOCAL_SRC_FILES += android/ijksdl_vout_overlay_android_mediacodec.c

-LOCAL_SHARED_LIBRARIES := ijkffmpeg ijkj4a
-LOCAL_STATIC_LIBRARIES := cpufeatures yuv_static
+LOCAL_STATIC_LIBRARIES := avformat avcodec swscale swresample avfilter avutil cpufeatures yuv_static
+LOCAL_SHARED_LIBRARIES := ijkj4a

LOCAL_MODULE := ijksdl
include $(BUILD_SHARED_LIBRARY)
--
2.7.4 (Apple Git-66)

118 changes: 118 additions & 0 deletions android/patches/0004-x86-link-prebuilt-staic-libraries-of-ffmepg.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
From e8d39a74162855acb1332bd877f22fe1d881aa61 Mon Sep 17 00:00:00 2001
From: ctiao <[email protected]>
Date: Fri, 2 Sep 2016 17:01:57 +0800
Subject: [PATCH] x86: link prebuilt staic libraries of ffmepg

---
.../danmaku/ijk/media/player/IjkMediaPlayer.java | 1 -
.../ijkplayer-x86/src/main/jni/ffmpeg/Android.mk | 43 ++++++++++++++++++++--
ijkmedia/ijkplayer/Android.mk | 6 +--
ijkmedia/ijksdl/Android.mk | 4 +-
4 files changed, 45 insertions(+), 9 deletions(-)

diff --git a/android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java b/android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java
index 985f848..7ad3fe4 100755
--- a/android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java
+++ b/android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java
@@ -165,7 +165,6 @@ public final class IjkMediaPlayer extends AbstractMediaPlayer {
if (libLoader == null)
libLoader = sLocalLibLoader;

- libLoader.loadLibrary("ijkffmpeg");
libLoader.loadLibrary("ijksdl");
libLoader.loadLibrary("ijkplayer");
mIsLibLoaded = true;
diff --git a/android/ijkplayer/ijkplayer-x86/src/main/jni/ffmpeg/Android.mk b/android/ijkplayer/ijkplayer-x86/src/main/jni/ffmpeg/Android.mk
index ec33908..44c50b1 100644
--- a/android/ijkplayer/ijkplayer-x86/src/main/jni/ffmpeg/Android.mk
+++ b/android/ijkplayer/ijkplayer-x86/src/main/jni/ffmpeg/Android.mk
@@ -1,6 +1,43 @@
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
-LOCAL_MODULE := ijkffmpeg
-LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/libijkffmpeg.so
-include $(PREBUILT_SHARED_LIBRARY)
\ No newline at end of file
+LOCAL_MODULE := avcodec
+LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/lib/libavcodec.a
+LOCAL_EXPORT_C_INCLUDES := $(MY_APP_FFMPEG_INCLUDE_PATH)
+LOCAL_C_INCLUDES += $(MY_APP_FFMPEG_INCLUDE_PATH)
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := avformat
+LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/lib/libavformat.a
+LOCAL_EXPORT_C_INCLUDES := $(MY_APP_FFMPEG_INCLUDE_PATH)
+LOCAL_C_INCLUDES += $(MY_APP_FFMPEG_INCLUDE_PATH)
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := swscale
+LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/lib/libswscale.a
+LOCAL_EXPORT_C_INCLUDES := $(MY_APP_FFMPEG_OUTPUT_PATH)/include
+LOCAL_C_INCLUDES += $(MY_APP_FFMPEG_INCLUDE_PATH)
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := avutil
+LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/lib/libavutil.a
+LOCAL_EXPORT_C_INCLUDES := $(MY_APP_FFMPEG_INCLUDE_PATH)
+LOCAL_C_INCLUDES += $(MY_APP_FFMPEG_INCLUDE_PATH)
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := avfilter
+LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/lib/libavfilter.a
+LOCAL_EXPORT_C_INCLUDES := $(MY_APP_FFMPEG_INCLUDE_PATH)
+LOCAL_C_INCLUDES += $(MY_APP_FFMPEG_INCLUDE_PATH)
+include $(PREBUILT_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := swresample
+LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/lib/libswresample.a
+LOCAL_EXPORT_C_INCLUDES := $(MY_APP_FFMPEG_INCLUDE_PATH)
+LOCAL_C_INCLUDES += $(MY_APP_FFMPEG_INCLUDE_PATH)
+include $(PREBUILT_STATIC_LIBRARY)
diff --git a/ijkmedia/ijkplayer/Android.mk b/ijkmedia/ijkplayer/Android.mk
index 92372ab..6c9270d 100644
--- a/ijkmedia/ijkplayer/Android.mk
+++ b/ijkmedia/ijkplayer/Android.mk
@@ -26,7 +26,7 @@ ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
LOCAL_CFLAGS += -mfloat-abi=soft
endif
LOCAL_CFLAGS += -std=c99
-LOCAL_LDLIBS += -llog -landroid
+LOCAL_LDLIBS += -llog -landroid -lm -lz

LOCAL_C_INCLUDES += $(LOCAL_PATH)
LOCAL_C_INCLUDES += $(realpath $(LOCAL_PATH)/..)
@@ -59,8 +59,8 @@ LOCAL_SRC_FILES += ijkavformat/ijkurlhook.c
LOCAL_SRC_FILES += ijkavformat/ijklongurl.c
LOCAL_SRC_FILES += ijkavformat/ijksegment.c

-LOCAL_SHARED_LIBRARIES := ijkffmpeg ijksdl
-LOCAL_STATIC_LIBRARIES := android-ndk-profiler
+LOCAL_SHARED_LIBRARIES := ijksdl
+LOCAL_STATIC_LIBRARIES := avformat avcodec swscale swresample avfilter avutil android-ndk-profiler

LOCAL_MODULE := ijkplayer
include $(BUILD_SHARED_LIBRARY)
diff --git a/ijkmedia/ijksdl/Android.mk b/ijkmedia/ijksdl/Android.mk
index 08ebbab..4f6d804 100644
--- a/ijkmedia/ijksdl/Android.mk
+++ b/ijkmedia/ijksdl/Android.mk
@@ -70,8 +70,8 @@ LOCAL_SRC_FILES += android/ijksdl_vout_android_nativewindow.c
LOCAL_SRC_FILES += android/ijksdl_vout_android_surface.c
LOCAL_SRC_FILES += android/ijksdl_vout_overlay_android_mediacodec.c

-LOCAL_SHARED_LIBRARIES := ijkffmpeg ijkj4a
-LOCAL_STATIC_LIBRARIES := cpufeatures yuv_static
+LOCAL_STATIC_LIBRARIES := avformat avcodec swscale swresample avfilter avutil cpufeatures yuv_static
+LOCAL_SHARED_LIBRARIES := ijkj4a

LOCAL_MODULE := ijksdl
include $(BUILD_SHARED_LIBRARY)
--
2.7.4 (Apple Git-66)

Loading

0 comments on commit 95ef185

Please sign in to comment.