ChannelMixingAudioProcessor


@UnstableApi
public final class ChannelMixingAudioProcessor extends BaseAudioProcessor


An AudioProcessor that handles mixing and scaling audio channels. Call putChannelMixingMatrix specifying mixing matrices to apply for each possible input channel count before using the audio processor. Input and output are 16-bit PCM.

Summary

Public constructors

Creates a new audio processor for mixing and scaling audio channels.

Public methods

void

Stores a channel mixing matrix for processing audio with a given channel count.

void
queueInput(ByteBuffer inputBuffer)

Queues audio data between the position and limit of the inputBuffer for processing.

Protected methods

AudioProcessor.AudioFormat

Called when the processor is configured for a new input format.

Inherited Constants

From androidx.media3.common.audio.AudioProcessor
static final ByteBuffer

An empty, direct ByteBuffer.

Inherited fields

From androidx.media3.common.audio.BaseAudioProcessor
AudioProcessor.AudioFormat

The current input audio format.

AudioProcessor.AudioFormat

The current output audio format.

Inherited methods

From androidx.media3.common.audio.AudioProcessor
long

Returns the expected duration of the output stream when the processor is applied given a input durationUs.

From androidx.media3.common.audio.BaseAudioProcessor
final AudioProcessor.AudioFormat

Configures the processor to process input audio with the specified format.

final void

Clears any buffered data and pending output.

ByteBuffer

Returns a buffer containing processed output data between its position and limit.

final boolean

Returns whether the current output buffer has any data remaining.

boolean

Returns whether the processor is configured and will process input buffers.

boolean

Returns whether this processor will return no more output from getOutput until flush has been called and more input has been queued.

void

Called when the processor is flushed, directly or as part of resetting.

void

Called when the end-of-stream is queued to the processor.

void

Called when the processor is reset.

final void

Queues an end of stream signal.

final ByteBuffer

Replaces the current output buffer with a buffer of at least size bytes and returns it.

final void

Resets the processor to its unconfigured state, releasing any resources.

Public constructors

ChannelMixingAudioProcessor

public ChannelMixingAudioProcessor()

Creates a new audio processor for mixing and scaling audio channels.

Public methods

putChannelMixingMatrix

public void putChannelMixingMatrix(ChannelMixingMatrix matrix)

Stores a channel mixing matrix for processing audio with a given channel count. Overwrites any previously stored matrix for the same input channel count.

queueInput

public void queueInput(ByteBuffer inputBuffer)

Queues audio data between the position and limit of the inputBuffer for processing. After calling this method, processed output may be available via getOutput. Calling queueInput(ByteBuffer) again invalidates any pending output.

Parameters
ByteBuffer inputBuffer

The input buffer to process. It must be a direct byte buffer with native byte order. Its contents are treated as read-only. Its position will be advanced by the number of bytes consumed (which may be zero). The caller retains ownership of the provided buffer.

Protected methods

onConfigure

protected AudioProcessor.AudioFormat onConfigure(AudioProcessor.AudioFormat inputAudioFormat)

Called when the processor is configured for a new input format.