[FFmpeg-devel] [PATCH v2] avcodec/v4l2_context: suppress POLLERR when buffers are uninitialized

Marton Balint cus at passwd.hu
Thu Jul 27 22:18:38 EEST 2023



On Tue, 25 Jul 2023, Richard Acayan wrote:

> A POLLERR occurs when libavcodec attempts to dequeue output buffers
> before enqueuing capture buffers. This could happen to an application
> deciding to send the first coded packet. Suppress these POLLERRs when
> the buffers are uninitialized.

Will apply, thanks.

Marton

>
> See https://trac.ffmpeg.org/ticket/9957 for the original bug report.
>
> Signed-off-by: Richard Acayan <mailingradian at gmail.com>
> ---
> Changes since v1 (20230718220017.3336-1-mailingradian at gmail.com):
> - stopped emitting POLLERR logs for this case (thanks to feedback from
>   Marton Balint)
>
> libavcodec/v4l2_context.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/libavcodec/v4l2_context.c b/libavcodec/v4l2_context.c
> index a40be94690..f20f713e1d 100644
> --- a/libavcodec/v4l2_context.c
> +++ b/libavcodec/v4l2_context.c
> @@ -325,9 +325,13 @@ start:
>
>     /* 0. handle errors */
>     if (pfd.revents & POLLERR) {
> -        /* if we are trying to get free buffers but none have been queued yet
> -           no need to raise a warning */
> +        /* if we are trying to get free buffers but none have been queued yet,
> +         * or if no buffers have been allocated yet, no need to raise a warning
> +         */
>         if (timeout == 0) {
> +            if (!ctx->buffers)
> +                return NULL;
> +
>             for (i = 0; i < ctx->num_buffers; i++) {
>                 if (ctx->buffers[i].status != V4L2BUF_AVAILABLE)
>                     av_log(logger(ctx), AV_LOG_WARNING, "%s POLLERR\n", ctx->name);
> -- 
> 2.41.0
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>


More information about the ffmpeg-devel mailing list