Reformat code

This commit is contained in:
badaix 2022-09-08 08:15:09 +02:00
parent 25b289e627
commit 051ba91cfc

View file

@ -51,16 +51,18 @@ template <typename Rep, typename Period>
void wait(boost::asio::steady_timer& timer, const std::chrono::duration<Rep, Period>& duration, std::function<void()> handler) void wait(boost::asio::steady_timer& timer, const std::chrono::duration<Rep, Period>& duration, std::function<void()> handler)
{ {
timer.expires_after(duration); timer.expires_after(duration);
timer.async_wait([handler = std::move(handler)](const boost::system::error_code& ec) { timer.async_wait(
if (ec) [handler = std::move(handler)](const boost::system::error_code& ec)
{ {
LOG(ERROR, LOG_TAG) << "Error during async wait: " << ec.message() << "\n"; if (ec)
} {
else LOG(ERROR, LOG_TAG) << "Error during async wait: " << ec.message() << "\n";
{ }
handler(); else
} {
}); handler();
}
});
} }
} // namespace } // namespace
@ -258,14 +260,15 @@ void AlsaStream::do_read()
static utils::logging::TimeConditional cond(1s); static utils::logging::TimeConditional cond(1s);
LOG(INFO, LOG_TAG) << cond << "Available: " << avail << ", " << double(avail) / double(sampleFormat_.rate()) * 1000. << " ms, max: " << double(max_avail) / double(sampleFormat_.rate()) * 1000. << " ms\n"; LOG(INFO, LOG_TAG) << cond << "Available: " << avail << ", " << double(avail) / double(sampleFormat_.rate()) * 1000. << " ms, max: " << double(max_avail) / double(sampleFormat_.rate()) * 1000. << " ms\n";
#endif #endif
// check if enough data is available to read from alsa // check if enough data is available to read from alsa
if ((static_cast<int32_t>(chunk_->getFrameCount()) > avail)) if ((static_cast<int32_t>(chunk_->getFrameCount()) > avail))
{ {
// Calculate when there will be enough data available, add half chunk duration tolerance and try later // Calculate when there will be enough data available, add half chunk duration tolerance and try later
auto available = std::chrono::milliseconds(static_cast<size_t>(double(avail) / double(sampleFormat_.rate()) * 1000.)); auto available = std::chrono::milliseconds(static_cast<size_t>(double(avail) / double(sampleFormat_.rate()) * 1000.));
auto missing = chunk_->duration<std::chrono::milliseconds>() - available; auto missing = chunk_->duration<std::chrono::milliseconds>() - available;
LOG(INFO, LOG_TAG) << "Not enough data available: " << available.count() << " ms, missing: " << missing.count() << " ms, needed: " << chunk_->duration<std::chrono::milliseconds>().count() << " ms\n"; LOG(INFO, LOG_TAG) << "Not enough data available: " << available.count() << " ms, missing: " << missing.count()
<< " ms, needed: " << chunk_->duration<std::chrono::milliseconds>().count() << " ms\n";
missing += chunk_->duration<std::chrono::milliseconds>() / 2; missing += chunk_->duration<std::chrono::milliseconds>() / 2;
resync(missing); resync(missing);
first_ = true; first_ = true;
@ -273,24 +276,26 @@ void AlsaStream::do_read()
return; return;
} }
// check if there is too much data available, i.e. if we are far behind // check if there is too much data available, i.e. if we are far behind
else if (avail > static_cast<int32_t>(3*chunk_->getFrameCount())) else if (avail > static_cast<int32_t>(3 * chunk_->getFrameCount()))
{ {
// Fast forward, by reading and dropping audio frames // Fast forward, by reading and dropping audio frames
// const auto newAvail = static_cast<int32_t>(chunk_->getFrameCount() + static_cast<uint32_t>(chunk_->format.msRate() * 20)); // const auto newAvail = static_cast<int32_t>(chunk_->getFrameCount() + static_cast<uint32_t>(chunk_->format.msRate() * 20));
const auto newAvail = 1.5 * chunk_->getFrameCount(); const auto newAvail = 1.5 * chunk_->getFrameCount();
LOG(INFO, LOG_TAG) << "Too many frames available, fast forwarding from " << avail << " frames (" << double(avail) / double(sampleFormat_.rate()) * 1000. << " ms) to " << newAvail << " frames (" << double(newAvail) / double(sampleFormat_.rate()) * 1000. << " ms)\n"; LOG(INFO, LOG_TAG) << "Too many frames available, fast forwarding from " << avail << " frames ("
<< double(avail) / double(sampleFormat_.rate()) * 1000. << " ms) to " << newAvail << " frames ("
<< double(newAvail) / double(sampleFormat_.rate()) * 1000. << " ms)\n";
do do
{ {
int count = snd_pcm_readi(handle_, chunk_->payload, std::min(chunk_->getFrameCount(), static_cast<uint32_t>(avail - newAvail))); int count = snd_pcm_readi(handle_, chunk_->payload, std::min(chunk_->getFrameCount(), static_cast<uint32_t>(avail - newAvail)));
if (count <= 0) if (count <= 0)
{ {
// some read error happened, just break here, this will be handled properly later in the read loop // some read error happened, just break here, this will be handled properly later in the read loop
break; break;
} }
avail -= count; avail -= count;
LOG(DEBUG, LOG_TAG) << "Read " << count << " frames (" << double(count) / double(sampleFormat_.rate()) * 1000. << " ms), available: " << avail << " frames (" << double(avail) / double(sampleFormat_.rate()) * 1000. << " ms)\n"; LOG(DEBUG, LOG_TAG) << "Read " << count << " frames (" << double(count) / double(sampleFormat_.rate()) * 1000.
} << " ms), available: " << avail << " frames (" << double(avail) / double(sampleFormat_.rate()) * 1000. << " ms)\n";
while (avail > newAvail); } while (avail > newAvail);
first_ = true; first_ = true;
} }
} }