From 1cbcdcfcb677386ebec200be5649423014607b8f Mon Sep 17 00:00:00 2001 From: 42arch Date: Fri, 3 Jul 2026 10:39:15 +0800 Subject: [PATCH] fix(mcap): support LZ4 frame compression in MCAP decompress handler --- src/infra/sources/decompressHandlers.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/infra/sources/decompressHandlers.ts b/src/infra/sources/decompressHandlers.ts index 2b99257..db759d4 100644 --- a/src/infra/sources/decompressHandlers.ts +++ b/src/infra/sources/decompressHandlers.ts @@ -14,6 +14,17 @@ export async function loadDecompressHandlers( return { lz4: (buffer, decompressedSize) => { + // Check if it is an LZ4 frame (magic number 0x184D2204) + if ( + buffer.length >= 4 && + buffer[0] === 0x04 && + buffer[1] === 0x22 && + buffer[2] === 0x4d && + buffer[3] === 0x18 + ) { + return lz4js.decompress(buffer); + } + const output = new Uint8Array(Number(decompressedSize)); const result = lz4js.decompressBlock(buffer, output, 0, buffer.byteLength, 0); if (result < 0) {