打印

USB音频,type 1数据格式描述字问题!

[复制链接]
1941|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
恋子炎|  楼主 | 2013-6-16 16:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   @computer00 当我们把Type I format type Descriptor的bSamFreqType字段设置为0x02之后。代表设备能支持2种频率的音频格式。
如下:
/* Type I format type Descriptor */
    0x0E,           /* bLength *///原值0X0B
    0x24,           /* bDescriptorType:CS_INTERFACE */
    0x02,           /* bDescriptorSubType:FORMAT_TYPE */
    0x01,           /* bFormatType:FORMAT_TYPE_I */
    PLAY_CHANNELS,  /* bNrChannels */
    0x02,           /* bSubFrameSize */
    0x10,           /* bBitResolution */
    0x02,           /* bSamFreqType : 0 continuous; 1 discrete */
    PLAY_RATE_LO,
    PLAY_RATE_MD,
    PLAY_RATE_HI,   /* Sample Frequency */
    PLAY_44_LO,
    PLAY_44_MD,
    PLAY_44_HI,
这个代表设备能支持PLAY_RATE(我这里是48K)和PLAY_44(这里是44.1K)两种频率的播放。就不需要上位机软件对44.1K的音频文件进行SRC(采样频率转换)。
但是这个时候上位机应该会发送一个UAC类的类请求SET_CUR告诉下位机,当前播放的文件是什么样的频率。可是我没有收到这个数据是为什么。。。
而且我用BUS HOUND直接发SET_CUR是可以接受到的。。。但是用酷狗播放器却收不到。。。圈圈能帮我简单分析下不?

相关帖子

沙发
computer00| | 2013-6-16 16:19 | 只看该作者
这个应该要依赖操作系统和应用软件吧,能否支持可不一定哦,具体没看过。

使用特权

评论回复
板凳
恋子炎|  楼主 | 2013-6-16 16:34 | 只看该作者
嗯,酷狗播放器是会发送这个请求的!
我有一台其它设备(USB声卡)能收到这个请求并附带3个byte的控制传输。
我的却不行,所以我觉得是描述字的问题,主机认为我不支持这个请求就没有发送,所以我觉得我应该修改描述符。
但是怎么修改却不知道。。圈圈能给指一个方向吗?

使用特权

评论回复
地板
恋子炎|  楼主 | 2013-6-16 16:40 | 只看该作者
@computer00   圈圈我看了你的书,里面没有音频相关的啊,不知以后会不会出呢

使用特权

评论回复
5
computer00| | 2013-7-1 20:14 | 只看该作者
那你可以用bushound什么的,抓下他的描述符来分析一下。在第二版中有增加一点音频的章节。

使用特权

评论回复
6
恋子炎|  楼主 | 2013-7-9 16:14 | 只看该作者
恩,问题确实出在描述符!修改之后可以看到下发的数据。在UAC的规范中其实也有讲到,但是英文不好,其实我都看到那个地方了,只不过误解了英文描述的意思。。。郁闷呐

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

78

帖子

1

粉丝