-
-
Notifications
You must be signed in to change notification settings - Fork 51
Open
Description
In some cases, the compress-API can cause an ANR due to draining memory. The solution should be to either make it fully async (via background thread) or use a different, more stable, compression algorithm. Maybe there are advancements in the Android world since the initial release.
Maybe use Compressor for all compression-related tasks?
ANR log:
main (native):tid=1 systid=10769
#00 pc 0x86b8c libc.so (syscall + 28)
#01 pc 0x1b092c libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*) + 148)
#02 pc 0x3f8964 libart.so (art::JNI<false>::SetByteArrayRegion(_JNIEnv*, _jbyteArray*, int, int, signed char const*) + 504)
#03 pc 0x3410c0 libhwui.so (SkJavaOutputStream::write(void const*, unsigned long) + 92)
#04 pc 0x55825c libhwui.so (sk_empty_output_buffer(jpeg_compress_struct*) (.llvm.15802703823201869038) + 48)
#05 pc 0x12ac8 libjpeg.so (encode_mcu_huff + 820)
#06 pc 0xdcc0 libjpeg.so (compress_output + 504)
#07 pc 0xb2dc libjpeg.so (jpeg_finish_compress + 312)
#08 pc 0x558e7c libhwui.so (SkJpegEncoder::onEncodeRows(int) + 296)
#09 pc 0x558fa4 libhwui.so (SkJpegEncoder::Encode(SkWStream*, SkPixmap const&, SkJpegEncoder::Options const&) + 112)
#10 pc 0x557ef8 libhwui.so (SkEncodeImage(SkWStream*, SkPixmap const&, SkEncodedImageFormat, int) + 64)
#11 pc 0x36375c libhwui.so (android::Bitmap::compress(SkBitmap const&, android::Bitmap::JavaCompressFormat, int, SkWStream*) + 292)
#12 pc 0x3635a8 libhwui.so (android::Bitmap::compress(android::Bitmap::JavaCompressFormat, int, SkWStream*) + 84)
#13 pc 0x338728 libhwui.so (Bitmap_compress(_JNIEnv*, _jobject*, long, int, int, _jobject*, _jbyteArray*) + 136)
at android.graphics.Bitmap.nativeCompress(Native method)
at android.graphics.Bitmap.compress(Bitmap.java:1779)
at ti.imagefactory.ImageFactoryModule.compress(ImageFactoryModule.java:316)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels