Skip to content

Commit

Permalink
Merge branch 'master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
Yuhengwe1 authored Feb 20, 2023
2 parents d5438b1 + 045aeac commit b11d059
Show file tree
Hide file tree
Showing 51 changed files with 2,958 additions and 2,089 deletions.
14 changes: 7 additions & 7 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: sudo apt-get update -qq
- run: sudo apt-get install -qq nasm g++-multilib gcc-multilib libc6-dev-i386 python3-pip python3-setuptools
- run: sudo python3 -m pip install meson==0.52.1 ninja
Expand All @@ -28,7 +28,7 @@ jobs:
asan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: sudo apt-get update -qq
- run: sudo apt-get install -qq nasm
- run: nasm -v
Expand All @@ -40,7 +40,7 @@ jobs:
windows:
runs-on: windows-2019
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: choco install nasm
# nasm is not installed into the $PATH so add it manually
- run: echo "C:\Program Files\NASM" >> $env:GITHUB_PATH
Expand Down Expand Up @@ -68,7 +68,7 @@ jobs:
mingw-w64-x86_64-toolchain
mingw-w64-x86_64-nasm
mingw-w64-x86_64-meson
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: c++ --version
- run: make gmp-bootstrap
- run: make gtest-bootstrap
Expand All @@ -83,7 +83,7 @@ jobs:
macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: brew install nasm meson
- run: make gmp-bootstrap
- run: make gtest-bootstrap
Expand All @@ -97,7 +97,7 @@ jobs:
linux-cross-arm:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: sudo apt-get update -qq
- run: sudo apt-get install -qq g++-arm-linux-gnueabihf g++-aarch64-linux-gnu qemu-user
- run: arm-linux-gnueabihf-g++ --version
Expand All @@ -111,7 +111,7 @@ jobs:
macos-cross-arm64:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: make gmp-bootstrap
- run: make gtest-bootstrap
- run: c++ --version
Expand Down
9 changes: 7 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -59,11 +59,16 @@ codec/build/iOS/dec/welsdec/build/
# editor files
*~

# android gradle integration – regenerated when the project is opened in Android Studio
/.idea/
/.gradle/
/gradle/
/gradlew.bat
/local.properties

