]> git.sesse.net Git - nageru/commitdiff
When dropping ALSA audio, say how much (in ms) we dropped.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Sat, 30 Apr 2016 23:18:21 +0000 (01:18 +0200)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Sat, 30 Apr 2016 23:48:36 +0000 (01:48 +0200)
alsa_output.cpp
alsa_output.h

index a3d17a2088ca0a49ad9ababfa118363150a07147..d5ee35fd9ec77214b2b10b03e9b7859e56f2b9c9 100644 (file)
@@ -17,7 +17,7 @@ void die_on_error(const char *func_name, int err)
 }  // namespace
 
 ALSAOutput::ALSAOutput(int sample_rate, int num_channels)
-       : num_channels(num_channels)
+       : sample_rate(sample_rate), num_channels(num_channels)
 {
        die_on_error("snd_pcm_open()", snd_pcm_open(&pcm_handle, "default", SND_PCM_STREAM_PLAYBACK, 0));
 
@@ -79,7 +79,8 @@ try_again:
                if (ret == 0) {
                        if (buffer.size() >= period_size * num_channels * 8) {
                                // OK, almost 100 ms. Giving up.
-                               fprintf(stderr, "warning: ALSA overrun, dropping some audio\n");
+                               fprintf(stderr, "warning: ALSA overrun, dropping some audio (%d ms)\n",
+                                       int(buffer.size() * 1000 / (num_channels * sample_rate)));
                                buffer.clear();
                        }
                } else if (ret > 0) {
index 12af16ecbfdd9ade616805fea169f7004899b0ff..90223b75baa71d9438cf3ce2c8580f797c347a48 100644 (file)
@@ -21,7 +21,7 @@ private:
        snd_pcm_t *pcm_handle;
        std::vector<float> buffer;
        snd_pcm_uframes_t period_size;
-       int num_channels;
+       int sample_rate, num_channels;
 };
 
 #endif  // !defined(_ALSA_OUTPUT_H)