From 9e1a23aefdb77d81332cbc2d636aa80c72c59f3e Mon Sep 17 00:00:00 2001 From: Vanilagy <1696106+Vanilagy@users.noreply.github.com> Date: Fri, 19 Sep 2025 23:21:36 +0200 Subject: [PATCH] Generate random BigInts instead of doubles --- src/matroska/matroska-muxer.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/matroska/matroska-muxer.ts b/src/matroska/matroska-muxer.ts index ceff1a8..c839e63 100644 --- a/src/matroska/matroska-muxer.ts +++ b/src/matroska/matroska-muxer.ts @@ -541,7 +541,7 @@ export class MatroskaMuxer extends Muxer { const metadataTags = this.output._metadataTags; const elements: EBMLElement[] = []; - const existingFileUids = new Set(); + const existingFileUids = new Set(); const images = metadataTags.images ?? []; for (const image of images) { @@ -551,11 +551,16 @@ export class MatroskaMuxer extends Muxer { imageName = baseName + (imageMimeTypeToExtension(image.mimeType) ?? ''); } - let fileUid: number; + let fileUid: bigint; while (true) { - fileUid = Math.floor(Math.random() * Number.MAX_SAFE_INTEGER); + // Generate a random 64-bit unsigned integer + fileUid = 0n; + for (let i = 0; i < 8; i++) { + fileUid <<= 8n; + fileUid |= BigInt(Math.floor(Math.random() * 256)); + } - if (fileUid !== 0 && !existingFileUids.has(fileUid)) { + if (fileUid !== 0n && !existingFileUids.has(fileUid)) { break; } }