Always flush the libaom encoder in EncodeFinish
diff --git a/src/codec_aom.c b/src/codec_aom.c index 5db5493..3244b17 100644 --- a/src/codec_aom.c +++ b/src/codec_aom.c
@@ -411,17 +411,14 @@ static avifBool aomCodecEncodeFinish(avifCodec * codec, avifRWData * outSample) { - avifBool flushed = AVIF_FALSE; + // flush encoder + aom_codec_encode(&codec->internal->encoder, NULL, 0, 1, 0); + aom_codec_iter_t iter = NULL; for (;;) { const aom_codec_cx_pkt_t * pkt = aom_codec_get_cx_data(&codec->internal->encoder, &iter); if (pkt == NULL) { - if (flushed) - break; - - aom_codec_encode(&codec->internal->encoder, NULL, 0, 1, 0); // flush - flushed = AVIF_TRUE; - continue; + break; } if (pkt->kind == AOM_CODEC_CX_FRAME_PKT) { avifRWDataSet(outSample, pkt->data.frame.buf, pkt->data.frame.sz);