From 1a7b7995d59a13c34b10469b7e66ca76a9472dd9 Mon Sep 17 00:00:00 2001 From: Jean-Yves Avenard Date: Thu, 9 Mar 2017 10:57:02 +0100 Subject: [PATCH] Bug 1345756: [MSE] P4. Pre-roll AAC by 2112 audio frames. r=gerald MozReview-Commit-ID: K09DyZMzbY7 --HG-- extra : rebase_source : 489974fa5cc254eba8b3bc83bb45bad8323a4313 --- dom/media/mediasource/MediaSourceDemuxer.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/dom/media/mediasource/MediaSourceDemuxer.cpp b/dom/media/mediasource/MediaSourceDemuxer.cpp index 3e32b1b2c1af..b7ec50affe16 100644 --- a/dom/media/mediasource/MediaSourceDemuxer.cpp +++ b/dom/media/mediasource/MediaSourceDemuxer.cpp @@ -302,8 +302,15 @@ MediaSourceTrackDemuxer::MediaSourceTrackDemuxer(MediaSourceDemuxer* aParent, , mMonitor("MediaSourceTrackDemuxer") , mReset(true) , mPreRoll(TimeUnit::FromMicroseconds( - OpusDataDecoder::IsOpus(mParent->GetTrackInfo(mType)->mMimeType) ? 80000 - : 0)) + OpusDataDecoder::IsOpus(mParent->GetTrackInfo(mType)->mMimeType) + ? 80000 + : mParent->GetTrackInfo(mType)->mMimeType.EqualsLiteral("audio/mp4a-latm") + // AAC encoder delay is by default 2112 audio frames. + // See https://developer.apple.com/library/content/documentation/QuickTime/QTFF/QTFFAppenG/QTFFAppenG.html + // So we always seek 2112 frames + ? (2112 * 1000000ULL + / mParent->GetTrackInfo(mType)->GetAsAudioInfo()->mRate) + : 0)) { }