From 564db6863b8e0e90cbf7210152c53124fddc1b4c Mon Sep 17 00:00:00 2001 From: Ophestra Date: Mon, 8 Dec 2025 20:10:01 +0900 Subject: [PATCH] internal/pipewire: work around remote sequence quirk Remote sequence sometimes start with a non-zero value, and keeps the same value for a while before going back to zero. Conditions for reproducing this behaviour is not yet known. This change works around this behaviour. Signed-off-by: Ophestra --- internal/pipewire/pipewire.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/internal/pipewire/pipewire.go b/internal/pipewire/pipewire.go index 8d7e751..15e9eeb 100644 --- a/internal/pipewire/pipewire.go +++ b/internal/pipewire/pipewire.go @@ -674,6 +674,12 @@ func (ctx *Context) consume(receiveRemaining []byte) (remaining []byte, err erro if err = header.UnmarshalBinary(remaining[:SizeHeader]); err != nil { return } + + // remote sequence sometimes do not start with 0 + if ctx.remoteSequence == 0 { + ctx.remoteSequence = header.Sequence + } + if header.Sequence != ctx.remoteSequence { return remaining, UnexpectedSequenceError(header.Sequence) }