对于pulseaudio tsched 做什么(以及默认值是什么)?

Jak*_*ake 12 pulseaudio udev

如果我修改/etc/pulse/default.pa并更改此行:

load-module module-udev-detect
Run Code Online (Sandbox Code Playgroud)

到:

load-module module-udev-detect tsched=0
Run Code Online (Sandbox Code Playgroud)

我显然禁用了 tsched。同样,如果我将行更改为,

load-module module-udev-detect tsched=yes
Run Code Online (Sandbox Code Playgroud)

我正在启用 tsched。这两个都可以通过运行来验证,

pactl list | grep tsched
Run Code Online (Sandbox Code Playgroud)

并查看文档

tsched从 0.9.11 开始。使用基于系统定时器的模型(又名无故障)。默认为 1(启用)。如果您的硬件没有返回准确的计时信息(例如 Creative 声卡),您可以尝试设置 tsched=0 以启用在 0.9.10 及之前使用的基于中断的计时。

但是我有两台机器(不同的硬件),一台返回tsched=yes,一台不返回。

默认值真的是 1(启用/是)吗?如果它没有出现在 pactl 中,有没有办法验证它是否真的被启用?什么(在硬件中)决定它是否真的启用?

Pan*_*her 9

这里有一个很好的(技术)讨论:

http://www.alsa-project.org/~tiwai/lk2k/lk2k.html

什么是音序器?

排序器的作用 =
在正确的时间(序列)将事件传递到正确的目的地(设备)。

所以这与内核如何管理您的硬件有关,在这种情况下是您的声卡。一些声卡(通常是 Intel 的)需要实时排序。

Arch Wiki 关于PulseAudio/Troubleshooting的页面说:

PulseAudio 声音服务器的较新实现使用基于计时器的音频调度,而不是传统的中断驱动方法。

基于定时器的调度可能会暴露某些 ALSA 驱动程序中的问题。另一方面,如果没有它,其他驱动程序可能会出现故障,因此请检查您的系统上的工作情况。