Giter Club home page Giter Club logo

swyh-rs's People

Contributors

dheijl avatar ein-shved avatar joshuamegnauth54 avatar moalyousef avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

swyh-rs's Issues

v1.13.20 swyh-rs.zip has trojan virus

On Windows, when trying to unzip, Windows Defender detected:

Detected: Trojan:Script/Oneeva.A!ml
Status: Removed
A thread or app was removed from this device.

Is this real or false alarm?
Triedthe v1.13.19 zip and it was ok.

Volume difference

Hi dheijl, little feedback ..
As you know I use swyh-rs especially with Deezer, today I am testing the sending of sound with Youtube launched on Microsoft Edge, and I have, despite having the volume Max on youtube, a very low volume in the swyh-rs stream .. I also tried with Molotov (a French TV application) same result despite the max volume in the application the stream remains at very low level .. .
Is there a way to choose the sound level of what we send in the stream or to normalize the output stream to a level (0dB) that we could adjust?
I don't understand why I have such a low volume with Edge or Molotov while with Deezer it works well ...

Build for ubuntu 18.04?

Would it be possible for you to make a build for ubuntu 18.04? I tried the 20.04 build but gives error massages about the version of glibc. I have lubuntu 18.04 on my PC's.

Sonos test

Tried using program with sonos, get "the song is not encoded correctly"
so assuming it wont work with sonos speakers.

Can you add input source ?

Hi again,

Would it be possible to add an option to choose the audio input source?

My problem I want to keep my native sound card as default audio source and use VB-Audio Hifi only for my web browser and my deezer app.
With the sound settings of windows 10 you can choose the audio input and output source by application but it does not work with swyh-rs, so if it is not too complicated to add the option to select Input source that would be a good option
I would point out that with LocalAudioBroadcast which also has no option to select the audio input source, I was able to change the audio input source via the sound settings of windows and therefore completely separate the sounds on my pc and what I send in streaming ..
A new field of research..

Stream from Linux/Windows to AudioCast M5

Hi, I came across your program while looking to stream music from a Linux or Windows computer to the AudioCast M5.

I've downloaded the windows version, I have no idea how to point it to the AudioCast M5 (I know its IP address on my network) to send the audio to it. Can you explain it to me?

not all renders shown in gui

i have more than 5 renderers in my network, but i can see only 2 out of them in the GUI. And every time i start swyh-rs the second renderer shown is changing to another one. The first one stays the same. How can i select a specific renderer out of 5, is it possible to scroll the list ?

Error capturing f32 audio stream on Windows

Hi,

I would like to use your software to stream music to a Volumio server, but when I do so I have no sound. The log shows an error about capturing the audio, this happens on two machines I tested it on. I also tested with the VBAudio HiFi Cable but I get the same error. I hope you can fix this!

log.txt

audible low noise in every stream

I find that there is a very audible low background noise in everything I stream through swhy-rs, regardless of the source or the recording. This only happens with swyh-rs.

I am on Windows 10, streaming via Volumio.

Stream playback doesn't start on Libratone Zipp with 1.3.24

First, thanks for this nice piece of software! :)
Since the release 1.3.24, streaming my sound to a Libratone Zipp speaker doesn't work.

Here's what I do:

  1. Make sure that the speaker is on
  2. Make sure that I already stream some audio
  3. Download and launch the 1.3.24 release on Windows 10 21H1 x64
  4. Select the LTH Zipp speaker
  5. Audio don't start and the following happen in the log:
    image

With the previous version, it successfully works:

  1. and 2. are the same
  2. Download and launch the 1.3.23 release on Windows 10 21H1 x64
  3. Select the LTH Zipp speaker
  4. Enjoy good sounds - here's the log
    image

Let me know if you need something else to debug this!

Sonos Play:1 doesn't play

Thanks for your work, @dheijl!

However I have trouble to get to work with a Sonos PLay:1.
Looking in the Sonos S2 app this notification will always pop up when trying to play something.
"Use WMA/WAV" is checked.

grafik

Custom folder location

I would suggest to implement a way to change the directory for the config and log files from the default home directory. Personally I don't like my home directory to be cluttered, thus I changed the folder location in code. However, that's not really a user friendly solution. An alternative would be to maybe simply make the folder hidden?

Docker Support

Looking for a way to stream docker container audio using this app.

Loop stream loss

Hi @dheijl I have installed the latest version 1.0.4 ..
This several times that I find this problem of loss of the stream, at the beginning you had thought that my amplifier cut the transmission as soon as a silence was detected and suddenly you had coded us the autoresume play, it works well in general but sometimes without my understanding why the stream is systematically interrupted, without there being any silence since I am reading music, the autoresume works and suddenly I find myself with a stream systematically interrupted then restart. .. Endlessly...
I wonder why my amp decides to stop the stream?
Why this problem only occurs from time to time ... for info I had run swyh-rs without my amp being turned on so I started without any visible renderer then I turned on my amp, swyh-rs detected my amp, I started the stream with the autoresume checked (as usual) and this problem occurred ... I restart swyh-rs but same problem many times, I stop swyh-rs, I start LAB, I start the stream and there is no problem, stream continuously ... I stop LAB and restart swyh-rs and there magic no more cutting the stream ... I don't understand anything. .. But there is something ...

32bit release?

Hi.

Is it posible to add x86 release version?

I tried replace swyh to swyh-rs, but the atom device is using licensed 32bit windows that i would like to keep.

Streams garbled audio from Logitech PRO X Wireless Headset source

I'm running into an issue streaming when the Audio Source is my Logitech Pro X wireless headset. The audio coming through on my external speakers is garbled noise. Changing the audio source makes streaming work just fine.

The log isn't showing anything unusual, but let me know if there's anything else I can provide:

Configuration { server_port: Some(5901), auto_resume: false, sound_source: "Speakers (Logitech PRO X Wireless Gaming Headset)", log_level: Debug, ssdp_interval_mins: 1.0, auto_reconnect: false, disable_chunked: false, use_wave_format: true, bits_per_sample: Some(16), monitor_rms: false, last_renderer: "Sonos Beam Office Beam - Sonos Beam Media Renderer", last_network: "192.168.1.5", config_dir: "C:\\Users\\Corvid\\.swyh-rs" }
Setup audio sources
Now running at ABOVE_NORMAL_PRIORITY_CLASS
Capturing audio from: Speakers (Logitech PRO X Wireless Gaming Headset)
Default audio SupportedStreamConfig { channels: 8, sample_rate: SampleRate(48000), buffer_size: Unknown, sample_format: F32 }
Discover networks
Starting SSDP discovery
The streaming server is listening on http://192.168.1.5:5901/stream/swyh.wav
Sample rate: 48000, sample format: audio/L16 (PCM)
AV Stop playing on Bedroom Move - Sonos Move Media Renderer host=192.168.1.234 port=1400
AV Start playing on Bedroom Move - Sonos Move Media Renderer host=192.168.1.234 port=1400 from 192.168.1.5 using AvTransport Play
Received request /stream/swyh.wav from 192.168.1.234:48546
Streaming audio/wave;codec=1 (WAV), input sample format F32, channels=2, rate=48000, disable chunked=false to 192.168.1.234:48546
AV Stop playing on Bedroom Move - Sonos Move Media Renderer host=192.168.1.234 port=1400
Streaming to 192.168.1.234:48546 has ended
AV Stop playing on Office Beam - Sonos Beam Media Renderer host=192.168.1.243 port=1400
AV Start playing on Office Beam - Sonos Beam Media Renderer host=192.168.1.243 port=1400 from 192.168.1.5 using AvTransport Play
Received request /stream/swyh.wav from 192.168.1.243:58272
Streaming audio/wave;codec=1 (WAV), input sample format F32, channels=2, rate=48000, disable chunked=false to 192.168.1.243:58272
The wave_reader is now receiving samples

As an additional data point, I am able to stream from the Logitech Pro X audio source using the original Stream What You Hear with no issues.

V0.9.7

Hi dheijl,
I install and try your new release.. And when I changed LOG level or Input Source, I can't see a Restart Button.

Another thing, I do not see the usefulness of the SSDP discovery at regular and adjustable interval, I think that in a classic use, it would be more useful to just put a button to restart the SSDP discovery. When I use swyh-rs on a renderer that is already active and that I turn on my tv for example, it is easier for me to manually search for my tv rather than wait for automatic discovery.. Anyway it works well, but if I start swyh-rs, ssdp discovery find my Harmann I start th stream, then after a moment I start my TV, the GUI give me :
Capture d’écran (8)
Sorry but always GUI bug.. But nothung serious..

Have a nice day..

Some small ways to improve the code

Thanks for helping me with the cpal wasapi loopback capture :)

I took a look at the code of swyh and noticed some small things:

  1. Calling get_output_audio_devices() twice unnecessarily:
    let audio_devices = get_output_audio_devices().unwrap();

    let devices = get_output_audio_devices().unwrap();

cpal::Device isn't Clone but you could reuse the result if you move

swyh-rs/src/main.rs

Lines 305 to 307 in d51bed2

for dev in devices.iter() {
choose_audio_source_but.add_choice(&dev.name().unwrap().fw_slash_pipe_escape());
}

to before

swyh-rs/src/main.rs

Lines 281 to 287 in d51bed2

for adev in audio_devices {
let devname = adev.name().unwrap();
if devname == config.sound_source {
audio_output_device = adev;
info!("Selected audio source: {}", devname);
}
}

  1. You could eliminate unsafe here by using once_cell:
    static ONETIME_SW: OnceCell<()> = OnceCell::new();
    ONETIME_SW.get_or_init(|| {
        log("The wave_reader is receiving samples".to_string());
    })

