diff options
author | Xin Li <delphij@google.com> | 2024-01-17 22:14:03 -0800 |
---|---|---|
committer | Xin Li <delphij@google.com> | 2024-01-17 22:14:03 -0800 |
commit | 1539c671287441e76082071dc2a23410b7796049 (patch) | |
tree | 568c175aa61122a44041bcdfddc2552c6aab92c3 | |
parent | a5afe506835ea6acd809320c55c578a6292f9d61 (diff) | |
parent | 63162322b632013d80760df1f7642e566ae9d9ec (diff) | |
download | tinyalsa-1539c671287441e76082071dc2a23410b7796049.tar.gz |
Merge Android 24Q1 Release (ab/11220357)temp_319669529
Bug: 319669529
Merged-In: I5a675bb7b6cd6d067f523496b3350139fb552030
Change-Id: I30b06e072bd3aa63075695542e2a12252212ff9a
-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; +} |