diff --git a/src/audio/pipewire/SDL_pipewire.c b/src/audio/pipewire/SDL_pipewire.c index e3f9439f73..32c93f6188 100644 --- a/src/audio/pipewire/SDL_pipewire.c +++ b/src/audio/pipewire/SDL_pipewire.c @@ -1187,7 +1187,11 @@ static bool PIPEWIRE_OpenDevice(SDL_AudioDevice *device) PIPEWIRE_pw_properties_setf(props, PW_KEY_NODE_LATENCY, "%u/%i", device->sample_frames, device->spec.freq); PIPEWIRE_pw_properties_setf(props, PW_KEY_NODE_RATE, "1/%u", device->spec.freq); PIPEWIRE_pw_properties_set(props, PW_KEY_NODE_ALWAYS_PROCESS, "true"); - PIPEWIRE_pw_properties_set(props, PW_KEY_NODE_DONT_RECONNECT, "true"); // Requesting a specific device, don't migrate to new default hardware. + + // UPDATE: This prevents users from moving the audio to a new sink (device) using standard tools. This is slightly in conflict + // with how SDL wants to manage audio devices, but if people want to do it, we should let them, so this is commented out + // for now. We might revisit later. + //PIPEWIRE_pw_properties_set(props, PW_KEY_NODE_DONT_RECONNECT, "true"); // Requesting a specific device, don't migrate to new default hardware. if (node_id != PW_ID_ANY) { PIPEWIRE_pw_thread_loop_lock(hotplug_loop); diff --git a/src/audio/pulseaudio/SDL_pulseaudio.c b/src/audio/pulseaudio/SDL_pulseaudio.c index 5f63249b93..69e8c1a84c 100644 --- a/src/audio/pulseaudio/SDL_pulseaudio.c +++ b/src/audio/pulseaudio/SDL_pulseaudio.c @@ -701,7 +701,10 @@ static bool PULSEAUDIO_OpenDevice(SDL_AudioDevice *device) PULSEAUDIO_pa_stream_set_state_callback(h->stream, PulseStreamStateChangeCallback, NULL); // SDL manages device moves if the default changes, so don't ever let Pulse automatically migrate this stream. - flags |= PA_STREAM_DONT_MOVE; + // UPDATE: This prevents users from moving the audio to a new sink (device) using standard tools. This is slightly in conflict + // with how SDL wants to manage audio devices, but if people want to do it, we should let them, so this is commented out + // for now. We might revisit later. + //flags |= PA_STREAM_DONT_MOVE; const char *device_path = ((PulseDeviceHandle *) device->handle)->device_path; if (recording) {