(Btw, you could remove the dependency on lazy_static completely in favor of using once_cell.)

  1. You could do let chunk = samples.to_vec(); here:

    let mut chunk: Vec<i16> = Vec::new();
    chunk.resize(samples.len(), 0);
    chunk.copy_from_slice(samples);

  2. You could do self.fifo.extend(chunk); here:

    let mut new_samples: VecDeque<i16> = VecDeque::from(chunk);
    self.fifo.append(&mut new_samples);
    continue;

    (Also you can remove continue;.)
    Btw, I haven't looked at your whole code, but why are you using VecDeque instead of Vec?
    It's usually slower due to cache-nonlocality. Vec::push is asymptotically O(1) (constant time) and has better cache locality & less overhead when iterating. Usually Vec is used for audio buffers.

  3. You could theoretically use chunks_exact_mut here:

    while i < buf.len() - 2 {

  4. You could reuse this Vec between frames, to reduce allocations:

    let i16_samples: Vec<i16> = samples.iter().map(|x| x.to_i16()).collect();

  5. You could use RwLock<HashMap<..>> for CLIENTS instead of Mutex<HashMap<..>>, to allow multiple readers at the same time:
    Either std: https://doc.rust-lang.org/nightly/std/sync/struct.RwLock.html
    Or parking_lot: https://docs.rs/parking_lot/0.11.0/parking_lot/type.RwLock.html#differences-from-the-standard-library-rwlock
    Or you could use a concurrent hashmap, but I'm not sure what's best here since I haven't read the whole code..
    Note that RwLock is not always better, at least std's RwLock on linux.

  6. You can eliminate all the unsafe blocks around access to CONFIG_CHANGED like this one or this one

    swyh-rs/src/main.rs

    Lines 224 to 226 in d51bed2

    unsafe {
    CONFIG_CHANGED = true;
    }

    by using Rc<Cell<bool>> (or AtomicBool but the closures passed to handle2 don't need to be Send).

Swyh-rs.apk ?

I would have liked to know, if it was possible to create an Android compatible version, I know a good number of users who have been looking for this kind of tools for a long time but under Android ...
When will Swyh-rs.apk ?

Autoreconnect doesn't work anymore

Hi,

I use your app since the beginning and when you added the autoreconnect feature it worked.
But until version 1.1.1 it doesn't work, when I check the box, close the app and open it again, the box is unchecked...

Audiocast M5 from iEast immediatly closed

Im currently trying to get the device working. It shows up on Windows network:
image

And it gets detected by swyh-rs:
image

However, it disconnects after some seconds after enabling the device, and i dont hear anything:

AV Start playing on AudioCast_CC29 host=192.168.0.58 port=49152 from 192.168.0.208 using AvTransport Play
Received request /stream/swyh.wav from 192.168.0.58:60814
Received request /stream/swyh.wav from 192.168.0.58:60816
The wave_reader is now receiving samples
Received request /stream/swyh.wav from 192.168.0.58:60818
Received request /stream/swyh.wav from 192.168.0.58:60820
=>Http connection with 192.168.0.58:60820 terminated [An existing connection was forcibly closed by the remote host. (os error 10054)]
Streaming to 192.168.0.58:60820 has ended
Received request /stream/swyh.wav from 192.168.0.58:60821
=>Http connection with 192.168.0.58:60818 terminated [An existing connection was forcibly closed by the remote host. (os error 10054)]
Streaming to 192.168.0.58:60818 has ended

Audio streaming on Linux not working | Connection immediately terminated

Hi,

first of all thanks for your hard work. I can't get the audio casting on Linux (Manjaro 20.2.1) to work though.
The renderer is found on the network, but the connection is terminated immediately. No audio is played either.

I attach the log, maybe you can see where this is going wrong. If you need further information, let me know.

Cheers!

Log file:
log.txt

LAN Radio

Hi Dheijl,
Would it be possible to add an option to broadcast the sound in a sort of web-radio easily accessible from an internet browser or vlc ?
Actually if I try access http:// "my ip" /stream/swyh.wav with "Opera web browser" or "VLC" the streaming is impossible...
That would be a really interesting option.
Thank you.

The stream stops after each song when I use VB Cable Hifi ?

Hi @dheijl and all,
I try to use VB-Audio cable Hifi to no longer have the sound coming out simultaneously (well almost ..!) On my pc and in my amplifier via the stream ..
In short when I use VB-Audio it works very well but just the time of a song, then I have a message

log: Received request /stream/swyh.wav from 192.168.1.26:50016
log: =>Http connection with 192.168.1.26:50016 terminated [Une connexion établie a été abandonnée par un logiciel de votre ordinateur hôte. (os error 10053)]
log: Streaming to 192.168.1.26:50016 has ended

And I am therefore forced to restart the stream to my amp.

Pushed renderer #0 None Harman Kardon AVR265, state = ON
log: AV Stop playing on Harman Kardon AVR265 host=192.168.1.26 port=80
url: http://192.168.1.26:80/AVTransport/control,
=>SOAP Action: urn:schemas-upnp-org:service:AVTransport:1#Stop,
=>SOAP xml:

0

<=SOAP response:
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:StopResponse xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"></u:StopResponse></s:Body></s:Envelope>

log: AV Start playing on Harman Kardon AVR265 host=192.168.1.26 port=80 from 192.168.1.27 using AvTransport Play
AvTransport server URL: http://192.168.1.27:5901/stream/swyh.wav
url: http://192.168.1.26:80/AVTransport/control,
=>SOAP Action: urn:schemas-upnp-org:service:AVTransport:1#SetAVTransportURI,
=>SOAP xml:

0http://192.168.1.27:5901/stream/swyh.wav<DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"><item id="1" parentID="0" restricted="0"><dc:title>swyh-rs</dc:title><res bitsPerSample="16" nrAudioChannels="2" protocolInfo="http-get:*:audio/l16;rate=48000;channels=2:DLNA.ORG_PN=LPCM" sampleFrequency="48000">http://192.168.1.27:5901/stream/swyh.wav</res><upnp:class>object.item.audioItem.musicTrack</upnp:class></item></DIDL-Lite>

<=SOAP response:
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:SetAVTransportURIResponse xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"></u:SetAVTransportURIResponse></s:Body></s:Envelope>

url: http://192.168.1.26:80/AVTransport/control,
=>SOAP Action: urn:schemas-upnp-org:service:AVTransport:1#Play,
=>SOAP xml:

01

<=SOAP response:
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:PlayResponse xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"></u:PlayResponse></s:Body></s:Envelope>

log: Received request /stream/swyh.wav from 192.168.1.26:50017
log: Streaming to 192.168.1.26:50017 has ended
log: Received request /stream/swyh.wav from 192.168.1.26:50018
log: =>Http connection with 192.168.1.26:50018 terminated [Une connexion établie a été abandonnée par un logiciel de votre ordinateur hôte. (os error 10053)]
log: Streaming to 192.168.1.26:50018 has ended

By cons no problem when I use my real sound card ..?

Feature requested

As this app works so well, I would like to know if it would be possible to add a feature to reconnect automaticaly to the last renderer choosen?
With this feature I couldlaunch the app when windows starts and use it like a sound card!

doesn't stream against Volumio

Following from the conversation in SWYH: StreamWhatYouHear/SWYH#35

Running the debug exe v0.3

STEPS:

  1. start the program
  2. it detects Volumio (and doesn't hang as before)
  3. click on what looks like might be a button, named "Volumio"

EXPECT

SWYH to show up in Volumio under media servers. I should be able to click on that and press play and be able to hear all audio from my computer.

(I assume that is the flow, though I've never experienced it and can't be positive that is what is really supposed to happen)

ACTUAL RESULTS

Nothing happens in Volumio (which is unlike straight SWYH which at least shows up in Volumio's media servers window, even if Volumio can't ultimately connect to it). Nothing happens anywhere else either. Just output:

Output in the app logging window:

SSDP discovery started
Renderer at : http://192.168.1.53:49152/description.xml
Getting renderer descriptions
Renderer Volumio Volumio http://192.168.1.53:49152/ has 9 services
SSDP discovery complete
Default audio output device: Speakers / Headphones (2- Realtek Audio)
Default config SupportedStreamConfig { channels: 2, sample_rate: SampleRate(48000), buffer_size: Unknown, sample_format: F32 }
Serving on 192.168.1.50:5901
Start playing on Volumio host=192.168.1.53 port=49152 from 192.168.1.50
Received request /stream/swyh.wav from 192.168.1.53:38544

and eventually:

The wave_reader is receiving samples

Output in the console window:

SSDP discovery started
UDP response at 1:
HTTP/1.1 200 OK
CACHE-CONTROL: max-age=3600
DATE: Wed, 30 Sep 2020 13:04:10 GMT
EXT:
LOCATION: http://192.168.1.53:49152/description.xml
OPT: "http://schemas.upnp.org/upnp/1/0/"; ns=01
01-NLS: 39b4a8b6-0278-11eb-a535-936c2f8a36b1
SERVER: Linux/4.19.86-v7+, UPnP/1.0, Portable SDK for UPnP devices/1.6.20.jfd5
X-User-Agent: redsonic
ST: urn:schemas-upnp-org:service:RenderingControl:1
USN: uuid:04255cb4-11f0-58db-0053-0017f700aae4::urn:schemas-upnp-org:service:RenderingControl:1


Renderer at : http://192.168.1.53:49152/description.xml
Getting renderer descriptions
Get service description for http://192.168.1.53:49152/description.xml
Service description:
<?xml version="1.0"?>
<root xmlns="urn:schemas-upnp-org:device-1-0">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<device>
<deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType>
<friendlyName>Volumio</friendlyName>
<manufacturer>Volumio</manufacturer>
<manufacturerURL>https://volumio.org</manufacturerURL>
<modelDescription>The Audiophile Music Player</modelDescription>
<modelName>Volumio</modelName>
<modelNumber>1.0</modelNumber>
<modelURL>https://volumio.org</modelURL>
<serialNumber>42</serialNumber>
<UDN>uuid:04255cb4-11f0-58db-0053-0017f700aae4</UDN>
<iconList>
<icon>
<mimetype>image/png</mimetype>
<width>64</width>
<height>64</height>
<depth>32</depth>
<url>/upmpd/icon.png</url>
</icon>
</iconList>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType>
<serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId>
<SCPDURL>/upmpd/RenderingControl.xml</SCPDURL>
<controlURL>/ctl/RenderingControl</controlURL>
<eventSubURL>/evt/RenderingControl</eventSubURL>
</service>
<service>
<serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType>
<serviceId>urn:upnp-org:serviceId:AVTransport</serviceId>
<SCPDURL>/upmpd/AVTransport.xml</SCPDURL>
<controlURL>/ctl/AVTransport</controlURL>
<eventSubURL>/evt/AVTransport</eventSubURL>
</service>
<service>
<serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>
<serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>
<SCPDURL>/upmpd/ConnectionManager.xml</SCPDURL>
<controlURL>/ctl/ConnectionManager</controlURL>
<eventSubURL>/evt/ConnectionManager</eventSubURL>
</service>
<service>
<serviceType>urn:av-openhome-org:service:Product:1</serviceType>
<serviceId>urn:av-openhome-org:serviceId:Product</serviceId>
<SCPDURL>/upmpd/OHProduct.xml</SCPDURL>
<controlURL>/ctl/OHProduct</controlURL>
<eventSubURL>/evt/OHProduct</eventSubURL>
</service>
<service>
<serviceType>urn:av-openhome-org:service:Info:1</serviceType>
<serviceId>urn:av-openhome-org:serviceId:Info</serviceId>
<SCPDURL>/upmpd/OHInfo.xml</SCPDURL>
<controlURL>/ctl/OHInfo</controlURL>
<eventSubURL>/evt/OHInfo</eventSubURL>
</service>
<service>
<serviceType>urn:av-openhome-org:service:Time:1</serviceType>
<serviceId>urn:av-openhome-org:serviceId:Time</serviceId>
<SCPDURL>/upmpd/OHTime.xml</SCPDURL>
<controlURL>/ctl/OHTime</controlURL>
<eventSubURL>/evt/OHTime</eventSubURL>
</service>
<service>
<serviceType>urn:av-openhome-org:service:Volume:1</serviceType>
<serviceId>urn:av-openhome-org:serviceId:Volume</serviceId>
<SCPDURL>/upmpd/OHVolume.xml</SCPDURL>
<controlURL>/ctl/OHVolume</controlURL>
<eventSubURL>/evt/OHVolume</eventSubURL>
</service>
<service>
<serviceType>urn:av-openhome-org:service:Playlist:1</serviceType>
<serviceId>urn:av-openhome-org:serviceId:Playlist</serviceId>
<SCPDURL>/upmpd/OHPlaylist.xml</SCPDURL>
<controlURL>/ctl/OHPlaylist</controlURL>
<eventSubURL>/evt/OHPlaylist</eventSubURL>
</service>
<service>
<serviceType>urn:av-openhome-org:service:Radio:1</serviceType>
<serviceId>urn:av-openhome-org:serviceId:Radio</serviceId>
<SCPDURL>/upmpd/OHRadio.xml</SCPDURL>
<controlURL>/ctl/OHRadio</controlURL>
<eventSubURL>/evt/OHRadio</eventSubURL>
</service>
</serviceList>
<presentationURL>/upmpd/presentation.html</presentationURL>
</device>
<devicelist></devicelist>
<URLBase>http://192.168.1.53:49152/</URLBase>
</root>

Renderer Volumio Volumio http://192.168.1.53:49152/ has 9 services
.. urn:schemas-upnp-org:service:RenderingControl:1 urn:upnp-org:serviceId:RenderingControl /ctl/RenderingControl
.. urn:schemas-upnp-org:service:AVTransport:1 urn:upnp-org:serviceId:AVTransport /ctl/AVTransport
.. urn:schemas-upnp-org:service:ConnectionManager:1 urn:upnp-org:serviceId:ConnectionManager /ctl/ConnectionManager
.. urn:av-openhome-org:service:Product:1 urn:av-openhome-org:serviceId:Product /ctl/OHProduct
.. urn:av-openhome-org:service:Info:1 urn:av-openhome-org:serviceId:Info /ctl/OHInfo
.. urn:av-openhome-org:service:Time:1 urn:av-openhome-org:serviceId:Time /ctl/OHTime
.. urn:av-openhome-org:service:Volume:1 urn:av-openhome-org:serviceId:Volume /ctl/OHVolume
.. urn:av-openhome-org:service:Playlist:1 urn:av-openhome-org:serviceId:Playlist /ctl/OHPlaylist
.. urn:av-openhome-org:service:Radio:1 urn:av-openhome-org:serviceId:Radio /ctl/OHRadio
SSDP discovery complete
Default audio output device: Speakers / Headphones (2- Realtek Audio)
Default config SupportedStreamConfig { channels: 2, sample_rate: SampleRate(48000), buffer_size: Unknown, sample_format: F32 }
Serving on 192.168.1.50:5901
Pushed renderer #0 Volumio Volumio, state = ON
Start playing on Volumio host=192.168.1.53 port=49152 from 192.168.1.50
OHPlaylist server URL: http://192.168.1.50:5901/stream/swyh.wav
url: http://192.168.1.53:49152/ctl/OHPlaylist, SOAP Action: urn:av-openhome-org:service:Playlist:1#DeleteAll, SOAP xml body
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:DeleteAll xmlns:u="urn:av-openhome-org:service:Playlist:1"/></s:Body></s:Envelope>
resp: <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body>
<u:DeleteAllResponse xmlns:u="urn:av-openhome-org:service:Playlist:1"></u:DeleteAllResponse>
</s:Body> </s:Envelope>
url: http://192.168.1.53:49152/ctl/OHPlaylist, SOAP Action: urn:av-openhome-org:service:Playlist:1#Insert, SOAP xml body
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:Insert xmlns:u="urn:av-openhome-org:service:Playlist:1"><AfterId>0</AfterId><Uri>http://192.168.1.50:5901/stream/swyh.wav</Uri><Metadata>&lt;DIDL-Lite&gt;&lt;item&gt;&lt;DIDL-Lite xmlns=&quot;urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:upnp=&quot;urn:schemas-upnp-org:metadata-1-0/upnp/&quot;&gt;&lt;item id=&quot;1&quot; parentID=&quot;0&quot; restricted=&quot;0&quot;&gt;&lt;dc:title&gt;swyh-rs&lt;/dc:title&gt;&lt;res bitsPerSample=&quot;16&quot; nrAudioChannels=&quot;2&quot; protocolInfo=&quot;http-get:*:audio/wav:*&quot; sampleFrequency=&quot;44100&quot;&gt;http://192.168.1.50:5901/stream/swyh.wav&lt;/res&gt;&lt;upnp:class&gt;object.item.audioItem.musicTrack&lt;/upnp:class&gt;&lt;/item&gt;&lt;/DIDL-Lite&gt;&lt;/item&gt;&lt;/DIDL-Lite&gt;</Metadata></u:Insert></s:Body></s:Envelope>
resp: <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body>
<u:InsertResponse xmlns:u="urn:av-openhome-org:service:Playlist:1">
<NewId>10</NewId>
</u:InsertResponse>
</s:Body> </s:Envelope>
SeekId: 10
url: http://192.168.1.53:49152/ctl/OHPlaylist, SOAP Action: urn:av-openhome-org:service:Playlist:1#SeekId, SOAP xml body
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:SeekId xmlns:u="urn:av-openhome-org:service:Playlist:1"><Value>10</Value></u:SeekId></s:Body></s:Envelope>
resp: <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body>
<u:SeekIdResponse xmlns:u="urn:av-openhome-org:service:Playlist:1"></u:SeekIdResponse>
</s:Body> </s:Envelope>
url: http://192.168.1.53:49152/ctl/OHPlaylist, SOAP Action: urn:av-openhome-org:service:Playlist:1#Play, SOAP xml body
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:Play xmlns:u="urn:av-openhome-org:service:Playlist:1"/></s:Body></s:Envelope>
Received request /stream/swyh.wav from 192.168.1.53:38544
resp: <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body>
<u:PlayResponse xmlns:u="urn:av-openhome-org:service:Playlist:1"></u:PlayResponse>
</s:Body> </s:Envelope>

V0.9.0 deb

C:\Users\Asus-AC2N> cd desktop\swyh-rs

C:\Users\Asus-AC2N\Desktop\SWYH-RS>swyh-rs-deb
thread 'main' panicked at 'called Result::unwrap() on an Err value: Os { code: 3, kind: NotFound, message: "Le chemin d’accès spécifié est introuvable." }', src\main.rs:144:77
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

C:\Users\Asus-AC2N\Desktop\SWYH-RS>

Adding functionality "Record what you hear"?

Hi and first of all thanks for your nice work :-)

Do you have a plan to add also the functionality "Record what you hear", preferably without a file size restriction?

In the original "SWYH" there's a file size limit which is sad since every time I record a long audiobook for later offline-hearing the recording stops after approx. 3 hours...

Thanks again and best regards

Allow network selection for ssdp discovery

@desaiamogh:
Your issue is not related, but it's a valid request. Currently the interface that can connect to the internet is used. I could add a dropdown with the available networks and remember the last choice, while keeping current behaviour on the first start after installation.

Originally posted by @dheijl in #40 (comment)

Hide GUI

Thank you for making swyh-rs!
I use it to send application audio to Chromecast devices like so:

App -> VB-Audio HiFi Cable -> swyh-rs -> BubbleUPNP -> Chromecast

In this scenario, ideally the chain is "always on" and I just fire up any given application, start the audio, and it should start playing on my speakers. That kind of works already, however I can find no way to autostart swyh-rs in the background. Is there a way to send it to tray, or hide the GUI altogether, or run it in daemon/system service mode? Basically, what I am asking is to be able to use swyh-rs without having to have the program window running. Maybe a --tray switch could be implemented that will run it GUI-less with a simple tray icon to close it, or something along those lines.

Phorus sound bar detected but doesn't play audio

Hi! This looks like a great utility allowing me to wirelessly use my soundbar as my laptop's sound output. Very cool.

Unfortunately it doesn't seem to work. Sound still keeps coming from my laptop's speakers instead of the soundbar. I have compiled from source and am running on Fedora 35. I see a message in the logs saying "Sorry, you don't have permissions to raise priority....". Any idea what could be going on?

I'm assuming it is not due to incompatibility, because a similar project did work, albeit with quite some latency. I have also disabled SELinux. The soundbar ("Woonkamer") is correctly detected.

Schermafdruk van 2022-02-13 16-16-29

Debug logs:

swyh-rs on  master [?] is 📦 v1.3.22-beta via 🦀 v1.58.1
✦ ❯ target/release/swyh-rs
15:22:30 [INFO] swyh-rs V 1.3.22-beta - Logging started.
15:22:30 [INFO] Config: Configuration { server_port: Some(5901), auto_resume: true, sound_source: "default", log_level: Debug, ssdp_interval_mins: 1.0, auto_reconnect: true, disable_chunked: false, use_wave_format: false, bits_per_sample: Some(24), monitor_rms: false, last_renderer: "Phorus-Renderer Woonkamer", last_network: "192.168.178.17", config_dir: "/home/anieuwland/.swyh-rs" }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices: Supported hosts:
  [Alsa]
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices: Available hosts:
  [Alsa]
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices: ALSA
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:   Default Output Device:
    Some("default")
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:   Devices: 
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:   1. "pipewire"
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:     All supported output stream configs:
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.1. SupportedStreamConfigRange { channels: 1, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.2. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.3. SupportedStreamConfigRange { channels: 3, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.4. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.5. SupportedStreamConfigRange { channels: 5, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.6. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.7. SupportedStreamConfigRange { channels: 7, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.8. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.9. SupportedStreamConfigRange { channels: 9, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.10. SupportedStreamConfigRange { channels: 10, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.11. SupportedStreamConfigRange { channels: 11, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.12. SupportedStreamConfigRange { channels: 12, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.13. SupportedStreamConfigRange { channels: 13, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.14. SupportedStreamConfigRange { channels: 14, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.15. SupportedStreamConfigRange { channels: 15, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.16. SupportedStreamConfigRange { channels: 16, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.17. SupportedStreamConfigRange { channels: 17, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.18. SupportedStreamConfigRange { channels: 18, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.19. SupportedStreamConfigRange { channels: 19, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.20. SupportedStreamConfigRange { channels: 20, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.21. SupportedStreamConfigRange { channels: 21, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.22. SupportedStreamConfigRange { channels: 22, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.23. SupportedStreamConfigRange { channels: 23, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.24. SupportedStreamConfigRange { channels: 24, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.25. SupportedStreamConfigRange { channels: 25, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.26. SupportedStreamConfigRange { channels: 26, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.27. SupportedStreamConfigRange { channels: 27, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.28. SupportedStreamConfigRange { channels: 28, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.29. SupportedStreamConfigRange { channels: 29, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.30. SupportedStreamConfigRange { channels: 30, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.31. SupportedStreamConfigRange { channels: 31, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.32. SupportedStreamConfigRange { channels: 32, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.33. SupportedStreamConfigRange { channels: 1, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.34. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.35. SupportedStreamConfigRange { channels: 3, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.36. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.37. SupportedStreamConfigRange { channels: 5, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.38. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.39. SupportedStreamConfigRange { channels: 7, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.40. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.41. SupportedStreamConfigRange { channels: 9, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.42. SupportedStreamConfigRange { channels: 10, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.43. SupportedStreamConfigRange { channels: 11, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.44. SupportedStreamConfigRange { channels: 12, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.45. SupportedStreamConfigRange { channels: 13, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.46. SupportedStreamConfigRange { channels: 14, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.47. SupportedStreamConfigRange { channels: 15, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.48. SupportedStreamConfigRange { channels: 16, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.49. SupportedStreamConfigRange { channels: 17, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.50. SupportedStreamConfigRange { channels: 18, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.51. SupportedStreamConfigRange { channels: 19, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.52. SupportedStreamConfigRange { channels: 20, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.53. SupportedStreamConfigRange { channels: 21, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.54. SupportedStreamConfigRange { channels: 22, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.55. SupportedStreamConfigRange { channels: 23, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.56. SupportedStreamConfigRange { channels: 24, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.57. SupportedStreamConfigRange { channels: 25, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.58. SupportedStreamConfigRange { channels: 26, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.59. SupportedStreamConfigRange { channels: 27, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.60. SupportedStreamConfigRange { channels: 28, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.61. SupportedStreamConfigRange { channels: 29, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.62. SupportedStreamConfigRange { channels: 30, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.63. SupportedStreamConfigRange { channels: 31, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.64. SupportedStreamConfigRange { channels: 32, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:     Default output stream config:
      SupportedStreamConfig { channels: 2, sample_rate: SampleRate(44100), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
swyh-rs on  master [?] is 📦 v1.3.22-beta via 🦀 v1.58.1
✦ ❯ 15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:   2. "default"
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:     All supported output stream configs:
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.1. SupportedStreamConfigRange { channels: 1, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.2. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.3. SupportedStreamConfigRange { channels: 3, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.4. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.5. SupportedStreamConfigRange { channels: 5, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.6. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.7. SupportedStreamConfigRange { channels: 7, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.8. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.9. SupportedStreamConfigRange { channels: 9, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.10. SupportedStreamConfigRange { channels: 10, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.11. SupportedStreamConfigRange { channels: 11, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.12. SupportedStreamConfigRange { channels: 12, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.13. SupportedStreamConfigRange { channels: 13, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.14. SupportedStreamConfigRange { channels: 14, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.15. SupportedStreamConfigRange { channels: 15, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.16. SupportedStreamConfigRange { channels: 16, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.17. SupportedStreamConfigRange { channels: 17, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.18. SupportedStreamConfigRange { channels: 18, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.19. SupportedStreamConfigRange { channels: 19, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.20. SupportedStreamConfigRange { channels: 20, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.21. SupportedStreamConfigRange { channels: 21, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.22. SupportedStreamConfigRange { channels: 22, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.23. SupportedStreamConfigRange { channels: 23, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.24. SupportedStreamConfigRange { channels: 24, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.25. SupportedStreamConfigRange { channels: 25, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.26. SupportedStreamConfigRange { channels: 26, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.27. SupportedStreamConfigRange { channels: 27, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.28. SupportedStreamConfigRange { channels: 28, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.29. SupportedStreamConfigRange { channels: 29, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.30. SupportedStreamConfigRange { channels: 30, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.31. SupportedStreamConfigRange { channels: 31, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.32. SupportedStreamConfigRange { channels: 32, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.33. SupportedStreamConfigRange { channels: 1, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.34. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.35. SupportedStreamConfigRange { channels: 3, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.36. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.37. SupportedStreamConfigRange { channels: 5, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.38. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.39. SupportedStreamConfigRange { channels: 7, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.40. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.41. SupportedStreamConfigRange { channels: 9, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.42. SupportedStreamConfigRange { channels: 10, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.43. SupportedStreamConfigRange { channels: 11, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.44. SupportedStreamConfigRange { channels: 12, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.45. SupportedStreamConfigRange { channels: 13, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.46. SupportedStreamConfigRange { channels: 14, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.47. SupportedStreamConfigRange { channels: 15, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.48. SupportedStreamConfigRange { channels: 16, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.49. SupportedStreamConfigRange { channels: 17, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.50. SupportedStreamConfigRange { channels: 18, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.51. SupportedStreamConfigRange { channels: 19, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.52. SupportedStreamConfigRange { channels: 20, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.53. SupportedStreamConfigRange { channels: 21, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.54. SupportedStreamConfigRange { channels: 22, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.55. SupportedStreamConfigRange { channels: 23, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.56. SupportedStreamConfigRange { channels: 24, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.57. SupportedStreamConfigRange { channels: 25, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.58. SupportedStreamConfigRange { channels: 26, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.59. SupportedStreamConfigRange { channels: 27, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.60. SupportedStreamConfigRange { channels: 28, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.61. SupportedStreamConfigRange { channels: 29, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.62. SupportedStreamConfigRange { channels: 30, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.63. SupportedStreamConfigRange { channels: 31, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.64. SupportedStreamConfigRange { channels: 32, min_sample_rate: SampleRate(1), max_sample_rate: SampleRate(384000), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:     Default output stream config:
      SupportedStreamConfig { channels: 2, sample_rate: SampleRate(44100), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:   3. "sysdefault:CARD=PCH"
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices: Error: DeviceNotAvailable
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:   4. "front:CARD=PCH,DEV=0"
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices: Error: DeviceNotAvailable
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:   5. "surround40:CARD=PCH,DEV=0"
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices: Error: DeviceNotAvailable
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:   6. "surround51:CARD=PCH,DEV=0"
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices: Error: DeviceNotAvailable
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:   7. "surround71:CARD=PCH,DEV=0"
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices: Error: DeviceNotAvailable
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:   8. "hdmi:CARD=PCH,DEV=0"
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:     All supported output stream configs:
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.1. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(32000), max_sample_rate: SampleRate(32000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.2. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(44100), max_sample_rate: SampleRate(44100), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.3. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(48000), max_sample_rate: SampleRate(48000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.4. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(88200), max_sample_rate: SampleRate(88200), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.5. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(96000), max_sample_rate: SampleRate(96000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.6. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(176400), max_sample_rate: SampleRate(176400), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.7. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(192000), max_sample_rate: SampleRate(192000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.8. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(32000), max_sample_rate: SampleRate(32000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.9. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(44100), max_sample_rate: SampleRate(44100), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.10. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(48000), max_sample_rate: SampleRate(48000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.11. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(88200), max_sample_rate: SampleRate(88200), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.12. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(96000), max_sample_rate: SampleRate(96000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.13. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(176400), max_sample_rate: SampleRate(176400), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.14. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(192000), max_sample_rate: SampleRate(192000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.15. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(32000), max_sample_rate: SampleRate(32000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.16. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(44100), max_sample_rate: SampleRate(44100), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.17. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(48000), max_sample_rate: SampleRate(48000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.18. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(88200), max_sample_rate: SampleRate(88200), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.19. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(96000), max_sample_rate: SampleRate(96000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.20. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(176400), max_sample_rate: SampleRate(176400), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.21. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(192000), max_sample_rate: SampleRate(192000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.22. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(32000), max_sample_rate: SampleRate(32000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.23. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(44100), max_sample_rate: SampleRate(44100), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.24. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(48000), max_sample_rate: SampleRate(48000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.25. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(88200), max_sample_rate: SampleRate(88200), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.26. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(96000), max_sample_rate: SampleRate(96000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.27. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(176400), max_sample_rate: SampleRate(176400), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       8.28. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(192000), max_sample_rate: SampleRate(192000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:     Default output stream config:
      SupportedStreamConfig { channels: 2, sample_rate: SampleRate(44100), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:   9. "hdmi:CARD=PCH,DEV=1"
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:     All supported output stream configs:
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.1. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(32000), max_sample_rate: SampleRate(32000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.2. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(44100), max_sample_rate: SampleRate(44100), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.3. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(48000), max_sample_rate: SampleRate(48000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.4. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(88200), max_sample_rate: SampleRate(88200), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.5. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(96000), max_sample_rate: SampleRate(96000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.6. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(176400), max_sample_rate: SampleRate(176400), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.7. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(192000), max_sample_rate: SampleRate(192000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.8. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(32000), max_sample_rate: SampleRate(32000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.9. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(44100), max_sample_rate: SampleRate(44100), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.10. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(48000), max_sample_rate: SampleRate(48000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.11. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(88200), max_sample_rate: SampleRate(88200), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.12. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(96000), max_sample_rate: SampleRate(96000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.13. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(176400), max_sample_rate: SampleRate(176400), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.14. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(192000), max_sample_rate: SampleRate(192000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.15. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(32000), max_sample_rate: SampleRate(32000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.16. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(44100), max_sample_rate: SampleRate(44100), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.17. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(48000), max_sample_rate: SampleRate(48000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.18. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(88200), max_sample_rate: SampleRate(88200), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.19. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(96000), max_sample_rate: SampleRate(96000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.20. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(176400), max_sample_rate: SampleRate(176400), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.21. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(192000), max_sample_rate: SampleRate(192000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.22. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(32000), max_sample_rate: SampleRate(32000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.23. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(44100), max_sample_rate: SampleRate(44100), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.24. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(48000), max_sample_rate: SampleRate(48000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.25. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(88200), max_sample_rate: SampleRate(88200), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.26. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(96000), max_sample_rate: SampleRate(96000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.27. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(176400), max_sample_rate: SampleRate(176400), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       9.28. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(192000), max_sample_rate: SampleRate(192000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:     Default output stream config:
      SupportedStreamConfig { channels: 2, sample_rate: SampleRate(44100), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:   10. "hdmi:CARD=PCH,DEV=2"
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:     All supported output stream configs:
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.1. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(32000), max_sample_rate: SampleRate(32000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.2. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(44100), max_sample_rate: SampleRate(44100), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.3. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(48000), max_sample_rate: SampleRate(48000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.4. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(88200), max_sample_rate: SampleRate(88200), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.5. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(96000), max_sample_rate: SampleRate(96000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.6. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(176400), max_sample_rate: SampleRate(176400), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.7. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(192000), max_sample_rate: SampleRate(192000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.8. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(32000), max_sample_rate: SampleRate(32000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.9. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(44100), max_sample_rate: SampleRate(44100), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.10. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(48000), max_sample_rate: SampleRate(48000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.11. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(88200), max_sample_rate: SampleRate(88200), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.12. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(96000), max_sample_rate: SampleRate(96000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.13. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(176400), max_sample_rate: SampleRate(176400), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.14. SupportedStreamConfigRange { channels: 4, min_sample_rate: SampleRate(192000), max_sample_rate: SampleRate(192000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.15. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(32000), max_sample_rate: SampleRate(32000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.16. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(44100), max_sample_rate: SampleRate(44100), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.17. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(48000), max_sample_rate: SampleRate(48000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.18. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(88200), max_sample_rate: SampleRate(88200), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.19. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(96000), max_sample_rate: SampleRate(96000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.20. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(176400), max_sample_rate: SampleRate(176400), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.21. SupportedStreamConfigRange { channels: 6, min_sample_rate: SampleRate(192000), max_sample_rate: SampleRate(192000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.22. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(32000), max_sample_rate: SampleRate(32000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.23. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(44100), max_sample_rate: SampleRate(44100), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.24. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(48000), max_sample_rate: SampleRate(48000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.25. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(88200), max_sample_rate: SampleRate(88200), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.26. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(96000), max_sample_rate: SampleRate(96000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.27. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(176400), max_sample_rate: SampleRate(176400), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:       10.28. SupportedStreamConfigRange { channels: 8, min_sample_rate: SampleRate(192000), max_sample_rate: SampleRate(192000), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [DEBUG] (1) swyh_rs::utils::audiodevices:     Default output stream config:
      SupportedStreamConfig { channels: 2, sample_rate: SampleRate(44100), buffer_size: Range { min: 8, max: 1048576 }, sample_format: I16 }
15:22:30 [INFO] Selected audio source: default
15:22:30 [INFO] tb_log: Setup audio sources
15:22:30 [INFO] tb_log: Sorry, but you don't have permissions to raise priority...
15:22:30 [DEBUG] (1) swyh_rs: Try capturing system audio
15:22:30 [INFO] tb_log: Capturing audio from: default
15:22:30 [INFO] tb_log: Default audio SupportedStreamConfig { channels: 2, sample_rate: SampleRate(44100), buffer_size: Range { min: 1, max: 4194304 }, sample_format: F32 }
15:22:30 [INFO] tb_log: Discover networks
15:22:30 [INFO] tb_log: Starting SSDP discovery
15:22:30 [DEBUG] (3) swyh_rs::openhome::avmedia: SSDP discovery started
15:22:30 [DEBUG] (3) swyh_rs::openhome::avmedia: UDP response at 5 from 192.168.178.18:41535: 
HTTP/1.1 200 OK
CACHE-CONTROL: max-age=300
DATE: Sun, 13 Feb 2022 15:22:30 GMT
EXT:
LOCATION: http://192.168.178.18:49152/description.xml
OPT: "http://schemas.upnp.org/upnp/1/0/"; ns=01
01-NLS: f286a5f4-1dd1-11b2-bcdb-cf46d6e2c139
SERVER: Linux/3.12.74-retail-development, UPnP/1.0, Portable SDK for UPnP devices/1.6.19
X-User-Agent: redsonic
ST: urn:schemas-upnp-org:service:RenderingControl:1
USN: uuid:3d62cbc4-32f8-4fbc-8618-60b60625f03b::urn:schemas-upnp-org:service:RenderingControl:1


15:22:30 [DEBUG] (3) swyh_rs::openhome::avmedia: SSDP Discovery: AV renderer: http://192.168.178.18:49152/description.xml
15:22:30 [INFO] tb_log: The wave_reader is now receiving samples
15:22:33 [INFO] SSDP discovery: new Renderer found at : http://192.168.178.18:49152/description.xml
15:22:33 [DEBUG] (3) swyh_rs::openhome::avmedia: Getting new renderer descriptions
15:22:33 [DEBUG] (3) swyh_rs::openhome::avmedia: Get service description for http://192.168.178.18:49152/description.xml
15:22:33 [DEBUG] (3) ureq::stream: connecting to 192.168.178.18:49152 at 192.168.178.18:49152
15:22:33 [DEBUG] (3) ureq::stream: created stream: TcpStream { addr: 192.168.178.17:39746, peer: 192.168.178.18:49152, fd: 22 }
15:22:33 [DEBUG] (3) ureq::unit: sending request GET http://192.168.178.18:49152/description.xml
15:22:33 [DEBUG] (3) ureq::unit: writing prelude: GET /description.xml HTTP/1.1
Host: 192.168.178.18:49152
Accept: */*
User-Agent: swyh-rs-Rust
Content-Type: text/xml
accept-encoding: gzip
Content-Length: 0
15:22:33 [DEBUG] (3) ureq::unit: response 200 to GET http://192.168.178.18:49152/description.xml
15:22:33 [DEBUG] (3) ureq::stream: dropping stream: TcpStream { addr: 192.168.178.17:39746, peer: 192.168.178.18:49152, fd: 22 }
15:22:33 [DEBUG] (3) swyh_rs::openhome::avmedia: Service description:
15:22:33 [DEBUG] (3) swyh_rs::openhome::avmedia: <?xml version="1.0"?>
<root xmlns="urn:schemas-upnp-org:device-1-0" xmlns:qq="http://www.tencent.com" xmlns:dlna="urn:schemas-dlna-org:device-1-0">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<device>
<deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType>
<qq:X_QPlay_SoftwareCapability>QPlay:2</qq:X_QPlay_SoftwareCapability>
<UDN>uuid:3d62cbc4-32f8-4fbc-8618-60b60625f03b</UDN>
<friendlyName>Woonkamer</friendlyName>
<hostIpAddress>192.168.178.18</hostIpAddress>
<hostPortNo>49152</hostPortNo>
<manufacturer>Phorus</manufacturer>
<manufacturerURL>www.phorus.com</manufacturerURL>
<modelDescription>Phorus-Renderer</modelDescription>
<modelName>Phorus-Renderer</modelName>
<modelNumber>1.0</modelNumber>
<modelURL>www.phorus.com</modelURL>
<dlna:X_DLNADOC>DMR-1.50</dlna:X_DLNADOC>
<serialNumber>000000000001</serialNumber>
<UPC>000000000001</UPC>
<iconList>
<icon>
<mimetype>image/png</mimetype>
<width>72</width>
<height>72</height>
<depth>32</depth>
<url>/upnpmplayer.png</url>
</icon>
</iconList>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType>
<serviceId>urn:upnp-org:serviceId:AVTransport</serviceId>
<controlURL>/upnp/control/AVTransport1</controlURL>
<eventSubURL>/upnp/event/AVTransport1</eventSubURL>
<SCPDURL>AVTransport.xml</SCPDURL>
</service>
<service>
<serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType>
<serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId>
<controlURL>/upnp/control/RenderingControl1</controlURL>
<eventSubURL>/upnp/event/RenderingControl1</eventSubURL>
<SCPDURL>RendererControl.xml</SCPDURL>
</service>
<service>
<serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>
<serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>
<controlURL>/upnp/control/ConnectionManager1</controlURL>
<eventSubURL>/upnp/event/ConnectionManager1</eventSubURL>
<SCPDURL>ConnectionManager.xml</SCPDURL>
</service>
<service>
<serviceType>urn:schemas-tencent-com:service:QPlay:2</serviceType>
<serviceId>urn:tencent-com:serviceId:QPlay</serviceId>
<controlURL>/upnp/control/QPlay1</controlURL>
<eventSubURL>/upnp/event/QPlay1</eventSubURL>
<SCPDURL>QPlayQueueService.xml</SCPDURL>
</service>
</serviceList>
<presentationURL></presentationURL>
</device>
<URLBase>http://192.168.178.18:49152/</URLBase>
</root>

15:22:33 [DEBUG] (3) swyh_rs::openhome::avmedia: Renderer Woonkamer Phorus-Renderer ip 192.168.178.18 at urlbase http://192.168.178.18:49152/ has 4 services
15:22:33 [DEBUG] (3) swyh_rs::openhome::avmedia:   => OpenHome Playlist control url: '', AvTransport url: '/upnp/control/AVTransport1'
15:22:33 [DEBUG] (3) swyh_rs::openhome::avmedia: .. urn:schemas-upnp-org:service:AVTransport:1 urn:upnp-org:serviceId:AVTransport /upnp/control/AVTransport1
15:22:33 [DEBUG] (3) swyh_rs::openhome::avmedia: .. urn:schemas-upnp-org:service:RenderingControl:1 urn:upnp-org:serviceId:RenderingControl /upnp/control/RenderingControl1
15:22:33 [DEBUG] (3) swyh_rs::openhome::avmedia: .. urn:schemas-upnp-org:service:ConnectionManager:1 urn:upnp-org:serviceId:ConnectionManager /upnp/control/ConnectionManager1
15:22:33 [DEBUG] (3) swyh_rs::openhome::avmedia: .. urn:schemas-tencent-com:service:QPlay:2 urn:tencent-com:serviceId:QPlay /upnp/control/QPlay1
15:22:33 [DEBUG] (3) swyh_rs::openhome::avmedia: SSDP discovery complete
15:22:33 [INFO] Found new renderer Woonkamer Phorus-Renderer  at 192.168.178.18
15:22:33 [DEBUG] (1) swyh_rs::ui::mainform: Pushed renderer #0 Phorus-Renderer Woonkamer, state = ON
15:22:33 [DEBUG] (1) swyh_rs::utils::configuration: Updated CONFIG: [Configuration]
ServerPort = 5901
AutoResume = true
SoundCard = "default"
LogLevel = "DEBUG"
SSDPIntervalMins = 1.0
AutoReconnect = true
DisableChunked = false
UseWaveFormat = false
BitsPerSample = 24
MonitorRms = false
LastRenderer = "Phorus-Renderer Woonkamer"
LastNetwork = "192.168.178.17"
ConfigDir = "/home/anieuwland/.swyh-rs"

15:22:33 [INFO] tb_log: AV Stop playing on Woonkamer host=192.168.178.18 port=49152
15:22:33 [DEBUG] (1) swyh_rs::openhome::avmedia: url: http://192.168.178.18:49152/upnp/control/AVTransport1,
=>SOAP Action: urn:schemas-upnp-org:service:AVTransport:1#Stop,
=>SOAP xml: 
<?xml version="1.0" encoding="utf-8"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:Stop xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID></u:Stop></s:Body></s:Envelope>
15:22:33 [DEBUG] (1) ureq::stream: connecting to 192.168.178.18:49152 at 192.168.178.18:49152
15:22:33 [DEBUG] (1) ureq::stream: created stream: TcpStream { addr: 192.168.178.17:39748, peer: 192.168.178.18:49152, fd: 14 }
15:22:33 [DEBUG] (1) ureq::unit: sending request POST http://192.168.178.18:49152/upnp/control/AVTransport1
15:22:33 [DEBUG] (1) ureq::unit: writing prelude: POST /upnp/control/AVTransport1 HTTP/1.1
Host: 192.168.178.18:49152
Connection: close
User-Agent: swyh-rs-Rust/0.x
Accept: */*
SOAPAction: "urn:schemas-upnp-org:service:AVTransport:1#Stop"
Content-Type: text/xml; charset="utf-8"
accept-encoding: gzip
Content-Length: 288
15:22:33 [DEBUG] (1) ureq::unit: response 200 to POST http://192.168.178.18:49152/upnp/control/AVTransport1
15:22:33 [DEBUG] (1) ureq::pool: adding stream to pool: http|192.168.178.18|49152 -> TcpStream { addr: 192.168.178.17:39748, peer: 192.168.178.18:49152, fd: 14 }
15:22:33 [DEBUG] (1) ureq::stream: dropping stream: TcpStream { addr: 192.168.178.17:39748, peer: 192.168.178.18:49152, fd: 14 }
15:22:33 [DEBUG] (1) swyh_rs::openhome::avmedia: <=SOAP response: <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body>
<u:StopResponse xmlns:u="urn:upnp-org:serviceId:AVTransport"></u:StopResponse>
</s:Body> </s:Envelope>

15:22:33 [INFO] tb_log: AV Start playing on Woonkamer host=192.168.178.18 port=49152 from 192.168.178.17 using AvTransport Play
15:22:33 [DEBUG] (1) swyh_rs::openhome::avmedia: AvTransport server URL: http://192.168.178.17:5901/stream/swyh.wav
15:22:33 [DEBUG] (1) swyh_rs::openhome::avmedia: url: http://192.168.178.18:49152/upnp/control/AVTransport1,
=>SOAP Action: urn:schemas-upnp-org:service:AVTransport:1#SetAVTransportURI,
=>SOAP xml: 
<?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:SetAVTransportURI xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><CurrentURI>http://192.168.178.17:5901/stream/swyh.wav</CurrentURI><CurrentURIMetaData>&lt;DIDL-Lite xmlns=&quot;urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:upnp=&quot;urn:schemas-upnp-org:metadata-1-0/upnp/&quot;&gt;&lt;item id=&quot;1&quot; parentID=&quot;0&quot; restricted=&quot;0&quot;&gt;&lt;dc:title&gt;swyh-rs&lt;/dc:title&gt;&lt;res bitsPerSample=&quot;24&quot; nrAudioChannels=&quot;2&quot; sampleFrequency=&quot;44100&quot; protocolInfo=&quot;&quot; duration=&quot;00:00:00&quot; &gt;http://192.168.178.17:5901/stream/swyh.wav&lt;/res&gt;&lt;upnp:class&gt;object.item.audioItem.musicTrack&lt;/upnp:class&gt;&lt;/item&gt;&lt;/DIDL-Lite&gt;</CurrentURIMetaData></u:SetAVTransportURI></s:Body></s:Envelope>
15:22:33 [DEBUG] (1) ureq::stream: connecting to 192.168.178.18:49152 at 192.168.178.18:49152
15:22:33 [DEBUG] (1) ureq::stream: created stream: TcpStream { addr: 192.168.178.17:39750, peer: 192.168.178.18:49152, fd: 14 }
15:22:33 [DEBUG] (1) ureq::unit: sending request POST http://192.168.178.18:49152/upnp/control/AVTransport1
15:22:33 [DEBUG] (1) ureq::unit: writing prelude: POST /upnp/control/AVTransport1 HTTP/1.1
Host: 192.168.178.18:49152
Connection: close
User-Agent: swyh-rs-Rust/0.x
Accept: */*
SOAPAction: "urn:schemas-upnp-org:service:AVTransport:1#SetAVTransportURI"
Content-Type: text/xml; charset="utf-8"
accept-encoding: gzip
Content-Length: 1051
15:22:33 [DEBUG] (1) ureq::unit: response 200 to POST http://192.168.178.18:49152/upnp/control/AVTransport1
15:22:33 [DEBUG] (1) ureq::pool: adding stream to pool: http|192.168.178.18|49152 -> TcpStream { addr: 192.168.178.17:39750, peer: 192.168.178.18:49152, fd: 14 }
15:22:33 [DEBUG] (1) ureq::stream: dropping stream: TcpStream { addr: 192.168.178.17:39750, peer: 192.168.178.18:49152, fd: 14 }
15:22:33 [DEBUG] (1) swyh_rs::openhome::avmedia: <=SOAP response: <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body>
<u:SetAVTransportURIResponse xmlns:u="urn:upnp-org:serviceId:AVTransport"></u:SetAVTransportURIResponse>
</s:Body> </s:Envelope>

15:22:33 [DEBUG] (1) swyh_rs::openhome::avmedia: url: http://192.168.178.18:49152/upnp/control/AVTransport1,
=>SOAP Action: urn:schemas-upnp-org:service:AVTransport:1#Play,
=>SOAP xml: 
<?xml version="1.0" encoding="utf-8"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:Play xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><Speed>1</Speed></u:Play></s:Body></s:Envelope>
15:22:33 [DEBUG] (1) ureq::stream: connecting to 192.168.178.18:49152 at 192.168.178.18:49152
15:22:33 [DEBUG] (1) ureq::stream: created stream: TcpStream { addr: 192.168.178.17:39752, peer: 192.168.178.18:49152, fd: 14 }
15:22:33 [DEBUG] (1) ureq::unit: sending request POST http://192.168.178.18:49152/upnp/control/AVTransport1
15:22:33 [DEBUG] (1) ureq::unit: writing prelude: POST /upnp/control/AVTransport1 HTTP/1.1
Host: 192.168.178.18:49152
Connection: close
User-Agent: swyh-rs-Rust/0.x
Accept: */*
SOAPAction: "urn:schemas-upnp-org:service:AVTransport:1#Play"
Content-Type: text/xml; charset="utf-8"
accept-encoding: gzip
Content-Length: 304
15:22:33 [DEBUG] (1) ureq::unit: response 200 to POST http://192.168.178.18:49152/upnp/control/AVTransport1
15:22:33 [DEBUG] (1) ureq::pool: adding stream to pool: http|192.168.178.18|49152 -> TcpStream { addr: 192.168.178.17:39752, peer: 192.168.178.18:49152, fd: 14 }
15:22:33 [DEBUG] (1) ureq::stream: dropping stream: TcpStream { addr: 192.168.178.17:39752, peer: 192.168.178.18:49152, fd: 14 }
15:22:33 [DEBUG] (1) swyh_rs::openhome::avmedia: <=SOAP response: <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body>
<u:PlayResponse xmlns:u="urn:upnp-org:serviceId:AVTransport"></u:PlayResponse>
</s:Body> </s:Envelope>

15:22:34 [INFO] tb_log: The streaming server is listening on http://192.168.178.17:5901/stream/swyh.wav
15:22:34 [INFO] tb_log: Sample rate: 44100, sample format: audio/L24 (PCM)
15:22:34 [DEBUG] (5) tiny_http: Server listening on 192.168.178.17:5901
15:22:34 [DEBUG] (6) tiny_http: Running accept thread
15:22:36 [DEBUG] (1) swyh_rs::ui::mainform: Pushed renderer #0 Phorus-Renderer Woonkamer, state = OFF
15:22:36 [INFO] tb_log: AV Stop playing on Woonkamer host=192.168.178.18 port=49152
15:22:36 [DEBUG] (1) swyh_rs::openhome::avmedia: url: http://192.168.178.18:49152/upnp/control/AVTransport1,
=>SOAP Action: urn:schemas-upnp-org:service:AVTransport:1#Stop,
=>SOAP xml: 
<?xml version="1.0" encoding="utf-8"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:Stop xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID></u:Stop></s:Body></s:Envelope>
15:22:36 [DEBUG] (1) ureq::stream: connecting to 192.168.178.18:49152 at 192.168.178.18:49152
15:22:36 [DEBUG] (1) ureq::stream: created stream: TcpStream { addr: 192.168.178.17:39754, peer: 192.168.178.18:49152, fd: 23 }
15:22:36 [DEBUG] (1) ureq::unit: sending request POST http://192.168.178.18:49152/upnp/control/AVTransport1
15:22:36 [DEBUG] (1) ureq::unit: writing prelude: POST /upnp/control/AVTransport1 HTTP/1.1
Host: 192.168.178.18:49152
Connection: close
User-Agent: swyh-rs-Rust/0.x
Accept: */*
SOAPAction: "urn:schemas-upnp-org:service:AVTransport:1#Stop"
Content-Type: text/xml; charset="utf-8"
accept-encoding: gzip
Content-Length: 288
15:22:36 [DEBUG] (1) ureq::unit: response 200 to POST http://192.168.178.18:49152/upnp/control/AVTransport1
15:22:36 [DEBUG] (1) ureq::pool: adding stream to pool: http|192.168.178.18|49152 -> TcpStream { addr: 192.168.178.17:39754, peer: 192.168.178.18:49152, fd: 23 }
15:22:36 [DEBUG] (1) ureq::stream: dropping stream: TcpStream { addr: 192.168.178.17:39754, peer: 192.168.178.18:49152, fd: 23 }
15:22:36 [DEBUG] (1) swyh_rs::openhome::avmedia: <=SOAP response: <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body>
<u:StopResponse xmlns:u="urn:upnp-org:serviceId:AVTransport"></u:StopResponse>
</s:Body> </s:Envelope>

15:22:37 [DEBUG] (1) swyh_rs::ui::mainform: Pushed renderer #0 Phorus-Renderer Woonkamer, state = ON
15:22:37 [DEBUG] (1) swyh_rs::utils::configuration: Updated CONFIG: [Configuration]
ServerPort = 5901
AutoResume = true
SoundCard = "default"
LogLevel = "DEBUG"
SSDPIntervalMins = 1.0
AutoReconnect = true
DisableChunked = false
UseWaveFormat = false
BitsPerSample = 24
MonitorRms = false
LastRenderer = "Phorus-Renderer Woonkamer"
LastNetwork = "192.168.178.17"
ConfigDir = "/home/anieuwland/.swyh-rs"

15:22:37 [INFO] tb_log: AV Stop playing on Woonkamer host=192.168.178.18 port=49152
15:22:37 [DEBUG] (1) swyh_rs::openhome::avmedia: url: http://192.168.178.18:49152/upnp/control/AVTransport1,
=>SOAP Action: urn:schemas-upnp-org:service:AVTransport:1#Stop,
=>SOAP xml: 
<?xml version="1.0" encoding="utf-8"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:Stop xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID></u:Stop></s:Body></s:Envelope>
15:22:37 [DEBUG] (1) ureq::stream: connecting to 192.168.178.18:49152 at 192.168.178.18:49152
15:22:37 [DEBUG] (1) ureq::stream: created stream: TcpStream { addr: 192.168.178.17:39756, peer: 192.168.178.18:49152, fd: 23 }
15:22:37 [DEBUG] (1) ureq::unit: sending request POST http://192.168.178.18:49152/upnp/control/AVTransport1
15:22:37 [DEBUG] (1) ureq::unit: writing prelude: POST /upnp/control/AVTransport1 HTTP/1.1
Host: 192.168.178.18:49152
Connection: close
User-Agent: swyh-rs-Rust/0.x
Accept: */*
SOAPAction: "urn:schemas-upnp-org:service:AVTransport:1#Stop"
Content-Type: text/xml; charset="utf-8"
accept-encoding: gzip
Content-Length: 288
15:22:37 [DEBUG] (1) ureq::unit: response 200 to POST http://192.168.178.18:49152/upnp/control/AVTransport1
15:22:37 [DEBUG] (1) ureq::pool: adding stream to pool: http|192.168.178.18|49152 -> TcpStream { addr: 192.168.178.17:39756, peer: 192.168.178.18:49152, fd: 23 }
15:22:37 [DEBUG] (1) ureq::stream: dropping stream: TcpStream { addr: 192.168.178.17:39756, peer: 192.168.178.18:49152, fd: 23 }
15:22:37 [DEBUG] (1) swyh_rs::openhome::avmedia: <=SOAP response: <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body>
<u:StopResponse xmlns:u="urn:upnp-org:serviceId:AVTransport"></u:StopResponse>
</s:Body> </s:Envelope>

15:22:37 [INFO] tb_log: AV Start playing on Woonkamer host=192.168.178.18 port=49152 from 192.168.178.17 using AvTransport Play
15:22:37 [DEBUG] (1) swyh_rs::openhome::avmedia: AvTransport server URL: http://192.168.178.17:5901/stream/swyh.wav
15:22:37 [DEBUG] (1) swyh_rs::openhome::avmedia: url: http://192.168.178.18:49152/upnp/control/AVTransport1,
=>SOAP Action: urn:schemas-upnp-org:service:AVTransport:1#SetAVTransportURI,
=>SOAP xml: 
<?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:SetAVTransportURI xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><CurrentURI>http://192.168.178.17:5901/stream/swyh.wav</CurrentURI><CurrentURIMetaData>&lt;DIDL-Lite xmlns=&quot;urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:upnp=&quot;urn:schemas-upnp-org:metadata-1-0/upnp/&quot;&gt;&lt;item id=&quot;1&quot; parentID=&quot;0&quot; restricted=&quot;0&quot;&gt;&lt;dc:title&gt;swyh-rs&lt;/dc:title&gt;&lt;res bitsPerSample=&quot;24&quot; nrAudioChannels=&quot;2&quot; sampleFrequency=&quot;44100&quot; protocolInfo=&quot;&quot; duration=&quot;00:00:00&quot; &gt;http://192.168.178.17:5901/stream/swyh.wav&lt;/res&gt;&lt;upnp:class&gt;object.item.audioItem.musicTrack&lt;/upnp:class&gt;&lt;/item&gt;&lt;/DIDL-Lite&gt;</CurrentURIMetaData></u:SetAVTransportURI></s:Body></s:Envelope>
15:22:37 [DEBUG] (1) ureq::stream: connecting to 192.168.178.18:49152 at 192.168.178.18:49152
15:22:37 [DEBUG] (1) ureq::stream: created stream: TcpStream { addr: 192.168.178.17:39758, peer: 192.168.178.18:49152, fd: 23 }
15:22:37 [DEBUG] (1) ureq::unit: sending request POST http://192.168.178.18:49152/upnp/control/AVTransport1
15:22:37 [DEBUG] (1) ureq::unit: writing prelude: POST /upnp/control/AVTransport1 HTTP/1.1
Host: 192.168.178.18:49152
Connection: close
User-Agent: swyh-rs-Rust/0.x
Accept: */*
SOAPAction: "urn:schemas-upnp-org:service:AVTransport:1#SetAVTransportURI"
Content-Type: text/xml; charset="utf-8"
accept-encoding: gzip
Content-Length: 1051
15:22:37 [DEBUG] (1) ureq::unit: response 200 to POST http://192.168.178.18:49152/upnp/control/AVTransport1
15:22:37 [DEBUG] (1) ureq::pool: adding stream to pool: http|192.168.178.18|49152 -> TcpStream { addr: 192.168.178.17:39758, peer: 192.168.178.18:49152, fd: 23 }
15:22:37 [DEBUG] (1) ureq::stream: dropping stream: TcpStream { addr: 192.168.178.17:39758, peer: 192.168.178.18:49152, fd: 23 }
15:22:37 [DEBUG] (1) swyh_rs::openhome::avmedia: <=SOAP response: <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body>
<u:SetAVTransportURIResponse xmlns:u="urn:upnp-org:serviceId:AVTransport"></u:SetAVTransportURIResponse>
</s:Body> </s:Envelope>

15:22:37 [DEBUG] (1) swyh_rs::openhome::avmedia: url: http://192.168.178.18:49152/upnp/control/AVTransport1,
=>SOAP Action: urn:schemas-upnp-org:service:AVTransport:1#Play,
=>SOAP xml: 
<?xml version="1.0" encoding="utf-8"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:Play xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><Speed>1</Speed></u:Play></s:Body></s:Envelope>
15:22:37 [DEBUG] (1) ureq::stream: connecting to 192.168.178.18:49152 at 192.168.178.18:49152
15:22:37 [DEBUG] (1) ureq::stream: created stream: TcpStream { addr: 192.168.178.17:39760, peer: 192.168.178.18:49152, fd: 23 }
15:22:37 [DEBUG] (1) ureq::unit: sending request POST http://192.168.178.18:49152/upnp/control/AVTransport1
15:22:37 [DEBUG] (1) ureq::unit: writing prelude: POST /upnp/control/AVTransport1 HTTP/1.1
Host: 192.168.178.18:49152
Connection: close
User-Agent: swyh-rs-Rust/0.x
Accept: */*
SOAPAction: "urn:schemas-upnp-org:service:AVTransport:1#Play"
Content-Type: text/xml; charset="utf-8"
accept-encoding: gzip
Content-Length: 304
15:22:37 [DEBUG] (1) ureq::unit: response 200 to POST http://192.168.178.18:49152/upnp/control/AVTransport1
15:22:37 [DEBUG] (1) ureq::pool: adding stream to pool: http|192.168.178.18|49152 -> TcpStream { addr: 192.168.178.17:39760, peer: 192.168.178.18:49152, fd: 23 }
15:22:37 [DEBUG] (1) ureq::stream: dropping stream: TcpStream { addr: 192.168.178.17:39760, peer: 192.168.178.18:49152, fd: 23 }
15:22:37 [DEBUG] (1) swyh_rs::openhome::avmedia: <=SOAP response: <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body>
<u:PlayResponse xmlns:u="urn:upnp-org:serviceId:AVTransport"></u:PlayResponse>
</s:Body> </s:Envelope>

Automatic setup

Actually, automatic download of latest release is part of my complete setup script.
Feel free to add it to the wiki if you want.
It works on Windows 7 and probably on Windows 10 as well.

Requirements:
Cygwin
7-Zip
nircmd
Python
PuTTY
KeePass
KeeAgent

In addition, you need to have a backup folder at a location convenient for you.
This folder should include (e.g.):

D:\Backup\swyh-rs\.swyh-rs\config.ini
D:\Backup\swyh-rs\nogui.py
D:\Backup\swyh-rs\swyh-rs.bat

1. The following script downloads the latest version from GitHub, unzips it to the desired location, creates a shortcut in the Start Menu, copies the configuration file and additional files (nogui.py and swyh-rs.bat)

@echo off
set TOOLSDIR=C:\tools
set BACKUPDIR=D:\Backup

FOR /F "tokens=*" %%G IN ('curl -s https://api.github.com/repos/dheijl/swyh-rs/releases/latest ^| grep -oP '^"tag_name^": ^"\K^(.*^)^(^?^=^"^)'') DO set VERSION=%%G
curl -L https://github.com/dheijl/swyh-rs/releases/latest/download/swyh-rs-%VERSION%.zip -o %TEMP%\swyh-rs-%VERSION%.zip
7z x %TEMP%\swyh-rs-%VERSION%.zip -o%TOOLSDIR%\swyh-rs -x!swyh-rs-deb.exe
md "%APPDATA%\Microsoft\Windows\Start Menu\Programs\swyh-rs"
nircmd shortcut "%TOOLSDIR%\swyh-rs\swyh-rs.exe" "%APPDATA%\Microsoft\Windows\Start Menu\Programs\swyh-rs" "swyh-rs"
robocopy %BACKUPDIR%\swyh-rs\.swyh-rs %USERPROFILE%\.swyh-rs /MIR
copy %BACKUPDIR%\swyh-rs\nogui.py %TOOLSDIR%\swyh-rs /y
copy %BACKUPDIR%\swyh-rs\swyh-rs.bat %TOOLSDIR%\swyh-rs /y

2. nogui.py is a script by @Silun - wiki

import subprocess

def startProgram(target):
    SW_HIDE = 0
    info = subprocess.STARTUPINFO()
    info.dwFlags = subprocess.STARTF_USESHOWWINDOW
    info.wShowWindow = SW_HIDE
    subprocess.Popen(target, startupinfo=info)

program = r'C:\tools\swyh-rs\swyh-rs.exe'

startProgram(program)

3. swyh-rs.bat is a simple script that allows you to toggle application state (start/stop). Additionally it checks if KeePass with KeeAgent plugin is running (it serves SSH keys). It sets the selected sound device, volume to 100% and toggle mute mode. Finally, it remotely starts or stops playing the stream on your music player. The script can be run manually or by using a shortcut created with AutoHotkey

@echo off
tasklist | find /i "KeePass.exe" > nul || start "" "C:\Program Files (x86)\KeePass Password Safe 2\KeePass.exe" && pause

tasklist | find /i "swyh-rs.exe" > nul
IF %ERRORLEVEL% == 1 goto Start
IF %ERRORLEVEL% == 0 goto Stop

:Start
python C:\tools\swyh-rs\nogui.py
nircmd setdefaultsounddevice "Speakers" 1
nircmd setsysvolume 65535
nircmd mutesysvolume 1
plink -batch -ssh [email protected].*.* -P 22 [your_command_to_start http://192.168.*.*:5901/stream/swyh.wav]
exit

:Stop
plink -batch -ssh [email protected].*.* -P 22 [your_command_to_stop http://192.168.*.*:5901/stream/swyh.wav]
nircmd mutesysvolume 0
nircmd killprocess swyh-rs.exe

My scripts above are not very sophisticated. But they work :)
Maybe someone will find it helpful.

Incompatibility with Moode Audio Player

Hello, thank you for this awesome software! Unfortunately, it doesn’t work with Moode audio player which is a fork of Volumio. Any idea why? I’m using the current release of Moode, 7.6.1

Linn streaming client & 24bit

Hi
I just discovered your software and it seems the solution for all I was looking for.
I tried it on a Windows 10 mini computer, using the virtual cable you mention. My streaming client from scottish HighEnd manufacturer Linn is recognized, but I cannot establish a stable connection. The stream stops and starts permanently. Swyh-rs is displayed on its playlist, though.
How can I figure out, why it does not work or what I’m doing wrong?

Might I add a suggestion, as well? Please add 24bit bit depth. In terms of sound quality imho this is a huge step. Yes, I read your remarks and I humbly would put it that way: I would not want to loose those additional 8 bits in my HiFi-system. They make all the difference in musicality and micro dynamics to me.

My plan is to “digitize” my analog gear (reel to reel & record player) using my studio quality ASIO soundcard in 192kHz / 24 bit mode and send it to streaming client using swyh-rs. That way, I could also use its high quality room correction.
I hope, that the whole process can be run as a service, so I can really run the mini-computer headlesy and automatically start your software in the proper configuration for this very streaming task.

So: thanks for having developed this, thanks for trying to help me get the streaming problem analyzed/solved and thanks for hopefully considering the 24 bit suggestion.

Regards

Sound delay

Hi again,
I don't know if it is really an issue, but I would like to know if it is possible to reduce the delay between the audio played on computer and the sound played bythe renderer (for me a chromecast)?
I have 1.5s which is not bad I think, compared to other app like LAB, Chromecaster GUI... but if it could be improved it would be really great!
Thanks

No sound with 1.3.20 and 1.3.21

Hi @dheijl
Today after some time without upgrading I try to go under 1.3.21 but despite my amp being well seen and the stream to the amp starts but no sound coming out of the amp.. I I had already tried 1.3.20 with the same result...
release 1.3.19 works correctly.. I came back to this one..
is there a need to completely remove swyh-rs before installing the new 1.3.21?
here is log.txt from 1.3.21 (no sound) => https://paste.yunohost.org/ewunonoqec.php
here is log.txt from 1.3.19 (sound ok) => https://paste.yunohost.org/iribezevon.php

Doesn't work with BubbleUpnP

Hi,

I tried your software with a chromecast emulated as a Openhome renderer via BubbleUpnP server.
The problem is that the device is not listed as renderer...
Second problem: I am unable to choose the audio capture source, by default it uses always the Conexant HD device.
I would rally like to use your app which looks really promising!

Thanks for your help

Provide a server mode for devices that are not renderers (SWYH feature parity)

The original SWYH provides a server accessible by Media Players as well as the traditional Stream To/PlayTo mode of pushing to Renderers. When SWYH is running, the audio stream is also exposed as two "songs" for the different codecs the original SWYH supports, which any player can access (theoretically, as I'm having an issue with theirs, and I think it's an implementation issue).

This would be useful to me because of this, but it would be useful for situations where the target device does not support rendering at all. It'd make this project an even more complete replacement. Sorry for the trouble. (=

See also: "If the device is an UPnP/DLNA Media Player" section.

Windows x64 to Sonos: Unable to connect

Hi,

I'm on Windows 10 x64 and am trying to stream to different Sonos devices. SWYH finds and lists all of them correctly, I can activate each one (except obviously ones that are defined as stereo speakers, which makes sense), the log states it's streaming (http://192.168.XX.XX:5901/stream/swyh.wav), and in the Sonos app I can see that the speaker is playing the stream. There's no sound though. After a bit, I get an error message inside the Sonos app: Unable to play "swyh.wav" - unable to connect to http://192.168.XX.XX:5901.

"Add WAV Hdr" is turned on as per the readme.

Any advice? Thanks in advance.
-- Jakob

Possible to run this as command line to play specific audio file?

I just got a Sonos play one and i realized its almost impossible to redirect this as windows 10 speaker.
While I need to setup blueiris motion trigger to play alarm through speaker,
Fortunately it's also possible for Blueiris to trigger executable file when motion is triggered,

So is it possible call with a command line, to run audio file played by sonos with this?

Old / corrupted config.toml causes program to panic

Hello!

After updating swyh-rs for the first time in months it wouldn't start anymore. The backtrace revealed that it panicked trying to load my old config.toml created by the previous version (which had less entries than the current one).

I noticed that at the moment the program only checks for an existing 'config.ini' and migrates its contents to a new config.toml file, however as long as a file with name 'config.toml' exists it doesn't check its validity.

The program panics here at the .unwrap() since de-serializing fails when the toml file is missing some fields (or is otherwise corrupted).

A quick fix should be implementing the Default trait for Config:

impl Default for Config {
    fn default() -> Self {
        Config { configuration: Configuration::default() }
    }
}

and then calling .unwrap_or_default() instead of .unwrap():

let mut config: Config = from_str(&s).unwrap_or_default();

However, considering that the old ini files also get migrated the preferred behavior would be trying to recover as many values as possible from the old file and only updating the missing fields with their respective default values, no?

No stream to harmann kardon AVR265

Hi @dheijl
I try your new SWYH-RS, but I've got error 👍
SSDP discovery started
Renderer at : http://192.168.1.26:80/dd.xml
Getting renderer descriptions
Renderer Harman Kardon AVR265 None 192.168.1.26 has 3 services
SSDP discovery complete
Default audio output device: Speakers (Intel SST Audio Device (WDM))
Default config SupportedStreamConfig { channels: 2, sample_rate: SampleRate(48000), buffer_size: Unknown, sample_format: F32 }
Serving on 192.168.1.27:5901
The wave_reader is receiving samples
Error relative URL without a base parsing url
Start playing on Harman Kardon AVR265 host=0.0.0.0 port=0 from 192.168.1.27

With classic SWYH I manage to send the sound to my amp but after a while I lost the connection, having to restart everything.
I found another opensource software which is older but works without disconnection, maybe it can help you in the development of this new swyh-rs ..
https://github.com/protyposis/LocalAudioBroadcast

Thank for all..

Cannot stream audio from applications using wasapi

My current set up is Kodi playing audio with wasapi and hifi cable and having that audio streamed via airplay using a similar software to yours called tuneblade. Unfortunately, airplay is limited to only 41.1khz sample rate and all movies need to be downsampled.

I've gotten your software to function in a similar manner, but only if Kodi is using direct sound and not wasapi. There seems to be a noticeable decrease is quality using direct sound with my stereo set up. The timing for audio/video seems to always be a few milliseconds off and is not a consistent amount delayed every time a video is launched. Is there a way for swyh-rs to be able to stream audio from applications using wasapi? Thanks again for your time and this software!

Concept for a logo/icon

Hello! After using this tool for a bit I thought maybe it should have an icon. Here are some variations on an idea for an icon.
image
image
image

Autoresume not working with BubbleUPNP and Nest Audio

I use this chain to play audio:

Audio Player -> VB-Audio Virtual HiFi Cable -> SWYH-RS -> BubbleUPNP (DLNA mode) -> Google Nest Audio Stereo Pair

When swyh-rs is started, it works correctly and audio plays just like it should. However, after about ~20 minutes of having no music playing in my audio player, something breaks and there will be no more sound coming from my speakers. In fact, the debug log generates no entry at all for when audio is resumed after that time, so I added something manually.

swyh-rs is configured like so:

  • Autoresume is enabled
  • Autoreconnect is enabled
  • SSDP is at 10 minutes, but same issue existed with it at 1 minute
  • Disable Chunked TransferEncoding is disabled
  • Source is Hi-Fi Cable Input
  • Output is BubbleUPNP

This is the debug log, generated with the standard version and log level set to debug.

17:27:48 [DEBUG] (1) swyh_rs::utils::audiodevices: Supported hosts:
  [Wasapi]
17:27:48 [DEBUG] (1) swyh_rs::utils::audiodevices: Available hosts:
  [Wasapi]
17:27:48 [DEBUG] (1) swyh_rs::utils::audiodevices: WASAPI
17:27:48 [DEBUG] (1) swyh_rs::utils::audiodevices:   Default Output Device:
    Some("Soundkarte (ASUS Xonar D2X Audio Device)")
17:27:48 [DEBUG] (1) swyh_rs::utils::audiodevices:   Devices: 
17:27:48 [DEBUG] (1) swyh_rs::utils::audiodevices:   1. "Hi-Fi Cable Input (VB-Audio Hi-Fi Cable)"
17:27:48 [DEBUG] (1) swyh_rs::utils::audiodevices:     All supported output stream configs:
17:27:48 [DEBUG] (1) swyh_rs::utils::audiodevices:       1.1. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(44100), max_sample_rate: SampleRate(44100), buffer_size: Unknown, sample_format: F32 }
17:27:48 [DEBUG] (1) swyh_rs::utils::audiodevices:     Default output stream config:
      SupportedStreamConfig { channels: 2, sample_rate: SampleRate(44100), buffer_size: Unknown, sample_format: F32 }
17:27:48 [DEBUG] (1) swyh_rs::utils::audiodevices:   2. "Soundkarte (ASUS Xonar D2X Audio Device)"
17:27:48 [DEBUG] (1) swyh_rs::utils::audiodevices:     All supported output stream configs:
17:27:48 [DEBUG] (1) swyh_rs::utils::audiodevices:       2.1. SupportedStreamConfigRange { channels: 2, min_sample_rate: SampleRate(96000), max_sample_rate: SampleRate(96000), buffer_size: Unknown, sample_format: F32 }
17:27:48 [DEBUG] (1) swyh_rs::utils::audiodevices:     Default output stream config:
      SupportedStreamConfig { channels: 2, sample_rate: SampleRate(96000), buffer_size: Unknown, sample_format: F32 }
17:27:48 [DEBUG] (1) swyh_rs::utils::audiodevices:   3. "Mikrofon (ASUS Xonar D2X Audio Device)"
17:27:48 [DEBUG] (1) swyh_rs::utils::audiodevices:   4. "Wave (ASUS Xonar D2X Audio Device)"
17:27:48 [DEBUG] (1) swyh_rs::utils::audiodevices:   5. "Hi-Fi Cable Output (VB-Audio Hi-Fi Cable)"
17:27:48 [DEBUG] (1) swyh_rs::utils::audiodevices:   6. "Mikrofon (Steam Streaming Microphone)"
17:27:48 [DEBUG] (1) swyh_rs::utils::audiodevices:   7. "SPDIF In (ASUS Xonar D2X Audio Device)"
17:27:48 [DEBUG] (1) swyh_rs::utils::audiodevices:   8. "Stereo Mix (ASUS Xonar D2X Audio Device)"
17:27:48 [INFO] Selected audio source: Hi-Fi Cable Input (VB-Audio Hi-Fi Cable)
17:27:48 [INFO] tb_log: Setup audio sources
17:27:48 [INFO] tb_log: Now running at ABOVE_NORMAL_PRIORITY_CLASS
17:27:48 [DEBUG] (1) swyh_rs: Try capturing system audio
17:27:48 [INFO] tb_log: Capturing audio from: Hi-Fi Cable Input (VB-Audio Hi-Fi Cable)
17:27:48 [INFO] tb_log: Default audio SupportedStreamConfig { channels: 2, sample_rate: SampleRate(44100), buffer_size: Unknown, sample_format: F32 }
17:27:48 [INFO] tb_log: Starting SSDP discovery
17:27:48 [DEBUG] (4) swyh_rs::openhome::avmedia: SSDP discovery started
17:27:48 [INFO] tb_log: The streaming server is listening on http://192.168.1.99:5901/stream/swyh.wav
17:27:48 [INFO] tb_log: Sample rate: 44100, sample format: audio/l16 (PCM)
17:27:48 [DEBUG] (5) tiny_http: Server listening on 192.168.1.99:5901
17:27:48 [DEBUG] (6) tiny_http: Running accept thread
17:27:51 [DEBUG] (4) swyh_rs::openhome::avmedia: UDP response at 2631 from 192.168.1.99:50826: 
HTTP/1.1 200 OK
Ext: 
St: urn:schemas-upnp-org:service:RenderingControl:1
Server: Windows10/10.0 UPnP/1.0 BubbleUPnPServer/0.9-update38
Usn: uuid:a650210f-9d3e-1235-0000-00004d059e7e::urn:schemas-upnp-org:service:RenderingControl:1
Cache-control: max-age=1800
Location: http://192.168.1.99:49836/dev/a650210f-9d3e-1235-0000-00004d059e7e/desc.xml


17:27:51 [DEBUG] (4) swyh_rs::openhome::avmedia: SSDP Discovery: AV renderer: http://192.168.1.99:49836/dev/a650210f-9d3e-1235-0000-00004d059e7e/desc.xml
17:27:51 [INFO] SSDP discovery: new Renderer found at : http://192.168.1.99:49836/dev/a650210f-9d3e-1235-0000-00004d059e7e/desc.xml
17:27:51 [DEBUG] (4) swyh_rs::openhome::avmedia: Getting new renderer descriptions
17:27:51 [DEBUG] (4) swyh_rs::openhome::avmedia: Get service description for http://192.168.1.99:49836/dev/a650210f-9d3e-1235-0000-00004d059e7e/desc.xml
17:27:51 [INFO] sending request GET http://192.168.1.99:49836/dev/a650210f-9d3e-1235-0000-00004d059e7e/desc.xml
17:27:51 [DEBUG] (4) ureq::unit: writing prelude: GET /dev/a650210f-9d3e-1235-0000-00004d059e7e/desc.xml HTTP/1.1
Host: 192.168.1.99:49836
Accept: */*
User-Agent: swyh-rs-Rust
Content-Type: text/xml
Content-Length: 0


17:27:51 [DEBUG] (4) ureq::unit: response 200 to GET http://192.168.1.99:49836/dev/a650210f-9d3e-1235-0000-00004d059e7e/desc.xml
17:27:51 [DEBUG] (4) swyh_rs::openhome::avmedia: Service description:
17:27:51 [DEBUG] (4) swyh_rs::openhome::avmedia: <?xml version="1.0" encoding="utf-8" standalone="yes"?><root xmlns="urn:schemas-upnp-org:device-1-0"><specVersion><major>1</major><minor>0</minor></specVersion><device><deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType><UDN>uuid:a650210f-9d3e-1235-0000-00004d059e7e</UDN><friendlyName>Nest Audios (DLNA)</friendlyName><manufacturer>Bubblesoft</manufacturer><manufacturerURL>http://forum.xda-developers.com/showthread.php?t=1118891</manufacturerURL><modelDescription>BubbleUPnP Google Cast DLNA renderer</modelDescription><modelName>BubbleUPnP Google Cast DLNA renderer</modelName><modelNumber>0.9-update38</modelNumber><modelURL></modelURL><serialNumber>0.9-update38</serialNumber><presentationURL>http://192.168.1.99:58050</presentationURL><dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMR-1.50</dlna:X_DLNADOC><iconList><icon><mimetype>image/png</mimetype><width>98</width><height>55</height><depth>32</depth><url>/dev/a650210f-9d3e-1235-0000-00004d059e7e/icon.png</url></icon></iconList><serviceList><service><serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType><serviceId>urn:upnp-org:serviceId:AVTransport</serviceId><controlURL>/dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/AVTransport/action</controlURL><eventSubURL>/dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/AVTransport/event</eventSubURL><SCPDURL>/dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/AVTransport/desc.xml</SCPDURL></service><service><serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType><serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId><controlURL>/dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/RenderingControl/action</controlURL><eventSubURL>/dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/RenderingControl/event</eventSubURL><SCPDURL>/dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/RenderingControl/desc.xml</SCPDURL></service><service><serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType><serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId><controlURL>/dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/ConnectionManager/action</controlURL><eventSubURL>/dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/ConnectionManager/event</eventSubURL><SCPDURL>/dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/ConnectionManager/desc.xml</SCPDURL></service></serviceList></device></root>
17:27:51 [DEBUG] (4) swyh_rs::openhome::avmedia: Renderer Nest Audios (DLNA) BubbleUPnP Google Cast DLNA renderer ip 192.168.1.99 at urlbase http://192.168.1.99:49836/ has 3 services
17:27:51 [DEBUG] (4) swyh_rs::openhome::avmedia:   => OpenHome Playlist control url: '', AvTransport url: '/dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/AVTransport/action'
17:27:51 [DEBUG] (4) swyh_rs::openhome::avmedia: .. urn:schemas-upnp-org:service:AVTransport:1 urn:upnp-org:serviceId:AVTransport /dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/AVTransport/action
17:27:51 [DEBUG] (4) swyh_rs::openhome::avmedia: .. urn:schemas-upnp-org:service:RenderingControl:1 urn:upnp-org:serviceId:RenderingControl /dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/RenderingControl/action
17:27:51 [DEBUG] (4) swyh_rs::openhome::avmedia: .. urn:schemas-upnp-org:service:ConnectionManager:1 urn:upnp-org:serviceId:ConnectionManager /dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/ConnectionManager/action
17:27:51 [DEBUG] (4) swyh_rs::openhome::avmedia: SSDP discovery complete
17:27:51 [INFO] Found new renderer Nest Audios (DLNA) BubbleUPnP Google Cast DLNA renderer  at 192.168.1.99
17:27:51 [DEBUG] (1) swyh_rs: Pushed renderer #0 BubbleUPnP Google Cast DLNA renderer Nest Audios (DLNA), state = ON
17:27:51 [INFO] tb_log: AV Stop playing on Nest Audios (DLNA) host=192.168.1.99 port=49836
17:27:51 [DEBUG] (1) swyh_rs::openhome::avmedia: url: http://192.168.1.99:49836/dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/AVTransport/action,
=>SOAP Action: urn:schemas-upnp-org:service:AVTransport:1#Stop,
=>SOAP xml: 
<?xml version="1.0" encoding="utf-8"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:Stop xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID></u:Stop></s:Body></s:Envelope>
17:27:51 [INFO] sending request POST http://192.168.1.99:49836/dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/AVTransport/action
17:27:51 [DEBUG] (1) ureq::unit: writing prelude: POST /dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/AVTransport/action HTTP/1.1
Host: 192.168.1.99:49836
Connection: close
User-Agent: swyh-rs-Rust/0.x
Accept: */*
SOAPAction: "urn:schemas-upnp-org:service:AVTransport:1#Stop"
Content-Type: text/xml; charset="utf-8"
Content-Length: 288


17:27:51 [DEBUG] (1) ureq::unit: response 200 to POST http://192.168.1.99:49836/dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/AVTransport/action
17:27:51 [DEBUG] (1) swyh_rs::openhome::avmedia: <=SOAP response: <?xml version="1.0" encoding="utf-8" standalone="yes"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:StopResponse xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"/></s:Body></s:Envelope>

17:27:51 [INFO] tb_log: AV Start playing on Nest Audios (DLNA) host=192.168.1.99 port=49836 from 192.168.1.99 using AvTransport Play
17:27:51 [DEBUG] (1) swyh_rs::openhome::avmedia: AvTransport server URL: http://192.168.1.99:5901/stream/swyh.wav
17:27:51 [DEBUG] (1) swyh_rs::openhome::avmedia: url: http://192.168.1.99:49836/dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/AVTransport/action,
=>SOAP Action: urn:schemas-upnp-org:service:AVTransport:1#SetAVTransportURI,
=>SOAP xml: 
<?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:SetAVTransportURI xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><CurrentURI>http://192.168.1.99:5901/stream/swyh.wav</CurrentURI><CurrentURIMetaData>&lt;DIDL-Lite xmlns=&quot;urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:upnp=&quot;urn:schemas-upnp-org:metadata-1-0/upnp/&quot;&gt;&lt;item id=&quot;1&quot; parentID=&quot;0&quot; restricted=&quot;0&quot;&gt;&lt;dc:title&gt;swyh-rs&lt;/dc:title&gt;&lt;res bitsPerSample=&quot;16&quot; nrAudioChannels=&quot;2&quot; protocolInfo=&quot;http-get:*:audio/l16;rate=44100;channels=2:DLNA.ORG_PN=LPCM&quot; sampleFrequency=&quot;44100&quot; duration=&quot;0&quot; &gt;http://192.168.1.99:5901/stream/swyh.wav&lt;/res&gt;&lt;upnp:class&gt;object.item.audioItem.musicTrack&lt;/upnp:class&gt;&lt;/item&gt;&lt;/DIDL-Lite&gt;</CurrentURIMetaData></u:SetAVTransportURI></s:Body></s:Envelope>
17:27:51 [INFO] sending request POST http://192.168.1.99:49836/dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/AVTransport/action
17:27:51 [DEBUG] (1) ureq::unit: writing prelude: POST /dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/AVTransport/action HTTP/1.1
Host: 192.168.1.99:49836
Connection: close
User-Agent: swyh-rs-Rust/0.x
Accept: */*
SOAPAction: "urn:schemas-upnp-org:service:AVTransport:1#SetAVTransportURI"
Content-Type: text/xml; charset="utf-8"
Content-Length: 1099


17:27:51 [DEBUG] (1) ureq::unit: response 200 to POST http://192.168.1.99:49836/dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/AVTransport/action
17:27:51 [DEBUG] (1) swyh_rs::openhome::avmedia: <=SOAP response: <?xml version="1.0" encoding="utf-8" standalone="yes"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:SetAVTransportURIResponse xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"/></s:Body></s:Envelope>

17:27:51 [DEBUG] (1) swyh_rs::openhome::avmedia: url: http://192.168.1.99:49836/dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/AVTransport/action,
=>SOAP Action: urn:schemas-upnp-org:service:AVTransport:1#Play,
=>SOAP xml: 
<?xml version="1.0" encoding="utf-8"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:Play xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><Speed>1</Speed></u:Play></s:Body></s:Envelope>
17:27:51 [INFO] sending request POST http://192.168.1.99:49836/dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/AVTransport/action
17:27:51 [DEBUG] (1) ureq::unit: writing prelude: POST /dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/AVTransport/action HTTP/1.1
Host: 192.168.1.99:49836
Connection: close
User-Agent: swyh-rs-Rust/0.x
Accept: */*
SOAPAction: "urn:schemas-upnp-org:service:AVTransport:1#Play"
Content-Type: text/xml; charset="utf-8"
Content-Length: 304


17:27:51 [DEBUG] (1) ureq::unit: response 200 to POST http://192.168.1.99:49836/dev/a650210f-9d3e-1235-0000-00004d059e7e/svc/upnp-org/AVTransport/action
17:27:51 [DEBUG] (1) swyh_rs::openhome::avmedia: <=SOAP response: <?xml version="1.0" encoding="utf-8" standalone="yes"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:PlayResponse xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"/></s:Body></s:Envelope>

17:27:52 [INFO] tb_log: Received request /stream/swyh.wav from 192.168.1.99:55306
17:27:52 [DEBUG] (8) swyh_rs: Now have 1 streaming clients
17:28:12 [INFO] tb_log: The wave_reader is now receiving samples
17:37:51 [DEBUG] (4) swyh_rs::openhome::avmedia: SSDP discovery started
17:37:53 [DEBUG] (4) swyh_rs::openhome::avmedia: UDP response at 2181 from 192.168.1.99:50826: 
HTTP/1.1 200 OK
Ext: 
St: urn:schemas-upnp-org:service:RenderingControl:1
Server: Windows10/10.0 UPnP/1.0 BubbleUPnPServer/0.9-update38
Usn: uuid:a650210f-9d3e-1235-0000-00004d059e7e::urn:schemas-upnp-org:service:RenderingControl:1
Cache-control: max-age=1800
Location: http://192.168.1.99:49836/dev/a650210f-9d3e-1235-0000-00004d059e7e/desc.xml


17:37:53 [DEBUG] (4) swyh_rs::openhome::avmedia: SSDP Discovery: AV renderer: http://192.168.1.99:49836/dev/a650210f-9d3e-1235-0000-00004d059e7e/desc.xml
17:37:54 [INFO] SSDP discovery: Skipping known Renderer at http://192.168.1.99:49836/dev/a650210f-9d3e-1235-0000-00004d059e7e/desc.xml
17:37:54 [DEBUG] (4) swyh_rs::openhome::avmedia: Getting new renderer descriptions
17:37:54 [DEBUG] (4) swyh_rs::openhome::avmedia: SSDP discovery complete
17:47:54 [DEBUG] (4) swyh_rs::openhome::avmedia: SSDP discovery started
17:47:56 [DEBUG] (4) swyh_rs::openhome::avmedia: UDP response at 1845 from 192.168.1.99:50826: 
HTTP/1.1 200 OK
Ext: 
St: urn:schemas-upnp-org:service:RenderingControl:1
Server: Windows10/10.0 UPnP/1.0 BubbleUPnPServer/0.9-update38
Usn: uuid:a650210f-9d3e-1235-0000-00004d059e7e::urn:schemas-upnp-org:service:RenderingControl:1
Cache-control: max-age=1800
Location: http://192.168.1.99:49836/dev/a650210f-9d3e-1235-0000-00004d059e7e/desc.xml


17:47:56 [DEBUG] (4) swyh_rs::openhome::avmedia: SSDP Discovery: AV renderer: http://192.168.1.99:49836/dev/a650210f-9d3e-1235-0000-00004d059e7e/desc.xml
17:47:57 [INFO] SSDP discovery: Skipping known Renderer at http://192.168.1.99:49836/dev/a650210f-9d3e-1235-0000-00004d059e7e/desc.xml
17:47:57 [DEBUG] (4) swyh_rs::openhome::avmedia: Getting new renderer descriptions
17:47:57 [DEBUG] (4) swyh_rs::openhome::avmedia: SSDP discovery complete

------------------------
Manual entry - music resumes playing around 17:57:00 but log generates no entry for that. No sound is coming from the speakers.
------------------------
17:57:22

Also, I noticed the time in the logs is off by 1 hour, but that isn't really a problem I guess :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.