Make updateCodecOperatingRate protected.

Use the api in YouTube code to update the operating rate.

PiperOrigin-RevId: 359572194
This commit is contained in:
olly 2021-02-25 19:30:56 +00:00 committed by Oliver Woodman
parent 34d76a793b
commit 27c8679ce4

View File

@ -733,12 +733,8 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
throws ExoPlaybackException { throws ExoPlaybackException {
this.currentPlaybackSpeed = currentPlaybackSpeed; this.currentPlaybackSpeed = currentPlaybackSpeed;
this.targetPlaybackSpeed = targetPlaybackSpeed; this.targetPlaybackSpeed = targetPlaybackSpeed;
if (codec != null
&& codecDrainAction != DRAIN_ACTION_REINITIALIZE
&& getState() != STATE_DISABLED) {
updateCodecOperatingRate(codecInputFormat); updateCodecOperatingRate(codecInputFormat);
} }
}
@Override @Override
protected void onDisabled() { protected void onDisabled() {
@ -1689,6 +1685,17 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
return CODEC_OPERATING_RATE_UNSET; return CODEC_OPERATING_RATE_UNSET;
} }
/**
* Updates the codec operating rate, or triggers codec release and re-initialization if a
* previously set operating rate needs to be cleared.
*
* @throws ExoPlaybackException If an error occurs releasing or initializing a codec.
* @return False if codec release and re-initialization was triggered. True in all other cases.
*/
protected final boolean updateCodecOperatingRate() throws ExoPlaybackException {
return updateCodecOperatingRate(codecInputFormat);
}
/** /**
* Updates the codec operating rate, or triggers codec release and re-initialization if a * Updates the codec operating rate, or triggers codec release and re-initialization if a
* previously set operating rate needs to be cleared. * previously set operating rate needs to be cleared.
@ -1702,6 +1709,13 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
return true; return true;
} }
if (codec == null
|| codecDrainAction == DRAIN_ACTION_REINITIALIZE
|| getState() == STATE_DISABLED) {
// No need to update the operating rate.
return true;
}
float newCodecOperatingRate = float newCodecOperatingRate =
getCodecOperatingRateV23(targetPlaybackSpeed, format, getStreamFormats()); getCodecOperatingRateV23(targetPlaybackSpeed, format, getStreamFormats());
if (codecOperatingRate == newCodecOperatingRate) { if (codecOperatingRate == newCodecOperatingRate) {