summaryrefslogtreecommitdiff
path: root/src/liana
diff options
context:
space:
mode:
Diffstat (limited to 'src/liana')
-rw-r--r--src/liana/list.h2
-rw-r--r--src/liana/vcr.c11
2 files changed, 7 insertions, 6 deletions
diff --git a/src/liana/list.h b/src/liana/list.h
index bbb2ce4..5e3eaec 100644
--- a/src/liana/list.h
+++ b/src/liana/list.h
@@ -8,7 +8,7 @@
#define LIANA_TIMESTAMP_INVALID UINT64_MAX
#define LIANA_BASE_DELAY 475000Lu // 475ms
-#define LIANA_BASE_PING 200000Lu // 200ms
+#define LIANA_BASE_PING 150000Lu // 150ms
#define LIANA_PAUSE_DELAY LIANA_BASE_PING
#define LIANA_DELAY_IGNORE 0Lu
diff --git a/src/liana/vcr.c b/src/liana/vcr.c
index 192b4f1..40aa757 100644
--- a/src/liana/vcr.c
+++ b/src/liana/vcr.c
@@ -109,9 +109,9 @@ static void cork_if_buffered(struct lia_vcr *vcr)
{
u8 buffered = 1;
struct lia_vcr_track *track;
- al_array_foreach(vcr->tracks, i, track) {
- buffered &= al_atomic_load(u8)(&track->buffered, AL_ATOMIC_RELAXED);
- }
+ //al_array_foreach(vcr->tracks, i, track) {
+ // buffered &= al_atomic_load(u8)(&track->buffered, AL_ATOMIC_RELAXED);
+ //}
if (buffered) {
aki_packet_stream_cork(vcr->data, true);
al_array_foreach(vcr->tracks, i, track) {
@@ -136,9 +136,10 @@ bool lia_vcr_push_packet(struct lia_vcr *vcr, struct aki_packet *packet)
aki_thread_create(&track->thread, vcr_track_thread, track);
track->running = true;
}
+ s32 count;
if (!aki_packet_cache_send_packet(&track->cache, packet)) {
aki_packet_free(packet);
- } else if (al_atomic_add(s32)(&vcr->count, 1, AL_ATOMIC_RELAXED) > vcr->mark.buffered) {
+ } else if ((count = al_atomic_add(s32)(&vcr->count, 1, AL_ATOMIC_RELAXED)) > vcr->mark.buffered) {
cork_if_buffered(vcr);
}
break;
@@ -204,7 +205,7 @@ void lia_vcr_flush(struct lia_vcr *vcr)
vcr_track_close_internal(track);
track->client->flush(track->client);
aki_packet_cache_enable(&track->cache);
- track->running = false;
+ al_atomic_store(u8)(&track->buffered, 0, AL_ATOMIC_RELAXED);
al_atomic_store(s32)(&track->state, LIANA_STREAM_RUNNING, AL_ATOMIC_RELAXED);
}
aki_signal_send(&vcr->signal);