2013-12-12 2 views
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 비트입니다. 이미 드라이버를 제거하려고 시도했지만 아무런 변화가 없습니다.

누구나이 문제가 발생합니까? 아니면 누구에게이 문제가 발생할 수있는 아이디어가 있습니까?

답변

0

문제는 이러한 설명자가 아니라 채널 구성이 잘못된 입력 터미널 설명자에있는 것으로 나타났습니다.

관련 문제