From 2e315a3c62bf036c8225d5057ada1d70cd8063f1 Mon Sep 17 00:00:00 2001 From: nmzik Date: Thu, 10 Sep 2026 18:38:24 +0400 Subject: [PATCH] ajm: parse gapless control data before codec initialization --- src/libs/ajm.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/libs/ajm.cpp b/src/libs/ajm.cpp index 06b2dc27e..e132ed0a9 100644 --- a/src/libs/ajm.cpp +++ b/src/libs/ajm.cpp @@ -657,6 +657,16 @@ static AjmDecodeResult AjmControlInstance(uint32_t instance, uint64_t flags, } AjmDecodeResult result = decoder->MakeResult(); + if ((flags & AJM_FLAG_SIDEBAND_GAPLESS) != 0) { + if (sideband_input == nullptr || sideband_input_size < AJM_SIDEBAND_GAPLESS_SIZE) { + result.result = AJM_RESULT_INVALID_PARAMETER; + return result; + } + state->gapless.Set(*static_cast(sideband_input), + (flags & AJM_FLAG_CONTROL_RESET) != 0); + sideband_input = static_cast(sideband_input) + AJM_SIDEBAND_GAPLESS_SIZE; + sideband_input_size -= AJM_SIDEBAND_GAPLESS_SIZE; + } if ((flags & AJM_FLAG_CONTROL_RESET) != 0) { state->gapless.Reset(); decoder->Reset();