mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2026-02-20 01:40:08 -05:00
log xrun trigger
This commit is contained in:
parent
1c7e46d5d8
commit
b2101352b6
2 changed files with 19 additions and 0 deletions
|
|
@ -74,6 +74,23 @@ extern int snd_lib_error_set_handler(snd_lib_error_handler_t handler);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define ALSALIB_LOG_FILE "/var/log/alsa_log.txt"
|
||||||
|
|
||||||
|
//append log to existing file
|
||||||
|
#define alsaLib_log_write(fmt, ...) { \
|
||||||
|
FILE *fp = fopen(ALSALIB_LOG_FILE,"a"); \
|
||||||
|
if(fp){ \
|
||||||
|
time_t time_sec; \
|
||||||
|
unsigned long time_ms; \
|
||||||
|
struct timespec now; \
|
||||||
|
clock_gettime(CLOCK_MONOTONIC,&now); \
|
||||||
|
time_sec = now.tv_sec; \
|
||||||
|
time_ms = now.tv_nsec/1000000; \
|
||||||
|
fprintf(fp,"%lu.%03lu," fmt, time_sec, time_ms, ##__VA_ARGS__); \
|
||||||
|
fclose(fp); \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
|
||||||
/** Local error handler function type */
|
/** Local error handler function type */
|
||||||
typedef void (*snd_local_error_handler_t)(const char *file, int line,
|
typedef void (*snd_local_error_handler_t)(const char *file, int line,
|
||||||
const char *func, int err,
|
const char *func, int err,
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,7 @@
|
||||||
#include <sys/un.h>
|
#include <sys/un.h>
|
||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
#include "pcm_direct.h"
|
#include "pcm_direct.h"
|
||||||
|
#include "error.h"
|
||||||
|
|
||||||
#ifndef PIC
|
#ifndef PIC
|
||||||
/* entry for static linking */
|
/* entry for static linking */
|
||||||
|
|
@ -422,6 +423,7 @@ static int snd_pcm_dmix_sync_ptr0(snd_pcm_t *pcm, snd_pcm_uframes_t slave_hw_ptr
|
||||||
gettimestamp(&dmix->trigger_tstamp, pcm->tstamp_type);
|
gettimestamp(&dmix->trigger_tstamp, pcm->tstamp_type);
|
||||||
if (dmix->state == SND_PCM_STATE_RUNNING) {
|
if (dmix->state == SND_PCM_STATE_RUNNING) {
|
||||||
dmix->state = SND_PCM_STATE_XRUN;
|
dmix->state = SND_PCM_STATE_XRUN;
|
||||||
|
alsaLib_log_write("Xrun avail size =%lu stop_threshold=%lu",avail,pcm->stop_threshold);
|
||||||
return -EPIPE;
|
return -EPIPE;
|
||||||
}
|
}
|
||||||
dmix->state = SND_PCM_STATE_SETUP;
|
dmix->state = SND_PCM_STATE_SETUP;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue