v4l2在幀緩衝區預覽攝像頭

2021-08-20 03:09:41 字數 1303 閱讀 8569

在應用層通過v4l2 api將採集的攝像頭資料yuv轉為rgb後寫到幀緩衝區達到預覽攝像頭的目的,程式執行後切換到tty下就可以看到。我的螢幕是bgra格式的,這點要注意,不同螢幕格式不同,不同r,g,b的偏移通過修改(0x00<<24) | (r0<<16) | (g0<<8) | (b0<<0);中的順序即可

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /**

** v4l2在幀快取區預覽攝像頭: gcc -std=c99 -o main main.c

**/static int width;//螢幕寬度

static int height;//螢幕高度

static __u32 *pfb;//螢幕緩衝區指標

static int fb;

static struct fb_fix_screeninfo finfo;

static struct fb_var_screeninfo vinfo;

void fb_fillimg(const __u32* img);

void initfb()

printf("open /dev/fb0 success \n");

//得到固定螢幕資訊

ret = ioctl(fb,fbioget_fscreeninfo,&finfo);

//得到可變螢幕資訊

ret = ioctl(fb, fbioget_vscreeninfo, &vinfo);

if (ret < 0)

width = vinfo.xres_virtual;

height = vinfo.yres_virtual;

printf("width=%d,height=%d\n",width,height);

//對映幀緩衝區基址

pfb = (__u32*)mmap(null, finfo.smem_len, prot_read | prot_write, map_shared, fb, 0);

if (null == pfb)

}void closefb()

/** ** yuv422轉bgra

**/int max(int a,int b){ return a預覽效果:

v4l2攝像頭驅動

環境 硬體 radxa rock開發板,藍色妖姬t998無驅攝像頭 系統 lubuntu 3月15號韌體,v4l2 其實我只是把草根老師的部落格 改了些引數 1.攝像頭的模式由o rdwr o nonblock改為o rdwr,若不改,會報dq buf的bug 3.n buffer中途會莫名其妙改變...

V4L2 獲取和配置攝像頭

一 v4l2 獲取和配置攝像頭程式示例 include include include include include include include includeint fd const char input dev dev video0 const char qctrl name null i...

USB攝像頭驅動配置及V4L2程式設計

摘要 學位授予單位 燕山大學 學位級別 碩士 學位授予年份 2011 其實uboot啟動映像主要是在原來的zimage前加上乙個他要0x40的tag,告訴uboot一些關於核心啟動的資訊。在arch arm boot makefile 62行開始有命令和規則 quiet cmd uimage uim...