Skip to content

Commit b11d059

Browse files
authored
Merge branch 'master' into master
2 parents d5438b1 + 045aeac commit b11d059

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+2958
-2089
lines changed

.github/workflows/build.yaml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
runs-on: ubuntu-latest
1010

1111
steps:
12-
- uses: actions/checkout@v2
12+
- uses: actions/checkout@v3
1313
- run: sudo apt-get update -qq
1414
- run: sudo apt-get install -qq nasm g++-multilib gcc-multilib libc6-dev-i386 python3-pip python3-setuptools
1515
- run: sudo python3 -m pip install meson==0.52.1 ninja
@@ -28,7 +28,7 @@ jobs:
2828
asan:
2929
runs-on: ubuntu-latest
3030
steps:
31-
- uses: actions/checkout@v2
31+
- uses: actions/checkout@v3
3232
- run: sudo apt-get update -qq
3333
- run: sudo apt-get install -qq nasm
3434
- run: nasm -v
@@ -40,7 +40,7 @@ jobs:
4040
windows:
4141
runs-on: windows-2019
4242
steps:
43-
- uses: actions/checkout@v2
43+
- uses: actions/checkout@v3
4444
- run: choco install nasm
4545
# nasm is not installed into the $PATH so add it manually
4646
- run: echo "C:\Program Files\NASM" >> $env:GITHUB_PATH
@@ -68,7 +68,7 @@ jobs:
6868
mingw-w64-x86_64-toolchain
6969
mingw-w64-x86_64-nasm
7070
mingw-w64-x86_64-meson
71-
- uses: actions/checkout@v2
71+
- uses: actions/checkout@v3
7272
- run: c++ --version
7373
- run: make gmp-bootstrap
7474
- run: make gtest-bootstrap
@@ -83,7 +83,7 @@ jobs:
8383
macos:
8484
runs-on: macos-latest
8585
steps:
86-
- uses: actions/checkout@v2
86+
- uses: actions/checkout@v3
8787
- run: brew install nasm meson
8888
- run: make gmp-bootstrap
8989
- run: make gtest-bootstrap
@@ -97,7 +97,7 @@ jobs:
9797
linux-cross-arm:
9898
runs-on: ubuntu-latest
9999
steps:
100-
- uses: actions/checkout@v2
100+
- uses: actions/checkout@v3
101101
- run: sudo apt-get update -qq
102102
- run: sudo apt-get install -qq g++-arm-linux-gnueabihf g++-aarch64-linux-gnu qemu-user
103103
- run: arm-linux-gnueabihf-g++ --version
@@ -111,7 +111,7 @@ jobs:
111111
macos-cross-arm64:
112112
runs-on: macos-latest
113113
steps:
114-
- uses: actions/checkout@v2
114+
- uses: actions/checkout@v3
115115
- run: make gmp-bootstrap
116116
- run: make gtest-bootstrap
117117
- run: c++ --version

.gitignore

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,16 @@ codec/build/iOS/dec/welsdec/build/
5959
# editor files
6060
*~
6161

