修改了下版主给的 ccdcamtest,采集V4L2_PIX_FMT_NV12视频流,最后把视频流保存下来,打开文件头几帧是花屏,后边就都是正确的,麻烦大神们给点意见。
附件分别为前5帧的截图和修改后的代码。其中1-3帧是错误的,第四帧是正确的,第五帧左半部分有整体下移的情况。(工具不支持420SP格式,色彩显示不出来 )
源码修改:
1:修改类型
struct v4l2_format fmt;
memset(&fmt, 0, sizeof fmt);
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
fmt.fmt.pix.width = Width;
fmt.fmt.pix.height = Height;
fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_NV12;
fmt.fmt.pix.sizeimage = (fmt.fmt.pix.width * fmt.fmt.pix.height * 3) / 2;
2:将结果保存
fwrite(data,sizeof(char),captureBuffer[b.index].len,fp);
// decodeYUV420SP((unsigned int*)Addr, data, Width, Height);
第一帧:
第二帧:
第三帧:
第四帧:
第五帧: