Commit 6796b179 by aquilescanta Committed by Oliver Woodman

Make onInputFormatChanged methods in Renderers take FormatHolders

PiperOrigin-RevId: 257478434
parent 972c6c2f
...@@ -307,7 +307,7 @@ public class LibvpxVideoRenderer extends BaseRenderer { ...@@ -307,7 +307,7 @@ public class LibvpxVideoRenderer extends BaseRenderer {
flagsOnlyBuffer.clear(); flagsOnlyBuffer.clear();
int result = readSource(formatHolder, flagsOnlyBuffer, true); int result = readSource(formatHolder, flagsOnlyBuffer, true);
if (result == C.RESULT_FORMAT_READ) { if (result == C.RESULT_FORMAT_READ) {
onInputFormatChanged(formatHolder.format); onInputFormatChanged(formatHolder);
} else if (result == C.RESULT_BUFFER_READ) { } else if (result == C.RESULT_BUFFER_READ) {
// End of stream read having not read a format. // End of stream read having not read a format.
Assertions.checkState(flagsOnlyBuffer.isEndOfStream()); Assertions.checkState(flagsOnlyBuffer.isEndOfStream());
...@@ -491,15 +491,15 @@ public class LibvpxVideoRenderer extends BaseRenderer { ...@@ -491,15 +491,15 @@ public class LibvpxVideoRenderer extends BaseRenderer {
/** /**
* Called when a new format is read from the upstream source. * Called when a new format is read from the upstream source.
* *
* @param newFormat The new format. * @param formatHolder A {@link FormatHolder} that holds the new {@link Format}.
* @throws ExoPlaybackException If an error occurs (re-)initializing the decoder. * @throws ExoPlaybackException If an error occurs (re-)initializing the decoder.
*/ */
@CallSuper @CallSuper
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
protected void onInputFormatChanged(Format newFormat) throws ExoPlaybackException { protected void onInputFormatChanged(FormatHolder formatHolder) throws ExoPlaybackException {
Format oldFormat = format; Format oldFormat = format;
format = newFormat; format = formatHolder.format;
pendingFormat = newFormat; pendingFormat = format;
boolean drmInitDataChanged = !Util.areEqual(format.drmInitData, oldFormat == null ? null boolean drmInitDataChanged = !Util.areEqual(format.drmInitData, oldFormat == null ? null
: oldFormat.drmInitData); : oldFormat.drmInitData);
...@@ -513,7 +513,7 @@ public class LibvpxVideoRenderer extends BaseRenderer { ...@@ -513,7 +513,7 @@ public class LibvpxVideoRenderer extends BaseRenderer {
new IllegalStateException("Media requires a DrmSessionManager"), getIndex()); new IllegalStateException("Media requires a DrmSessionManager"), getIndex());
} }
DrmSession<ExoMediaCrypto> session = DrmSession<ExoMediaCrypto> session =
drmSessionManager.acquireSession(Looper.myLooper(), newFormat.drmInitData); drmSessionManager.acquireSession(Looper.myLooper(), format.drmInitData);
if (sourceDrmSession != null) { if (sourceDrmSession != null) {
sourceDrmSession.releaseReference(); sourceDrmSession.releaseReference();
} }
...@@ -826,7 +826,7 @@ public class LibvpxVideoRenderer extends BaseRenderer { ...@@ -826,7 +826,7 @@ public class LibvpxVideoRenderer extends BaseRenderer {
return false; return false;
} }
if (result == C.RESULT_FORMAT_READ) { if (result == C.RESULT_FORMAT_READ) {
onInputFormatChanged(formatHolder.format); onInputFormatChanged(formatHolder);
return true; return true;
} }
if (inputBuffer.isEndOfStream()) { if (inputBuffer.isEndOfStream()) {
......
...@@ -274,7 +274,7 @@ public abstract class SimpleDecoderAudioRenderer extends BaseRenderer implements ...@@ -274,7 +274,7 @@ public abstract class SimpleDecoderAudioRenderer extends BaseRenderer implements
flagsOnlyBuffer.clear(); flagsOnlyBuffer.clear();
int result = readSource(formatHolder, flagsOnlyBuffer, true); int result = readSource(formatHolder, flagsOnlyBuffer, true);
if (result == C.RESULT_FORMAT_READ) { if (result == C.RESULT_FORMAT_READ) {
onInputFormatChanged(formatHolder.format); onInputFormatChanged(formatHolder);
} else if (result == C.RESULT_BUFFER_READ) { } else if (result == C.RESULT_BUFFER_READ) {
// End of stream read having not read a format. // End of stream read having not read a format.
Assertions.checkState(flagsOnlyBuffer.isEndOfStream()); Assertions.checkState(flagsOnlyBuffer.isEndOfStream());
...@@ -438,7 +438,7 @@ public abstract class SimpleDecoderAudioRenderer extends BaseRenderer implements ...@@ -438,7 +438,7 @@ public abstract class SimpleDecoderAudioRenderer extends BaseRenderer implements
return false; return false;
} }
if (result == C.RESULT_FORMAT_READ) { if (result == C.RESULT_FORMAT_READ) {
onInputFormatChanged(formatHolder.format); onInputFormatChanged(formatHolder);
return true; return true;
} }
if (inputBuffer.isEndOfStream()) { if (inputBuffer.isEndOfStream()) {
...@@ -656,9 +656,9 @@ public abstract class SimpleDecoderAudioRenderer extends BaseRenderer implements ...@@ -656,9 +656,9 @@ public abstract class SimpleDecoderAudioRenderer extends BaseRenderer implements
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private void onInputFormatChanged(Format newFormat) throws ExoPlaybackException { private void onInputFormatChanged(FormatHolder formatHolder) throws ExoPlaybackException {
Format oldFormat = inputFormat; Format oldFormat = inputFormat;
inputFormat = newFormat; inputFormat = formatHolder.format;
boolean drmInitDataChanged = !Util.areEqual(inputFormat.drmInitData, oldFormat == null ? null boolean drmInitDataChanged = !Util.areEqual(inputFormat.drmInitData, oldFormat == null ? null
: oldFormat.drmInitData); : oldFormat.drmInitData);
...@@ -673,7 +673,7 @@ public abstract class SimpleDecoderAudioRenderer extends BaseRenderer implements ...@@ -673,7 +673,7 @@ public abstract class SimpleDecoderAudioRenderer extends BaseRenderer implements
new IllegalStateException("Media requires a DrmSessionManager"), getIndex()); new IllegalStateException("Media requires a DrmSessionManager"), getIndex());
} }
DrmSession<ExoMediaCrypto> session = DrmSession<ExoMediaCrypto> session =
drmSessionManager.acquireSession(Looper.myLooper(), newFormat.drmInitData); drmSessionManager.acquireSession(Looper.myLooper(), inputFormat.drmInitData);
if (sourceDrmSession != null) { if (sourceDrmSession != null) {
sourceDrmSession.releaseReference(); sourceDrmSession.releaseReference();
} }
...@@ -694,10 +694,10 @@ public abstract class SimpleDecoderAudioRenderer extends BaseRenderer implements ...@@ -694,10 +694,10 @@ public abstract class SimpleDecoderAudioRenderer extends BaseRenderer implements
audioTrackNeedsConfigure = true; audioTrackNeedsConfigure = true;
} }
encoderDelay = newFormat.encoderDelay; encoderDelay = inputFormat.encoderDelay;
encoderPadding = newFormat.encoderPadding; encoderPadding = inputFormat.encoderPadding;
eventDispatcher.inputFormatChanged(newFormat); eventDispatcher.inputFormatChanged(inputFormat);
} }
private void onQueueInputBuffer(DecoderInputBuffer buffer) { private void onQueueInputBuffer(DecoderInputBuffer buffer) {
......
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