diff options
author | Xin Li <delphij@google.com> | 2024-03-06 09:29:57 -0800 |
---|---|---|
committer | Xin Li <delphij@google.com> | 2024-03-06 09:29:57 -0800 |
commit | a3a93d25703ceefb2fc9d50e9a65a3772577419f (patch) | |
tree | 568c175aa61122a44041bcdfddc2552c6aab92c3 | |
parent | a5afe506835ea6acd809320c55c578a6292f9d61 (diff) | |
parent | 1539c671287441e76082071dc2a23410b7796049 (diff) | |
download | tinyalsa-a3a93d25703ceefb2fc9d50e9a65a3772577419f.tar.gz |
Merge Android 14 QPR2 to AOSP main
Bug: 319669529
Merged-In: I30b06e072bd3aa63075695542e2a12252212ff9a
Change-Id: I9a23b909d03414c06906697c0d877f677e8eca86
-rw-r--r-- | include/tinyalsa/asoundlib.h | 3 | ||||
-rw-r--r-- | pcm.c | 12 |
2 files changed, 11 insertions, 4 deletions
diff --git a/include/tinyalsa/asoundlib.h b/include/tinyalsa/asoundlib.h index 063a256..c0f4746 100644 --- a/include/tinyalsa/asoundlib.h +++ b/include/tinyalsa/asoundlib.h @@ -290,6 +290,9 @@ int pcm_get_poll_fd(struct pcm *pcm); */ int pcm_set_avail_min(struct pcm *pcm, int avail_min); +/* Gets the count of underruns for playback and count of overruns for capture. */ +int pcm_get_xruns(struct pcm *pcm); + /* * MIXER API */ @@ -256,7 +256,7 @@ struct pcm { unsigned int flags; bool running:1; bool prepared:1; - int underruns; + int xruns; unsigned int buffer_size; unsigned long boundary; char error[PCM_ERROR_MAX]; @@ -561,7 +561,7 @@ int pcm_write(struct pcm *pcm, const void *data, unsigned int count) /* we failed to make our window -- try to restart if we are * allowed to do so. Otherwise, simply allow the EPIPE error to * propagate up to the app level */ - pcm->underruns++; + pcm->xruns++; if (pcm->flags & PCM_NORESTART) return -EPIPE; continue; @@ -595,7 +595,7 @@ int pcm_read(struct pcm *pcm, void *data, unsigned int count) pcm->running = false; if (errno == EPIPE) { /* we failed to make our window -- try to restart */ - pcm->underruns++; + pcm->xruns++; continue; } return oops(pcm, errno, "cannot read stream data"); @@ -1055,7 +1055,7 @@ struct pcm *pcm_open(unsigned int card, unsigned int device, } #endif - pcm->underruns = 0; + pcm->xruns = 0; return pcm; fail: @@ -1382,3 +1382,7 @@ int pcm_ioctl(struct pcm *pcm, int request, ...) return pcm->ops->ioctl(pcm->data, request, arg); } + +int pcm_get_xruns(struct pcm *pcm) { + return pcm->xruns; +} |