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

Commit 55e6ad78 authored by Robert Shih's avatar Robert Shih Committed by Android (Google) Code Review
Browse files

Merge "MediaPlayer/TimedMetaData: API updates related to timed metadata" into mnc-dev

parents bf6d50f9 b7514eff
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -16092,7 +16092,7 @@ package android.media {
    method public void setOnInfoListener(android.media.MediaPlayer.OnInfoListener);
    method public void setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener);
    method public void setOnSeekCompleteListener(android.media.MediaPlayer.OnSeekCompleteListener);
    method public void setOnTimedMetaDataListener(android.media.MediaPlayer.OnTimedMetaDataListener);
    method public void setOnTimedMetaDataAvailableListener(android.media.MediaPlayer.OnTimedMetaDataAvailableListener);
    method public void setOnTimedTextListener(android.media.MediaPlayer.OnTimedTextListener);
    method public void setOnVideoSizeChangedListener(android.media.MediaPlayer.OnVideoSizeChangedListener);
    method public void setPlaybackParams(android.media.PlaybackParams);
@@ -16154,8 +16154,8 @@ package android.media {
    method public abstract void onSeekComplete(android.media.MediaPlayer);
  }
  public static abstract interface MediaPlayer.OnTimedMetaDataListener {
    method public abstract void onTimedMetaData(android.media.MediaPlayer, android.media.TimedMetaData);
  public static abstract interface MediaPlayer.OnTimedMetaDataAvailableListener {
    method public abstract void onTimedMetaDataAvailable(android.media.MediaPlayer, android.media.TimedMetaData);
  }
  public static abstract interface MediaPlayer.OnTimedTextListener {
@@ -16692,9 +16692,9 @@ package android.media {
    field public static final int OPTIONS_RECYCLE_INPUT = 2; // 0x2
  }
  public class TimedMetaData {
    method public byte[] getRawData();
    method public long getTimeUs();
  public final class TimedMetaData {
    method public byte[] getMetaData();
    method public long getTimestamp();
  }
  public final class TimedText {
+6 −6
Original line number Diff line number Diff line
@@ -17327,7 +17327,7 @@ package android.media {
    method public void setOnInfoListener(android.media.MediaPlayer.OnInfoListener);
    method public void setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener);
    method public void setOnSeekCompleteListener(android.media.MediaPlayer.OnSeekCompleteListener);
    method public void setOnTimedMetaDataListener(android.media.MediaPlayer.OnTimedMetaDataListener);
    method public void setOnTimedMetaDataAvailableListener(android.media.MediaPlayer.OnTimedMetaDataAvailableListener);
    method public void setOnTimedTextListener(android.media.MediaPlayer.OnTimedTextListener);
    method public void setOnVideoSizeChangedListener(android.media.MediaPlayer.OnVideoSizeChangedListener);
    method public void setPlaybackParams(android.media.PlaybackParams);
@@ -17389,8 +17389,8 @@ package android.media {
    method public abstract void onSeekComplete(android.media.MediaPlayer);
  }
  public static abstract interface MediaPlayer.OnTimedMetaDataListener {
    method public abstract void onTimedMetaData(android.media.MediaPlayer, android.media.TimedMetaData);
  public static abstract interface MediaPlayer.OnTimedMetaDataAvailableListener {
    method public abstract void onTimedMetaDataAvailable(android.media.MediaPlayer, android.media.TimedMetaData);
  }
  public static abstract interface MediaPlayer.OnTimedTextListener {
@@ -17929,9 +17929,9 @@ package android.media {
    field public static final int OPTIONS_RECYCLE_INPUT = 2; // 0x2
  }
  public class TimedMetaData {
    method public byte[] getRawData();
    method public long getTimeUs();
  public final class TimedMetaData {
    method public byte[] getMetaData();
    method public long getTimestamp();
  }
  public final class TimedText {
+9 −9
Original line number Diff line number Diff line
@@ -2866,14 +2866,14 @@ public class MediaPlayer implements SubtitleController.Listener
                return;

            case MEDIA_META_DATA:
                if (mOnTimedMetaDataListener == null) {
                if (mOnTimedMetaDataAvailableListener == null) {
                    return;
                }
                if (msg.obj instanceof Parcel) {
                    Parcel parcel = (Parcel) msg.obj;
                    TimedMetaData data = TimedMetaData.createTimedMetaDataFromParcel(parcel);
                    parcel.recycle();
                    mOnTimedMetaDataListener.onTimedMetaData(mMediaPlayer, data);
                    mOnTimedMetaDataAvailableListener.onTimedMetaDataAvailable(mMediaPlayer, data);
                }
                return;

@@ -3117,9 +3117,9 @@ public class MediaPlayer implements SubtitleController.Listener
     * Interface definition of a callback to be invoked when a
     * track has timed metadata available.
     *
     * @see MediaPlayer#setOnTimedMetaDataListener(OnTimedMetaDataListener)
     * @see MediaPlayer#setOnTimedMetaDataAvailableListener(OnTimedMetaDataAvailableListener)
     */
    public interface OnTimedMetaDataListener
    public interface OnTimedMetaDataAvailableListener
    {
        /**
         * Called to indicate avaliable timed metadata
@@ -3131,7 +3131,7 @@ public class MediaPlayer implements SubtitleController.Listener
         * @param mp             the MediaPlayer associated with this callback
         * @param data           the timed metadata sample associated with this event
         */
        public void onTimedMetaData(MediaPlayer mp, TimedMetaData data);
        public void onTimedMetaDataAvailable(MediaPlayer mp, TimedMetaData data);
    }

    /**
@@ -3141,17 +3141,17 @@ public class MediaPlayer implements SubtitleController.Listener
     * {@link TimedMetaData}.
     *
     * @see MediaPlayer#selectTrack(int)
     * @see MediaPlayer.OnTimedMetaDataListener
     * @see MediaPlayer.OnTimedMetaDataAvailableListener
     * @see TimedMetaData
     *
     * @param listener the callback that will be run
     */
    public void setOnTimedMetaDataListener(OnTimedMetaDataListener listener)
    public void setOnTimedMetaDataAvailableListener(OnTimedMetaDataAvailableListener listener)
    {
        mOnTimedMetaDataListener = listener;
        mOnTimedMetaDataAvailableListener = listener;
    }

    private OnTimedMetaDataListener mOnTimedMetaDataListener;
    private OnTimedMetaDataAvailableListener mOnTimedMetaDataAvailableListener;

    /* Do not change these values without updating their counterparts
     * in include/media/mediaplayer.h!
+20 −13
Original line number Diff line number Diff line
@@ -19,21 +19,20 @@ package android.media;
import android.os.Parcel;

/**
 * Class that embodies a piece of timed metadata, including
 * Class that embodies one timed metadata access unit, including
 *
 * <ul>
 * <li> a time stamp, and </li>
 * <li> raw uninterpreted byte-array extracted directly from the container. </li>
 * </ul>
 *
 * @see MediaPlayer#setOnTimedMetaDataListener(android.media.MediaPlayer.OnTimedMetaDataListener)
 * @see MediaPlayer#setOnTimedMetaDataAvailableListener(android.media.MediaPlayer.OnTimedMetaDataListener)
 */

public class TimedMetaData {
public final class TimedMetaData {
    private static final String TAG = "TimedMetaData";

    private long mTimeUs;
    private byte[] mRawData;
    private long mTimestampUs;
    private byte[] mMetaData;

    /**
     * @hide
@@ -48,12 +47,20 @@ public class TimedMetaData {
        }
    }

    public long getTimeUs() {
        return mTimeUs;
    /**
     * @return the timestamp associated with this metadata access unit in microseconds;
     * 0 denotes playback start.
     */
    public long getTimestamp() {
        return mTimestampUs;
    }

    public byte[] getRawData() {
        return mRawData;
    /**
     * @return raw, uninterpreted content of this metadata access unit; for ID3 tags this includes
     * everything starting from the 3 byte signature "ID3".
     */
    public byte[] getMetaData() {
        return mMetaData;
    }

    private boolean parseParcel(Parcel parcel) {
@@ -62,9 +69,9 @@ public class TimedMetaData {
            return false;
        }

        mTimeUs = parcel.readLong();
        mRawData = new byte[parcel.readInt()];
        parcel.readByteArray(mRawData);
        mTimestampUs = parcel.readLong();
        mMetaData = new byte[parcel.readInt()];
        parcel.readByteArray(mMetaData);

        return true;
    }