Chinaunix首页 | 论坛 | 博客
  • 博客访问: 537091
  • 博文数量: 119
  • 博客积分: 3391
  • 博客等级: 中校
  • 技术积分: 981
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-12 11:49
文章分类

全部博文(119)

文章存档

2014年(3)

2013年(1)

2011年(18)

2010年(27)

2009年(70)

我的朋友

分类: LINUX

2009-06-11 11:25:39

1.4 视频输入和输出

视频的输入和输出是一个设备的物理连接体。他们可以是RF connectors (antenna/cable)CVBS a.k.a. Composite VideoS-VideoRGB connectors。只有视频和VBI捕获设备具有至少一个输入端,输出设备有至少一个输出端。广播设备没有视频输入和输出。

应用程序可以通过各自调用VIDIOC_ENUMINPUTVIDIOC_ENUMOUTPUTioctl这种枚举的方法来获取可用的输入和输出的编号和属性。当当前的视频输入被询问时,由VIDIOC_ENUMINPUT ioctl返回的结构体v4l2_input也包含了恰当的信号状态信息。

VIDIOC_G_INPUTVIDIOC_G_OUTPUT ioctl返回当前输入或输出的索引。应用程序调用VIDIOC_S_INPUT VIDIOC_S_OUTPUT ioctl来选择不同的输入或输出。当设备具有一个或多个输入或输出时,驱动程序必须执行所有的输入或输出。

1-1 当前视频输入的信息

struct v4l2_input input;

int index;

if (-1 == ioctl (fd, VIDIOC_G_INPUT, &index))

{

  perror ("VIDIOC_G_INPUT");

  exit (EXIT_FAILURE);

}

memset (&input, 0, sizeof (input));

input.index = index;

if (-1 == ioctl (fd, VIDIOC_ENUMINPUT, &input))

{

  perror ("VIDIOC_ENUMINPUT");

  exit (EXIT_FAILURE);

}

printf ("Current input: %s\n", input.name);

 

1-2 转换为第一个视频输入

int index;

index = 0;

if (-1 == ioctl (fd, VIDIOC_S_INPUT, &index))

{

  perror ("VIDIOC_S_INPUT");

  exit (EXIT_FAILURE);

}
阅读(3776) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~