[FFmpeg-devel] [EXT] [PATCH 2/2] avcodec/v4l2_context: Finish draining if V4L2_BUF_FLAG_LAST is set
Ming Qian
ming.qian at nxp.com
Thu Apr 30 04:40:43 EEST 2020
> From: Andriy Gelman <andriy.gelman at gmail.com>
>
> V4L2 api can indicate that flushing of the capture buffers is completed by
> setting the V4L2_BUF_FLAG_LAST flag.
> Use guards because the flag was only defined in Linux v4.2.
>
> Reference:
> linux/Documentation/media/uapi/v4l/dev-decoder.rst
>
> "The client must continue to handle both queues independently,
> similarly to normal decode operation. This includes:
> ...
> - queuing and dequeuing CAPTURE buffers, until a buffer marked with
> the V4L2_BUF_FLAG_LAST flag is dequeued"
>
> Signed-off-by: Andriy Gelman <andriy.gelman at gmail.com>
> ---
> libavcodec/v4l2_context.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/libavcodec/v4l2_context.c b/libavcodec/v4l2_context.c index
> f0ecc18ebd..da802405e4 100644
> --- a/libavcodec/v4l2_context.c
> +++ b/libavcodec/v4l2_context.c
> @@ -400,6 +400,10 @@ dequeue:
> ctx->done = 1;
> return NULL;
> }
> +#ifdef V4L2_BUF_FLAG_LAST
> + if (buf.flags & V4L2_BUF_FLAG_LAST)
> + ctx->done = 1;
> +#endif
> }
>
> avbuf = &ctx->buffers[buf.index];
> --
> 2.25.1
>
Lgtm
More information about the ffmpeg-devel
mailing list