[4/4] v4l2: v4l2_camera_proxy: Set DONE flag on error buffers
diff mbox series

Message ID 20261027212447.2551591-5-laurent.pinchart@ideasonboard.com
State New
Headers show
Series
  • v4l2: Fix v4l2-compliance errors
Related show

Commit Message

Laurent Pinchart Oct. 27, 2026, 9:24 p.m. UTC
A buffer that has completed with an error is considered by the V4L2 API
as done. videobuf2 sets both V4L2_BUF_FLAG_DONE and V4L2_BUF_FLAG_ERROR
flags in that case. Copy that behaviour in v4l2-compat.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 src/v4l2/v4l2_camera_proxy.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jacopo Mondi Oct. 28, 2026, 7:37 a.m. UTC | #1
Hi Laurent

On Tue, Oct 27, 2026 at 11:24:47PM +0200, Laurent Pinchart wrote:
> A buffer that has completed with an error is considered by the V4L2 API
> as done. videobuf2 sets both V4L2_BUF_FLAG_DONE and V4L2_BUF_FLAG_ERROR
> flags in that case. Copy that behaviour in v4l2-compat.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Makes sense
Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
> ---
>  src/v4l2/v4l2_camera_proxy.cpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp
> index 03b8a4210046..28dfb2c4b63c 100644
> --- a/src/v4l2/v4l2_camera_proxy.cpp
> +++ b/src/v4l2/v4l2_camera_proxy.cpp
> @@ -262,7 +262,7 @@ void V4L2CameraProxy::updateBuffers()
>  			buf.flags |= V4L2_BUF_FLAG_DONE;
>  			break;
>  		case FrameMetadata::FrameError:
> -			buf.flags |= V4L2_BUF_FLAG_ERROR;
> +			buf.flags |= V4L2_BUF_FLAG_DONE | V4L2_BUF_FLAG_ERROR;
>  			break;
>  		default:
>  			break;
> --
> Regards,
>
> Laurent Pinchart
>

Patch
diff mbox series

diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp
index 03b8a4210046..28dfb2c4b63c 100644
--- a/src/v4l2/v4l2_camera_proxy.cpp
+++ b/src/v4l2/v4l2_camera_proxy.cpp
@@ -262,7 +262,7 @@  void V4L2CameraProxy::updateBuffers()
 			buf.flags |= V4L2_BUF_FLAG_DONE;
 			break;
 		case FrameMetadata::FrameError:
-			buf.flags |= V4L2_BUF_FLAG_ERROR;
+			buf.flags |= V4L2_BUF_FLAG_DONE | V4L2_BUF_FLAG_ERROR;
 			break;
 		default:
 			break;