Skip to content

Commit df72163

Browse files
committed
Also compile dav1d only 8bit depth color
1 parent 6f89be9 commit df72163

146 files changed

Lines changed: 13247 additions & 32 deletions

File tree

Some content is hidden

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

.idea/compiler.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/gradle.xml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/build.gradle

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,17 @@ android {
1414
versionName "1.0"
1515
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1616
}
17+
18+
flavorDimensions "depth"
19+
productFlavors {
20+
full {
21+
dimension "depth"
22+
}
23+
only8bpc {
24+
dimension "depth"
25+
}
26+
}
27+
1728
buildTypes {
1829
release {
1930
minifyEnabled false

benchmark/build.gradle

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,16 @@ android {
1515
testInstrumentationRunner 'androidx.benchmark.AndroidBenchmarkRunner'
1616
}
1717

18+
flavorDimensions "depth"
19+
productFlavors {
20+
full {
21+
dimension "depth"
22+
}
23+
only8bpc {
24+
dimension "depth"
25+
}
26+
}
27+
1828
buildTypes {
1929
debug {
2030
// Since debuggable can't be modified by gradle for library modules,

glideavif/build.gradle

Lines changed: 53 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
apply plugin: 'com.android.library'
2-
apply plugin: 'kotlin-android'
3-
apply plugin: 'kotlin-android-extensions'
4-
apply plugin: 'kotlin-kapt'
5-
apply plugin: 'maven'
6-
7-
def deployTo = new File(rootDir, "repository")
1+
plugins {
2+
id 'com.android.library'
3+
id 'kotlin-android'
4+
id 'kotlin-android-extensions'
5+
id 'kotlin-kapt'
6+
id 'maven-publish'
7+
}
88

99
android {
10-
compileSdkVersion 29
10+
compileSdkVersion 30
1111
buildToolsVersion "29.0.3"
12-
ndkVersion "21.3.6528147"
12+
ndkVersion "21.4.7075529"
1313

1414
defaultConfig {
1515
minSdkVersion 16
16-
targetSdkVersion 29
16+
targetSdkVersion 30
1717
versionCode 1
1818
versionName "1.0"
1919

@@ -26,6 +26,26 @@ android {
2626
}
2727
}
2828

29+
flavorDimensions "depth"
30+
productFlavors {
31+
full {
32+
dimension "depth"
33+
externalNativeBuild {
34+
cmake {
35+
arguments +='-DFLAVOR_DEPTH=full'
36+
}
37+
}
38+
}
39+
only8bpc {
40+
dimension "depth"
41+
externalNativeBuild {
42+
cmake {
43+
arguments +='-DFLAVOR_DEPTH=only8bpc'
44+
}
45+
}
46+
}
47+
}
48+
2949
buildTypes {
3050
release {
3151
minifyEnabled false
@@ -62,13 +82,28 @@ dependencies {
6282
kapt 'com.github.bumptech.glide:compiler:4.11.0'
6383
}
6484

65-
uploadArchives {
66-
repositories {
67-
mavenDeployer {
68-
repository url: "file://${deployTo}"
69-
pom.version = '0.8.0'
70-
pom.groupId = 'jp.co.link_u.library.glideavif'
71-
pom.artifactId = 'glideavif'
85+
def mavenVersion = '0.8.0'
86+
87+
afterEvaluate {
88+
publishing {
89+
publications {
90+
fullRelease(MavenPublication) {
91+
groupId = 'jp.co.link_u.library.glideavif'
92+
artifactId = 'glideavif'
93+
version = mavenVersion
94+
from components.fullRelease
95+
}
96+
only8bpcRelease(MavenPublication) {
97+
groupId = 'jp.co.link_u.library.glideavif'
98+
artifactId = 'glideavif-8bpc'
99+
version = mavenVersion
100+
from components.only8bpcRelease
101+
}
102+
}
103+
repositories {
104+
maven {
105+
url = uri("$rootDir/repository")
106+
}
72107
}
73108
}
74-
}
109+
}
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
```shell
22
docker-compose up --build
3-
cp -rf build/lib/* ../src/main/cpp/lib/
4-
cp -rf build/include/arm64-v8a/dav1d/* ../src/main/cpp/include/dav1d/
3+
cp -rf build/* ../src/main/cpp/libdav1d/
54
```

glideavif/libdav1d_builder/docker-compose.yml

Lines changed: 46 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ services:
55
build:
66
context: docker
77
args: &args
8-
NDK: r21d
8+
NDK: r21e
99
DAV1D_VERSION: 0.8.2
1010
CLANG: "%CPU_FAMILY-linux-android%API_LEVEL-clang"
1111
UTIL: "%CPU_FAMILY-linux-android"
@@ -14,13 +14,25 @@ services:
1414
API_LEVEL: 21
1515
ARCH: arm64-v8a
1616
LIBTYPE: static
17+
DEPTH: "['8','16']"
18+
DEPTH_NAME: full
1719
volumes:
1820
- ./build:/mnt/libdav1d
1921

20-
armeabi-v7a:
22+
arm64-v8a-8bpc:
2123
build:
2224
context: docker
2325
args:
26+
<<: *args
27+
DEPTH: "['8']"
28+
DEPTH_NAME: only8bpc
29+
volumes:
30+
- ./build:/mnt/libdav1d
31+
32+
armeabi-v7a:
33+
build:
34+
context: docker
35+
args: &armv7
2436
<<: *args
2537
CLANG: "%CPU_FAMILY-linux-androideabi%API_LEVEL-clang"
2638
UTIL: arm-linux-androideabi
@@ -31,21 +43,41 @@ services:
3143
volumes:
3244
- ./build:/mnt/libdav1d
3345

34-
x86_64:
46+
armeabi-v7a-8bpc:
3547
build:
3648
context: docker
3749
args:
50+
<<: *armv7
51+
DEPTH: "['8']"
52+
DEPTH_NAME: only8bpc
53+
volumes:
54+
- ./build:/mnt/libdav1d
55+
56+
x86_64:
57+
build:
58+
context: docker
59+
args: &x64
3860
<<: *args
3961
CPU_FAMILY: x86_64
4062
CPU: i686
4163
ARCH: x86_64
4264
volumes:
4365
- ./build:/mnt/libdav1d
4466

45-
x86:
67+
x86_64-8bpc:
4668
build:
4769
context: docker
4870
args:
71+
<<: *x64
72+
DEPTH: "['8']"
73+
DEPTH_NAME: only8bpc
74+
volumes:
75+
- ./build:/mnt/libdav1d
76+
77+
x86:
78+
build:
79+
context: docker
80+
args: &x86
4981
<<: *args
5082
CLANG: "%CPU-linux-android%API_LEVEL-clang"
5183
UTIL: "%CPU-linux-android"
@@ -55,3 +87,13 @@ services:
5587
ARCH: x86
5688
volumes:
5789
- ./build:/mnt/libdav1d
90+
91+
x86-8bpc:
92+
build:
93+
context: docker
94+
args:
95+
<<: *x86
96+
DEPTH: "['8']"
97+
DEPTH_NAME: only8bpc
98+
volumes:
99+
- ./build:/mnt/libdav1d

glideavif/libdav1d_builder/docker/Dockerfile

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,17 +39,20 @@ RUN sed -i \
3939
-e 's/%TOOLCHAIN_ROOT/\/usr\/local\/src\/android-ndk\/toolchains\/llvm\/prebuilt\/linux-x86_64/' dav1d_cross.txt
4040

4141
ARG LIBTYPE
42+
ARG DEPTH
4243
RUN /root/.local/bin/meson .. \
44+
"-Dbitdepths=${DEPTH}" \
4345
--cross-file dav1d_cross.txt \
4446
--default-library ${LIBTYPE} \
4547
--buildtype release && \
4648
ninja
4749

4850
ARG ARCH
49-
RUN mkdir -p /opt/libdav1d/lib/${ARCH} /opt/libdav1d/include/${ARCH} && \
50-
cp src/libdav1d.a /opt/libdav1d/lib/${ARCH}/ && \
51-
cp -rf ../include/* /opt/libdav1d/include/${ARCH}/ && \
52-
find /opt/libdav1d/include/${ARCH}/ -type f -not -name "*.h" -exec rm {} + && \
53-
cp -rf include/* /opt/libdav1d/include/${ARCH}/
51+
ARG DEPTH_NAME
52+
RUN mkdir -p /opt/libdav1d/${DEPTH_NAME}/lib/${ARCH} /opt/libdav1d/${DEPTH_NAME}/include/${ARCH} && \
53+
cp src/libdav1d.a /opt/libdav1d/${DEPTH_NAME}/lib/${ARCH}/ && \
54+
cp -rf ../include/* /opt/libdav1d/${DEPTH_NAME}/include/${ARCH}/ && \
55+
find /opt/libdav1d/${DEPTH_NAME}/include/${ARCH}/ -type f -not -name "*.h" -exec rm {} + && \
56+
cp -rf include/* /opt/libdav1d/${DEPTH_NAME}/include/${ARCH}/
5457

5558
CMD ["cp", "-rf", "/opt/libdav1d", "/mnt/"]

glideavif/src/main/cpp/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ project(avif_decoder CXX)
66
string(REPLACE "-Wl,--fatal-warnings " "" NOWARNING ${CMAKE_SHARED_LINKER_FLAGS})
77
set(CMAKE_SHARED_LINKER_FLAGS ${NOWARNING})
88

9-
set(DAV1D_DIR ${CMAKE_CURRENT_SOURCE_DIR})
10-
set(DAV1D_INCLUDES ${DAV1D_DIR}/include)
9+
set(DAV1D_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libdav1d/${FLAVOR_DEPTH})
10+
set(DAV1D_INCLUDES ${DAV1D_DIR}/include/${ANDROID_ABI})
1111
set(DAV1D_LIBS ${DAV1D_DIR}/lib/${ANDROID_ABI})
1212
set(YUV_DIR ${CMAKE_CURRENT_SOURCE_DIR})
1313
set(YUV_INCLUDES ${YUV_DIR}/include)

0 commit comments

Comments
 (0)