Disable strict mode when reading avif files

This fixes https://github.com/opencv/opencv/issues/26011
This commit is contained in:
Vincent Rabaud 2024-08-28 11:49:27 +02:00
parent 766bad0035
commit a17fafc3af

View File

@ -143,6 +143,7 @@ AvifDecoder::AvifDecoder() {
m_buf_supported = true; m_buf_supported = true;
channels_ = 0; channels_ = 0;
decoder_ = avifDecoderCreate(); decoder_ = avifDecoderCreate();
decoder_->strictFlags = AVIF_STRICT_DISABLED;
} }
AvifDecoder::~AvifDecoder() { AvifDecoder::~AvifDecoder() {
@ -166,6 +167,7 @@ bool AvifDecoder::checkSignature(const String &signature) const {
std::unique_ptr<avifDecoder, decltype(&avifDecoderDestroy)> decoder( std::unique_ptr<avifDecoder, decltype(&avifDecoderDestroy)> decoder(
avifDecoderCreate(), avifDecoderDestroy); avifDecoderCreate(), avifDecoderDestroy);
if (!decoder) return false; if (!decoder) return false;
decoder->strictFlags = AVIF_STRICT_DISABLED;
OPENCV_AVIF_CHECK_STATUS( OPENCV_AVIF_CHECK_STATUS(
avifDecoderSetIOMemory( avifDecoderSetIOMemory(
decoder.get(), reinterpret_cast<const uint8_t *>(signature.c_str()), decoder.get(), reinterpret_cast<const uint8_t *>(signature.c_str()),