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

Commit 10f905e1 authored by Santiago Seifert's avatar Santiago Seifert Committed by Android (Google) Code Review
Browse files

Merge "Add MediaParser.TrackData object"

parents 30f2961c acc2d2bb
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -25645,10 +25645,10 @@ package android.media {
  }
  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 onTrackData(int, @NonNull android.media.MediaParser.TrackData);
    method public void onTracksFound(int);
  }
@@ -25669,6 +25669,11 @@ package android.media {
    method public void seekToPosition(long);
  }
  public static final class MediaParser.TrackData {
    field @Nullable public final android.media.DrmInitData drmInitData;
    field @NonNull public final android.media.MediaFormat mediaFormat;
  }
  public static final class MediaParser.UnrecognizedInputFormatException extends java.io.IOException {
  }
+34 −6
Original line number Diff line number Diff line
@@ -102,7 +102,8 @@ import java.util.Map;
 *     public void onSeekMap(int i, @NonNull MediaFormat mediaFormat) { \/* Do nothing. *\/ }
 *
 *     \@Override
 *     public void onFormat(int i, @NonNull MediaFormat mediaFormat) {
 *     public void onTrackData(int i, @NonNull TrackData trackData) {
 *       MediaFormat mediaFormat = trackData.mediaFormat;
 *       if (videoTrackIndex == -1 && mediaFormat
 *           .getString(MediaFormat.KEY_MIME, \/* defaultValue= *\/ "").startsWith("video/")) {
 *         videoTrackIndex = i;
@@ -200,6 +201,24 @@ public final class MediaParser {
        }
    }

    /** Holds information associated with a track. */
    public static final class TrackData {

        /** Holds {@link MediaFormat} information for the track. */
        @NonNull public final MediaFormat mediaFormat;

        /**
         * Holds {@link DrmInitData} necessary to acquire keys associated with the track, or null if
         * the track has no encryption data.
         */
        @Nullable public final DrmInitData drmInitData;

        private TrackData(MediaFormat mediaFormat, DrmInitData drmInitData) {
            this.mediaFormat = mediaFormat;
            this.drmInitData = drmInitData;
        }
    }

    /** Defines a seek point in a media stream. */
    public static final class SeekPoint {

@@ -308,12 +327,12 @@ public final class MediaParser {
        void onTracksFound(int numberOfTracks);

        /**
         * Called when the {@link MediaFormat} of the track is extracted from the stream.
         * Called when new {@link TrackData} is extracted from the stream.
         *
         * @param trackIndex The index of the track for which the {@link MediaFormat} was found.
         * @param format The extracted {@link MediaFormat}.
         * @param trackIndex The index of the track for which the {@link TrackData} was extracted.
         * @param trackData The extracted {@link TrackData}.
         */
        void onFormat(int trackIndex, @NonNull MediaFormat format);
        void onTrackData(int trackIndex, @NonNull TrackData trackData);

        /**
         * Called to write sample data to the output.
@@ -674,7 +693,10 @@ public final class MediaParser {

        @Override
        public void format(Format format) {
            mOutputConsumer.onFormat(mTrackIndex, toMediaFormat(format));
            mOutputConsumer.onTrackData(
                    mTrackIndex,
                    new TrackData(
                            toMediaFormat(format), toFrameworkDrmInitData(format.drmInitData)));
        }

        @Override
@@ -846,6 +868,12 @@ public final class MediaParser {
        return 0;
    }

    private static DrmInitData toFrameworkDrmInitData(
            com.google.android.exoplayer2.drm.DrmInitData drmInitData) {
        // TODO: Implement.
        return null;
    }

    private static MediaCodec.CryptoInfo toCryptoInfo(TrackOutput.CryptoData encryptionData) {
        // TODO: Implement.
        return null;