All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1] v4l2-utils: Fix incorrect use of fd in streaming_set_cap2out
@ 2022-01-04 13:07 Vedant Paranjape
  2022-01-04 20:08 ` Laurent Pinchart
  0 siblings, 1 reply; 2+ messages in thread
From: Vedant Paranjape @ 2022-01-04 13:07 UTC (permalink / raw)
  To: linux-media; +Cc: laurent.pinchart, hverkuil-cisco, Vedant Paranjape

Running the "Stream video from a capture video device (/dev/video1) to an
output video device (/dev/video2)" example from the manpage with vivid
as the output device failed with a error message.

vedant@pc ~$ v4l2-ctl --list-devices
vivid (platform:vivid-000):
        /dev/video2
        /dev/video3
        /dev/radio0
        /dev/radio1
        /dev/vbi0
        /dev/vbi1
        /dev/swradio0
        /dev/media1

HD WebCam: HD WebCam (usb-0000:00:14.0-7):
        /dev/video0
        /dev/video1
        /dev/media0

vedant@pc ~$ v4l2-ctl -d0 --stream-mmap --out-device /dev/video3 --stream-out-dmabuf
               VIDIOC_G_FMT returned -1 (Invalid argument)
<VIDIOC_QBUF: failed: Invalid argument
handle out -1
handle out2in -1

While using the --out-device mode g_fmt must be operated on out_fd as
well. determine_field was called on fps_timestamp object for output, but was
not passed out_fd.

This patch fixes the VIDIOC_G_FMT returned -1 (Invalid argument) error.

Signed-off-by: Vedant Paranjape <vedantparanjape160201@gmail.com>
---
 utils/v4l2-ctl/v4l2-ctl-streaming.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/utils/v4l2-ctl/v4l2-ctl-streaming.cpp b/utils/v4l2-ctl/v4l2-ctl-streaming.cpp
index 752ea140..7f6482d6 100644
--- a/utils/v4l2-ctl/v4l2-ctl-streaming.cpp
+++ b/utils/v4l2-ctl/v4l2-ctl-streaming.cpp
@@ -2666,7 +2666,7 @@ static void streaming_set_cap2out(cv4l_fd &fd, cv4l_fd &out_fd)
 	unsigned cnt = 0;
 	cv4l_fmt fmt[2];
 
-	fd.g_fmt(fmt[OUT], out.g_type());
+	out_fd.g_fmt(fmt[OUT], out.g_type());
 	fd.g_fmt(fmt[CAP], in.g_type());
 	if (!(capabilities & (V4L2_CAP_VIDEO_CAPTURE |
 			      V4L2_CAP_VIDEO_CAPTURE_MPLANE |
@@ -2757,7 +2757,7 @@ static void streaming_set_cap2out(cv4l_fd &fd, cv4l_fd &out_fd)
 	}
 
 	fps_ts[CAP].determine_field(fd.g_fd(), in.g_type());
-	fps_ts[OUT].determine_field(fd.g_fd(), out.g_type());
+	fps_ts[OUT].determine_field(out_fd.g_fd(), out.g_type());
 
 	if (fd.streamon() || out_fd.streamon())
 		goto done;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v1] v4l2-utils: Fix incorrect use of fd in streaming_set_cap2out
  2022-01-04 13:07 [PATCH v1] v4l2-utils: Fix incorrect use of fd in streaming_set_cap2out Vedant Paranjape
@ 2022-01-04 20:08 ` Laurent Pinchart
  0 siblings, 0 replies; 2+ messages in thread
From: Laurent Pinchart @ 2022-01-04 20:08 UTC (permalink / raw)
  To: Vedant Paranjape; +Cc: linux-media, Hans Verkuil

Hi Vedant,

Thank you for the patch.

On Tue, Jan 04, 2022 at 06:37:08PM +0530, Vedant Paranjape wrote:
> Running the "Stream video from a capture video device (/dev/video1) to an
> output video device (/dev/video2)" example from the manpage with vivid
> as the output device failed with a error message.
> 
> vedant@pc ~$ v4l2-ctl --list-devices
> vivid (platform:vivid-000):
>         /dev/video2
>         /dev/video3
>         /dev/radio0
>         /dev/radio1
>         /dev/vbi0
>         /dev/vbi1
>         /dev/swradio0
>         /dev/media1
> 
> HD WebCam: HD WebCam (usb-0000:00:14.0-7):
>         /dev/video0
>         /dev/video1
>         /dev/media0
> 
> vedant@pc ~$ v4l2-ctl -d0 --stream-mmap --out-device /dev/video3 --stream-out-dmabuf
>                VIDIOC_G_FMT returned -1 (Invalid argument)
> <VIDIOC_QBUF: failed: Invalid argument
> handle out -1
> handle out2in -1
> 
> While using the --out-device mode g_fmt must be operated on out_fd as
> well. determine_field was called on fps_timestamp object for output, but was
> not passed out_fd.
> 
> This patch fixes the VIDIOC_G_FMT returned -1 (Invalid argument) error.
> 
> Signed-off-by: Vedant Paranjape <vedantparanjape160201@gmail.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
>  utils/v4l2-ctl/v4l2-ctl-streaming.cpp | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/utils/v4l2-ctl/v4l2-ctl-streaming.cpp b/utils/v4l2-ctl/v4l2-ctl-streaming.cpp
> index 752ea140..7f6482d6 100644
> --- a/utils/v4l2-ctl/v4l2-ctl-streaming.cpp
> +++ b/utils/v4l2-ctl/v4l2-ctl-streaming.cpp
> @@ -2666,7 +2666,7 @@ static void streaming_set_cap2out(cv4l_fd &fd, cv4l_fd &out_fd)
>  	unsigned cnt = 0;
>  	cv4l_fmt fmt[2];
>  
> -	fd.g_fmt(fmt[OUT], out.g_type());
> +	out_fd.g_fmt(fmt[OUT], out.g_type());
>  	fd.g_fmt(fmt[CAP], in.g_type());
>  	if (!(capabilities & (V4L2_CAP_VIDEO_CAPTURE |
>  			      V4L2_CAP_VIDEO_CAPTURE_MPLANE |
> @@ -2757,7 +2757,7 @@ static void streaming_set_cap2out(cv4l_fd &fd, cv4l_fd &out_fd)
>  	}
>  
>  	fps_ts[CAP].determine_field(fd.g_fd(), in.g_type());
> -	fps_ts[OUT].determine_field(fd.g_fd(), out.g_type());
> +	fps_ts[OUT].determine_field(out_fd.g_fd(), out.g_type());
>  
>  	if (fd.streamon() || out_fd.streamon())
>  		goto done;

-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-01-04 20:08 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-04 13:07 [PATCH v1] v4l2-utils: Fix incorrect use of fd in streaming_set_cap2out Vedant Paranjape
2022-01-04 20:08 ` Laurent Pinchart

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.