当前位置: 技术问答>linux和unix
嵌入式linux如何显示YUV格式采集的视频
来源: 互联网 发布时间:2016-10-31
本文导语: 最近在做视频的采集和显示,在S3C6410平台上,以前没做过,现在遇到一些问题,当采用RGB565格式采集视频时显示没有问题,但是采用YUV420就会显示花屏,我是采集视频然后将数据存到帧缓冲区FrameBuffer memcpy(&fb_addr[0]...
最近在做视频的采集和显示,在S3C6410平台上,以前没做过,现在遇到一些问题,当采用RGB565格式采集视频时显示没有问题,但是采用YUV420就会显示花屏,我是采集视频然后将数据存到帧缓冲区FrameBuffer
memcpy(&fb_addr[0],vf_buff,width*height*3/2);//RGB是memcpy(&fb_addr[0],vf_buff,width*height*fb_bpp/8);
我不知道后面的显示过程是什么样子的,内部直接把FrameBuffer里的数据显示到屏幕上?有没有设置格式之类的
而且struct v4l2_format source_fmt好像不起作用一样,我随便设置不影响结果
我的帧缓冲区设置如下:
static inline int fb_init(void)//帧缓冲设备初始化
{
int dev_fp = -1;
int fb_size;
struct fb_var_screeninfo vinfo;
dev_fp = open("/dev/fb0", O_RDWR);
if (dev_fp
memcpy(&fb_addr[0],vf_buff,width*height*3/2);//RGB是memcpy(&fb_addr[0],vf_buff,width*height*fb_bpp/8);
我不知道后面的显示过程是什么样子的,内部直接把FrameBuffer里的数据显示到屏幕上?有没有设置格式之类的
而且struct v4l2_format source_fmt好像不起作用一样,我随便设置不影响结果
我的帧缓冲区设置如下:
static inline int fb_init(void)//帧缓冲设备初始化
{
int dev_fp = -1;
int fb_size;
struct fb_var_screeninfo vinfo;
dev_fp = open("/dev/fb0", O_RDWR);
if (dev_fp