小妹请教各位大侠,帮帮忙,谢谢!!!

小妹现在在做一个QNX下的USB设备驱动。
问题:
(1) 视频传输的时候采用BULK传输,BULK-IN最大包512Bytes,每一Payload数据包最大16k,那么接收数据的buffer的大小该如何设定?
(2) 音频传输的时候采用同步传输,同步管道最大包1024bytes,音频PCM采样,采样频率1ms,一个sample大概90bytes,为了保持实时性,接收数据的buffer大小该如何设定 :question:

PS:问题解决十万火急,希望哪位大侠可以帮帮小妹,小妹在此跪谢了!!!

什么意思呀,Buffer和实时性有什么关系。开大一点,能一次把所有数据收下来不就行了。


难道你想分几次把数据读过来,不是更罗嗦?!

音频数据是麦克风传入的,所以无法判断每次的数据有多大

建议尽量大的开一段连续物理内存,然后每1ms去读取该sample的数据,放入开辟的内存中.Buffer大小和实时性无关.
视频同样.
要追求实时性,建议不要在Buffer上做文章了,如果你的设备有DMA,那么使用DMA会更快一些.

我对UB驱动也不是很熟,写过一个蓝牙的驱动,不过半途而废,你可以拿去看看.
驱动是在6.3上作的,6.3的host驱动Isoc有问题,6.4已经纠正了,但据说用法也有改动.