Bug 1427932. P2 - fix the calculation of |endTime|. r=jya
authorJW Wang <jwwang@mozilla.com>
Thu, 04 Jan 2018 11:10:19 +0800
changeset 453019 b861f596cf9e2e179e96cafed7c6d325fcb3c28e
parent 453018 5765be2f5f105df8a6c24b7d9366b271916317d4
child 453020 0232a1eea544033c5d36410e851d010c20e0f2ef
push id1648
push usermtabara@mozilla.com
push dateThu, 01 Mar 2018 12:45:47 +0000
treeherdermozilla-release@cbb9688c2eeb [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjya
bugs1427932
milestone59.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1427932. P2 - fix the calculation of |endTime|. r=jya MozReview-Commit-ID: 2a8FxMdgM8e
dom/media/ogg/OggDemuxer.cpp
--- a/dom/media/ogg/OggDemuxer.cpp
+++ b/dom/media/ogg/OggDemuxer.cpp
@@ -1049,17 +1049,17 @@ OggDemuxer::FindStartTime(TrackInfo::Tra
 nsresult
 OggDemuxer::SeekInternal(TrackInfo::TrackType aType, const TimeUnit& aTarget)
 {
   int64_t target = aTarget.ToMicroseconds();
   OGG_DEBUG("About to seek to %" PRId64, target);
   nsresult res;
   int64_t adjustedTarget = target;
   int64_t startTime = StartTime(aType);
-  int64_t endTime = mInfo.mMetadataDuration->ToMicroseconds();
+  int64_t endTime = mInfo.mMetadataDuration->ToMicroseconds() + startTime;
   if (aType == TrackInfo::kAudioTrack && mOpusState){
     adjustedTarget = std::max(startTime, target - OGG_SEEK_OPUS_PREROLL);
   }
 
   if (!HaveStartTime(aType) || adjustedTarget == startTime) {
     // We've seeked to the media start or we can't seek.
     // Just seek to the offset of the first content page.
     res = Resource(aType)->Seek(nsISeekableStream::NS_SEEK_SET, 0);