diff options
| author | 2024-12-27 11:02:38 -0500 | |
|---|---|---|
| committer | 2024-12-27 11:02:38 -0500 | |
| commit | 4af2d16c06a8a67ab225caa61ccd94df3c572bdc (patch) | |
| tree | 6f5b364ea409c93aa9f0b795f252ac78c7d833f9 /src/libsink | |
| parent | 9026e7f49f11e920eac666bd4159ec459b979623 (diff) | |
| download | camu-4af2d16c06a8a67ab225caa61ccd94df3c572bdc.tar.gz camu-4af2d16c06a8a67ab225caa61ccd94df3c572bdc.tar.bz2 camu-4af2d16c06a8a67ab225caa61ccd94df3c572bdc.zip | |
Fix some configurations, add sink loop mode
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/libsink')
| -rw-r--r-- | src/libsink/common.h | 1 | ||||
| -rw-r--r-- | src/libsink/sink.c | 13 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/libsink/common.h b/src/libsink/common.h index 0bb3ded..dc0b207 100644 --- a/src/libsink/common.h +++ b/src/libsink/common.h @@ -1,6 +1,7 @@ #pragma once #define CAMU_SINK_LOCAL +//#define CAMU_SINK_SCUFFED_LOOP enum { CAMU_SINK_SET = 0, diff --git a/src/libsink/sink.c b/src/libsink/sink.c index 9b5c05e..12b8bca 100644 --- a/src/libsink/sink.c +++ b/src/libsink/sink.c @@ -433,12 +433,12 @@ static void maybe_add_to_previous(struct camu_sink *sink, struct camu_sink_entry } } - // If neither the entries audio or video buffer is ADDED, we don't care about adding it + // If neither of the entries audio or video buffer is ADDED, we don't care about adding it // to previous (waiting for the next added entry to remove it). #ifndef CAMU_SINK_NO_VIDEO if (!(previous->audio.state == BUFFER_ADDED || previous->video.state == BUFFER_ADDED) || target->ended) { #else - if (!(previous->audio.state == BUFFER_ADDED) || target->ended) + if (!(previous->audio.state == BUFFER_ADDED) || target->ended) { #endif remove_entry_buffers(sink, previous); return; @@ -629,6 +629,15 @@ static void pause_and_swap_to(struct camu_sink *sink, struct camu_sink_entry *ta static bool end_entry_and_advance_queue(struct camu_sink *sink, struct camu_sink_entry *entry) { +#ifdef CAMU_SINK_SCUFFED_LOOP + al_log_info("sink", "Looping."); + queue_cmd(sink, (struct camu_sink_cmd){ + .op = SEEK, + .value.f = 0.0, + .opaque = entry + }); + return true; +#endif al_log_info("sink", "Entry ended."); entry->ended = true; queue_cmd(sink, (struct camu_sink_cmd){ |