From 10be7475220e2672b3c9e92b5c4704f5bb2c268d Mon Sep 17 00:00:00 2001 From: Thulinma Date: Fri, 13 Nov 2020 21:59:18 +0100 Subject: [PATCH] Round down audio timestamps in PES packets, instead of rounding to nearest. Fixes HLS in Firefox. --- src/output/output_ts_base.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/output/output_ts_base.cpp b/src/output/output_ts_base.cpp index 94a3b551..410b4699 100644 --- a/src/output/output_ts_base.cpp +++ b/src/output/output_ts_base.cpp @@ -155,12 +155,10 @@ namespace Mist{ // Make sure TS timestamp is sample-aligned, if possible uint32_t freq = M.getRate(thisIdx); if (freq){ - uint64_t aacSamples = (packTime / 90) * freq / 1000; - // round to nearest packet, assuming all 1024 samples (probably wrong, but meh) - aacSamples += 512; - aacSamples /= 1024; - aacSamples *= 1024; - // Get closest 90kHz clock time to perfect sample alignment + uint64_t aacSamples = packTime * freq / 90000; + //round to nearest packet, assuming all 1024 samples (probably wrong, but meh) + aacSamples &= ~0x3FF; + //Get closest 90kHz clock time to perfect sample alignment packTime = aacSamples * 90000 / freq; } }