Remove @UnstableApi
from package-private files
This annotation is only needed on public classes. This change also removes the `/* package */` comment from some `public` classes. PiperOrigin-RevId: 633864544
This commit is contained in:
parent
8dfcf025d9
commit
ed4820cb61
@ -16,7 +16,6 @@
|
|||||||
package androidx.media3.datasource.cache;
|
package androidx.media3.datasource.cache;
|
||||||
|
|
||||||
import androidx.media3.common.util.Assertions;
|
import androidx.media3.common.util.Assertions;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import java.io.BufferedOutputStream;
|
import java.io.BufferedOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -26,7 +25,6 @@ import java.io.OutputStream;
|
|||||||
* This is a subclass of {@link BufferedOutputStream} with a {@link #reset(OutputStream)} method
|
* This is a subclass of {@link BufferedOutputStream} with a {@link #reset(OutputStream)} method
|
||||||
* that allows an instance to be re-used with another underlying output stream.
|
* that allows an instance to be re-used with another underlying output stream.
|
||||||
*/
|
*/
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class ReusableBufferedOutputStream extends BufferedOutputStream {
|
/* package */ final class ReusableBufferedOutputStream extends BufferedOutputStream {
|
||||||
|
|
||||||
private boolean closed;
|
private boolean closed;
|
||||||
|
@ -19,7 +19,6 @@ package androidx.media3.decoder.midi;
|
|||||||
import static androidx.media3.common.util.Assertions.checkNotNull;
|
import static androidx.media3.common.util.Assertions.checkNotNull;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.decoder.midi.SonivoxWaveData.Envelope;
|
import androidx.media3.decoder.midi.SonivoxWaveData.Envelope;
|
||||||
import androidx.media3.decoder.midi.SonivoxWaveData.WavetableRegion;
|
import androidx.media3.decoder.midi.SonivoxWaveData.WavetableRegion;
|
||||||
import com.jsyn.data.ShortSample;
|
import com.jsyn.data.ShortSample;
|
||||||
@ -42,7 +41,6 @@ import com.softsynth.shared.time.TimeStamp;
|
|||||||
* envelopes. This synth uses the {@linkplain SonivoxWaveData Sonivox wave and instrument data} to
|
* envelopes. This synth uses the {@linkplain SonivoxWaveData Sonivox wave and instrument data} to
|
||||||
* implement General MIDI.
|
* implement General MIDI.
|
||||||
*/
|
*/
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class SonivoxSynthVoice extends Circuit implements UnitVoice {
|
/* package */ final class SonivoxSynthVoice extends Circuit implements UnitVoice {
|
||||||
|
|
||||||
// TODO(b/228838584): Replace with automatic gain control.
|
// TODO(b/228838584): Replace with automatic gain control.
|
||||||
|
@ -16,13 +16,11 @@
|
|||||||
package androidx.media3.decoder.midi;
|
package androidx.media3.decoder.midi;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import com.jsyn.unitgen.UnitVoice;
|
import com.jsyn.unitgen.UnitVoice;
|
||||||
import com.jsyn.util.VoiceDescription;
|
import com.jsyn.util.VoiceDescription;
|
||||||
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||||
|
|
||||||
/** Synthesizer voice description, used for obtaining {@link SonivoxSynthVoice} instances. */
|
/** Synthesizer voice description, used for obtaining {@link SonivoxSynthVoice} instances. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class SonivoxVoiceDescription extends VoiceDescription {
|
/* package */ final class SonivoxVoiceDescription extends VoiceDescription {
|
||||||
private static final String VOICE_CLASS_NAME = "SonivoxVoiceDescription";
|
private static final String VOICE_CLASS_NAME = "SonivoxVoiceDescription";
|
||||||
private static final String[] tags = {"wavetable", "GM2", "ringtone"};
|
private static final String[] tags = {"wavetable", "GM2", "ringtone"};
|
||||||
|
@ -21,7 +21,6 @@ import static androidx.media3.common.util.Assertions.checkStateNotNull;
|
|||||||
import static java.lang.Math.max;
|
import static java.lang.Math.max;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import com.google.common.io.BaseEncoding;
|
import com.google.common.io.BaseEncoding;
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -29,7 +28,6 @@ import java.io.InputStream;
|
|||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
|
|
||||||
/** General MIDI Instrument library extracted from Sonivox library in Android file "wt_22khz.c". */
|
/** General MIDI Instrument library extracted from Sonivox library in Android file "wt_22khz.c". */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class SonivoxWaveData {
|
/* package */ final class SonivoxWaveData {
|
||||||
|
|
||||||
public static class WavetableRegion {
|
public static class WavetableRegion {
|
||||||
|
@ -22,13 +22,11 @@ import android.util.Pair;
|
|||||||
import androidx.media3.common.C;
|
import androidx.media3.common.C;
|
||||||
import androidx.media3.common.ParserException;
|
import androidx.media3.common.ParserException;
|
||||||
import androidx.media3.common.util.ParsableByteArray;
|
import androidx.media3.common.util.ParsableByteArray;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.extractor.TrackOutput;
|
import androidx.media3.extractor.TrackOutput;
|
||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
/** Parses track chunk bytes from standard MIDI files. */
|
/** Parses track chunk bytes from standard MIDI files. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class TrackChunk implements Comparable<TrackChunk> {
|
/* package */ final class TrackChunk implements Comparable<TrackChunk> {
|
||||||
|
|
||||||
/** A listener for changes to track tempo. */
|
/** A listener for changes to track tempo. */
|
||||||
|
@ -18,7 +18,6 @@ package androidx.media3.decoder.midi;
|
|||||||
import androidx.media3.common.C;
|
import androidx.media3.common.C;
|
||||||
import androidx.media3.common.ParserException;
|
import androidx.media3.common.ParserException;
|
||||||
import androidx.media3.common.util.ParsableByteArray;
|
import androidx.media3.common.util.ParsableByteArray;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a standard MIDI file track event.
|
* Represents a standard MIDI file track event.
|
||||||
@ -27,7 +26,6 @@ import androidx.media3.common.util.UnstableApi;
|
|||||||
* and Midi, Meta, or SysEx command bytes. A track event is followed by either another track event,
|
* and Midi, Meta, or SysEx command bytes. A track event is followed by either another track event,
|
||||||
* or end of chunk marker bytes.
|
* or end of chunk marker bytes.
|
||||||
*/
|
*/
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class TrackEvent {
|
/* package */ final class TrackEvent {
|
||||||
|
|
||||||
/** The length of a MIDI event message in bytes. */
|
/** The length of a MIDI event message in bytes. */
|
||||||
|
@ -36,7 +36,6 @@ import androidx.media3.common.VideoFrameProcessingException;
|
|||||||
import androidx.media3.common.VideoFrameProcessor;
|
import androidx.media3.common.VideoFrameProcessor;
|
||||||
import androidx.media3.common.util.Consumer;
|
import androidx.media3.common.util.Consumer;
|
||||||
import androidx.media3.common.util.NullableType;
|
import androidx.media3.common.util.NullableType;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import androidx.media3.test.utils.TextureBitmapReader;
|
import androidx.media3.test.utils.TextureBitmapReader;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
@ -47,7 +46,6 @@ import java.util.concurrent.CountDownLatch;
|
|||||||
import java.util.concurrent.atomic.AtomicReference;
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
|
||||||
/** Utilities for effects tests. */
|
/** Utilities for effects tests. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ class EffectsTestUtil {
|
/* package */ class EffectsTestUtil {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -31,7 +31,6 @@ import androidx.media3.common.GlTextureInfo;
|
|||||||
import androidx.media3.common.VideoFrameProcessingException;
|
import androidx.media3.common.VideoFrameProcessingException;
|
||||||
import androidx.media3.common.util.GlUtil;
|
import androidx.media3.common.util.GlUtil;
|
||||||
import androidx.media3.common.util.TimestampIterator;
|
import androidx.media3.common.util.TimestampIterator;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
import java.util.concurrent.LinkedBlockingQueue;
|
import java.util.concurrent.LinkedBlockingQueue;
|
||||||
@ -41,7 +40,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
* Forwards a video frame produced from a {@link Bitmap} to a {@link GlShaderProgram} for
|
* Forwards a video frame produced from a {@link Bitmap} to a {@link GlShaderProgram} for
|
||||||
* consumption.
|
* consumption.
|
||||||
*/
|
*/
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class BitmapTextureManager extends TextureManager {
|
/* package */ final class BitmapTextureManager extends TextureManager {
|
||||||
|
|
||||||
// The queue holds all bitmaps with one or more frames pending to be sent downstream.
|
// The queue holds all bitmaps with one or more frames pending to be sent downstream.
|
||||||
|
@ -36,7 +36,6 @@ import androidx.media3.common.util.GlProgram;
|
|||||||
import androidx.media3.common.util.GlUtil;
|
import androidx.media3.common.util.GlUtil;
|
||||||
import androidx.media3.common.util.GlUtil.GlException;
|
import androidx.media3.common.util.GlUtil.GlException;
|
||||||
import androidx.media3.common.util.Size;
|
import androidx.media3.common.util.Size;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import androidx.media3.effect.DefaultVideoFrameProcessor.WorkingColorSpace;
|
import androidx.media3.effect.DefaultVideoFrameProcessor.WorkingColorSpace;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
@ -62,7 +61,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
*
|
*
|
||||||
* <p>Can copy frames from an external texture and apply color transformations for HDR if needed.
|
* <p>Can copy frames from an external texture and apply color transformations for HDR if needed.
|
||||||
*/
|
*/
|
||||||
@UnstableApi
|
|
||||||
@SuppressWarnings("FunctionalInterfaceClash") // b/228192298
|
@SuppressWarnings("FunctionalInterfaceClash") // b/228192298
|
||||||
/* package */ final class DefaultShaderProgram extends BaseGlShaderProgram
|
/* package */ final class DefaultShaderProgram extends BaseGlShaderProgram
|
||||||
implements ExternalShaderProgram, GainmapShaderProgram {
|
implements ExternalShaderProgram, GainmapShaderProgram {
|
||||||
|
@ -24,14 +24,12 @@ import androidx.media3.common.GlTextureInfo;
|
|||||||
import androidx.media3.common.VideoFrameProcessingException;
|
import androidx.media3.common.VideoFrameProcessingException;
|
||||||
import androidx.media3.common.util.GlProgram;
|
import androidx.media3.common.util.GlProgram;
|
||||||
import androidx.media3.common.util.GlUtil;
|
import androidx.media3.common.util.GlUtil;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An extension of {@link SeparableConvolutionShaderProgram} that draws the sharp version of the
|
* An extension of {@link SeparableConvolutionShaderProgram} that draws the sharp version of the
|
||||||
* input frame on top of the output convolution.
|
* input frame on top of the output convolution.
|
||||||
*/
|
*/
|
||||||
@UnstableApi
|
|
||||||
@RequiresApi(26) // See SeparableConvolutionShaderProgram.
|
@RequiresApi(26) // See SeparableConvolutionShaderProgram.
|
||||||
/* package */ final class SharpSeparableConvolutionShaderProgram
|
/* package */ final class SharpSeparableConvolutionShaderProgram
|
||||||
extends SeparableConvolutionShaderProgram {
|
extends SeparableConvolutionShaderProgram {
|
||||||
|
@ -19,7 +19,6 @@ import androidx.media3.common.C;
|
|||||||
import androidx.media3.common.GlObjectsProvider;
|
import androidx.media3.common.GlObjectsProvider;
|
||||||
import androidx.media3.common.GlTextureInfo;
|
import androidx.media3.common.GlTextureInfo;
|
||||||
import androidx.media3.common.audio.SpeedProvider;
|
import androidx.media3.common.audio.SpeedProvider;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Applies the speed changes specified in a {@link SpeedProvider} change by updating the frame
|
* Applies the speed changes specified in a {@link SpeedProvider} change by updating the frame
|
||||||
@ -27,7 +26,6 @@ import androidx.media3.common.util.UnstableApi;
|
|||||||
*
|
*
|
||||||
* <p>Does not support seeking in effects previewing.
|
* <p>Does not support seeking in effects previewing.
|
||||||
*/
|
*/
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class SpeedChangeShaderProgram extends PassthroughShaderProgram {
|
/* package */ final class SpeedChangeShaderProgram extends PassthroughShaderProgram {
|
||||||
|
|
||||||
private final OffsetSpeedProvider speedProvider;
|
private final OffsetSpeedProvider speedProvider;
|
||||||
|
@ -18,7 +18,6 @@ package androidx.media3.effect;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import androidx.media3.common.C;
|
import androidx.media3.common.C;
|
||||||
import androidx.media3.common.VideoFrameProcessingException;
|
import androidx.media3.common.VideoFrameProcessingException;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -26,7 +25,6 @@ import java.util.List;
|
|||||||
* Generate a thumbnail strip (i.e. tile frames horizontally) containing frames at given {@link
|
* Generate a thumbnail strip (i.e. tile frames horizontally) containing frames at given {@link
|
||||||
* #setTimestampsMs timestamps}.
|
* #setTimestampsMs timestamps}.
|
||||||
*/
|
*/
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class ThumbnailStripEffect implements GlEffect {
|
/* package */ final class ThumbnailStripEffect implements GlEffect {
|
||||||
|
|
||||||
/* package */ final int stripWidth;
|
/* package */ final int stripWidth;
|
||||||
|
@ -22,12 +22,10 @@ import android.content.Context;
|
|||||||
import androidx.media3.common.GlObjectsProvider;
|
import androidx.media3.common.GlObjectsProvider;
|
||||||
import androidx.media3.common.GlTextureInfo;
|
import androidx.media3.common.GlTextureInfo;
|
||||||
import androidx.media3.common.VideoFrameProcessingException;
|
import androidx.media3.common.VideoFrameProcessingException;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||||
|
|
||||||
/** Applies a {@link TimestampWrapper} to apply a wrapped {@link GlEffect} on certain timestamps. */
|
/** Applies a {@link TimestampWrapper} to apply a wrapped {@link GlEffect} on certain timestamps. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class TimestampWrapperShaderProgram
|
/* package */ final class TimestampWrapperShaderProgram
|
||||||
implements GlShaderProgram, GlShaderProgram.InputListener {
|
implements GlShaderProgram, GlShaderProgram.InputListener {
|
||||||
|
|
||||||
|
@ -21,7 +21,6 @@ import androidx.annotation.GuardedBy;
|
|||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.media3.common.VideoFrameProcessingException;
|
import androidx.media3.common.VideoFrameProcessingException;
|
||||||
import androidx.media3.common.util.GlUtil;
|
import androidx.media3.common.util.GlUtil;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import java.util.ArrayDeque;
|
import java.util.ArrayDeque;
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
import java.util.concurrent.CountDownLatch;
|
import java.util.concurrent.CountDownLatch;
|
||||||
@ -41,7 +40,6 @@ import java.util.concurrent.RejectedExecutionException;
|
|||||||
* {@linkplain #submit(Task) default priority tasks}. Tasks with equal priority are executed in FIFO
|
* {@linkplain #submit(Task) default priority tasks}. Tasks with equal priority are executed in FIFO
|
||||||
* order.
|
* order.
|
||||||
*/
|
*/
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class VideoFrameProcessingTaskExecutor {
|
/* package */ final class VideoFrameProcessingTaskExecutor {
|
||||||
/**
|
/**
|
||||||
* Interface for tasks that may throw a {@link GlUtil.GlException} or {@link
|
* Interface for tasks that may throw a {@link GlUtil.GlException} or {@link
|
||||||
|
@ -24,7 +24,6 @@ import androidx.annotation.IntDef;
|
|||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
||||||
import androidx.media3.common.Format;
|
import androidx.media3.common.Format;
|
||||||
import androidx.media3.common.MimeTypes;
|
import androidx.media3.common.MimeTypes;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import java.lang.annotation.Documented;
|
import java.lang.annotation.Documented;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
@ -34,7 +33,6 @@ import java.util.List;
|
|||||||
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||||
|
|
||||||
/** Utility class checking media codec support through PerformancePoints. */
|
/** Utility class checking media codec support through PerformancePoints. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class MediaCodecPerformancePointCoverageProvider {
|
/* package */ final class MediaCodecPerformancePointCoverageProvider {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -18,11 +18,9 @@ package androidx.media3.exoplayer.mediacodec;
|
|||||||
import android.media.MediaCodec;
|
import android.media.MediaCodec;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.decoder.CryptoInfo;
|
import androidx.media3.decoder.CryptoInfo;
|
||||||
|
|
||||||
@RequiresApi(23)
|
@RequiresApi(23)
|
||||||
@UnstableApi
|
|
||||||
/* package */ class SynchronousMediaCodecBufferEnqueuer implements MediaCodecBufferEnqueuer {
|
/* package */ class SynchronousMediaCodecBufferEnqueuer implements MediaCodecBufferEnqueuer {
|
||||||
|
|
||||||
private final MediaCodec codec;
|
private final MediaCodec codec;
|
||||||
|
@ -27,7 +27,6 @@ import androidx.annotation.StringDef;
|
|||||||
import androidx.media3.common.C;
|
import androidx.media3.common.C;
|
||||||
import androidx.media3.common.Format;
|
import androidx.media3.common.Format;
|
||||||
import androidx.media3.common.ParserException;
|
import androidx.media3.common.ParserException;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import com.google.errorprone.annotations.CanIgnoreReturnValue;
|
import com.google.errorprone.annotations.CanIgnoreReturnValue;
|
||||||
@ -37,7 +36,6 @@ import java.lang.annotation.RetentionPolicy;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
/** Represents one media description section in a SDP message. */
|
/** Represents one media description section in a SDP message. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class MediaDescription {
|
/* package */ final class MediaDescription {
|
||||||
|
|
||||||
/** Represents the mandatory RTPMAP attribute in MediaDescription. Reference RFC 2327 Page 22. */
|
/** Represents the mandatory RTPMAP attribute in MediaDescription. Reference RFC 2327 Page 22. */
|
||||||
|
@ -17,13 +17,11 @@ package androidx.media3.exoplayer.rtsp;
|
|||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.media3.common.C;
|
import androidx.media3.common.C;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.datasource.DataSource;
|
import androidx.media3.datasource.DataSource;
|
||||||
import androidx.media3.exoplayer.rtsp.RtspMessageChannel.InterleavedBinaryDataListener;
|
import androidx.media3.exoplayer.rtsp.RtspMessageChannel.InterleavedBinaryDataListener;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
/** An RTP {@link DataSource}. */
|
/** An RTP {@link DataSource}. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ interface RtpDataChannel extends DataSource {
|
/* package */ interface RtpDataChannel extends DataSource {
|
||||||
|
|
||||||
/** Creates {@link RtpDataChannel} for RTSP streams. */
|
/** Creates {@link RtpDataChannel} for RTSP streams. */
|
||||||
|
@ -21,7 +21,6 @@ import static androidx.media3.common.util.Assertions.checkNotNull;
|
|||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.media3.common.C;
|
import androidx.media3.common.C;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import androidx.media3.datasource.DataSourceUtil;
|
import androidx.media3.datasource.DataSourceUtil;
|
||||||
import androidx.media3.exoplayer.upstream.Loader;
|
import androidx.media3.exoplayer.upstream.Loader;
|
||||||
@ -51,7 +50,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
* <p>Received RTP packets' payloads will be extracted by an {@link RtpExtractor}, and will be
|
* <p>Received RTP packets' payloads will be extracted by an {@link RtpExtractor}, and will be
|
||||||
* written to the {@link ExtractorOutput} instance provided at construction.
|
* written to the {@link ExtractorOutput} instance provided at construction.
|
||||||
*/
|
*/
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class RtpDataLoadable implements Loader.Loadable {
|
/* package */ final class RtpDataLoadable implements Loader.Loadable {
|
||||||
|
|
||||||
/** Called on loadable events. */
|
/** Called on loadable events. */
|
||||||
|
@ -21,7 +21,6 @@ import android.net.Uri;
|
|||||||
import android.util.Base64;
|
import android.util.Base64;
|
||||||
import androidx.annotation.IntDef;
|
import androidx.annotation.IntDef;
|
||||||
import androidx.media3.common.ParserException;
|
import androidx.media3.common.ParserException;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import androidx.media3.exoplayer.rtsp.RtspMessageUtil.RtspAuthUserInfo;
|
import androidx.media3.exoplayer.rtsp.RtspMessageUtil.RtspAuthUserInfo;
|
||||||
import java.lang.annotation.Documented;
|
import java.lang.annotation.Documented;
|
||||||
@ -32,7 +31,6 @@ import java.security.MessageDigest;
|
|||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
|
|
||||||
/** Wraps RTSP authentication information. */
|
/** Wraps RTSP authentication information. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class RtspAuthenticationInfo {
|
/* package */ final class RtspAuthenticationInfo {
|
||||||
|
|
||||||
/** The supported authentication methods. */
|
/** The supported authentication methods. */
|
||||||
|
@ -15,10 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package androidx.media3.exoplayer.rtsp;
|
package androidx.media3.exoplayer.rtsp;
|
||||||
|
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
|
|
||||||
/** Represents an RTSP DESCRIBE response. */
|
/** Represents an RTSP DESCRIBE response. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class RtspDescribeResponse {
|
/* package */ final class RtspDescribeResponse {
|
||||||
/** The response's headers. */
|
/** The response's headers. */
|
||||||
public final RtspHeaders headers;
|
public final RtspHeaders headers;
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
package androidx.media3.exoplayer.rtsp;
|
package androidx.media3.exoplayer.rtsp;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import com.google.common.base.Ascii;
|
import com.google.common.base.Ascii;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
@ -34,7 +33,6 @@ import java.util.Map;
|
|||||||
* with case-insensitive header names. The extra spaces around header names and values are trimmed.
|
* with case-insensitive header names. The extra spaces around header names and values are trimmed.
|
||||||
* Contrary to HTTP, RTSP does not allow ambiguous/arbitrary header names (RFC 2326 Section 12).
|
* Contrary to HTTP, RTSP does not allow ambiguous/arbitrary header names (RFC 2326 Section 12).
|
||||||
*/
|
*/
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class RtspHeaders {
|
/* package */ final class RtspHeaders {
|
||||||
|
|
||||||
public static final String ACCEPT = "Accept";
|
public static final String ACCEPT = "Accept";
|
||||||
|
@ -30,7 +30,6 @@ import androidx.media3.common.Format;
|
|||||||
import androidx.media3.common.StreamKey;
|
import androidx.media3.common.StreamKey;
|
||||||
import androidx.media3.common.TrackGroup;
|
import androidx.media3.common.TrackGroup;
|
||||||
import androidx.media3.common.util.NullableType;
|
import androidx.media3.common.util.NullableType;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import androidx.media3.decoder.DecoderInputBuffer;
|
import androidx.media3.decoder.DecoderInputBuffer;
|
||||||
import androidx.media3.exoplayer.FormatHolder;
|
import androidx.media3.exoplayer.FormatHolder;
|
||||||
@ -63,7 +62,6 @@ import javax.net.SocketFactory;
|
|||||||
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||||
|
|
||||||
/** A {@link MediaPeriod} that loads an RTSP stream. */
|
/** A {@link MediaPeriod} that loads an RTSP stream. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class RtspMediaPeriod implements MediaPeriod {
|
/* package */ final class RtspMediaPeriod implements MediaPeriod {
|
||||||
|
|
||||||
/** Listener for information about the period. */
|
/** Listener for information about the period. */
|
||||||
|
@ -38,7 +38,6 @@ import androidx.media3.common.MimeTypes;
|
|||||||
import androidx.media3.common.ParserException;
|
import androidx.media3.common.ParserException;
|
||||||
import androidx.media3.common.util.CodecSpecificDataUtil;
|
import androidx.media3.common.util.CodecSpecificDataUtil;
|
||||||
import androidx.media3.common.util.ParsableBitArray;
|
import androidx.media3.common.util.ParsableBitArray;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import androidx.media3.container.NalUnitUtil;
|
import androidx.media3.container.NalUnitUtil;
|
||||||
import androidx.media3.extractor.AacUtil;
|
import androidx.media3.extractor.AacUtil;
|
||||||
@ -46,7 +45,6 @@ import com.google.common.collect.ImmutableList;
|
|||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
|
|
||||||
/** Represents a media track in an RTSP playback. */
|
/** Represents a media track in an RTSP playback. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class RtspMediaTrack {
|
/* package */ final class RtspMediaTrack {
|
||||||
// Format specific parameter names.
|
// Format specific parameter names.
|
||||||
private static final String PARAMETER_PROFILE_LEVEL_ID = "profile-level-id";
|
private static final String PARAMETER_PROFILE_LEVEL_ID = "profile-level-id";
|
||||||
|
@ -27,7 +27,6 @@ import androidx.annotation.IntDef;
|
|||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.media3.common.C;
|
import androidx.media3.common.C;
|
||||||
import androidx.media3.common.ParserException;
|
import androidx.media3.common.ParserException;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.exoplayer.upstream.Loader;
|
import androidx.media3.exoplayer.upstream.Loader;
|
||||||
import androidx.media3.exoplayer.upstream.Loader.LoadErrorAction;
|
import androidx.media3.exoplayer.upstream.Loader.LoadErrorAction;
|
||||||
import androidx.media3.exoplayer.upstream.Loader.Loadable;
|
import androidx.media3.exoplayer.upstream.Loader.Loadable;
|
||||||
@ -55,7 +54,6 @@ import java.util.Map;
|
|||||||
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||||
|
|
||||||
/** Sends and receives RTSP messages. */
|
/** Sends and receives RTSP messages. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class RtspMessageChannel implements Closeable {
|
/* package */ final class RtspMessageChannel implements Closeable {
|
||||||
|
|
||||||
/** RTSP uses UTF-8 (RFC2326 Section 1.1). */
|
/** RTSP uses UTF-8 (RFC2326 Section 1.1). */
|
||||||
|
@ -37,7 +37,6 @@ import android.net.Uri;
|
|||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.media3.common.C;
|
import androidx.media3.common.C;
|
||||||
import androidx.media3.common.ParserException;
|
import androidx.media3.common.ParserException;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import com.google.common.base.Ascii;
|
import com.google.common.base.Ascii;
|
||||||
import com.google.common.base.Joiner;
|
import com.google.common.base.Joiner;
|
||||||
@ -48,7 +47,6 @@ import java.util.regex.Matcher;
|
|||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
/** Utility methods for RTSP messages. */
|
/** Utility methods for RTSP messages. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class RtspMessageUtil {
|
/* package */ final class RtspMessageUtil {
|
||||||
/** Represents a RTSP Session header (RFC2326 Section 12.37). */
|
/** Represents a RTSP Session header (RFC2326 Section 12.37). */
|
||||||
public static final class RtspSessionHeader {
|
public static final class RtspSessionHeader {
|
||||||
|
@ -15,12 +15,10 @@
|
|||||||
*/
|
*/
|
||||||
package androidx.media3.exoplayer.rtsp;
|
package androidx.media3.exoplayer.rtsp;
|
||||||
|
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/** Represents an RTSP OPTIONS response. */
|
/** Represents an RTSP OPTIONS response. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class RtspOptionsResponse {
|
/* package */ final class RtspOptionsResponse {
|
||||||
/** The response's status code. */
|
/** The response's status code. */
|
||||||
public final int status;
|
public final int status;
|
||||||
|
@ -15,12 +15,10 @@
|
|||||||
*/
|
*/
|
||||||
package androidx.media3.exoplayer.rtsp;
|
package androidx.media3.exoplayer.rtsp;
|
||||||
|
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/** Represents an RTSP PLAY response. */
|
/** Represents an RTSP PLAY response. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class RtspPlayResponse {
|
/* package */ final class RtspPlayResponse {
|
||||||
/** The response's status code. */
|
/** The response's status code. */
|
||||||
public final int status;
|
public final int status;
|
||||||
|
@ -20,14 +20,12 @@ import static java.lang.annotation.ElementType.TYPE_USE;
|
|||||||
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import androidx.annotation.IntDef;
|
import androidx.annotation.IntDef;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import java.lang.annotation.Documented;
|
import java.lang.annotation.Documented;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.lang.annotation.Target;
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
/** Represents an RTSP request. */
|
/** Represents an RTSP request. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class RtspRequest {
|
/* package */ final class RtspRequest {
|
||||||
/**
|
/**
|
||||||
* RTSP request methods, as defined in RFC2326 Section 10.
|
* RTSP request methods, as defined in RFC2326 Section 10.
|
||||||
|
@ -16,10 +16,7 @@
|
|||||||
|
|
||||||
package androidx.media3.exoplayer.rtsp;
|
package androidx.media3.exoplayer.rtsp;
|
||||||
|
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
|
|
||||||
/** Represents an RTSP Response. */
|
/** Represents an RTSP Response. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class RtspResponse {
|
/* package */ final class RtspResponse {
|
||||||
|
|
||||||
/** The status code of this response, as defined in RFC 2326 section 11. */
|
/** The status code of this response, as defined in RFC 2326 section 11. */
|
||||||
|
@ -21,7 +21,6 @@ import static androidx.media3.exoplayer.rtsp.RtspMessageUtil.checkManifestExpres
|
|||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.media3.common.C;
|
import androidx.media3.common.C;
|
||||||
import androidx.media3.common.ParserException;
|
import androidx.media3.common.ParserException;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
@ -31,7 +30,6 @@ import java.util.regex.Pattern;
|
|||||||
*
|
*
|
||||||
* <p>Currently only NPT is supported. See RFC2326 Section 3.6 for detail of NPT.
|
* <p>Currently only NPT is supported. See RFC2326 Section 3.6 for detail of NPT.
|
||||||
*/
|
*/
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class RtspSessionTiming {
|
/* package */ final class RtspSessionTiming {
|
||||||
/** The default session timing starting from 0.000 and indefinite length, effectively live. */
|
/** The default session timing starting from 0.000 and indefinite length, effectively live. */
|
||||||
public static final RtspSessionTiming DEFAULT =
|
public static final RtspSessionTiming DEFAULT =
|
||||||
|
@ -15,10 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package androidx.media3.exoplayer.rtsp;
|
package androidx.media3.exoplayer.rtsp;
|
||||||
|
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
|
|
||||||
/** Represents an RTSP SETUP response. */
|
/** Represents an RTSP SETUP response. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class RtspSetupResponse {
|
/* package */ final class RtspSetupResponse {
|
||||||
|
|
||||||
/** The response's status code. */
|
/** The response's status code. */
|
||||||
|
@ -23,7 +23,6 @@ import androidx.annotation.Nullable;
|
|||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.media3.common.C;
|
import androidx.media3.common.C;
|
||||||
import androidx.media3.common.ParserException;
|
import androidx.media3.common.ParserException;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.UriUtil;
|
import androidx.media3.common.util.UriUtil;
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
@ -32,7 +31,6 @@ import com.google.common.collect.ImmutableList;
|
|||||||
* Represents an RTSP track's timing info, included as {@link RtspHeaders#RTP_INFO} in an RTSP PLAY
|
* Represents an RTSP track's timing info, included as {@link RtspHeaders#RTP_INFO} in an RTSP PLAY
|
||||||
* response (RFC2326 Section 12.33).
|
* response (RFC2326 Section 12.33).
|
||||||
*/
|
*/
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class RtspTrackTiming {
|
/* package */ final class RtspTrackTiming {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -21,7 +21,6 @@ import static androidx.media3.common.util.Util.castNonNull;
|
|||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.media3.common.Format;
|
import androidx.media3.common.Format;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
@ -34,7 +33,6 @@ import java.util.HashMap;
|
|||||||
* <p>SDP messages encapsulate information on the media play back session, including session
|
* <p>SDP messages encapsulate information on the media play back session, including session
|
||||||
* configuration information, formats of each playable track, etc. SDP is defined in RFC4566.
|
* configuration information, formats of each playable track, etc. SDP is defined in RFC4566.
|
||||||
*/
|
*/
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class SessionDescription {
|
/* package */ final class SessionDescription {
|
||||||
|
|
||||||
/** Builder class for {@link SessionDescription}. */
|
/** Builder class for {@link SessionDescription}. */
|
||||||
|
@ -24,14 +24,12 @@ import static com.google.common.base.Strings.nullToEmpty;
|
|||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.media3.common.ParserException;
|
import androidx.media3.common.ParserException;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
/** Parses a String based SDP message into {@link SessionDescription}. */
|
/** Parses a String based SDP message into {@link SessionDescription}. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class SessionDescriptionParser {
|
/* package */ final class SessionDescriptionParser {
|
||||||
// SDP line always starts with an one letter tag, followed by an equal sign. The information
|
// SDP line always starts with an one letter tag, followed by an equal sign. The information
|
||||||
// under the given tag follows an optional space.
|
// under the given tag follows an optional space.
|
||||||
|
@ -22,7 +22,6 @@ import static java.util.concurrent.TimeUnit.MILLISECONDS;
|
|||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.media3.common.C;
|
import androidx.media3.common.C;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import androidx.media3.datasource.BaseDataSource;
|
import androidx.media3.datasource.BaseDataSource;
|
||||||
import androidx.media3.datasource.DataSpec;
|
import androidx.media3.datasource.DataSpec;
|
||||||
@ -31,7 +30,6 @@ import java.util.Arrays;
|
|||||||
import java.util.concurrent.LinkedBlockingQueue;
|
import java.util.concurrent.LinkedBlockingQueue;
|
||||||
|
|
||||||
/** An {@link RtpDataChannel} that transfers received data in-memory. */
|
/** An {@link RtpDataChannel} that transfers received data in-memory. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class TransferRtpDataChannel extends BaseDataSource
|
/* package */ final class TransferRtpDataChannel extends BaseDataSource
|
||||||
implements RtpDataChannel, RtspMessageChannel.InterleavedBinaryDataListener {
|
implements RtpDataChannel, RtspMessageChannel.InterleavedBinaryDataListener {
|
||||||
|
|
||||||
|
@ -15,10 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package androidx.media3.exoplayer.rtsp;
|
package androidx.media3.exoplayer.rtsp;
|
||||||
|
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
|
|
||||||
/** Factory for {@link TransferRtpDataChannel}. */
|
/** Factory for {@link TransferRtpDataChannel}. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class TransferRtpDataChannelFactory implements RtpDataChannel.Factory {
|
/* package */ final class TransferRtpDataChannelFactory implements RtpDataChannel.Factory {
|
||||||
|
|
||||||
private static final int INTERLEAVED_CHANNELS_PER_TRACK = 2;
|
private static final int INTERLEAVED_CHANNELS_PER_TRACK = 2;
|
||||||
|
@ -22,7 +22,6 @@ import android.net.Uri;
|
|||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.media3.common.C;
|
import androidx.media3.common.C;
|
||||||
import androidx.media3.common.PlaybackException;
|
import androidx.media3.common.PlaybackException;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import androidx.media3.datasource.DataSpec;
|
import androidx.media3.datasource.DataSpec;
|
||||||
import androidx.media3.datasource.TransferListener;
|
import androidx.media3.datasource.TransferListener;
|
||||||
@ -31,7 +30,6 @@ import com.google.common.primitives.Ints;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
/** An {@link RtpDataChannel} for UDP transport. */
|
/** An {@link RtpDataChannel} for UDP transport. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class UdpDataSourceRtpDataChannel implements RtpDataChannel {
|
/* package */ final class UdpDataSourceRtpDataChannel implements RtpDataChannel {
|
||||||
|
|
||||||
private static final String DEFAULT_UDP_TRANSPORT_FORMAT = "RTP/AVP;unicast;client_port=%d-%d";
|
private static final String DEFAULT_UDP_TRANSPORT_FORMAT = "RTP/AVP;unicast;client_port=%d-%d";
|
||||||
|
@ -15,12 +15,10 @@
|
|||||||
*/
|
*/
|
||||||
package androidx.media3.exoplayer.rtsp;
|
package androidx.media3.exoplayer.rtsp;
|
||||||
|
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.datasource.DataSourceUtil;
|
import androidx.media3.datasource.DataSourceUtil;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
/** Factory for {@link UdpDataSourceRtpDataChannel}. */
|
/** Factory for {@link UdpDataSourceRtpDataChannel}. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class UdpDataSourceRtpDataChannelFactory implements RtpDataChannel.Factory {
|
/* package */ final class UdpDataSourceRtpDataChannelFactory implements RtpDataChannel.Factory {
|
||||||
|
|
||||||
private final long socketTimeoutMs;
|
private final long socketTimeoutMs;
|
||||||
|
@ -27,7 +27,6 @@ import androidx.media3.common.C;
|
|||||||
import androidx.media3.common.ParserException;
|
import androidx.media3.common.ParserException;
|
||||||
import androidx.media3.common.util.ParsableBitArray;
|
import androidx.media3.common.util.ParsableBitArray;
|
||||||
import androidx.media3.common.util.ParsableByteArray;
|
import androidx.media3.common.util.ParsableByteArray;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import androidx.media3.exoplayer.rtsp.RtpPacket;
|
import androidx.media3.exoplayer.rtsp.RtpPacket;
|
||||||
import androidx.media3.exoplayer.rtsp.RtpPayloadFormat;
|
import androidx.media3.exoplayer.rtsp.RtpPayloadFormat;
|
||||||
@ -41,7 +40,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
*
|
*
|
||||||
* <p>Refer to RFC3016 for more details. The LATM byte stream format is defined in ISO/IEC14496-3.
|
* <p>Refer to RFC3016 for more details. The LATM byte stream format is defined in ISO/IEC14496-3.
|
||||||
*/
|
*/
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class RtpMp4aReader implements RtpPayloadReader {
|
/* package */ final class RtpMp4aReader implements RtpPayloadReader {
|
||||||
private static final String TAG = "RtpMp4aReader";
|
private static final String TAG = "RtpMp4aReader";
|
||||||
|
|
||||||
|
@ -22,7 +22,6 @@ import static androidx.media3.exoplayer.rtsp.reader.RtpReaderUtils.toSampleTimeU
|
|||||||
import androidx.media3.common.C;
|
import androidx.media3.common.C;
|
||||||
import androidx.media3.common.util.Log;
|
import androidx.media3.common.util.Log;
|
||||||
import androidx.media3.common.util.ParsableByteArray;
|
import androidx.media3.common.util.ParsableByteArray;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import androidx.media3.exoplayer.rtsp.RtpPacket;
|
import androidx.media3.exoplayer.rtsp.RtpPacket;
|
||||||
import androidx.media3.exoplayer.rtsp.RtpPayloadFormat;
|
import androidx.media3.exoplayer.rtsp.RtpPayloadFormat;
|
||||||
@ -35,7 +34,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
* Parses an MPEG4 byte stream carried on RTP packets, and extracts MPEG4 Access Units. Refer to
|
* Parses an MPEG4 byte stream carried on RTP packets, and extracts MPEG4 Access Units. Refer to
|
||||||
* RFC6416 for more details.
|
* RFC6416 for more details.
|
||||||
*/
|
*/
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class RtpMpeg4Reader implements RtpPayloadReader {
|
/* package */ final class RtpMpeg4Reader implements RtpPayloadReader {
|
||||||
private static final String TAG = "RtpMpeg4Reader";
|
private static final String TAG = "RtpMpeg4Reader";
|
||||||
|
|
||||||
|
@ -16,14 +16,12 @@
|
|||||||
package androidx.media3.exoplayer.rtsp;
|
package androidx.media3.exoplayer.rtsp;
|
||||||
|
|
||||||
import androidx.media3.common.ParserException;
|
import androidx.media3.common.ParserException;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
/** A value wrapper for a dumped RTP packet stream. */
|
/** A value wrapper for a dumped RTP packet stream. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ class RtpPacketStreamDump {
|
/* package */ class RtpPacketStreamDump {
|
||||||
/** The name of the RTP track. */
|
/** The name of the RTP track. */
|
||||||
public final String trackName;
|
public final String trackName;
|
||||||
|
@ -17,13 +17,11 @@ package androidx.media3.exoplayer.rtsp;
|
|||||||
|
|
||||||
import androidx.media3.common.util.Clock;
|
import androidx.media3.common.util.Clock;
|
||||||
import androidx.media3.common.util.HandlerWrapper;
|
import androidx.media3.common.util.HandlerWrapper;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import androidx.media3.exoplayer.rtsp.RtspMessageChannel.InterleavedBinaryDataListener;
|
import androidx.media3.exoplayer.rtsp.RtspMessageChannel.InterleavedBinaryDataListener;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
||||||
/** Transmits media RTP packets periodically. */
|
/** Transmits media RTP packets periodically. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class RtpPacketTransmitter {
|
/* package */ final class RtpPacketTransmitter {
|
||||||
|
|
||||||
private static final byte[] END_OF_STREAM = new byte[0];
|
private static final byte[] END_OF_STREAM = new byte[0];
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
package androidx.media3.exoplayer.rtsp;
|
package androidx.media3.exoplayer.rtsp;
|
||||||
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
import androidx.media3.test.utils.TestUtil;
|
import androidx.media3.test.utils.TestUtil;
|
||||||
import androidx.test.core.app.ApplicationProvider;
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
@ -26,7 +25,6 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/** Utility methods for RTSP tests. */
|
/** Utility methods for RTSP tests. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class RtspTestUtils {
|
/* package */ final class RtspTestUtils {
|
||||||
|
|
||||||
private static final String TEST_BASE_URI = "rtsp://localhost:%d/test";
|
private static final String TEST_BASE_URI = "rtsp://localhost:%d/test";
|
||||||
|
@ -27,7 +27,6 @@ import androidx.media3.common.Format;
|
|||||||
import androidx.media3.common.Metadata;
|
import androidx.media3.common.Metadata;
|
||||||
import androidx.media3.common.MimeTypes;
|
import androidx.media3.common.MimeTypes;
|
||||||
import androidx.media3.common.util.ParsableByteArray;
|
import androidx.media3.common.util.ParsableByteArray;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.extractor.Extractor;
|
import androidx.media3.extractor.Extractor;
|
||||||
import androidx.media3.extractor.ExtractorInput;
|
import androidx.media3.extractor.ExtractorInput;
|
||||||
import androidx.media3.extractor.ExtractorOutput;
|
import androidx.media3.extractor.ExtractorOutput;
|
||||||
@ -45,7 +44,6 @@ import java.lang.annotation.Target;
|
|||||||
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||||
|
|
||||||
/** Extracts JPEG metadata and motion photo using the Exif format. */
|
/** Extracts JPEG metadata and motion photo using the Exif format. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class JpegMotionPhotoExtractor implements Extractor {
|
/* package */ final class JpegMotionPhotoExtractor implements Extractor {
|
||||||
|
|
||||||
/** Parser states. */
|
/** Parser states. */
|
||||||
|
@ -23,7 +23,6 @@ import androidx.annotation.Nullable;
|
|||||||
import androidx.media3.common.C;
|
import androidx.media3.common.C;
|
||||||
import androidx.media3.common.ParserException;
|
import androidx.media3.common.ParserException;
|
||||||
import androidx.media3.common.util.ParsableBitArray;
|
import androidx.media3.common.util.ParsableBitArray;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import com.google.common.math.IntMath;
|
import com.google.common.math.IntMath;
|
||||||
import com.google.common.math.LongMath;
|
import com.google.common.math.LongMath;
|
||||||
import java.lang.annotation.Documented;
|
import java.lang.annotation.Documented;
|
||||||
@ -32,7 +31,6 @@ import java.lang.annotation.RetentionPolicy;
|
|||||||
import java.lang.annotation.Target;
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
/** Utility methods for parsing MPEG-H frames, which are access units in MPEG-H bitstreams. */
|
/** Utility methods for parsing MPEG-H frames, which are access units in MPEG-H bitstreams. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class MpeghUtil {
|
/* package */ final class MpeghUtil {
|
||||||
|
|
||||||
/** See ISO_IEC_23003-8;2022, 14.4.4. */
|
/** See ISO_IEC_23003-8;2022, 14.4.4. */
|
||||||
|
@ -43,11 +43,9 @@ import androidx.annotation.RequiresApi;
|
|||||||
import androidx.core.app.NotificationCompat;
|
import androidx.core.app.NotificationCompat;
|
||||||
import androidx.core.graphics.drawable.IconCompat;
|
import androidx.core.graphics.drawable.IconCompat;
|
||||||
import androidx.media3.common.Player;
|
import androidx.media3.common.Player;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
|
|
||||||
/** The default {@link MediaNotification.ActionFactory}. */
|
/** The default {@link MediaNotification.ActionFactory}. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ final class DefaultActionFactory implements MediaNotification.ActionFactory {
|
/* package */ final class DefaultActionFactory implements MediaNotification.ActionFactory {
|
||||||
|
|
||||||
private static final String ACTION_CUSTOM = "androidx.media3.session.CUSTOM_NOTIFICATION_ACTION";
|
private static final String ACTION_CUSTOM = "androidx.media3.session.CUSTOM_NOTIFICATION_ACTION";
|
||||||
|
@ -17,11 +17,9 @@
|
|||||||
package androidx.media3.transformer;
|
package androidx.media3.transformer;
|
||||||
|
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
|
|
||||||
/** Provides encoder bitrates that should target 0.95 SSIM or higher, accounting for device used. */
|
/** Provides encoder bitrates that should target 0.95 SSIM or higher, accounting for device used. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ class DeviceMappedEncoderBitrateProvider implements EncoderBitrateProvider {
|
/* package */ class DeviceMappedEncoderBitrateProvider implements EncoderBitrateProvider {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -17,10 +17,8 @@
|
|||||||
package androidx.media3.transformer;
|
package androidx.media3.transformer;
|
||||||
|
|
||||||
import android.media.MediaCodecInfo;
|
import android.media.MediaCodecInfo;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
|
||||||
|
|
||||||
/** Provides bitrates for encoders to use as a target. */
|
/** Provides bitrates for encoders to use as a target. */
|
||||||
@UnstableApi
|
|
||||||
/* package */ interface EncoderBitrateProvider {
|
/* package */ interface EncoderBitrateProvider {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user