2
USB 헤드셋에 대한 데모 작업 중이며 USB의 오디오 종점 설명자에 대한 질문이 있습니다. 작동하는 8-48kHz 16 비트 오디오 스트림이 있으며 오디오 장치의 Windows 속성에서 샘플 주파수를 선택할 수 있습니다.USB 24 비트 audiostream 설명자
코드 : 이러한 설정으로
// Interface 2: Speaker, alternate setting 1. Type 1 format descriptor.
static const UsbAudioStreamingType1DescriptorType UsbIfd2Format =
{
sizeof(UsbAudioStreamingType1DescriptorType), // uint8 bLength;
UDESC_CS_INTERFACE, // uint8 bDescriptorType;
UA_FORMAT_TYPE, // uint8 bDescriptorSubtype;
UA_FORMAT_TYPE_I, // uint8 bFormatType;
AUDIO_LSR_NOC, // uint8 bNrChannels;
AUDIO_LSR_SAMPLE_SIZE, // uint8 bSubFrameSize;
AUDIO_LSR_SAMPLE_SIZE << 3, // uint8 bBitResolution;
0x00, // uint8 bSamFreqType;
(uint8)((AUDIO_LSR_MIN_SAMPLE_FREQUENCY) & 0xFF), // uint8 first byte minumum sample frequency
(uint8)((AUDIO_LSR_MIN_SAMPLE_FREQUENCY >> 8) & 0xFF), // uint8 second byte minumum sample frequency
(uint8)(((0x10000000 | AUDIO_LSR_MIN_SAMPLE_FREQUENCY) >> 16) & 0xFF), // uint8 third byte minumum sample frequency
(uint8)((AUDIO_LSR_MAX_SAMPLE_FREQUENCY) & 0xFF), // uint8 first byte maximum sample frequency
(uint8)((AUDIO_LSR_MAX_SAMPLE_FREQUENCY >> 8) & 0xFF), // uint8 second byte maximum sample frequency
(uint8)(((0x10000000 | AUDIO_LSR_MAX_SAMPLE_FREQUENCY) >> 16) & 0xFF), // uint8 third byte maximum sample frequency
};
// Interface 2: Speaker, alternate setting 1. Audio endpoint descriptor.
static const UsbAudioEndpointDescriptorType UsbIfd2StdEndpoint =
{
sizeof(UsbAudioEndpointDescriptorType), // uint8 bLength;
USB_DT_ENDPOINT, // uint8 bDescriptorType;
USB_DIR_OUT | USB_EP_AUDIO_RX, // uint8 bEndpointAddress;
0x01, // uint8 bmAttributes;
((AUDIO_LSR_MAX_SAMPLE_FREQUENCY/1000) * AUDIO_LSR_SAMPLE_SIZE) * AUDIO_LSR_NOC, // uint16 wMaxPacketSize;
0x01, // uint8 bInterval;
0x00, // uint8 bRefresh;
0x00, // uint8 bSynchAddress;
};
:
// Sample frequencies
#define AUDIO_LSR_MIN_SAMPLE_FREQUENCY 0x01F40 // 8kHz
#define AUDIO_LSR_MAX_SAMPLE_FREQUENCY 0x0BB80 // 48kHz
// Sample size
#define AUDIO_LSR_SAMPLE_SIZE 0x02 // in bytes
// Defines for mono/stereo.
#define AUDIO_LSR_NOC 0x02 // Number Of Channels (stereo)
지금 나는 8-48kHz 24 비트 스트림으로 변경하려면 나는 다음과 같은 설명을 사용합니다. AUDIO_LSR_SAMPLE_SIZE를 0x03으로 변경합니다. 이 작업을 수행 할 때 창 속성 창의 샘플 주파수 선택 상자가 48kHz로 회색으로 표시되어 다른 주파수를 선택할 수 없습니다. 내가 장치에 무언가를 할 때 스트림은 24 비트입니다. 이미 드라이버를 제거하려고 시도했지만 아무런 변화가 없습니다.
누구나이 문제가 발생합니까? 아니면 누구에게이 문제가 발생할 수있는 아이디어가 있습니까?