avifenc: Fix y4m/stdin corner cases when trying to detect a "single image" encode
diff --git a/apps/avifenc.c b/apps/avifenc.c index 1a6ab6f..19e92c0 100644 --- a/apps/avifenc.c +++ b/apps/avifenc.c
@@ -188,6 +188,13 @@ } return &input->files[input->fileIndex]; } +static avifBool avifInputHasRemainingData(avifInput * input) +{ + if (input->useStdin) { + return !feof(stdin); + } + return (input->fileIndex < input->filesCount); +} static avifAppFileFormat avifInputReadImage(avifInput * input, avifImage * image, uint32_t * outDepth) { @@ -777,7 +784,7 @@ encoder->keyframeInterval = keyframeInterval; uint32_t addImageFlags = AVIF_ADD_IMAGE_FLAG_NONE; - if (input.filesCount == 1) { + if (!avifInputHasRemainingData(&input)) { addImageFlags |= AVIF_ADD_IMAGE_FLAG_SINGLE; }