我在做v4l2视频采集的时候,需要将320X240缩小为160X120,请问v4l2缩放是如何实现的?谢谢。
发布网友
发布时间:2022-05-07 13:30
我来回答
共1个回答
热心网友
时间:2023-11-02 08:40
int posWindow(int *fd)
{
struct v4l2_window window;
struct v4l2_format fmt;
if(*fd <0)
{
printf("posWindow :fd error :%d\r\n");
return -1;
}
if(-1 == ioctl(*fd, VIDIOC_G_FMT,&fmt))
{
printf("posWindow G_FMT ERROR\r\n");
//return -1;
}
fmt.type = V4L2_BUF_TYPE_VIDEO_OVERLAY;
fmt.fmt.win.w.left = 100;
fmt.fmt.win.w.top = 50;
fmt.fmt.win.w.width = 360;
fmt.fmt.win.w.height = 288;
if(-1 == ioctl(*fd,VIDIOC_S_FMT,&fmt))
{
printf("ERROR FMT SET\r\n");
}
printf("left :%d top :%d width :%d height:%d\r\n",fmt.fmt.win.w.left,fmt.fmt.win.w.top,fmt.fmt.win.w.width,fmt.fmt.win.w.height);
}
调用:initDisplay(&display_fd);posWindow(&display_fd);初始化显示设备以后调用缩放函数。
热心网友
时间:2023-11-02 08:40
int posWindow(int *fd)
{
struct v4l2_window window;
struct v4l2_format fmt;
if(*fd <0)
{
printf("posWindow :fd error :%d\r\n");
return -1;
}
if(-1 == ioctl(*fd, VIDIOC_G_FMT,&fmt))
{
printf("posWindow G_FMT ERROR\r\n");
//return -1;
}
fmt.type = V4L2_BUF_TYPE_VIDEO_OVERLAY;
fmt.fmt.win.w.left = 100;
fmt.fmt.win.w.top = 50;
fmt.fmt.win.w.width = 360;
fmt.fmt.win.w.height = 288;
if(-1 == ioctl(*fd,VIDIOC_S_FMT,&fmt))
{
printf("ERROR FMT SET\r\n");
}
printf("left :%d top :%d width :%d height:%d\r\n",fmt.fmt.win.w.left,fmt.fmt.win.w.top,fmt.fmt.win.w.width,fmt.fmt.win.w.height);
}
调用:initDisplay(&display_fd);posWindow(&display_fd);初始化显示设备以后调用缩放函数。
热心网友
时间:2023-11-02 08:40
int posWindow(int *fd)
{
struct v4l2_window window;
struct v4l2_format fmt;
if(*fd <0)
{
printf("posWindow :fd error :%d\r\n");
return -1;
}
if(-1 == ioctl(*fd, VIDIOC_G_FMT,&fmt))
{
printf("posWindow G_FMT ERROR\r\n");
//return -1;
}
fmt.type = V4L2_BUF_TYPE_VIDEO_OVERLAY;
fmt.fmt.win.w.left = 100;
fmt.fmt.win.w.top = 50;
fmt.fmt.win.w.width = 360;
fmt.fmt.win.w.height = 288;
if(-1 == ioctl(*fd,VIDIOC_S_FMT,&fmt))
{
printf("ERROR FMT SET\r\n");
}
printf("left :%d top :%d width :%d height:%d\r\n",fmt.fmt.win.w.left,fmt.fmt.win.w.top,fmt.fmt.win.w.width,fmt.fmt.win.w.height);
}
调用:initDisplay(&display_fd);posWindow(&display_fd);初始化显示设备以后调用缩放函数。
热心网友
时间:2023-11-02 08:40
int posWindow(int *fd)
{
struct v4l2_window window;
struct v4l2_format fmt;
if(*fd <0)
{
printf("posWindow :fd error :%d\r\n");
return -1;
}
if(-1 == ioctl(*fd, VIDIOC_G_FMT,&fmt))
{
printf("posWindow G_FMT ERROR\r\n");
//return -1;
}
fmt.type = V4L2_BUF_TYPE_VIDEO_OVERLAY;
fmt.fmt.win.w.left = 100;
fmt.fmt.win.w.top = 50;
fmt.fmt.win.w.width = 360;
fmt.fmt.win.w.height = 288;
if(-1 == ioctl(*fd,VIDIOC_S_FMT,&fmt))
{
printf("ERROR FMT SET\r\n");
}
printf("left :%d top :%d width :%d height:%d\r\n",fmt.fmt.win.w.left,fmt.fmt.win.w.top,fmt.fmt.win.w.width,fmt.fmt.win.w.height);
}
调用:initDisplay(&display_fd);posWindow(&display_fd);初始化显示设备以后调用缩放函数。
热心网友
时间:2023-11-02 08:40
int posWindow(int *fd)
{
struct v4l2_window window;
struct v4l2_format fmt;
if(*fd <0)
{
printf("posWindow :fd error :%d\r\n");
return -1;
}
if(-1 == ioctl(*fd, VIDIOC_G_FMT,&fmt))
{
printf("posWindow G_FMT ERROR\r\n");
//return -1;
}
fmt.type = V4L2_BUF_TYPE_VIDEO_OVERLAY;
fmt.fmt.win.w.left = 100;
fmt.fmt.win.w.top = 50;
fmt.fmt.win.w.width = 360;
fmt.fmt.win.w.height = 288;
if(-1 == ioctl(*fd,VIDIOC_S_FMT,&fmt))
{
printf("ERROR FMT SET\r\n");
}
printf("left :%d top :%d width :%d height:%d\r\n",fmt.fmt.win.w.left,fmt.fmt.win.w.top,fmt.fmt.win.w.width,fmt.fmt.win.w.height);
}
调用:initDisplay(&display_fd);posWindow(&display_fd);初始化显示设备以后调用缩放函数。
热心网友
时间:2023-11-02 08:40
int posWindow(int *fd)
{
struct v4l2_window window;
struct v4l2_format fmt;
if(*fd <0)
{
printf("posWindow :fd error :%d\r\n");
return -1;
}
if(-1 == ioctl(*fd, VIDIOC_G_FMT,&fmt))
{
printf("posWindow G_FMT ERROR\r\n");
//return -1;
}
fmt.type = V4L2_BUF_TYPE_VIDEO_OVERLAY;
fmt.fmt.win.w.left = 100;
fmt.fmt.win.w.top = 50;
fmt.fmt.win.w.width = 360;
fmt.fmt.win.w.height = 288;
if(-1 == ioctl(*fd,VIDIOC_S_FMT,&fmt))
{
printf("ERROR FMT SET\r\n");
}
printf("left :%d top :%d width :%d height:%d\r\n",fmt.fmt.win.w.left,fmt.fmt.win.w.top,fmt.fmt.win.w.width,fmt.fmt.win.w.height);
}
调用:initDisplay(&display_fd);posWindow(&display_fd);初始化显示设备以后调用缩放函数。
热心网友
时间:2023-11-02 08:40
int posWindow(int *fd)
{
struct v4l2_window window;
struct v4l2_format fmt;
if(*fd <0)
{
printf("posWindow :fd error :%d\r\n");
return -1;
}
if(-1 == ioctl(*fd, VIDIOC_G_FMT,&fmt))
{
printf("posWindow G_FMT ERROR\r\n");
//return -1;
}
fmt.type = V4L2_BUF_TYPE_VIDEO_OVERLAY;
fmt.fmt.win.w.left = 100;
fmt.fmt.win.w.top = 50;
fmt.fmt.win.w.width = 360;
fmt.fmt.win.w.height = 288;
if(-1 == ioctl(*fd,VIDIOC_S_FMT,&fmt))
{
printf("ERROR FMT SET\r\n");
}
printf("left :%d top :%d width :%d height:%d\r\n",fmt.fmt.win.w.left,fmt.fmt.win.w.top,fmt.fmt.win.w.width,fmt.fmt.win.w.height);
}
调用:initDisplay(&display_fd);posWindow(&display_fd);初始化显示设备以后调用缩放函数。