#wasm
.vscode/*
*.html
*.js
*.wat
*.wasm
*.data

6 changes: 4 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -368,11 +368,13 @@ endif
ifeq (android,$(OS))
ifeq (./,$(SRC_PATH))
codec_unittest$(EXEEXT):
cd ./test/build/android && $(NDKROOT)/ndk-build -B APP_ABI=$(APP_ABI) && android update project -t $(TARGET) -p . && ant debug
$(NDK_BUILD) -C test/build/android -B
./gradlew unittest:assembleDebug

clean_Android: clean_Android_ut
clean_Android_ut:
-cd ./test/build/android && $(NDKROOT)/ndk-build APP_ABI=$(APP_ABI) clean && ant clean
-$(NDK_BUILD) -C test/build/android -B clean
-./gradlew unittest:clean
endif
endif

Expand Down
4 changes: 2 additions & 2 deletions RELEASES
Original file line number Diff line number Diff line change
Expand Up @@ -231,8 +231,8 @@ http://ciscobinary.openh264.org/libopenh264-2.3.0-linux32.6.so.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.0-linux64.6.so.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.0-linux-arm.6.so.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.0-linux-arm64.6.so.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.0-osx-arm64.6.dylib.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.0-osx-x64.6.dylib.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.0-mac-arm64.6.dylib.bz2
http://ciscobinary.openh264.org/libopenh264-2.3.0-mac-x64.6.dylib.bz2
http://ciscobinary.openh264.org/openh264-2.3.0-win32.dll.bz2
http://ciscobinary.openh264.org/openh264-2.3.0-win64.dll.bz2

Expand Down
30 changes: 30 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.3'
}
}

allprojects {
repositories {
google()
jcenter()
}
}

apply plugin: 'idea'

idea.module {
excludeDirs -= file("build")
excludeDirs += file(".idea")
excludeDirs += file("gradle")
sourceDirs += file("build")
sourceDirs += file("codec")
testSourceDirs += file("test")
testSourceDirs += file("autotest")
resourceDirs += file("res")
resourceDirs += file("docs")
}
82 changes: 40 additions & 42 deletions build/platform-android.mk
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ SHAREDLIBSUFFIX = so
SHAREDLIBSUFFIXFULLVER=$(SHAREDLIBSUFFIX)
SHAREDLIBSUFFIXMAJORVER=$(SHAREDLIBSUFFIX)
SHLDFLAGS =
NDKLEVEL = 12

NDK_TOOLCHAIN_VERSION = clang

ifeq ($(ARCH), arm)
ifneq ($(APP_ABI), armeabi)
CFLAGS += -march=armv7-a -mfloat-abi=softfp
Expand All @@ -32,48 +34,49 @@ endif
ifndef NDKROOT
$(error NDKROOT is not set)
endif

ifndef TARGET
$(error TARGET is not set)
endif

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))
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))
GCC_TOOLCHAIN_PATH = $(shell dirname $(TOOLCHAINPREFIX) | xargs dirname )

SYSROOT = $(NDKROOT)/platforms/android-$(NDKLEVEL)/arch-$(ARCH)
CXX = $(TOOLCHAINPREFIX)g++
CC = $(TOOLCHAINPREFIX)gcc
AR = $(TOOLCHAINPREFIX)ar
CFLAGS += -DANDROID_NDK -fpic --sysroot=$(SYSROOT) -MMD -MP
ifeq ($(USE_STACK_PROTECTOR), Yes)
CFLAGS += -fstack-protector-all
ifeq ($(NDKLEVEL),)
NDKLEVEL = $(TARGET:android-%=%)
endif
CFLAGS += -isystem $(NDKROOT)/sysroot/usr/include -isystem $(NDKROOT)/sysroot/usr/include/$(TOOLCHAIN_NAME) -D__ANDROID_API__=$(NDKLEVEL)

CFLAGS += -DANDROID_NDK -fpic -MMD -MP -fstack-protector-all
CXXFLAGS += -fno-rtti -fno-exceptions
LDFLAGS += --sysroot=$(SYSROOT)
SHLDFLAGS = -Wl,--no-undefined -Wl,-z,relro -Wl,-z,now -Wl,-soname,lib$(PROJECT_NAME).so
UTSHLDFLAGS = -Wl,-soname,libut.so

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

ifeq ($(ARCH), arm)
TARGET_NAME = armv7-none-linux-androideabi
TARGET_NAME = armv7a-linux-androideabi
else ifeq ($(ARCH), arm64)
TARGET_NAME = aarch64-none-linux-android
TARGET_NAME = aarch64-linux-android
else ifeq ($(ARCH), x86)
TARGET_NAME = i686-none-linux-android
TARGET_NAME = i686-linux-android
else ifeq ($(ARCH), x86_64)
TARGET_NAME = x86_64-none-linux-android
TARGET_NAME = x86_64-linux-android
else
$(error "does not support this arch now!")
endif

CFLAGS += -target $(TARGET_NAME)
LDFLAGS += -target $(TARGET_NAME) -gcc-toolchain $(GCC_TOOLCHAIN_PATH)
CC = $(LLVM_INSTALL_DIR)/$(TARGET_NAME)$(NDKLEVEL)-clang
CXX = $(LLVM_INSTALL_DIR)/$(TARGET_NAME)$(NDKLEVEL)-clang++
AR = $(LLVM_INSTALL_DIR)/llvm-ar
SYSROOT = $(LLVM_INSTALL_DIR)/../sysroot
else
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))
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))
GCC_TOOLCHAIN_PATH = $(shell dirname $(TOOLCHAINPREFIX) | xargs dirname )
SYSROOT = $(NDKROOT)/platforms/android-$(NDKLEVEL)/arch-$(ARCH)

CXX = $(TOOLCHAINPREFIX)g++
CC = $(TOOLCHAINPREFIX)gcc
AR = $(TOOLCHAINPREFIX)ar
CFLAGS += -isystem $(NDKROOT)/sysroot/usr/include -isystem $(NDKROOT)/sysroot/usr/include/$(TOOLCHAIN_NAME) -D__ANDROID_API__=$(NDKLEVEL) --sysroot=$(SYSROOT)
endif

# background reading: https://android.googlesource.com/platform/ndk/+/master/docs/BuildSystemMaintainers.md#unwinding
Expand All @@ -82,22 +85,9 @@ LDFLAGS += -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libunwind.a
ifneq ($(findstring /,$(CXX)),$(findstring \,$(CXX)))
ifneq ($(CXX),$(wildcard $(CXX)))
ifneq ($(CXX).exe,$(wildcard $(CXX).exe))
$(error Compiler not found, bad NDKROOT or ARCH?)
endif
$(error Compiler not found, bad NDKROOT or ARCH? $(CXX))
endif
endif

ifeq ($(NDK_TOOLCHAIN_VERSION), clang)
STL_INCLUDES = \
-I$(NDKROOT)/sources/cxx-stl/llvm-libc++/include \
-I$(NDKROOT)/sources/cxx-stl/llvm-libc++abi/include
STL_LIB = \
$(NDKROOT)/sources/cxx-stl/llvm-libc++/libs/$(APP_ABI)/libc++_static.a
else
STL_INCLUDES = \
-I$(NDKROOT)/sources/cxx-stl/stlport/stlport
STL_LIB = \
$(NDKROOT)/sources/cxx-stl/stlport/libs/$(APP_ABI)/libstlport_static.a
endif

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

NDK_BUILD = $(NDKROOT)/ndk-build APP_ABI=$(APP_ABI) APP_PLATFORM=$(TARGET) NDK_TOOLCHAIN_VERSION=$(NDK_TOOLCHAIN_VERSION) V=$(V:Yes=1)

decdemo: libraries
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
$(NDK_BUILD) -C codec/build/android/dec -B
./gradlew test-dec:assembleDebug

encdemo: libraries
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
$(NDK_BUILD) -C codec/build/android/enc -B
./gradlew test-enc:assembleDebug

clean_Android: clean_Android_dec clean_Android_enc

clean_Android_dec:
-cd ./codec/build/android/dec && $(NDKROOT)/ndk-build APP_ABI=$(APP_ABI) clean && ant clean
-$(NDK_BUILD) -C codec/build/android/dec clean
-./gradlew test-dec:clean

clean_Android_enc:
-cd ./codec/build/android/enc && $(NDKROOT)/ndk-build APP_ABI=$(APP_ABI) clean && ant clean
-$(NDK_BUILD) -C codec/build/android/enc clean
-./gradlew test-enc:clean

else
clean_Android:
@:
Expand Down
6 changes: 4 additions & 2 deletions build/platform-gnu-chain.mk
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,15 @@ CFLAGS += -march=armv8-a
ASMFLAGS += -march=armv8-a
endif

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

ifeq ($(patsubst %g++,,$(CXX)),)
ifneq ($(filter %g++,$(CXX)),)
ifeq ($(filter %clang++,$(CXX)),)
GCCVER_GTEQ8 = $(shell echo $$(($$($(CXX) -dumpversion | awk -F "." '{print $$1}') >= 8)))
ifeq ($(GCCVER_GTEQ8), 1)
CXXFLAGS += -Wno-class-memaccess
endif
endif
endif
1 change: 1 addition & 0 deletions codec/build/android/dec/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
build
12 changes: 12 additions & 0 deletions codec/build/android/dec/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apply plugin: 'com.android.application'

android {
compileSdkVersion 29

sourceSets.main {
manifest.srcFile "AndroidManifest.xml"
res.srcDir "res"
java.srcDir "src"
jniLibs.srcDir "libs"
}
}
2 changes: 1 addition & 1 deletion codec/build/android/dec/src/com/wels/dec/WelsDecTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ public boolean onKeyDown (int keyCode, KeyEvent event) {
static {
try {
System.loadLibrary ("openh264");
System.loadLibrary ("stlport_shared");
System.loadLibrary ("c++_shared");
System.loadLibrary ("welsdecdemo");
Log.v (TAG, "Load libwelsdec successful");
} catch (Exception e) {
Expand Down
1 change: 1 addition & 0 deletions codec/build/android/enc/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
build
12 changes: 12 additions & 0 deletions codec/build/android/enc/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apply plugin: 'com.android.application'

android {
compileSdkVersion 29

sourceSets.main {
manifest.srcFile "AndroidManifest.xml"
res.srcDir "res"
java.srcDir "src"
jniLibs.srcDir "libs"
}
}
2 changes: 1 addition & 1 deletion codec/build/android/enc/src/com/wels/enc/WelsEncTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ public native void DoEncoderAutoTest (String cfgFileName, String layerFileName,
static {
try {
System.loadLibrary ("openh264");
System.loadLibrary ("stlport_shared");
System.loadLibrary ("c++_shared");
System.loadLibrary ("welsencdemo");
Log.v (TAG, "Load libwelsencdemo.so successful");
} catch (Exception e) {
Expand Down
1 change: 1 addition & 0 deletions codec/common/inc/crt_util_safe_x.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
#include <time.h>

#if defined(_WIN32)
#define NOMINMAX
#include <windows.h>
#include <sys/types.h>
#include <sys/timeb.h>
Expand Down
Loading

0 comments on commit b11d059

Please sign in to comment.