summaryrefslogtreecommitdiff
path: root/native/graphics
diff options
context:
space:
mode:
author Leon Scroggins III <scroggo@google.com> 2021-01-13 09:46:06 -0500
committer Leon Scroggins III <scroggo@google.com> 2021-01-13 12:09:18 -0500
commitc2ebc2bcf37d1ba67bd3c1ec66a65aa947ac086e (patch)
tree9d4f3428c4abad233ab4259f5dff75fbbb5646e3 /native/graphics
parent946f8d41bc0eb69bd45f612b4875633eda203086 (diff)
Implement AImageDecoder_setInternallyHandleDisposePrevious
Bug: 160984428 Test: I00682f201a52f894b0e1335c00c4368ce675a805 Also fix a bug caught by the new test. If the current frame is the first in a series of one or more RestorePrevious frames, fPriorFrame should be set to |currentFrame - 1|. Otherwise SkCodec will decode the required frame. This is wasted work, since the prior frame should already be prepared (either by AImageDecoder or by the client). Change-Id: I1fb9f91dc66fd3121f187b9a91c15f625eb17f8d
Diffstat (limited to 'native/graphics')
-rw-r--r--native/graphics/jni/imagedecoder.cpp6
-rw-r--r--native/graphics/jni/libjnigraphics.map.txt1
2 files changed, 7 insertions, 0 deletions
diff --git a/native/graphics/jni/imagedecoder.cpp b/native/graphics/jni/imagedecoder.cpp
index 0f6190722aa3..5973790e48fd 100644
--- a/native/graphics/jni/imagedecoder.cpp
+++ b/native/graphics/jni/imagedecoder.cpp
@@ -535,3 +535,9 @@ int32_t AImageDecoderFrameInfo_getBlendOp(const AImageDecoderFrameInfo* info) {
return ANDROID_IMAGE_DECODER_BLEND_OP_SRC_OVER;
}
}
+
+void AImageDecoder_setInternallyHandleDisposePrevious(AImageDecoder* decoder, bool handle) {
+ if (decoder) {
+ toDecoder(decoder)->setHandleRestorePrevious(handle);
+ }
+}
diff --git a/native/graphics/jni/libjnigraphics.map.txt b/native/graphics/jni/libjnigraphics.map.txt
index d8c3cefd30ca..e0df7945ab0e 100644
--- a/native/graphics/jni/libjnigraphics.map.txt
+++ b/native/graphics/jni/libjnigraphics.map.txt
@@ -19,6 +19,7 @@ LIBJNIGRAPHICS {
AImageDecoder_advanceFrame; # introduced=31
AImageDecoder_rewind; # introduced=31
AImageDecoder_getFrameInfo; # introduced = 31
+ AImageDecoder_setInternallyHandleDisposePrevious; # introduced = 31
AImageDecoderHeaderInfo_getWidth; # introduced=30
AImageDecoderHeaderInfo_getHeight; # introduced=30
AImageDecoderHeaderInfo_getMimeType; # introduced=30