From 386a28a8eb0cd995e7eee9f95c97b7f8e7542774 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Velad=20Galv=C3=A1n?= Date: Mon, 14 Nov 2022 22:51:10 +0100 Subject: [PATCH] fix: Fix timestamp offset for ID3 on DAI-HLS (#4696) --- lib/media/media_source_engine.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/media/media_source_engine.js b/lib/media/media_source_engine.js index 335c4a150d..bfa902f8b5 100644 --- a/lib/media/media_source_engine.js +++ b/lib/media/media_source_engine.js @@ -586,11 +586,14 @@ shaka.media.MediaSourceEngine = class { mimeType = this.transmuxers_[contentType].getOrginalMimeType(); } if (shaka.util.TsParser.probe(uint8ArrayData)) { - const metadata = new shaka.util.TsParser().parse(uint8ArrayData) - .getMetadata(); + const tsParser = new shaka.util.TsParser().parse(uint8ArrayData); + // The SourceBuffer timestampOffset may or may not be set yet, so this is + // the timestamp offset that would eventually compute for this segment + // either way. + const timestampOffset = + reference.startTime - (tsParser.getStartTime()[contentType] || 0); + const metadata = tsParser.getMetadata(); if (metadata.length) { - const timestampOffset = - this.sourceBuffers_[contentType].timestampOffset; this.onMetadata_(metadata, timestampOffset, reference ? reference.endTime : null); }