From b1c356fbab8d585565dbcb5adda4bf84116fee1b Mon Sep 17 00:00:00 2001 From: olly Date: Tue, 15 Mar 2016 03:01:49 -0700 Subject: [PATCH] Simplify (i.e. remove) waiting for first sync frame. The upstream source (or its stream) should always provide data starting from a sync frame, so this logic shouldn't be necessary. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117220759 --- .../exoplayer/MediaCodecTrackRenderer.java | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/library/src/main/java/com/google/android/exoplayer/MediaCodecTrackRenderer.java b/library/src/main/java/com/google/android/exoplayer/MediaCodecTrackRenderer.java index a1bf1f04ac..b9e3ad89a4 100644 --- a/library/src/main/java/com/google/android/exoplayer/MediaCodecTrackRenderer.java +++ b/library/src/main/java/com/google/android/exoplayer/MediaCodecTrackRenderer.java @@ -228,7 +228,6 @@ public abstract class MediaCodecTrackRenderer extends SampleSourceTrackRenderer private boolean inputStreamEnded; private boolean outputStreamEnded; private boolean waitingForKeys; - private boolean waitingForFirstSyncFrame; /** * @param mediaCodecSelector A decoder selector. @@ -384,7 +383,6 @@ public abstract class MediaCodecTrackRenderer extends SampleSourceTrackRenderer SystemClock.elapsedRealtime() : -1; inputIndex = -1; outputIndex = -1; - waitingForFirstSyncFrame = true; codecCounters.codecInitCount++; } @@ -507,7 +505,6 @@ public abstract class MediaCodecTrackRenderer extends SampleSourceTrackRenderer codecHotswapTimeMs = -1; inputIndex = -1; outputIndex = -1; - waitingForFirstSyncFrame = true; waitingForKeys = false; decodeOnlyPresentationTimestamps.clear(); if (codecNeedsFlushWorkaround || (codecNeedsEosFlushWorkaround && codecReceivedEos)) { @@ -628,20 +625,6 @@ public abstract class MediaCodecTrackRenderer extends SampleSourceTrackRenderer } return false; } - if (waitingForFirstSyncFrame) { - // TODO: Find out if it's possible to supply samples prior to the first sync - // frame for HE-AAC. - if (!sampleHolder.isSyncFrame()) { - sampleHolder.clearData(); - if (codecReconfigurationState == RECONFIGURATION_STATE_QUEUE_PENDING) { - // The buffer we just cleared contained reconfiguration data. We need to re-write this - // data into a subsequent buffer (if there is one). - codecReconfigurationState = RECONFIGURATION_STATE_WRITE_PENDING; - } - return true; - } - waitingForFirstSyncFrame = false; - } boolean sampleEncrypted = sampleHolder.isEncrypted(); waitingForKeys = shouldWaitForKeys(sampleEncrypted); if (waitingForKeys) {