Module: Rubycam::Ioctl

Defined in:
lib/rubycam/ioctl.rb

Constant Summary collapse

NONE =
0
WRITE =
1
READ =
2
CAPABILITY_SIZE =

struct v4l2_capability { u8 driver; u8 card; u8 bus_info; u32 version; u32 capabilities; u32 device_caps; u32 reserved; }

104
QUERYCTRL_SIZE =

struct v4l2_queryctrl { u32 id; u32 type; u8 name; s32 min; s32 max; s32 step; s32 default; u32 flags; u32 reserved; }

68
CONTROL_SIZE =

struct v4l2_control { u32 id; s32 value; }

8
FORMAT_SIZE =

struct v4l2_format { u32 type; u8 pad; union fmt; } (8-aligned union)

208
REQUESTBUFFERS_SIZE =

struct v4l2_requestbuffers { u32 count; u32 type; u32 memory; u32 capabilities; u8 flags; u8 reserved; }

20
BUFFER_SIZE =

struct v4l2_buffer (64-bit): u32 index,type,bytesused,flags,field; pad4; timeval(16); v4l2_timecode(16); u32 sequence,memory; union m(8); u32 length,reserved2,request_fd; pad4;

88
STREAMPARM_SIZE =

struct v4l2_streamparm { u32 type; union parm; }

204
V =
'V'
VIDIOC_QUERYCAP =
ior(V, 0, CAPABILITY_SIZE)
VIDIOC_G_FMT =
iowr(V, 4, FORMAT_SIZE)
VIDIOC_S_FMT =
iowr(V, 5, FORMAT_SIZE)
VIDIOC_REQBUFS =
iowr(V, 8, REQUESTBUFFERS_SIZE)
VIDIOC_QUERYBUF =
iowr(V, 9, BUFFER_SIZE)
VIDIOC_QBUF =
iowr(V, 15, BUFFER_SIZE)
VIDIOC_DQBUF =
iowr(V, 17, BUFFER_SIZE)
VIDIOC_STREAMON =
iow(V, 18, 4)
VIDIOC_STREAMOFF =
iow(V, 19, 4)
VIDIOC_G_PARM =
iowr(V, 21, STREAMPARM_SIZE)
VIDIOC_S_PARM =
iowr(V, 22, STREAMPARM_SIZE)
VIDIOC_G_CTRL =
iowr(V, 27, CONTROL_SIZE)
VIDIOC_S_CTRL =
iowr(V, 28, CONTROL_SIZE)
VIDIOC_QUERYCTRL =
iowr(V, 36, QUERYCTRL_SIZE)

Class Method Summary collapse

Class Method Details

.ioc(dir, type, nr, size) ⇒ Object



13
# File 'lib/rubycam/ioctl.rb', line 13

def self.ioc(dir, type, nr, size) = (dir << 30) | (size << 16) | (type.ord << 8) | nr

.ior(type, nr, size) ⇒ Object



15
# File 'lib/rubycam/ioctl.rb', line 15

def self.ior(type, nr, size)  = ioc(READ, type, nr, size)

.iow(type, nr, size) ⇒ Object



16
# File 'lib/rubycam/ioctl.rb', line 16

def self.iow(type, nr, size)  = ioc(WRITE, type, nr, size)

.iowr(type, nr, size) ⇒ Object



14
# File 'lib/rubycam/ioctl.rb', line 14

def self.iowr(type, nr, size) = ioc(WRITE | READ, type, nr, size)