Elaborate method comments in transformer audio renderer

#minor-release

PiperOrigin-RevId: 353856211
This commit is contained in:
andrewlewis 2021-01-26 14:39:33 +00:00 committed by Oliver Woodman
parent e3ac392908
commit de5c7a2fee

View File

@ -114,9 +114,10 @@ import java.nio.ByteBuffer;
return; return;
} }
if (!setupDecoder() || !setupEncoderAndMaybeSonic()) { if (!setupDecoder()) {
return; return;
} }
setupEncoderAndMaybeSonic();
while (drainEncoderToFeedMuxer()) {} while (drainEncoderToFeedMuxer()) {}
if (sonicAudioProcessor.isActive()) { if (sonicAudioProcessor.isActive()) {
@ -128,7 +129,10 @@ import java.nio.ByteBuffer;
while (feedDecoderInputFromSource()) {} while (feedDecoderInputFromSource()) {}
} }
/** Returns whether it may be possible to process more data with this method. */ /**
* Attempts to write encoder output data to the muxer, and returns whether it may be possible to
* write more data immediately by calling this method again.
*/
private boolean drainEncoderToFeedMuxer() { private boolean drainEncoderToFeedMuxer() {
MediaCodecAdapterWrapper encoder = checkNotNull(this.encoder); MediaCodecAdapterWrapper encoder = checkNotNull(this.encoder);
if (!hasEncoderOutputFormat) { if (!hasEncoderOutputFormat) {
@ -167,7 +171,10 @@ import java.nio.ByteBuffer;
return true; return true;
} }
/** Returns whether it may be possible to process more data with this method. */ /**
* Attempts to pass decoder output data to the encoder, and returns whether it may be possible to
* pass more data immediately by calling this method again.
*/
private boolean drainDecoderToFeedEncoder() { private boolean drainDecoderToFeedEncoder() {
MediaCodecAdapterWrapper decoder = checkNotNull(this.decoder); MediaCodecAdapterWrapper decoder = checkNotNull(this.decoder);
MediaCodecAdapterWrapper encoder = checkNotNull(this.encoder); MediaCodecAdapterWrapper encoder = checkNotNull(this.encoder);
@ -199,7 +206,10 @@ import java.nio.ByteBuffer;
return true; return true;
} }
/** Returns whether it may be possible to process more data with this method. */ /**
* Attempts to pass audio processor output data to the encoder, and returns whether it may be
* possible to pass more data immediately by calling this method again.
*/
private boolean drainSonicToFeedEncoder() { private boolean drainSonicToFeedEncoder() {
MediaCodecAdapterWrapper encoder = checkNotNull(this.encoder); MediaCodecAdapterWrapper encoder = checkNotNull(this.encoder);
if (!encoder.maybeDequeueInputBuffer(encoderInputBuffer)) { if (!encoder.maybeDequeueInputBuffer(encoderInputBuffer)) {
@ -219,7 +229,10 @@ import java.nio.ByteBuffer;
return feedEncoder(sonicOutputBuffer); return feedEncoder(sonicOutputBuffer);
} }
/** Returns whether it may be possible to process more data with this method. */ /**
* Attempts to process decoder output audio, and returns whether it may be possible to process
* more data immediately by calling this method again.
*/
private boolean drainDecoderToFeedSonic() { private boolean drainDecoderToFeedSonic() {
MediaCodecAdapterWrapper decoder = checkNotNull(this.decoder); MediaCodecAdapterWrapper decoder = checkNotNull(this.decoder);
@ -263,7 +276,10 @@ import java.nio.ByteBuffer;
return true; return true;
} }
/** Returns whether it may be possible to process more data with this method. */ /**
* Attempts to pass input data to the decoder, and returns whether it may be possible to pass more
* data immediately by calling this method again.
*/
private boolean feedDecoderInputFromSource() { private boolean feedDecoderInputFromSource() {
MediaCodecAdapterWrapper decoder = checkNotNull(this.decoder); MediaCodecAdapterWrapper decoder = checkNotNull(this.decoder);
if (!decoder.maybeDequeueInputBuffer(decoderInputBuffer)) { if (!decoder.maybeDequeueInputBuffer(decoderInputBuffer)) {
@ -287,10 +303,8 @@ import java.nio.ByteBuffer;
} }
/** /**
* Feeds the encoder the {@link ByteBuffer inputBuffer} with the correct {@code timeUs}. * Feeds the encoder the {@link ByteBuffer inputBuffer} with the correct {@code timeUs}, and
* * returns whether it may be possible to write more data.
* @param inputBuffer The buffer to be fed.
* @return Whether more input buffers can be queued to the encoder.
*/ */
private boolean feedEncoder(ByteBuffer inputBuffer) { private boolean feedEncoder(ByteBuffer inputBuffer) {
MediaCodecAdapterWrapper encoder = checkNotNull(this.encoder); MediaCodecAdapterWrapper encoder = checkNotNull(this.encoder);
@ -323,12 +337,15 @@ import java.nio.ByteBuffer;
encoder.queueInputBuffer(encoderInputBuffer); encoder.queueInputBuffer(encoderInputBuffer);
} }
/** Returns whether the encoder has been setup. */ /**
private boolean setupEncoderAndMaybeSonic() throws ExoPlaybackException { * Configures the {@link #encoder} and Sonic (if applicable), if they have not been configured
* yet.
*/
private void setupEncoderAndMaybeSonic() throws ExoPlaybackException {
MediaCodecAdapterWrapper decoder = checkNotNull(this.decoder); MediaCodecAdapterWrapper decoder = checkNotNull(this.decoder);
if (encoder != null) { if (encoder != null) {
return true; return;
} }
Format decoderFormat = decoder.getConfigFormat(); Format decoderFormat = decoder.getConfigFormat();
@ -349,10 +366,12 @@ import java.nio.ByteBuffer;
throw ExoPlaybackException.createForRenderer( throw ExoPlaybackException.createForRenderer(
e, TAG, getIndex(), encoderFormat, /* rendererFormatSupport= */ C.FORMAT_HANDLED); e, TAG, getIndex(), encoderFormat, /* rendererFormatSupport= */ C.FORMAT_HANDLED);
} }
return true;
} }
/** Returns whether the decoder has been setup. */ /**
* Attempts to configure the {@link #decoder} if it has not been configured yet, and returns
* whether the decoder has been configured.
*/
private boolean setupDecoder() throws ExoPlaybackException { private boolean setupDecoder() throws ExoPlaybackException {
if (decoder != null) { if (decoder != null) {
return true; return true;