Make some audio processors public

ChannelMappingAudioProcessor, TrimmingAudioProcessor and
ToFloatPcmAudioProcessor are currently package-private even
though they might be useful in custom audio processing chains
or custom version of audio sinks.

Issue: androidx/media#2339
PiperOrigin-RevId: 747857815
This commit is contained in:
tonihei 2025-04-15 07:01:01 -07:00 committed by Copybara-Service
parent 9cc7dd0dbe
commit 70e7121a51
4 changed files with 12 additions and 3 deletions

View File

@ -23,6 +23,9 @@
* DataSource: * DataSource:
* Audio: * Audio:
* Allow constant power upmixing/downmixing in DefaultAudioMixer. * Allow constant power upmixing/downmixing in DefaultAudioMixer.
* Make `ChannelMappingAudioProcessor`, `TrimmingAudioProcessor` and
`ToFloatPcmAudioProcessor` public
([#2339](https://github.com/androidx/media/issues/2339)).
* Video: * Video:
* Add experimental `ExoPlayer` API to include the * Add experimental `ExoPlayer` API to include the
`MediaCodec.BUFFER_FLAG_DECODE_ONLY` flag when queuing decode-only input `MediaCodec.BUFFER_FLAG_DECODE_ONLY` flag when queuing decode-only input

View File

@ -23,6 +23,7 @@ import androidx.media3.common.Format;
import androidx.media3.common.audio.AudioProcessor; import androidx.media3.common.audio.AudioProcessor;
import androidx.media3.common.audio.BaseAudioProcessor; import androidx.media3.common.audio.BaseAudioProcessor;
import androidx.media3.common.util.Assertions; import androidx.media3.common.util.Assertions;
import androidx.media3.common.util.UnstableApi;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.util.Arrays; import java.util.Arrays;
@ -30,7 +31,8 @@ import java.util.Arrays;
* An {@link AudioProcessor} that applies a mapping from input channels onto specified output * An {@link AudioProcessor} that applies a mapping from input channels onto specified output
* channels. This can be used to reorder, duplicate or discard channels. * channels. This can be used to reorder, duplicate or discard channels.
*/ */
/* package */ final class ChannelMappingAudioProcessor extends BaseAudioProcessor { @UnstableApi
public final class ChannelMappingAudioProcessor extends BaseAudioProcessor {
@Nullable private int[] pendingOutputChannels; @Nullable private int[] pendingOutputChannels;
@Nullable private int[] outputChannels; @Nullable private int[] outputChannels;

View File

@ -19,6 +19,7 @@ import androidx.media3.common.C;
import androidx.media3.common.Format; import androidx.media3.common.Format;
import androidx.media3.common.audio.AudioProcessor; import androidx.media3.common.audio.AudioProcessor;
import androidx.media3.common.audio.BaseAudioProcessor; import androidx.media3.common.audio.BaseAudioProcessor;
import androidx.media3.common.util.UnstableApi;
import androidx.media3.common.util.Util; import androidx.media3.common.util.Util;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
@ -34,7 +35,8 @@ import java.nio.ByteBuffer;
* <li>{@link C#ENCODING_PCM_FLOAT} ({@link #isActive()} will return {@code false}) * <li>{@link C#ENCODING_PCM_FLOAT} ({@link #isActive()} will return {@code false})
* </ul> * </ul>
*/ */
/* package */ final class ToFloatPcmAudioProcessor extends BaseAudioProcessor { @UnstableApi
public final class ToFloatPcmAudioProcessor extends BaseAudioProcessor {
private static final int FLOAT_NAN_AS_INT = Float.floatToIntBits(Float.NaN); private static final int FLOAT_NAN_AS_INT = Float.floatToIntBits(Float.NaN);
private static final double PCM_32_BIT_INT_TO_PCM_32_BIT_FLOAT_FACTOR = 1.0 / 0x7FFFFFFF; private static final double PCM_32_BIT_INT_TO_PCM_32_BIT_FLOAT_FACTOR = 1.0 / 0x7FFFFFFF;

View File

@ -20,11 +20,13 @@ import static java.lang.Math.min;
import androidx.media3.common.C; import androidx.media3.common.C;
import androidx.media3.common.Format; import androidx.media3.common.Format;
import androidx.media3.common.audio.BaseAudioProcessor; import androidx.media3.common.audio.BaseAudioProcessor;
import androidx.media3.common.util.UnstableApi;
import androidx.media3.common.util.Util; import androidx.media3.common.util.Util;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
/** Audio processor for trimming samples from the start/end of data. */ /** Audio processor for trimming samples from the start/end of data. */
/* package */ final class TrimmingAudioProcessor extends BaseAudioProcessor { @UnstableApi
public final class TrimmingAudioProcessor extends BaseAudioProcessor {
private int trimStartFrames; private int trimStartFrames;
private int trimEndFrames; private int trimEndFrames;