diff options
author | 2021-01-13 09:46:06 -0500 | |
---|---|---|
committer | 2021-01-13 12:09:18 -0500 | |
commit | c2ebc2bcf37d1ba67bd3c1ec66a65aa947ac086e (patch) | |
tree | 9d4f3428c4abad233ab4259f5dff75fbbb5646e3 /native/graphics | |
parent | 946f8d41bc0eb69bd45f612b4875633eda203086 (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.cpp | 6 | ||||
-rw-r--r-- | native/graphics/jni/libjnigraphics.map.txt | 1 |
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 |