62+
# android gradle integration – regenerated when the project is opened in Android Studio
63+
/.idea/
64+
/.gradle/
65+
/gradle/
66+
/gradlew.bat
67+
/local.properties
68+
6269
#wasm
63-
.vscode/*
6470
*.html
6571
*.js
6672
*.wat
6773
*.wasm
6874
*.data
69-

Makefile

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -368,11 +368,13 @@ endif
368368
ifeq (android,$(OS))
369369
ifeq (./,$(SRC_PATH))
370370
codec_unittest$(EXEEXT):
371-
cd ./test/build/android && $(NDKROOT)/ndk-build -B APP_ABI=$(APP_ABI) && android update project -t $(TARGET) -p . && ant debug
371+
$(NDK_BUILD) -C test/build/android -B
372+
./gradlew unittest:assembleDebug
372373

373374
clean_Android: clean_Android_ut
374375
clean_Android_ut:
375-
-cd ./test/build/android && $(NDKROOT)/ndk-build APP_ABI=$(APP_ABI) clean && ant clean
376+
-$(NDK_BUILD) -C test/build/android -B clean
377+
-./gradlew unittest:clean
376378
endif
377379
endif
378380

RELEASES

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,8 +231,8 @@ http://ciscobinary.openh264.org/libopenh264-2.3.0-linux32.6.so.bz2
231231
http://ciscobinary.openh264.org/libopenh264-2.3.0-linux64.6.so.bz2
232232
http://ciscobinary.openh264.org/libopenh264-2.3.0-linux-arm.6.so.bz2
233233
http://ciscobinary.openh264.org/libopenh264-2.3.0-linux-arm64.6.so.bz2
234-
http://ciscobinary.openh264.org/libopenh264-2.3.0-osx-arm64.6.dylib.bz2
235-
http://ciscobinary.openh264.org/libopenh264-2.3.0-osx-x64.6.dylib.bz2
234+
http://ciscobinary.openh264.org/libopenh264-2.3.0-mac-arm64.6.dylib.bz2
235+
http://ciscobinary.openh264.org/libopenh264-2.3.0-mac-x64.6.dylib.bz2
236236
http://ciscobinary.openh264.org/openh264-2.3.0-win32.dll.bz2
237237
http://ciscobinary.openh264.org/openh264-2.3.0-win64.dll.bz2
238238

build.gradle

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
buildscript {
2+
repositories {
3+
google()
4+
jcenter()
5+
}
6+
dependencies {
7+
classpath 'com.android.tools.build:gradle:3.5.3'
8+
}
9+
}
10+
11+
allprojects {
12+
repositories {
13+
google()
14+
jcenter()
15+
}
16+
}
17+
18+
apply plugin: 'idea'
19+
20+
idea.module {
21+
excludeDirs -= file("build")
22+
excludeDirs += file(".idea")
23+
excludeDirs += file("gradle")
24+
sourceDirs += file("build")
25+
sourceDirs += file("codec")
26+
testSourceDirs += file("test")
27+
testSourceDirs += file("autotest")
28+
resourceDirs += file("res")
29+
resourceDirs += file("docs")
30+
}

build/platform-android.mk

Lines changed: 40 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ SHAREDLIBSUFFIX = so
55
SHAREDLIBSUFFIXFULLVER=$(SHAREDLIBSUFFIX)
66
SHAREDLIBSUFFIXMAJORVER=$(SHAREDLIBSUFFIX)
77
SHLDFLAGS =
8-
NDKLEVEL = 12
8+
9+
NDK_TOOLCHAIN_VERSION = clang
10+
911
ifeq ($(ARCH), arm)
1012
ifneq ($(APP_ABI), armeabi)
1113
CFLAGS += -march=armv7-a -mfloat-abi=softfp
@@ -32,48 +34,49 @@ endif
3234
ifndef NDKROOT
3335
$(error NDKROOT is not set)
3436
endif
37+
3538
ifndef TARGET
3639
$(error TARGET is not set)
3740
endif
3841

39-
TOOLCHAINPREFIX = $(shell NDK_PROJECT_PATH=$(SRC_PATH)/codec/build/android/dec make --no-print-dir -f $(NDKROOT)/build/core/build-local.mk DUMP_TOOLCHAIN_PREFIX APP_ABI=$(APP_ABI))
40-
TOOLCHAIN_NAME = $(shell NDK_TOOLCHAIN_VERSION= NDK_PROJECT_PATH=$(SRC_PATH)/codec/build/android/dec make --no-print-dir -f $(NDKROOT)/build/core/build-local.mk DUMP_TOOLCHAIN_NAME APP_ABI=$(APP_ABI))
41-
GCC_TOOLCHAIN_PATH = $(shell dirname $(TOOLCHAINPREFIX) | xargs dirname )
42-
43-
SYSROOT = $(NDKROOT)/platforms/android-$(NDKLEVEL)/arch-$(ARCH)
44-
CXX = $(TOOLCHAINPREFIX)g++
45-
CC = $(TOOLCHAINPREFIX)gcc
46-
AR = $(TOOLCHAINPREFIX)ar
47-
CFLAGS += -DANDROID_NDK -fpic --sysroot=$(SYSROOT) -MMD -MP
48-
ifeq ($(USE_STACK_PROTECTOR), Yes)
49-
CFLAGS += -fstack-protector-all
42+
ifeq ($(NDKLEVEL),)
43+
NDKLEVEL = $(TARGET:android-%=%)
5044
endif
51-
CFLAGS += -isystem $(NDKROOT)/sysroot/usr/include -isystem $(NDKROOT)/sysroot/usr/include/$(TOOLCHAIN_NAME) -D__ANDROID_API__=$(NDKLEVEL)
45+
46+
CFLAGS += -DANDROID_NDK -fpic -MMD -MP -fstack-protector-all
5247
CXXFLAGS += -fno-rtti -fno-exceptions
53-
LDFLAGS += --sysroot=$(SYSROOT)
5448
SHLDFLAGS = -Wl,--no-undefined -Wl,-z,relro -Wl,-z,now -Wl,-soname,lib$(PROJECT_NAME).so
5549
UTSHLDFLAGS = -Wl,-soname,libut.so
5650

5751
ifeq ($(NDK_TOOLCHAIN_VERSION), clang)
58-
HOST_OS = $(shell uname -s | tr [A-Z] [a-z])
59-
LLVM_INSTALL_DIR = $(NDKROOT)/toolchains/llvm/prebuilt/$(HOST_OS)-x86_64/bin
60-
CC = $(LLVM_INSTALL_DIR)/clang
61-
CXX = $(LLVM_INSTALL_DIR)/clang++
52+
LLVM_INSTALL_DIR = $(wildcard $(NDKROOT)/toolchains/llvm/prebuilt/*/bin)
6253

