GNOME Bugzilla – Bug 790823
pulsesrc: Fallback should be disallowed when device explicitly specified
Last modified: 2018-11-03 15:24:06 UTC
I use pulsesrc to route my phone's sound output, connected via Bluetooth to my server, to the audio output of my server. When the phone stops emitting and the pulse device disappears, pulsesrc falls back to the main monitor, creating a feed loop and chaos if anything is played. Here is a use case, where the Bluetooth device exists, then disappears, then reappears: $ gst-launch-1.0 -vvvv pulsesrc device=bluez_source.44_78_3E_81_32_11.a2dp_source ! pulsesink Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ... New clock: GstPulseSrcClock /GstPipeline:pipeline0/GstPulseSrc:pulsesrc0: source-output-index = 340 /GstPipeline:pipeline0/GstPulseSrc:pulsesrc0: actual-buffer-time = 270566 /GstPipeline:pipeline0/GstPulseSrc:pulsesrc0: actual-latency-time = 135283 Redistribute latency... /GstPipeline:pipeline0/GstPulseSrc:pulsesrc0.GstPad:src: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003 Redistribute latency... /GstPipeline:pipeline0/GstPulseSink:pulsesink0.GstPad:sink: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003 /GstPipeline:pipeline0/GstPulseSrc:pulsesrc0: volume = 1 /GstPipeline:pipeline0/GstPulseSrc:pulsesrc0: mute = false /GstPipeline:pipeline0/GstPulseSrc:pulsesrc0: current-device = bluez_source.44_78_3E_81_32_11.a2dp_source /GstPipeline:pipeline0/GstPulseSink:pulsesink0: volume = 1.5831909025186803 /GstPipeline:pipeline0/GstPulseSink:pulsesink0: mute = false /GstPipeline:pipeline0/GstPulseSink:pulsesink0: current-device = alsa_output.usb-0d8c_USB_Sound_Device-00.analog-surround-71 /GstPipeline:pipeline0/GstPulseSink:pulsesink0: volume = 1.5831909025186803 /GstPipeline:pipeline0/GstPulseSink:pulsesink0: mute = false /GstPipeline:pipeline0/GstPulseSink:pulsesink0: current-device = alsa_output.usb-0d8c_USB_Sound_Device-00.analog-surround-71 ------------ SOUND IS STOPPED, DEVICE DISAPPEARS /GstPipeline:pipeline0/GstPulseSrc:pulsesrc0: volume = 1 /GstPipeline:pipeline0/GstPulseSrc:pulsesrc0: mute = false /GstPipeline:pipeline0/GstPulseSrc:pulsesrc0: current-device = alsa_output.usb-0d8c_USB_Sound_Device-00.analog-surround-71.monitor ------------- SOUND IS RESUMED, DEVICE IS RECREATED /GstPipeline:pipeline0/GstPulseSrc:pulsesrc0: volume = 1 /GstPipeline:pipeline0/GstPulseSrc:pulsesrc0: mute = false /GstPipeline:pipeline0/GstPulseSrc:pulsesrc0: current-device = bluez_source.44_78_3E_81_32_11.a2dp_source I don't believe it is an expected behavior that pulsesrc falls back to any other device when the device is explicitly set. Cheers; M.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/418.