UAC麦克风实例分析
+ -

UAC麦克风输出终端描述符

2021-07-23 453 0

输出终端描述符在UAC规范的拓扑图中表示音频数据的输出端,该数据即将通过UAC的同步传输端点上报给主机。

输出终端描述符的数据配置如下:
输出终端描述符的数据配置

输出终端描述符各字段的详解见:http://www.usbzh.com/article/detail-237.html

C语言结构体和初始化代码如下:

/* 4.3.2.2 Output Terminal Descriptor */
struct uac1_output_terminal_descriptor {
    __u8 bLength; /* in bytes: 9 */
    __u8 bDescriptorType; /* CS_INTERFACE descriptor type */
    __u8 bDescriptorSubtype; /* OUTPUT_TERMINAL descriptor subtype */
    __u8 bTerminalID; /* Constant uniquely terminal ID */
    __le16 wTerminalType; /* USB Audio Terminal Types */
    __u8 bAssocTerminal; /* ID of the Input Terminal associated */
    __u8 bSourceID; /* ID of the connected Unit or Terminal*/
    __u8 iTerminal;
}
__attribute__((packed));


static struct uac1_output_terminal_descriptor microphone_output_terminal_desc = {
    .bLength = UAC_DT_OUTPUT_TERMINAL_SIZE,
    .bDescriptorType = USB_DT_CS_INTERFACE,
    .bDescriptorSubtype = UAC_OUTPUT_TERMINAL,
    .bTerminalID = MICROPHONE_OUTPUT_TERMINAL_ID,
    .wTerminalType = UAC_TERMINAL_STREAMING,
    .bAssocTerminal = MICROPHONE_INPUT_TERMINAL_ID,
    .bSourceID = MICROPHONE_INPUT_TERMINAL_ID,
};

通过模拟设备信息(Free Device Monitoring Studio 抓取:

  • descriptors[4] = “Class-Specific Interface Descriptor”
  • bLength = 9
  • bDescriptorType = CS_INTERFACE (36)
  • bDescriptorSubtype = 3
  • ac_interface =
  • output_terminal =
  • bTerminalID = 2
  • wTerminalType = 257
  • bAssocTerminal = 1
  • bSourceID = 1
  • bCSourceID = 0
  • bmChannelConfig = 66569
  • iChannelNames = 0
  • bmControls = 513
  • terminal_control =
  • terminal =
  • CopyProtect = 0
  • ConnectorControl = 0
  • OverloadControl = 0
  • ClusterControl = 0
  • UnderflowControl = 0
  • OverflowControl = 0
  • Reserved = 0
  • bmControls = 0000000000000000
  • iTerminal = 9
HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

LINUX&UVC输出终端描述符分析
UVC输出终端描述符用于描述UVC视频流的输出端。关于UVC输出终端描述符各字段的分析详见:https://www.usbzh.com/article/detail-10.htmlUVC输出终端描述符比较简单,没有什么特别的字段。惟一要关注的就是bSourceID。bSourceID:此终端所连接......
UVC 输出终端描述符
输出终端描述符用于向主机报告视频数据输出终端的相关信息。输出终端描述符使用bTerminalID描述输出端点的ID,且这个ID是惟一的。输出终端描述符位于视频控制接口中。输出终端描述符结构体定义如下:// Output Terminal Descriptortypedef struct _US......
UAC 输出终端描述符
UAC输出终端描述符:Output Terminal Descriptor,简称OTD,用于向主机提供输出终端的相关信息。UAC输出终端描述符定义-UAC1.0typedef struct _USB_AC_OT_DESCRIPTOR{ UINT8 bLength; UINT8 bDe......
UAC麦克风输出终端描述符
输出终端描述符在UAC规范的拓扑图中表示音频数据的输出端,该数据即将通过UAC的同步传输端点上报给主机。输出终端描述符的数据配置如下:输出终端描述符各字段的详解见:http://www.usbzh.com/article/detail-237.htmlC语言结构体和初始化代码如下:/* 4.......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!