샘플 속도를 44.1kHz로 설정하면 ALSA 드라이버는 임베디드 하드웨어의 샘플 클럭을 어떻게 결정합니까? MCLK의 주파수 조정을 확인하려면 어떤 소스 파일을 참조해야 합니까?
사용자 공간에서 PCM으로 샘플 클럭(예: MCLK)을 제공하는 애플리케이션을 작성하고 싶습니다. 어떻게 해야 하나요?
답변1
ALSA에서는 각 장치가 자체 하드웨어 샘플링 속도 클럭을 사용합니다. 따라서 서로 다른 클럭 사이의 오류가 누적됩니다. 지금까지 파일을 통해서든 다른 방식으로든 클럭 속도 조정을 허용하는 ALSA 드라이버를 본 적이 없습니다. 그러나 이것이 특정 사운드 카드의 ALSA 드라이버가 예외가 아니며 어떤 방식으로든 이를 수행할 수 있다는 의미는 아닙니다.
사용자 공간에서 직접 샘플 클럭에 액세스할 수는 없을 것 같습니다(커널 공간에서도 액세스할 수 없을 수도 있음).
Jack은 단일 ALSA 장치를 사용하여 모든 것에 대한 마스터 클록을 제공합니다. 이는 ALSA의 피드백을 기반으로 버퍼 크기를 조정한다는 의미일 수 있습니다(그러나 이는 단지 추측일 뿐입니다). Jack의 코드를 살펴보고 그들이 어떻게 하는지 살펴보겠습니다.