TI中文支持网
TI专业的中文技术问题搜集分享网站

DM365的帧率如何设置?

在网上看到下面的一段话

/*

VIDIOC_S_PARM

set stream param

设置流参数,这个和video capture是相同的,这里的param.type是V4L2_BUF_TYPE_VIDEO_CAPTURE,其中timeperframe的分母是需要设定的帧率,而分子是1。

ioctl(camera_device, VIDIOC_S_PARM, &parm) ;

[PS]这里补充一点stream param方面的spec:

一般来说当前的帧率是由当前的视频标准来决定的,如果默认采用视频标准的帧率就不需要设置流参数,但是如果想获得或者设定自己的帧率就需要使用VIDIOC_G_PARM, VIDIOC_S_PARM:

int ioctl(int fd, int request, v4l2_streamparm *argp);

struct v4l2_stramparam包含以下主要成员:

enum v4l2_buf_type type

union param

struct v4l2_captureparm capture

struct v4l2_outputparam output

//要注意的是在这里,不管是overaly还是capture,这里的buffer type都是选择的V4L2_BUF_TYPE_VIDEO_CAPTURE。

Struct v4l2_captureparam包含以下主要成员:

__u32 capturemode

//是否支持高质量图像捕捉

struct v4l2_fract timeperframe

//设置帧率,通过分母分子实现

这里要注意的是,通过 VIDIOC_S_PARM设置帧率不一定成功,driver会根据硬件限制来设置这些参数,所以一般设置以后可以通过VIDIOC_G_PARM来看设定是否成功。

*/

但是在v4l2中的所有程序没有找到v4l2_streamparm的结构体初始化,请问DM365的帧率是在v4l2驱动中设置吗?还是在别的什么地方设置?

Ternence_Hsu:

你好;

      在 dvsdk_2_10_01_18/dvsdk_demos_2_10_00_17/dm365/encode/main.c 中有一个配置帧率的参数,你可以修改为对应的帧率

if (args.videoStd == VideoStd_D1_PAL) {videoEnv.videoFrameRate= 25000;} else {videoEnv.videoFrameRate= 30000;}

赞(0)
未经允许不得转载:TI中文支持网 » DM365的帧率如何设置?
分享到: 更多 (0)