Commit 03b02f98 by samrobinson Committed by Oliver Woodman

Fix an issue where a keyframe was not skipped.

Keyframe was rendered rather than skipped when performing
an exact seek to a non-zero position close to the start of
the stream.

PiperOrigin-RevId: 284798460
parent b8eafea1
...@@ -75,6 +75,9 @@ ...@@ -75,6 +75,9 @@
* Fix Dolby Vision fallback to AVC and HEVC. * Fix Dolby Vision fallback to AVC and HEVC.
* Fix early end-of-stream detection when using video tunneling, on API level * Fix early end-of-stream detection when using video tunneling, on API level
23 and above. 23 and above.
* Fix an issue where a keyframe was rendered rather than skipped when
performing an exact seek to a non-zero position close to the start of the
stream.
* Audio: * Audio:
* Fix the start of audio getting truncated when transitioning to a new * Fix the start of audio getting truncated when transitioning to a new
item in a playlist of Opus streams. item in a playlist of Opus streams.
......
...@@ -365,8 +365,8 @@ public abstract class MediaCodecRenderer extends BaseRenderer { ...@@ -365,8 +365,8 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
@DrainAction private int codecDrainAction; @DrainAction private int codecDrainAction;
private boolean codecReceivedBuffers; private boolean codecReceivedBuffers;
private boolean codecReceivedEos; private boolean codecReceivedEos;
private long lastBufferInStreamPresentationTimeUs;
private long largestQueuedPresentationTimeUs; private long largestQueuedPresentationTimeUs;
private long lastBufferInStreamPresentationTimeUs;
private boolean inputStreamEnded; private boolean inputStreamEnded;
private boolean outputStreamEnded; private boolean outputStreamEnded;
private boolean waitingForKeys; private boolean waitingForKeys;
...@@ -954,6 +954,8 @@ public abstract class MediaCodecRenderer extends BaseRenderer { ...@@ -954,6 +954,8 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
codecReconfigurationState = RECONFIGURATION_STATE_NONE; codecReconfigurationState = RECONFIGURATION_STATE_NONE;
codecReceivedEos = false; codecReceivedEos = false;
codecReceivedBuffers = false; codecReceivedBuffers = false;
largestQueuedPresentationTimeUs = C.TIME_UNSET;
lastBufferInStreamPresentationTimeUs = C.TIME_UNSET;
codecDrainState = DRAIN_STATE_NONE; codecDrainState = DRAIN_STATE_NONE;
codecDrainAction = DRAIN_ACTION_NONE; codecDrainAction = DRAIN_ACTION_NONE;
codecNeedsAdaptationWorkaroundBuffer = false; codecNeedsAdaptationWorkaroundBuffer = false;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment