问题:采集的图像质量很差,只有隔行显示,而且每帧图像不断的往下移动?
初步判断是奇偶场图像没有合成成一个完整的帧图像。本人尝试设置成奇偶场的格式(fmt.fmt.pix.field = V4L2_FIELD_INTERLACED),但是mv_pro_4.0.1内核不支持。
1:开发环境
2:移植步骤
3:采集显示的图片
4:超级终端打印信息
1、开发环境
开发板:seed-dvs6467 v1.0
开发环境:ubuntu12.04
TI 软件包:dvsdk_1_40_02_33
内核版本:mv_pro_4.0.1(seed公司修改了相关的驱动)
运行实例: encodedecode
移植ti dvsdk_demos_for_evm6467 目录下的encodedecode 到seed-dvs6467 v1.0
2、移植步骤:
2.1、在内核mv_pro_4.0.1\montavista\pro\devkit\lsp\ti-davinci\linux-2.6.10_mvl401_LSP_01_30_00_082\drivers\media\video\davinci目录下,davincihd_capture.c文件中修改void vpif_get_std_info函数,然后重新编译内核(make uImage)。
static void vpif_get_std_info(struct channel_obj *ch)
{
// struct decoder_device *dec = ch->decoder[ch->current_decoder];
struct video_obj *vid_ch = &(ch->video);
// struct v4l2_standard standard;
// int index = 0, ret;
int ret;
vid_ch->std_info.channel_id = ch->channel_id;
/* Get standard name from the decoder by enumerating standards */
if(vid_ch->std==TVP5158_STD_PAL_13)
{
strncpy(vid_ch->std_info.name, "TVP5158_PAL_13",
sizeof(vid_ch->std_info.name));
strncpy(ch->vpifparams.video_params.name,
"TVP5158_PAL_13", sizeof(vid_ch->std_info.name));
}
else
{
strncpy(vid_ch->std_info.name, "TVP5158_NTSC_13",
sizeof(vid_ch->std_info.name));
strncpy(ch->vpifparams.video_params.name,
"TVP5158_NTSC_13", sizeof(vid_ch->std_info.name));
}
/* Get standard information from VPIF layer */
/*changed the height from 2500 to 576 ,width from 712 to 720 by zhangzhonghua */
ret = vpif_get_mode_info(&vid_ch->std_info);
ch->common[VPIF_VIDEO_INDEX].fmt.fmt.pix.width =
ch->common[VPIF_VIDEO_INDEX].width = 720;
if(vid_ch->std==TVP5158_STD_PAL_13)
{
ch->common[VPIF_VIDEO_INDEX].fmt.fmt.pix.height =
ch->common[VPIF_VIDEO_INDEX].height = 576;
}
else
{
ch->common[VPIF_VIDEO_INDEX].fmt.fmt.pix.height =
ch->common[VPIF_VIDEO_INDEX].height = 2100;
}
ch->common[VPIF_VIDEO_INDEX].fmt.fmt.pix.bytesperline =720;
ch->vpifparams.video_params.hpitch = 720;
ch->vpifparams.video_params.storage_mode =1;
}