[FFmpeg-devel] [PATCH] avcodec/cbs_apv: don't return an error when reading empty buffers

Mark Thompson sw at jkqxz.net
Thu May 1 00:17:26 EEST 2025


On 29/04/2025 20:57, James Almer wrote:
> The output will be a fragment with zero units, which is a lot more user friendly
> than making them think something went wrong, as it already happens with cbs_av1.
> 
> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
>  libavcodec/cbs_apv.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/libavcodec/cbs_apv.c b/libavcodec/cbs_apv.c
> index 2c4a1daaf0..66ea4cebab 100644
> --- a/libavcodec/cbs_apv.c
> +++ b/libavcodec/cbs_apv.c
> @@ -175,7 +175,7 @@ static int cbs_apv_split_fragment(CodedBitstreamContext *ctx,
>  
>      if (frag->data_size < 4) {
>          // Too small to be a valid fragment.
> -        return AVERROR_INVALIDDATA;
> +        return 0;
>      }
>  
>      // Don't include parsing here in trace output.

Seems fair for a zero-size buffer, but I don't like this for a three-byte fragment containing { 0xab, 0xcd, 0xef } - that feels like it should return an error.

Maybe it would make more sense to have a separate check for zero.  What do you think?

Thanks,

- Mark



More information about the ffmpeg-devel mailing list