手头的USB电视卡Ubuntu Linux驱动开发,资料主要来自Linuxtv.org,linuxtv maillist,Linux V4L2 programming guild。
电视卡的数据流程如下:
TV tuner => TV demod => USB Device controller => PC => Media player
各个部分的作用介绍如下:
TV tuner: 将电视信号从RF频率下解调至中频;
TV demod: 接受tuner解调的中频信号,处理得到标准BT656音视频数据;
Video USB Controller: 负责将Video,Audio数据输送至PC;
USB中,Video、Audio数据往往通过ISOC方式传输。因此驱动主要的工作就是正确处理Video interface和Audio interface的数据传输。
驱动程序中容易出问题的地方:
Isoc urb的回调函数处理一定小心,系统非常容易在这个地方crash;针对我的电视卡的USB device controller正确的处理Video数据header;和Media Player的接口,就是上面所讲V4L2 API一定要返回正确参数,否则,Player肯定会给你罢工的!驱动的音频interface还未处理,等驱动全部完成,再好好的总结下。

