Bug 1419249 - Fix the wrong logic calculating starttime of the first sample. r=kikuo

MozReview-Commit-ID: 3je7idVeYoZ

--HG--
extra : rebase_source : ecd1a43d6a98e0f0cf5fd53c5b3f0d830d985fc4
This commit is contained in:
James Cheng 2017-11-22 17:47:03 +08:00
parent 89998341ee
commit 75bf8e9453

View File

@ -714,8 +714,8 @@ public class GeckoHlsPlayer implements BaseHlsPlayer, ExoPlayer.EventListener {
// complete timeline, and seekTime should be inside the duration.
Long startTime = Long.MAX_VALUE;
for (GeckoHlsRendererBase r : mRenderers) {
if (r == mVRenderer && mRendererController.isVideoRendererEnabled() ||
r == mARenderer && mRendererController.isAudioRendererEnabled()) {
if (r == mVRenderer && mRendererController.isVideoRendererEnabled() && mTracksInfo.hasVideo() ||
r == mARenderer && mRendererController.isAudioRendererEnabled() && mTracksInfo.hasAudio()) {
// Find the min value of the start time
startTime = Math.min(startTime, r.getFirstSamplePTS());
}
@ -724,7 +724,7 @@ public class GeckoHlsPlayer implements BaseHlsPlayer, ExoPlayer.EventListener {
Log.d(LOGTAG, "seeking : " + positionUs / 1000 +
" (ms); startTime : " + startTime / 1000 + " (ms)");
}
assertTrue(startTime != Long.MAX_VALUE);
assertTrue(startTime != Long.MAX_VALUE && startTime != Long.MIN_VALUE);
mPlayer.seekTo(positionUs / 1000 - startTime / 1000);
} catch (Exception e) {
if (mDemuxerCallbacks != null) {