mirror of
https://invent.kde.org/frameworks/kimageformats.git
synced 2025-05-28 00:30:23 -04:00
avif: minor fixes
libavif 0.11.0 uses new default dimension limit 32768 pixels, we allow 65535 which was used by us previously. Minor tweaks in jumpToNextImage, jumpToImage to handle rare situations.
This commit is contained in:
parent
bfb12093ad
commit
afa7399b36
@ -137,6 +137,10 @@ bool QAVIFHandler::ensureDecoder()
|
|||||||
m_decoder->strictFlags = AVIF_STRICT_DISABLED;
|
m_decoder->strictFlags = AVIF_STRICT_DISABLED;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if AVIF_VERSION >= 110000
|
||||||
|
m_decoder->imageDimensionLimit = 65535;
|
||||||
|
#endif
|
||||||
|
|
||||||
avifResult decodeResult;
|
avifResult decodeResult;
|
||||||
|
|
||||||
decodeResult = avifDecoderSetIOMemory(m_decoder, m_rawAvifData.data, m_rawAvifData.size);
|
decodeResult = avifDecoderSetIOMemory(m_decoder, m_rawAvifData.data, m_rawAvifData.size);
|
||||||
@ -917,6 +921,7 @@ bool QAVIFHandler::jumpToNextImage()
|
|||||||
|
|
||||||
if (m_decoder->imageIndex >= 0) {
|
if (m_decoder->imageIndex >= 0) {
|
||||||
if (m_decoder->imageCount < 2) {
|
if (m_decoder->imageCount < 2) {
|
||||||
|
m_parseState = ParseAvifSuccess;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -961,10 +966,12 @@ bool QAVIFHandler::jumpToImage(int imageNumber)
|
|||||||
|
|
||||||
if (m_decoder->imageCount < 2) { // not an animation
|
if (m_decoder->imageCount < 2) { // not an animation
|
||||||
if (imageNumber == 0) {
|
if (imageNumber == 0) {
|
||||||
return ensureOpened();
|
if (ensureOpened()) {
|
||||||
} else {
|
m_parseState = ParseAvifSuccess;
|
||||||
return false;
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (imageNumber < 0 || imageNumber >= m_decoder->imageCount) { // wrong index
|
if (imageNumber < 0 || imageNumber >= m_decoder->imageCount) { // wrong index
|
||||||
@ -973,6 +980,7 @@ bool QAVIFHandler::jumpToImage(int imageNumber)
|
|||||||
|
|
||||||
if (imageNumber == m_decoder->imageIndex) { // we are here already
|
if (imageNumber == m_decoder->imageIndex) { // we are here already
|
||||||
m_must_jump_to_next_image = false;
|
m_must_jump_to_next_image = false;
|
||||||
|
m_parseState = ParseAvifSuccess;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user