Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion src/backends/camera/pipewire/enumeration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,14 @@ fn get_v4l2_driver(device_path: &str) -> Option<String> {
reserved: [0; 3],
};

let result = unsafe { libc::ioctl(fd, VIDIOC_QUERYCAP, &mut cap as *mut V4l2Capability) };
let result = unsafe {
libc::syscall(
libc::SYS_ioctl,
fd,
VIDIOC_QUERYCAP,
&mut cap as *mut V4l2Capability,
)
};

if result < 0 {
debug!(device_path, "Failed to query V4L2 capability");
Expand Down
36 changes: 32 additions & 4 deletions src/backends/camera/v4l2_controls.rs
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,14 @@ pub fn query_control(device_path: &str, control_id: u32) -> Option<ControlInfo>
reserved: [0; 2],
};

let result = unsafe { libc::ioctl(fd, VIDIOC_QUERYCTRL, &mut qctrl as *mut V4l2Queryctrl) };
let result = unsafe {
libc::syscall(
libc::SYS_ioctl,
fd,
VIDIOC_QUERYCTRL,
&mut qctrl as *mut V4l2Queryctrl,
)
};

if result < 0 {
return None;
Expand Down Expand Up @@ -260,7 +267,14 @@ pub fn get_control(device_path: &str, control_id: u32) -> Option<i32> {
value: 0,
};

let result = unsafe { libc::ioctl(fd, VIDIOC_G_CTRL, &mut ctrl as *mut V4l2Control) };
let result = unsafe {
libc::syscall(
libc::SYS_ioctl,
fd,
VIDIOC_G_CTRL,
&mut ctrl as *mut V4l2Control,
)
};

if result < 0 {
debug!(device_path, control_id, "Failed to get V4L2 control");
Expand All @@ -280,7 +294,14 @@ pub fn set_control(device_path: &str, control_id: u32, value: i32) -> Result<(),
value,
};

let result = unsafe { libc::ioctl(fd, VIDIOC_S_CTRL, &mut ctrl as *mut V4l2Control) };
let result = unsafe {
libc::syscall(
libc::SYS_ioctl,
fd,
VIDIOC_S_CTRL,
&mut ctrl as *mut V4l2Control,
)
};

if result < 0 {
let errno = std::io::Error::last_os_error();
Expand Down Expand Up @@ -326,7 +347,14 @@ pub fn query_menu_items(device_path: &str, control_id: u32, max_index: i32) -> V
reserved: 0,
};

let result = unsafe { libc::ioctl(fd, VIDIOC_QUERYMENU, &mut qmenu as *mut V4l2Querymenu) };
let result = unsafe {
libc::syscall(
libc::SYS_ioctl,
fd,
VIDIOC_QUERYMENU,
&mut qmenu as *mut V4l2Querymenu,
)
};

if result >= 0 {
items.push(MenuItem {
Expand Down