mirror of
https://github.com/badaix/snapcast.git
synced 2025-06-05 12:21:43 +02:00
Check result of snd_pcm_avail_delay
This commit is contained in:
parent
f301c55cb0
commit
71ed07a1d0
1 changed files with 11 additions and 4 deletions
|
@ -222,11 +222,18 @@ void AlsaPlayer::worker()
|
|||
continue;
|
||||
}
|
||||
|
||||
snd_pcm_avail_delay(handle_, &framesAvail, &framesDelay);
|
||||
chronos::usec delay((chronos::usec::rep)(1000 * (double)framesDelay / format.msRate()));
|
||||
// LOG(INFO) << "delay: " << framesDelay << ", delay[ms]: " << delay.count() / 1000 << "\n";
|
||||
int result = snd_pcm_avail_delay(handle_, &framesAvail, &framesDelay);
|
||||
if (result < 0)
|
||||
{
|
||||
LOG(WARNING) << "snd_pcm_avail_delay failed: " << snd_strerror(result) << "\n";
|
||||
this_thread::sleep_for(10ms);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (buffer_.size() < framesAvail * format.frameSize)
|
||||
chronos::usec delay((chronos::usec::rep)(1000 * (double)framesDelay / format.msRate()));
|
||||
// LOG(TRACE) << "delay: " << framesDelay << ", delay[ms]: " << delay.count() / 1000 << ", avail: " << framesAvail << "\n";
|
||||
|
||||
if (buffer_.size() < static_cast<size_t>(framesAvail * format.frameSize))
|
||||
buffer_.resize(framesAvail * format.frameSize);
|
||||
if (stream_->getPlayerChunk(buffer_.data(), delay, framesAvail))
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue