Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a4be4662 authored by Santiago Seifert's avatar Santiago Seifert
Browse files

Add initial implementation of MediaParser

Bug: 132153067
Bug: 134057371
Test: Pending.
Change-Id: I2d2881df34a6f4da13bfefffb58194eaaab6b4e3
parent 0b975928
Loading
Loading
Loading
Loading
+44 −0
Original line number Diff line number Diff line
@@ -25591,6 +25591,50 @@ package android.media {
    field public static final int MUXER_OUTPUT_WEBM = 1; // 0x1
  }
  public final class MediaParser {
    method public boolean advance(@NonNull android.media.MediaParser.SeekableInputReader) throws java.io.IOException, java.lang.InterruptedException;
    method @NonNull public static android.media.MediaParser create(@NonNull android.media.MediaParser.OutputConsumer, @NonNull java.lang.String...);
    method @NonNull public static android.media.MediaParser createByName(@NonNull String, @NonNull android.media.MediaParser.OutputConsumer);
    method @Nullable public String getExtractorName();
    method @NonNull public static java.util.List<java.lang.String> getExtractorNames(@NonNull android.media.MediaFormat);
    method public void release();
    method public void seek(@NonNull android.media.MediaParser.SeekPoint);
  }
  public static interface MediaParser.InputReader {
    method public long getLength();
    method public long getPosition();
    method public int read(@NonNull byte[], int, int) throws java.io.IOException, java.lang.InterruptedException;
  }
  public static interface MediaParser.OutputConsumer {
    method public void onFormat(int, @NonNull android.media.MediaFormat);
    method public void onSampleCompleted(int, long, int, int, int, @Nullable android.media.MediaCodec.CryptoInfo);
    method public void onSampleData(int, @NonNull android.media.MediaParser.InputReader) throws java.io.IOException, java.lang.InterruptedException;
    method public void onSeekMap(@NonNull android.media.MediaParser.SeekMap);
    method public void onTracksFound(int);
  }
  public static interface MediaParser.SeekMap {
    method public long getDurationUs();
    method @NonNull public android.util.Pair<android.media.MediaParser.SeekPoint,android.media.MediaParser.SeekPoint> getSeekPoints(long);
    method public boolean isSeekable();
    field public static final int UNKNOWN_DURATION = -2147483648; // 0x80000000
  }
  public static final class MediaParser.SeekPoint {
    field @NonNull public static final android.media.MediaParser.SeekPoint START;
    field public final long position;
    field public final long timeUs;
  }
  public static interface MediaParser.SeekableInputReader extends android.media.MediaParser.InputReader {
    method public void seekToPosition(long);
  }
  public static final class MediaParser.UnrecognizedInputFormatException extends java.io.IOException {
  }
  public class MediaPlayer implements android.media.AudioRouting android.media.VolumeAutomation {
    ctor public MediaPlayer();
    method public void addOnRoutingChangedListener(android.media.AudioRouting.OnRoutingChangedListener, android.os.Handler);
+202 −198

File changed.

Preview size limit exceeded, changes collapsed.

+3 −2
Original line number Diff line number Diff line
@@ -45,8 +45,8 @@ java_library {
filegroup {
    name: "updatable-media-srcs",
    srcs: [
        ":mediasession2-srcs",
        ":mediaparser-srcs",
        ":mediasession2-srcs",
    ],
}

@@ -73,7 +73,8 @@ filegroup {
    name: "mediaparser-srcs",
    srcs: [
        "apex/java/android/media/MediaParser.java"
    ]
    ],
    path: "apex/java"
}

metalava_updatable_media_args = " --error UnhiddenSystemApi " +
+629 −114

File changed.

Preview size limit exceeded, changes collapsed.