AMLOGIC UVC And UAC User Guide

目录
1 概述
2 Android平台UVC和UAC功能
        2.1 平台环境
        2.2 功能支持
3 Demo调测
        3.1 UVC YUV图片传输
        3.2 UVC MJPEG图片传输
        3.3 UVC实时采集视频流MJPEG传输
        3.4 UAC实时录放
4 参考

1 概述
        本文档描述了Android平台上如何使用UVC和UAC的功能,并提供Demo调测结果和说明。

2 Android平台UVC和UAC功能
        2.1 平台环境
        A311D2 T7-AN400平台是Android R系统环境,OpenLinux SDK版本以实际发布为准。
        该平台的USB功能默认支持ADB,没有开放UVC和UAC相关功能,需要驱动合入相关功能的补丁支持,
        另ADB与UVC有冲突,本篇仅提供配置控制开关使用,用户可以自行添加服务支持。
        2.2 功能支持
        有关UVC功能、UAC功能、UVC+UAC组合功能的支持,请联系工程师获取相关补丁合入。
        提供UVC Server主程序(见参考),支持Demo出流演示。
        简要说明UVC Server Demo的过程:
        使用V4L2接口打开UVC Device,比如/dev/video0,初始化设备节点的信息,包括包大小、Bulk
        Mode等相关参数与驱动保持一致。
        初始化事件,先填充probe和commit,通过VIDIOC_SUBSCRIBE_EVENT注册到驱动,UVC事件包
        括:SETUP,DATA,STREAMON, STREAMOFF。
        循环DQEVENT处理事件:CONNECT->SETUP->DATA(probe+commit)->STREAMON-
>STREAMOFF->DISCONNECT。
        STREAMON之后可以通过DQBUF/QBUF传输流数据,数据流可以自行构建Pipeline去Fill Buffer。
        注意:init.amlogic.usb.rc脚本创建UVC的格式、分辨率和帧间隔与Demo保持一致。
        当前Demo仅支持mjpeg 1280×720 30fps和yuv 640×360 15fps/10fps/2fps,可以自行调试。
 

3 Demo调测
        按照Openlinux SDK版本合入相关patch,并根据Release文档编译出镜像文件烧录到AN400板子上,启动后默认支持ADB,需要按照以下顺序开启配置进行调测。
        上电启动完成后,以Root权限运行,需要先开启配置 —> [如果外接USB Camera,此时插上] —> 启动服务。
        USB线到Host端的插拔与启动服务的先后无关,可以先连线再启动服务,也可以启动服务后再连线。
        3.1 UVC YUV图片传输
        第一步:开启配置



setprop sys.usb.config uvc //如果是UVC+UAC2组合,setprop sys.usb.config uvc,uac2
setprop sys.usb.configfs 1

        第二步:启动服务



/system/bin/uvcdemo -u /dev/video0 -i /data/test-640-360.yuv -f 0 -r 0
注意:需要将编译好的uvcdemo程序和yuv图片文件通过ADB先上传到相应路径下,也可以自行编译放到系统
中。

        第三步:Host端(以Windows10为例,需要USB线连接)
        可以使用VLC播放器->捕获设备->视频选择UVC Camera,音频选择无,VLC默认只出YUV格式预览。

AMLOGIC UVC And UAC User Guide

3.2 UVC MJPEG图片传输
第一步:开启配置



setprop sys.usb.config uvc //如果是UVC+UAC2组合,setprop sys.usb.config uvc,uac2
setprop sys.usb.configfs 1

第二步:启动服务



/system/bin/uvcdemo -u /dev/video0 -i /data/test-1280-720.jpg -f 1 -r 1
注意:需要将编译好的uvcdemo程序和yuv图片文件通过ADB先上传到相应路径下,也可以自行编译放到系统
中。

第三步:Host端(以Windows10为例,需要USB线连接)
可以使用自带应用相机,自动打开视频预览,默认选择MJPEG格式。

AMLOGIC UVC And UAC User Guide

3.3 UVC实时采集视频流MJPEG传输
第一步:开启配置



setprop sys.usb.config uvc //如果是UVC+UAC2组合,setprop sys.usb.config uvc,uac2
setprop sys.usb.configfs 1

第二步:插入外接USB Camera



确认将外接USB Camera插入板子,以实际除UVC生成的节点/dev/video0之外的设备为准,此处
为/dev/video1。

第三步:启动服务



#如果要测试yuv,修改-f 0 -r 0,后用VLC观测
/system/bin/uvcdemo -u /dev/video0 -v /dev/video1 -f 1 -r 1
注意:需要将编译好的uvcdemo程序和yuv图片文件通过ADB先上传到相应路径下,也可以自行编译放到系统
中。

第四步:Host端(以Windows10为例,需要USB线连接)
可以使用自带应用相机,自动打开视频预览,默认选择MJPEG格式。

AMLOGIC UVC And UAC User Guide

3.4 UAC实时录放
第一步:开启配置
第二步:启动服务(若仅uac2配置,可跳过此步骤)
第三步:Host端(以Windows10为例,需要USB线连接)
连线USB后,枚举出声卡信息,同时板子上会新增一个声卡信息。
setprop sys.usb.config uac2 //如果是UVC+UAC2组合,setprop sys.usb.config
uvc,uac2
setprop sys.usb.configfs 1
/system/bin/uvcdemo -u /dev/video0 -i /data/test-640-360.yuv -f 0 -r 0
注意:需要将编译好的uvcdemo程序和yuv图片文件通过ADB先上传到相应路径下,也可以自行编译放到系统
中。
# cat /proc/asound/pcm
00-00: TDM-A-dummy-alsaPORT-pcm dummy-0 : : playback 1 : capture 1
00-01: TDM-B-dummy-alsaPORT-i2s multicodec-1 : : playback 1 : capture 1
00-02: TDM-C-dummy dummy-2 : : playback 1 : capture 1
00-03: PDM-dummy-alsaPORT-pdm dummy-3 : : capture 1
00-04: SPDIF-dummy-alsaPORT-spdif dummy-4 : : playback 1 : capture 1
00-05: SPDIF-B-dummy-alsaPORT-spdifb dummy-5 : : playback 1
00-06: EARC/ARC-dummy-alsaPORT-earc dummy-6 : : playback 1 : capture 1
00-07: LOOPBACK-A-dummy-alsaPORT-loopback dummy-7 : : capture 1
01-00: USB Audio : USB Audio : playback 1 : capture 1

# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: AMLAUGESOUND [AML-AUGESOUND], device 0: TDM-A-dummy-alsaPORT-pcm
dummy_codec-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: AMLAUGESOUND [AML-AUGESOUND], device 1: TDM-B-a1-acodec-hifi-alsaPORTi2s
fe004800.a1_codec-1 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: UAC2Gadget [UAC2_Gadget], device 0: UAC2 PCM [UAC2 PCM]
Subdevices: 1/1
Subdevice #0: subdevice #0

Windows查看设备管理器,可以看到UAC驱动已加载更新。

录制:以Windows10为例,可用VLC播放器选择wav文件(以48khz,16bit,2ch为例)播放到音频
UAC2 SPEAKER,在板子上用tinycap来录制UAC输入音频,并存放到/data/test.wav。


tinycap /data/test.wav -D 1 -d 0 -c 2 -r 48000 -b 16 -p 960 -n 6

播放:以Windows10为例,可用VLC捕获设备,音频选择UAC2 MICROPHONE,视频选择无,在
板子上用tinyplay来播放刚刚录制的wav文件通过UAC输出音频。
 


tinyplay /data/test.wav -D 1 -d 0 -c 2 -r 48000 -b 16

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...