Add avifDiagnostics to avifEncoder and avifCodec (internal)
diff --git a/src/read.c b/src/read.c
index 5d7fc3b..cf4b5f0 100644
--- a/src/read.c
+++ b/src/read.c
@@ -2525,7 +2525,6 @@
decoder->maxThreads = 1;
decoder->imageCountLimit = AVIF_DEFAULT_IMAGE_COUNT_LIMIT;
decoder->strictFlags = AVIF_STRICT_ENABLED;
- avifDiagnosticsClearError(&decoder->diag);
return decoder;
}
@@ -2746,6 +2745,7 @@
if (!tile->codec) {
return AVIF_RESULT_NO_CODEC_AVAILABLE;
}
+ tile->codec->diag = &decoder->diag;
if (!tile->codec->open(tile->codec, decoder)) {
return AVIF_RESULT_DECODE_COLOR_FAILED;
}
diff --git a/src/write.c b/src/write.c
index 294d186..e0c9eef 100644
--- a/src/write.c
+++ b/src/write.c
@@ -210,6 +210,7 @@
void avifEncoderSetCodecSpecificOption(avifEncoder * encoder, const char * key, const char * value)
{
+ avifDiagnosticsClearError(&encoder->diag);
avifCodecSpecificOptionsSet(encoder->csOptions, key, value);
}
@@ -492,6 +493,7 @@
return AVIF_RESULT_NO_CODEC_AVAILABLE;
}
item->codec->csOptions = encoder->csOptions;
+ item->codec->diag = &encoder->diag;
if (cellCount > 1) {
item->dimgFromID = gridColorID;
@@ -548,6 +550,7 @@
return AVIF_RESULT_NO_CODEC_AVAILABLE;
}
item->codec->csOptions = encoder->csOptions;
+ item->codec->diag = &encoder->diag;
item->alpha = AVIF_TRUE;
if (cellCount > 1) {
@@ -651,6 +654,7 @@
avifResult avifEncoderAddImage(avifEncoder * encoder, const avifImage * image, uint64_t durationInTimescales, avifAddImageFlags addImageFlags)
{
+ avifDiagnosticsClearError(&encoder->diag);
return avifEncoderAddImageInternal(encoder, 1, 1, &image, durationInTimescales, addImageFlags);
}
@@ -660,6 +664,7 @@
const avifImage * const * cellImages,
avifAddImageFlags addImageFlags)
{
+ avifDiagnosticsClearError(&encoder->diag);
if ((gridCols == 0) || (gridCols > 256) || (gridRows == 0) || (gridRows > 256)) {
return AVIF_RESULT_INVALID_IMAGE_GRID;
}
@@ -684,6 +689,7 @@
avifResult avifEncoderFinish(avifEncoder * encoder, avifRWData * output)
{
+ avifDiagnosticsClearError(&encoder->diag);
if (encoder->data->items.count == 0) {
return AVIF_RESULT_NO_CONTENT;
}