From 5495c8367a109fa2ea136fddb904d54dc5e03ace Mon Sep 17 00:00:00 2001 From: loki Date: Thu, 10 Jun 2021 18:39:16 +0200 Subject: [PATCH] Search for active sink, rather than hardware sink --- moonlight-common-c | 2 +- sunshine/audio.cpp | 4 ++-- sunshine/platform/linux/audio.cpp | 6 ++---- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/moonlight-common-c b/moonlight-common-c index 5d09d43b..a13eedda 160000 --- a/moonlight-common-c +++ b/moonlight-common-c @@ -1 +1 @@ -Subproject commit 5d09d43b0866d9fa30cc1741f9e10de5420deaad +Subproject commit a13eeddacfdb4325bd7d140d635a8cb87e61a61d diff --git a/sunshine/audio.cpp b/sunshine/audio.cpp index 6c34a0f9..f59e2005 100644 --- a/sunshine/audio.cpp +++ b/sunshine/audio.cpp @@ -87,11 +87,11 @@ void encodeThread(packet_queue_t packets, sample_queue_t samples, config_t confi auto frame_size = config.packetDuration * stream->sampleRate / 1000; while(auto sample = samples->pop()) { - packet_t packet { 16 * 1024 }; // 16KB + packet_t packet { 1024 }; // 1KB int bytes = opus_multistream_encode(opus.get(), sample->data(), frame_size, std::begin(packet), packet.size()); if(bytes < 0) { - BOOST_LOG(error) << opus_strerror(bytes); + BOOST_LOG(error) << "Couldn't encode audio: "sv << opus_strerror(bytes); packets->stop(); return; diff --git a/sunshine/platform/linux/audio.cpp b/sunshine/platform/linux/audio.cpp index 16a33b54..7c28b463 100644 --- a/sunshine/platform/linux/audio.cpp +++ b/sunshine/platform/linux/audio.cpp @@ -299,9 +299,7 @@ public: return; } - if(sink_info->flags & PA_SINK_HARDWARE && - sink_info->channel_map.channels > channels) { - + if(sink_info->active_port != nullptr) { sink.host = sink_info->name; channels = sink_info->channel_map.channels; } @@ -339,7 +337,7 @@ public: } if(!channels) { - BOOST_LOG(warning) << "Couldn't find hardware sink"sv; + BOOST_LOG(warning) << "Couldn't find an active sink"sv; } if(index.stereo == PA_INVALID_INDEX) {