6354
ifeq ($(ARCH), arm)
64-
TARGET_NAME = armv7-none-linux-androideabi
55+
TARGET_NAME = armv7a-linux-androideabi
6556
else ifeq ($(ARCH), arm64)
66-
TARGET_NAME = aarch64-none-linux-android
57+
TARGET_NAME = aarch64-linux-android
6758
else ifeq ($(ARCH), x86)
68-
TARGET_NAME = i686-none-linux-android
59+
TARGET_NAME = i686-linux-android
6960
else ifeq ($(ARCH), x86_64)
70-
TARGET_NAME = x86_64-none-linux-android
61+
TARGET_NAME = x86_64-linux-android
7162
else
7263
$(error "does not support this arch now!")
7364
endif
7465

75-
CFLAGS += -target $(TARGET_NAME)
76-
LDFLAGS += -target $(TARGET_NAME) -gcc-toolchain $(GCC_TOOLCHAIN_PATH)
66+
CC = $(LLVM_INSTALL_DIR)/$(TARGET_NAME)$(NDKLEVEL)-clang
67+
CXX = $(LLVM_INSTALL_DIR)/$(TARGET_NAME)$(NDKLEVEL)-clang++
68+
AR = $(LLVM_INSTALL_DIR)/llvm-ar
69+
SYSROOT = $(LLVM_INSTALL_DIR)/../sysroot
70+
else
71+
TOOLCHAINPREFIX = $(shell NDK_PROJECT_PATH=$(SRC_PATH)/codec/build/android/dec make --no-print-dir -f $(NDKROOT)/build/core/build-local.mk DUMP_TOOLCHAIN_PREFIX APP_ABI=$(APP_ABI))
72+
TOOLCHAIN_NAME = $(shell NDK_TOOLCHAIN_VERSION= NDK_PROJECT_PATH=$(SRC_PATH)/codec/build/android/dec make --no-print-dir -f $(NDKROOT)/build/core/build-local.mk DUMP_TOOLCHAIN_NAME APP_ABI=$(APP_ABI))
73+
GCC_TOOLCHAIN_PATH = $(shell dirname $(TOOLCHAINPREFIX) | xargs dirname )
74+
SYSROOT = $(NDKROOT)/platforms/android-$(NDKLEVEL)/arch-$(ARCH)
75+
76+
CXX = $(TOOLCHAINPREFIX)g++
77+
CC = $(TOOLCHAINPREFIX)gcc
78+
AR = $(TOOLCHAINPREFIX)ar
79+
CFLAGS += -isystem $(NDKROOT)/sysroot/usr/include -isystem $(NDKROOT)/sysroot/usr/include/$(TOOLCHAIN_NAME) -D__ANDROID_API__=$(NDKLEVEL) --sysroot=$(SYSROOT)
7780
endif
7881

7982
# background reading: https://android.googlesource.com/platform/ndk/+/master/docs/BuildSystemMaintainers.md#unwinding
@@ -82,22 +85,9 @@ LDFLAGS += -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libunwind.a
8285
ifneq ($(findstring /,$(CXX)),$(findstring \,$(CXX)))
8386
ifneq ($(CXX),$(wildcard $(CXX)))
8487
ifneq ($(CXX).exe,$(wildcard $(CXX).exe))
85-
$(error Compiler not found, bad NDKROOT or ARCH?)
86-
endif
88+
$(error Compiler not found, bad NDKROOT or ARCH? $(CXX))
8789
endif
8890
endif
89-
90-
ifeq ($(NDK_TOOLCHAIN_VERSION), clang)
91-
STL_INCLUDES = \
92-
-I$(NDKROOT)/sources/cxx-stl/llvm-libc++/include \
93-
-I$(NDKROOT)/sources/cxx-stl/llvm-libc++abi/include
94-
STL_LIB = \
95-
$(NDKROOT)/sources/cxx-stl/llvm-libc++/libs/$(APP_ABI)/libc++_static.a
96-
else
97-
STL_INCLUDES = \
98-
-I$(NDKROOT)/sources/cxx-stl/stlport/stlport
99-
STL_LIB = \
100-
$(NDKROOT)/sources/cxx-stl/stlport/libs/$(APP_ABI)/libstlport_static.a
10191
endif
10292

