Introduce gif rewriter stub

This commit is contained in:
tarsin committed 2023-01-17 10:50:11 +08:00
1 parent 726f482c33
commit 6dea7faac8
3 files changed
+20 -1

No files matched your search

+1 -1
View File
@@ -45,6 +45,6 @@ SET(LIBARCHIVE_CUSTOM_LIBS "liblzma" "nettle")
add_subdirectory(libarchive)
# Build and link our app's native lib
add_library(${PROJECT_NAME} SHARED archive.c fdutils.c)
add_library(${PROJECT_NAME} SHARED archive.c fdutils.c gifutils.c)
target_include_directories(${PROJECT_NAME} PUBLIC libarchive/libarchive)
target_link_libraries(${PROJECT_NAME} archive_static log -Wl,--gc-sections)
+15
View File
@@ -0,0 +1,15 @@
#include <jni.h>
#include <android/log.h>
#define LOG_TAG "gifUtils"
#include "ehviewer.h"
JNIEXPORT void JNICALL
Java_com_hippo_image_Image_rewriteGifSource(JNIEnv *env, jclass clazz, jobject buffer) {
void *addr = (*env)->GetDirectBufferAddress(env, buffer);
size_t size = (*env)->GetDirectBufferCapacity(env, buffer);
EH_UNUSED(addr);
EH_UNUSED(size);
}
@@ -80,6 +80,7 @@ class Image private constructor(source: Source, private var releaseCall: (() ->
fun decode(src: ByteBufferSource): Image? {
val directBuffer = src.getByteBuffer()
check(directBuffer.isDirect)
rewriteGifSource(directBuffer)
return runCatching {
Image(ImageDecoder.createSource(directBuffer)) {
src.close()
@@ -89,6 +90,9 @@ class Image private constructor(source: Source, private var releaseCall: (() ->
it.printStackTrace()
}.getOrNull()
}
@JvmStatic
private external fun rewriteGifSource(buffer: ByteBuffer)
}
interface ByteBufferSource : AutoCloseable {