On Mon, 2013-08-12 at 09:34 +0200, David Henningsson wrote: > On 08/09/2013 08:57 AM, Tanu Kaskinen wrote: > > While investigating a bug[1], I found several bugs in the rate update > > code related to monitor sources. This should make things work > > properly for non-passthrough streams. Things are probably still broken > > for passthrough streams, but that's a complex topic that I don't want > > to spend time on at the moment. > > And trying to understand the last patches, what is the scenario? You > start recording the monitor source at 48 kHz while the sink is silent, > and then sink starts playing back a 44.1 kHz stream. What happens? The scenario for "source: Don't update the monitor source rate, if the sink is running" is that something is playing to the sink at 44.1 kHz, and then something connects to the monitor source at 48 kHz. What happens (without the patch) is that the monitor source rate changes, and the client thinks it's getting 48 kHz audio, while in reality the rate is 44.1 kHz. The scenario for "source: When updating a monitor source's rate, update the sink rate too" is that nothing is playing and the device is configured to 44.1 kHz and then something connects to the monitor source. Again, without the patch, the monitor source changes rate to 48 kHz, so that's what the client thinks it's getting. In reality, the sink runs at 44.1 kHz, so that's what's being fed to the monitor source too. At this point it's all silence, so it doesn't matter that much (the recorded audio length is just surprisingly short) but if something starts to play to the sink, that audio will be 44.1 kHz, while the client thinks it's 48 kHz. I'll add something to the commit messages to make this clearer. -- Tanu