summaryrefslogtreecommitdiff
path: root/src/buffer
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2023-11-11 17:51:49 -0500
committerAndrew Opalach <andrew@akon.city> 2023-11-11 17:51:49 -0500
commit7e5043a2505efa383ae372662fa4849051cd9799 (patch)
treee7736218b7ab323579a440f24d899ed00beb9f73 /src/buffer
parent113eb3b481417364f84350e90be252355d807f06 (diff)
downloadcamu-7e5043a2505efa383ae372662fa4849051cd9799.tar.gz
camu-7e5043a2505efa383ae372662fa4849051cd9799.tar.bz2
camu-7e5043a2505efa383ae372662fa4849051cd9799.zip
Improve basic cmv usage
- Make cap more robust - Disable ECHO in the TUI - Improve youtube playback url selection - Some cleanup Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/buffer')
-rw-r--r--src/buffer/audio.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/buffer/audio.c b/src/buffer/audio.c
index 34d3c65..939b98a 100644
--- a/src/buffer/audio.c
+++ b/src/buffer/audio.c
@@ -73,8 +73,8 @@ bool camu_audio_buffer_init(struct camu_audio_buffer *buf, struct camu_clock *cl
buf->clock = clock;
buf->pts = camu_mixer_get_latency(buf->mixer);
buf->buffered = false;
- buf->pause = PAUSE_PRE;
- //buf->pause = PAUSE_IGNORE_DESYNC;
+ //buf->pause = PAUSE_PRE;
+ buf->pause = PAUSE_IGNORE_DESYNC;
#ifdef CAMU_AUDIO_BUFFER_FADE
buf->fade_period = 0;
buf->fade_offset = 0;
@@ -248,6 +248,8 @@ static void handle_fade(struct camu_audio_buffer *buf, u8 *data, size_t size, bo
}
#endif
+#define NOT_UNPAUSED(pause) (pause != PAUSE_UNPAUSED && pause != PAUSE_PRE && pause != PAUSE_IGNORE_DESYNC)
+
size_t camu_audio_buffer_read(struct camu_audio_buffer *buf, u8 *data, size_t req)
{
f64 pts = camu_clock_get_pts(buf->clock);
@@ -260,7 +262,7 @@ size_t camu_audio_buffer_read(struct camu_audio_buffer *buf, u8 *data, size_t re
buf->pause = PAUSE_FADING;
} else if (buf->fade_period == 0) {
al_memset(data, 0, req);
- if (buf->pause != PAUSE_UNPAUSED && buf->pause != PAUSE_PRE) {
+ if (NOT_UNPAUSED(buf->pause)) {
buf->pause = PAUSE_UNPAUSED;
buf->callback(buf->userdata, CAMU_BUFFER_PAUSED);
}
@@ -273,7 +275,7 @@ size_t camu_audio_buffer_read(struct camu_audio_buffer *buf, u8 *data, size_t re
buf->pause = PAUSE_PLAYING;
#else
al_memset(data, 0, req);
- if (buf->pause != PAUSE_UNPAUSED && buf->pause != PAUSE_PRE) {
+ if (NOT_UNPAUSED(buf->pause)) {
buf->pause = PAUSE_UNPAUSED;
buf->callback(buf->userdata, CAMU_BUFFER_PAUSED);
}
@@ -315,12 +317,12 @@ size_t camu_audio_buffer_read(struct camu_audio_buffer *buf, u8 *data, size_t re
if (flow == FLUSHED) {
signal = size;
al_atomic_u8_store(&buf->flow, SIGNALED, AL_ATOMIC_RELAXED);
- al_log_debug("audio_buffer", "Flushed (signal: %li).", signal);
+ al_log_debug("audio_buffer", "Flushed (signal: %zu).", signal);
buf->callback(buf->userdata, CAMU_BUFFER_EOF);
} else {
al_memset(data + size, 0, req - size);
if (flow == FLOWING) {
- al_log_warn("audio_buffer", "Underrun (req: %i, have: %i).", req, size);
+ al_log_warn("audio_buffer", "Underrun (req: %zu, have: %zu).", req, size);
}
}
req = size;