10393
GTEST_INCLUDES = $(STL_INCLUDES)
@@ -109,18 +99,26 @@ MODULE_LDFLAGS = $(STL_LIB)
10999
ifeq (./,$(SRC_PATH))
110100
binaries: decdemo encdemo
111101

102+
NDK_BUILD = $(NDKROOT)/ndk-build APP_ABI=$(APP_ABI) APP_PLATFORM=$(TARGET) NDK_TOOLCHAIN_VERSION=$(NDK_TOOLCHAIN_VERSION) V=$(V:Yes=1)
103+
112104
decdemo: libraries
113-
cd ./codec/build/android/dec && $(NDKROOT)/ndk-build -B NDK_TOOLCHAIN_VERSION=$(NDK_TOOLCHAIN_VERSION) APP_ABI=$(APP_ABI) APP_PLATFORM=$(TARGET) && android update project -t $(TARGET) -p . && ant debug
105+
$(NDK_BUILD) -C codec/build/android/dec -B
106+
./gradlew test-dec:assembleDebug
114107

115108
encdemo: libraries
116-
cd ./codec/build/android/enc && $(NDKROOT)/ndk-build -B NDK_TOOLCHAIN_VERSION=$(NDK_TOOLCHAIN_VERSION) APP_ABI=$(APP_ABI) APP_PLATFORM=$(TARGET) && android update project -t $(TARGET) -p . && ant debug
109+
$(NDK_BUILD) -C codec/build/android/enc -B
110+
./gradlew test-enc:assembleDebug
117111

118112
clean_Android: clean_Android_dec clean_Android_enc
119113

120114
clean_Android_dec:
121-
-cd ./codec/build/android/dec && $(NDKROOT)/ndk-build APP_ABI=$(APP_ABI) clean && ant clean
115+
-$(NDK_BUILD) -C codec/build/android/dec clean
116+
-./gradlew test-dec:clean
117+
122118
clean_Android_enc:
123-
-cd ./codec/build/android/enc && $(NDKROOT)/ndk-build APP_ABI=$(APP_ABI) clean && ant clean
119+
-$(NDK_BUILD) -C codec/build/android/enc clean
120+
-./gradlew test-enc:clean
121+
124122
else
125123
clean_Android:
126124
@:

build/platform-gnu-chain.mk

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,15 @@ CFLAGS += -march=armv8-a
2828
ASMFLAGS += -march=armv8-a
2929
endif
3030

31-
ifeq ($(CXX), clang++)
31+
ifneq ($(filter %clang++,$(CXX)),)
3232
CXXFLAGS += -Wc++11-compat-reserved-user-defined-literal
3333
endif
3434

35-
ifeq ($(patsubst %g++,,$(CXX)),)
35+
ifneq ($(filter %g++,$(CXX)),)
36+
ifeq ($(filter %clang++,$(CXX)),)
3637
GCCVER_GTEQ8 = $(shell echo $$(($$($(CXX) -dumpversion | awk -F "." '{print $$1}') >= 8)))
3738
ifeq ($(GCCVER_GTEQ8), 1)
3839
CXXFLAGS += -Wno-class-memaccess
3940
endif
4041
endif
42+
endif

codec/build/android/dec/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
build
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
apply plugin: 'com.android.application'
2+
3+
android {
4+
compileSdkVersion 29
5+
6+
sourceSets.main {
7+
manifest.srcFile "AndroidManifest.xml"
8+
res.srcDir "res"
9+
java.srcDir "src"
10+
jniLibs.srcDir "libs"
11+
}
12+
}

codec/build/android/dec/src/com/wels/dec/WelsDecTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ public boolean onKeyDown (int keyCode, KeyEvent event) {
140140
static {
141141
try {
142142
System.loadLibrary ("openh264");
143-
System.loadLibrary ("stlport_shared");
143+
System.loadLibrary ("c++_shared");
144144
System.loadLibrary ("welsdecdemo");
145145
Log.v (TAG, "Load libwelsdec successful");
146146
} catch (Exception e) {

0 commit comments

Comments
 (0)