UVC 补充说明


1. UVC demo说明

UVC demo source code 在sdk/verify/mi\_demo/alderaan/uvc下。板子烧好image后,uvc demo的可执行bin档在板子的/customer/mi\_demo/prog\_uvc下。


1.1. 编译步骤

  1. cd project

  2. ./setup_config.sh ./xxx (参考编译补充说明)

  3. cd sdk/verify/mi_demo/alderaan

  4. make uvc

  5. get prog_uvc bin at sdk/verify/mi_demo/out/demo/app


1.2. 运行prog_uvc

/customer/mi\_demo \# ./prog\_uvc

输入数字来选择分辨率

    index 0, Crop(0,0,1920,1080), outputsize(1948,1097), maxfps 30, minfps 3,
    ResDesc 1920x1080\@30fps

    choice which resolution use, cnt 1

    0

Windows端可以用PotPlay预览UVC设备的图像,右键->打开->设备设置,按如下操作即可看到画面:

图1-1


2. UVC 添加IQ选项设定说明

  1. 在kernel中使能processing unit的设置(其他的unit要在其他相应的地方做同样的设置):

    vi ./drivers/usb/gadget/legacy/webcam.c

    图2-1

    将图中标识部分都设为0xff,表示1.0中所有的镜头属性设置都支持。修改完后替换g_webcam.ko到板子上。

  2. 先确定要添加的设置属于哪个UNIT ID,然后在应用层的函数“_UVC_Events_Process_Control”中, 最对应的UNIT ID下添加需要的设置,并将其GET INFO中返回的data设为0x3。例如要增加对比度(contrast)的设置,首先确定对比度的设置属于Processing Unit(通过查UVC的spec获知);

    图2-2

    UVC_GET_INFO case中data设为0x03, 如下:

    图2-3

  3. 在应用层函数“usb_vc_out_data(uint8_t entity, uint8_t cs, uint32_t len, struct uvc_request_data * data)”中添加相应的Unit ID及选项(如果没有的话),函数参数中的“data”则是PC那边传过来的所设定的值。并在这里调用IQ的API进行相应选项的设定。

    例如对比度设置,修改如下:

    图2-4