avcodec: v4l2_m2m: context: fix raising warning on POLLERR

During the initialization stage, the codec attempts to get free
buffers from the driver before any have been queued (this is to keep
the code simple and generic)

When the kernel driver detects this situation, it returns POLLERR in
revents and ffmpeg therefore raises a warning.

This commit disables the warning since no buffers were queued to the
driver yet.

Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
This commit is contained in:
Jorge Ramirez-Ortiz 2018-01-09 23:56:43 +01:00 committed by Mark Thompson
parent 5d5de3eba4
commit 0b9b7f0b46
1 changed files with 11 additions and 1 deletions

View File

@ -290,7 +290,17 @@ start:
/* 0. handle errors */
if (pfd.revents & POLLERR) {
av_log(logger(ctx), AV_LOG_WARNING, "%s POLLERR\n", ctx->name);
/* if we are trying to get free buffers but none have been queued yet
no need to raise a warning */
if (timeout == 0) {
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);
}
}
else
av_log(logger(ctx), AV_LOG_WARNING, "%s POLLERR\n", ctx->name);
return NULL;
}