bool g_direct() const { return m_fd->g_direct(); }
void s_direct(bool direct) { m_fd->s_direct(direct); }
+ void querycap(v4l2_capability &cap) { return m_fd->querycap(cap); }
int queryctrl(v4l2_queryctrl &qc) { return m_fd->queryctrl(qc); }
int querymenu(v4l2_querymenu &qm) { return m_fd->querymenu(qm); }
int g_fmt(v4l2_format &fmt, unsigned type = 0) { return m_fd->g_fmt(fmt); }
ctrls.count = 1;
ctrls.ctrl_class = 0;
ctrls.controls = &c;
- if (!cv4l_ioctl(VIDIOC_G_EXT_CTRLS, &ctrls))
+ if (!g_ext_ctrls(ctrls))
setString(ev.id, c.string);
free(c.string);
}
if (v4l_type_is_capture(g_type())) {
memset(&cmd, 0, sizeof(cmd));
cmd.cmd = V4L2_ENC_CMD_STOP;
- cv4l_ioctl(VIDIOC_ENCODER_CMD, &cmd);
+ encoder_cmd(cmd);
}
break;
bool has_streaming() const { return v4l_has_streaming(this); }
bool has_ext_pix_format() const { return v4l_has_ext_pix_format(this); }
+ void querycap(v4l2_capability &cap)
+ {
+ cap = this->cap;
+ }
+
int queryctrl(v4l2_queryctrl &qc)
{
return cv4l_ioctl(VIDIOC_QUERYCTRL, &qc);
return -1;
}
+ int encoder_cmd(v4l2_encoder_cmd &cmd)
+ {
+ return cv4l_ioctl(VIDIOC_ENCODER_CMD, &cmd);
+ }
+
+ int try_encoder_cmd(v4l2_encoder_cmd &cmd)
+ {
+ return cv4l_ioctl(VIDIOC_TRY_ENCODER_CMD, &cmd);
+ }
+
+ int decoder_cmd(v4l2_decoder_cmd &cmd)
+ {
+ return cv4l_ioctl(VIDIOC_DECODER_CMD, &cmd);
+ }
+
+ int try_decoder_cmd(v4l2_decoder_cmd &cmd)
+ {
+ return cv4l_ioctl(VIDIOC_TRY_DECODER_CMD, &cmd);
+ }
+
v4l2_fract g_pixel_aspect(unsigned &width, unsigned &height, unsigned type = 0)
{
v4l2_cropcap ratio;