接続されたビデオ デバイスが提供できる最大解像度を検出するにはどうすればよいですか?
何もキャプチャしたくありません。v4l2 からこの情報を取得するだけです。
ありがとう!
接続されたビデオ デバイスが提供できる最大解像度を検出するにはどうすればよいですか?
何もキャプチャしたくありません。v4l2 からこの情報を取得するだけです。
ありがとう!
VIDIOC_ENUM_FRAMESIZES
ioctlを使用します。
enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
struct v4l2_fmtdesc fmt;
struct v4l2_frmsizeenum frmsize;
struct v4l2_frmivalenum frmival;
fmt.index = 0;
fmt.type = type;
while (ioctl(fd, VIDIOC_ENUM_FMT, &fmt) >= 0) {
frmsize.pixel_format = fmt.pixelformat;
frmsize.index = 0;
while (ioctl(fd, VIDIOC_ENUM_FRAMESIZES, &frmsize) >= 0) {
if (frmsize.type == V4L2_FRMSIZE_TYPE_DISCRETE) {
printf("%dx%d\n",
frmsize.discrete.width,
frmsize.discrete.height);
} else if (frmsize.type == V4L2_FRMSIZE_TYPE_STEPWISE) {
printf("%dx%d\n",
frmsize.stepwise.max_width,
frmsize.stepwise.max_height);
}
frmsize.index++;
}
fmt.index++;
}
私の知る限り、VIDIOC_ENUM_FRAMESIZES
linux-2.6.29 で導入されました