From 6b2eb1b3c071fa75ae8a60671e7fd2fafe84c8ea Mon Sep 17 00:00:00 2001 From: philippe44 Date: Fri, 19 Jan 2024 16:14:08 -0800 Subject: [PATCH] see CHANGELOG --- CHANGELOG | 5 +++++ components/codecs/lib/libFLAC.a | Bin 690872 -> 691878 bytes components/raop/rtp.c | 13 ++++++++----- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index c367c5a9..e6df73e3 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,8 +1,13 @@ +2024-01-19 + - fixed libflac with OggFlac + - AirPlay missed frame logging + 2024-01-16 - catch-up with cspot latest - refactor airplay flush/first packet - new libFLAC that supports multi-stream OggFlac - fix output threshold + - log missed frames 2024-01-10 - add OggFlac to stream metadata diff --git a/components/codecs/lib/libFLAC.a b/components/codecs/lib/libFLAC.a index 387772775961404d140e825709d3084f6c6428f5..e535aa932669825412ffc98ed0c55ee34a8034d2 100644 GIT binary patch delta 64152 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 NwrOqe5rIdu{tq;2cKZMT delta 63495 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�fuAY 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.time + ((rtptime - ctx->synchro.rtp) * 10) / (RAOP_SAMPLE_RATE / 100); ctx->cmd_cb(RAOP_PLAY, playtime); } + + abuf = ctx->audio_buffer + BUFIDX(seqno); if (seqno == (u16_t) (ctx->ab_write+1)) { // expected packet - abuf = ctx->audio_buffer + BUFIDX(seqno); ctx->ab_write = seqno; LOG_SDEBUG("packet expected seqno:%hu rtptime:%u (W:%hu R:%hu)", seqno, rtptime, ctx->ab_write, ctx->ab_read); } else if (seq_order(ctx->ab_write, seqno)) { @@ -504,16 +506,15 @@ static void buffer_put_packet(rtp_t *ctx, seq_t seqno, unsigned rtptime, bool fi LOG_DEBUG("[%p]: packet newer seqno:%hu rtptime:%u (W:%hu R:%hu)", ctx, seqno, rtptime, ctx->ab_write, ctx->ab_read); } - abuf = ctx->audio_buffer + BUFIDX(seqno); ctx->ab_write = seqno; } else if (seq_order(ctx->ab_read, seqno + 1)) { // recovered packet, not yet sent - abuf = ctx->audio_buffer + BUFIDX(seqno); ctx->resent_rec++; LOG_DEBUG("[%p]: packet recovered seqno:%hu rtptime:%u (W:%hu R:%hu)", ctx, seqno, rtptime, ctx->ab_write, ctx->ab_read); } else { - // too late - LOG_DEBUG("[%p]: packet too late seqno:%hu rtptime:%u (W:%hu R:%hu)", ctx, seqno, rtptime, ctx->ab_write, ctx->ab_read); + // too late + if (abuf->missed) LOG_INFO("[%p]: packet too late seqno:%hu rtptime:%u (W:%hu R:%hu)", ctx, seqno, rtptime, ctx->ab_write, ctx->ab_read); + abuf = NULL; } if (ctx->in_frames++ > 1000) { @@ -524,6 +525,7 @@ static void buffer_put_packet(rtp_t *ctx, seq_t seqno, unsigned rtptime, bool fi if (abuf) { alac_decode(ctx, abuf->data, data, len, &abuf->len); abuf->ready = 1; + abuf->missed = 0; // this is the local rtptime when this frame is expected to play abuf->rtptime = rtptime; buffer_push_packet(ctx); @@ -567,6 +569,7 @@ static void buffer_push_packet(rtp_t *ctx) { LOG_DEBUG("[%p]: created zero frame (W:%hu R:%hu)", ctx, ctx->ab_write, ctx->ab_read); ctx->data_cb(silence_frame, ctx->frame_size * 4, playtime); ctx->silent_frames++; + curframe->missed = 1; } } else if (curframe->ready) { ctx->data_cb((const u8_t*) curframe->data, curframe->len, playtime);