XRun이란 무엇입니까?

XRun이란 무엇입니까?

jack나는 버퍼 크기를 너무 낮게 설정하거나 오디오 응용 프로그램을 종료할 때 이에 대해 여러 번 읽었고 직접 직면했습니다. 그러나 아무도 XRun이 무엇인지 설명하지 않았습니다. 누군가 XRun에 대한 정의를 명확히 하고 제공할 수 있습니까? 그것은 무엇이며 어떻게 발생합니까?

다음은 XRun 오류의 예입니다.

Mon Mar 16 12:32:23 2015: ERROR: JackEngine::XRun: client = <AUDIO APPLICATION> was not finished, state = Running
Mon Mar 16 12:32:23 2015: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error

응용 프로그램을 다음으로 대체했습니다.<AUDIO APPLICATION>

답변1

확실히(우분투 포럼 게시물),

이는 버퍼 언더플로우 또는 오버플로우이며 X는 언더 또는 오버를 나타냅니다. 이는 시스템이 일부 버퍼를 적시에 처리하지 않아 일부 데이터가 손실되었음을 나타냅니다. 매우 낮은 버퍼 크기로 실행할 때 특히 그렇습니다. 사운드 카드는 들어오는 버퍼(오버플로)를 매우 빠르게 처리해야 합니다. 일부 칩은 더 작은 버퍼 크기를 처리할 수 없으므로 사운드 칩이 수행하는 작업을 완화하려면 버퍼 길이를 늘려야 합니다.

답변2

공식 문서 추가알사 위키:

"xrun"은 버퍼 언더런 또는 버퍼 오버플로일 수 있습니다. 두 경우 모두 오디오 응용 프로그램이 ALSA 오디오 버퍼로 데이터를 전송할 만큼 빠르지 않거나 ALSA 오디오 버퍼의 데이터를 처리할 만큼 빠르지 않습니다. 일반적으로 xrun의 소리는 터지는 소리 또는 딱딱거리는 소리입니다.

예를 들어 Jack에서 xrun을 최소화하기 위해 다양한 커널 패치와 전략을 사용할 수 있습니다. 커널 선점 및 실시간 Linux 보안 모듈. 이 글을 쓰는 시점(2004년 7월)에서 이러한 전략은 유동적인 상태에 있습니다.http://jackit.sourceforge.net/docs/faq.php#a5최신.

Alsa의 최신 버전은 proc 트리를 통해 xrun을 기록하고 디버그하는 방법을 제공합니다.

디버그 xruns에 대한 링크가 끊어졌지만 일부 정보를 찾았습니다.여기.

관련 정보