diff options
author | Vedant Paranjape <vedantparanjape160201@gmail.com> | 2022-01-04 18:37:08 +0530 |
---|---|---|
committer | Hans Verkuil <hverkuil-cisco@xs4all.nl> | 2022-01-10 12:49:59 +0100 |
commit | 9f0eab72e17e4167c2d4df790c7e384240ce5c37 (patch) | |
tree | b515dd0953765d144218a52df575a25631057272 | |
parent | d4b7017466a9f0d7603404629e8248c66007bfb9 (diff) | |
download | v4l-utils-9f0eab72e17e4167c2d4df790c7e384240ce5c37.tar.gz |
v4l2-utils: Fix incorrect use of fd in streaming_set_cap2out
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>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
-rw-r--r-- | utils/v4l2-ctl/v4l2-ctl-streaming.cpp | 4 |
1 files 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; |