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

Commit f505c5d2 authored by Shubang Lu's avatar Shubang Lu Committed by Android (Google) Code Review
Browse files

Merge "Unhide media metrics APIs" into sc-dev

parents 906cde3f be0b58d6
Loading
Loading
Loading
Loading
+64 −14
Original line number Diff line number Diff line
@@ -24418,11 +24418,16 @@ package android.media.metrics {
  public abstract class Event {
    ctor protected Event(long);
    method @NonNull public android.os.Bundle getMetricsBundle();
    method @IntRange(from=0xffffffff) public long getTimeSinceCreatedMillis();
  }
  public final class LogSessionId {
  }
  public class MediaMetricsManager {
    method @NonNull public android.media.metrics.PlaybackSession createPlaybackSession();
    method @NonNull public android.media.metrics.RecordingSession createRecordingSession();
    field public static final long INVALID_TIMESTAMP = -1L; // 0xffffffffffffffffL
  }
@@ -24437,14 +24442,16 @@ package android.media.metrics {
    field public static final int NETWORK_TYPE_5G_NSA = 7; // 0x7
    field public static final int NETWORK_TYPE_5G_SA = 8; // 0x8
    field public static final int NETWORK_TYPE_ETHERNET = 3; // 0x3
    field public static final int NETWORK_TYPE_NONE = 0; // 0x0
    field public static final int NETWORK_TYPE_OFFLINE = 9; // 0x9
    field public static final int NETWORK_TYPE_OTHER = 1; // 0x1
    field public static final int NETWORK_TYPE_UNKNOWN = 0; // 0x0
    field public static final int NETWORK_TYPE_WIFI = 2; // 0x2
  }
  public static final class NetworkEvent.Builder {
    ctor public NetworkEvent.Builder();
    method @NonNull public android.media.metrics.NetworkEvent build();
    method @NonNull public android.media.metrics.NetworkEvent.Builder setMetricsBundle(@NonNull android.os.Bundle);
    method @NonNull public android.media.metrics.NetworkEvent.Builder setNetworkType(int);
    method @NonNull public android.media.metrics.NetworkEvent.Builder setTimeSinceCreatedMillis(@IntRange(from=0xffffffff) long);
  }
@@ -24460,9 +24467,37 @@ package android.media.metrics {
    method @IntRange(from=java.lang.Integer.MIN_VALUE, to=java.lang.Integer.MAX_VALUE) public int getSubErrorCode();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.media.metrics.PlaybackErrorEvent> CREATOR;
    field public static final int ERROR_CODE_OTHER = 1; // 0x1
    field public static final int ERROR_CODE_RUNTIME = 2; // 0x2
    field public static final int ERROR_CODE_UNKNOWN = 0; // 0x0
    field public static final int ERROR_AUDIOTRACK_INIT = 17; // 0x11
    field public static final int ERROR_AUDIOTRACK_OTHER = 19; // 0x13
    field public static final int ERROR_AUDIOTRACK_WRITE = 18; // 0x12
    field public static final int ERROR_DECODER_DECODE = 14; // 0xe
    field public static final int ERROR_DECODER_INIT = 13; // 0xd
    field public static final int ERROR_DECODER_OOM = 15; // 0xf
    field public static final int ERROR_DECODER_OTHER = 16; // 0x10
    field public static final int ERROR_DRM_CONTENT_ERROR = 28; // 0x1c
    field public static final int ERROR_DRM_DISALLOWED = 26; // 0x1a
    field public static final int ERROR_DRM_LICENSE_ERROR = 25; // 0x19
    field public static final int ERROR_DRM_OTHER = 30; // 0x1e
    field public static final int ERROR_DRM_PROVISIONING_FAILED = 24; // 0x18
    field public static final int ERROR_DRM_REVOKED = 29; // 0x1d
    field public static final int ERROR_DRM_SYSTEM_ERROR = 27; // 0x1b
    field public static final int ERROR_DRM_UNAVAILABLE = 23; // 0x17
    field public static final int ERROR_MEDIA_MANIFEST = 10; // 0xa
    field public static final int ERROR_MEDIA_OTHER = 12; // 0xc
    field public static final int ERROR_MEDIA_PARSER = 11; // 0xb
    field public static final int ERROR_NETWORK_BAD_STATUS = 5; // 0x5
    field public static final int ERROR_NETWORK_CLOSED = 8; // 0x8
    field public static final int ERROR_NETWORK_CONNECT = 4; // 0x4
    field public static final int ERROR_NETWORK_DNS = 6; // 0x6
    field public static final int ERROR_NETWORK_OFFLINE = 3; // 0x3
    field public static final int ERROR_NETWORK_OTHER = 9; // 0x9
    field public static final int ERROR_NETWORK_TIMEOUT = 7; // 0x7
    field public static final int ERROR_OTHER = 1; // 0x1
    field public static final int ERROR_PLAYER_BEHIND_LIVE_WINDOW = 21; // 0x15
    field public static final int ERROR_PLAYER_OTHER = 22; // 0x16
    field public static final int ERROR_PLAYER_REMOTE = 20; // 0x14
    field public static final int ERROR_RUNTIME = 2; // 0x2
    field public static final int ERROR_UNKNOWN = 0; // 0x0
  }
  public static final class PlaybackErrorEvent.Builder {
@@ -24470,6 +24505,7 @@ package android.media.metrics {
    method @NonNull public android.media.metrics.PlaybackErrorEvent build();
    method @NonNull public android.media.metrics.PlaybackErrorEvent.Builder setErrorCode(int);
    method @NonNull public android.media.metrics.PlaybackErrorEvent.Builder setException(@NonNull Exception);
    method @NonNull public android.media.metrics.PlaybackErrorEvent.Builder setMetricsBundle(@NonNull android.os.Bundle);
    method @NonNull public android.media.metrics.PlaybackErrorEvent.Builder setSubErrorCode(@IntRange(from=java.lang.Integer.MIN_VALUE, to=java.lang.Integer.MAX_VALUE) int);
    method @NonNull public android.media.metrics.PlaybackErrorEvent.Builder setTimeSinceCreatedMillis(@IntRange(from=0xffffffff) long);
  }
@@ -24478,10 +24514,12 @@ package android.media.metrics {
    method public int describeContents();
    method @IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) public int getAudioUnderrunCount();
    method public int getContentType();
    method @NonNull public byte[] getDrmSessionId();
    method public int getDrmType();
    method @NonNull public long[] getExperimentIds();
    method @IntRange(from=0xffffffff) public long getLocalBytesRead();
    method @IntRange(from=0xffffffff) public long getMediaDurationMillis();
    method @NonNull public android.os.Bundle getMetricsBundle();
    method @IntRange(from=0xffffffff) public long getNetworkBytesRead();
    method @IntRange(from=0xffffffff) public long getNetworkTransferDurationMillis();
    method public int getPlaybackType();
@@ -24492,9 +24530,10 @@ package android.media.metrics {
    method @IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) public int getVideoFramesDropped();
    method @IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) public int getVideoFramesPlayed();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field public static final int CONTENT_TYPE_AD = 1; // 0x1
    field public static final int CONTENT_TYPE_MAIN = 0; // 0x0
    field public static final int CONTENT_TYPE_OTHER = 2; // 0x2
    field public static final int CONTENT_TYPE_AD = 2; // 0x2
    field public static final int CONTENT_TYPE_MAIN = 1; // 0x1
    field public static final int CONTENT_TYPE_OTHER = 3; // 0x3
    field public static final int CONTENT_TYPE_UNKNOWN = 0; // 0x0
    field @NonNull public static final android.os.Parcelable.Creator<android.media.metrics.PlaybackMetrics> CREATOR;
    field public static final int DRM_TYPE_CLEARKEY = 6; // 0x6
    field public static final int DRM_TYPE_NONE = 0; // 0x0
@@ -24503,9 +24542,10 @@ package android.media.metrics {
    field public static final int DRM_TYPE_WIDEVINE_L1 = 3; // 0x3
    field public static final int DRM_TYPE_WIDEVINE_L3 = 4; // 0x4
    field public static final int DRM_TYPE_WV_L3_FALLBACK = 5; // 0x5
    field public static final int PLAYBACK_TYPE_LIVE = 1; // 0x1
    field public static final int PLAYBACK_TYPE_OTHER = 2; // 0x2
    field public static final int PLAYBACK_TYPE_VOD = 0; // 0x0
    field public static final int PLAYBACK_TYPE_LIVE = 2; // 0x2
    field public static final int PLAYBACK_TYPE_OTHER = 3; // 0x3
    field public static final int PLAYBACK_TYPE_UNKNOWN = 0; // 0x0
    field public static final int PLAYBACK_TYPE_VOD = 1; // 0x1
    field public static final int STREAM_SOURCE_DEVICE = 2; // 0x2
    field public static final int STREAM_SOURCE_MIXED = 3; // 0x3
    field public static final int STREAM_SOURCE_NETWORK = 1; // 0x1
@@ -24524,9 +24564,11 @@ package android.media.metrics {
    method @NonNull public android.media.metrics.PlaybackMetrics build();
    method @NonNull public android.media.metrics.PlaybackMetrics.Builder setAudioUnderrunCount(@IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) int);
    method @NonNull public android.media.metrics.PlaybackMetrics.Builder setContentType(int);
    method @NonNull public android.media.metrics.PlaybackMetrics.Builder setDrmSessionId(@NonNull byte[]);
    method @NonNull public android.media.metrics.PlaybackMetrics.Builder setDrmType(int);
    method @NonNull public android.media.metrics.PlaybackMetrics.Builder setLocalBytesRead(@IntRange(from=0xffffffff) long);
    method @NonNull public android.media.metrics.PlaybackMetrics.Builder setMediaDurationMillis(@IntRange(from=0xffffffff) long);
    method @NonNull public android.media.metrics.PlaybackMetrics.Builder setMetricsBundle(@NonNull android.os.Bundle);
    method @NonNull public android.media.metrics.PlaybackMetrics.Builder setNetworkBytesRead(@IntRange(from=0xffffffff) long);
    method @NonNull public android.media.metrics.PlaybackMetrics.Builder setNetworkTransferDurationMillis(@IntRange(from=0xffffffff) long);
    method @NonNull public android.media.metrics.PlaybackMetrics.Builder setPlaybackType(int);
@@ -24540,7 +24582,7 @@ package android.media.metrics {
  public final class PlaybackSession implements java.lang.AutoCloseable {
    method public void close();
    method @NonNull public String getId();
    method @NonNull public android.media.metrics.LogSessionId getSessionId();
    method public void reportNetworkEvent(@NonNull android.media.metrics.NetworkEvent);
    method public void reportPlaybackErrorEvent(@NonNull android.media.metrics.PlaybackErrorEvent);
    method public void reportPlaybackMetrics(@NonNull android.media.metrics.PlaybackMetrics);
@@ -24573,13 +24615,19 @@ package android.media.metrics {
  public static final class PlaybackStateEvent.Builder {
    ctor public PlaybackStateEvent.Builder();
    method @NonNull public android.media.metrics.PlaybackStateEvent build();
    method @NonNull public android.media.metrics.PlaybackStateEvent.Builder setMetricsBundle(@NonNull android.os.Bundle);
    method @NonNull public android.media.metrics.PlaybackStateEvent.Builder setState(int);
    method @NonNull public android.media.metrics.PlaybackStateEvent.Builder setTimeSinceCreatedMillis(@IntRange(from=0xffffffff) long);
  }
  public final class RecordingSession implements java.lang.AutoCloseable {
    method public void close();
    method @NonNull public android.media.metrics.LogSessionId getSessionId();
  }
  public final class TrackChangeEvent extends android.media.metrics.Event implements android.os.Parcelable {
    ctor public TrackChangeEvent(int, int, @Nullable String, @Nullable String, @Nullable String, int, long, int, @Nullable String, @Nullable String, int, int, int, int);
    method public int describeContents();
    method @IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) public int getAudioSampleRate();
    method @IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) public int getBitrate();
    method @IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) public int getChannelCount();
    method @Nullable public String getCodecName();
@@ -24588,10 +24636,10 @@ package android.media.metrics {
    method @Nullable public String getLanguage();
    method @Nullable public String getLanguageRegion();
    method @Nullable public String getSampleMimeType();
    method @IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) public int getSampleRate();
    method public int getTrackChangeReason();
    method public int getTrackState();
    method public int getTrackType();
    method @FloatRange(from=0xffffffff, to=java.lang.Float.MAX_VALUE) public float getVideoFrameRate();
    method @IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) public int getWidth();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.media.metrics.TrackChangeEvent> CREATOR;
@@ -24610,6 +24658,7 @@ package android.media.metrics {
  public static final class TrackChangeEvent.Builder {
    ctor public TrackChangeEvent.Builder(int);
    method @NonNull public android.media.metrics.TrackChangeEvent build();
    method @NonNull public android.media.metrics.TrackChangeEvent.Builder setAudioSampleRate(@IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) int);
    method @NonNull public android.media.metrics.TrackChangeEvent.Builder setBitrate(@IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) int);
    method @NonNull public android.media.metrics.TrackChangeEvent.Builder setChannelCount(@IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) int);
    method @NonNull public android.media.metrics.TrackChangeEvent.Builder setCodecName(@NonNull String);
@@ -24617,11 +24666,12 @@ package android.media.metrics {
    method @NonNull public android.media.metrics.TrackChangeEvent.Builder setHeight(@IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) int);
    method @NonNull public android.media.metrics.TrackChangeEvent.Builder setLanguage(@NonNull String);
    method @NonNull public android.media.metrics.TrackChangeEvent.Builder setLanguageRegion(@NonNull String);
    method @NonNull public android.media.metrics.TrackChangeEvent.Builder setMetricsBundle(@NonNull android.os.Bundle);
    method @NonNull public android.media.metrics.TrackChangeEvent.Builder setSampleMimeType(@NonNull String);
    method @NonNull public android.media.metrics.TrackChangeEvent.Builder setSampleRate(@IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) int);
    method @NonNull public android.media.metrics.TrackChangeEvent.Builder setTimeSinceCreatedMillis(@IntRange(from=0xffffffff) long);
    method @NonNull public android.media.metrics.TrackChangeEvent.Builder setTrackChangeReason(int);
    method @NonNull public android.media.metrics.TrackChangeEvent.Builder setTrackState(int);
    method @NonNull public android.media.metrics.TrackChangeEvent.Builder setVideoFrameRate(@FloatRange(from=0xffffffff, to=java.lang.Float.MAX_VALUE) float);
    method @NonNull public android.media.metrics.TrackChangeEvent.Builder setWidth(@IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) int);
  }
+8 −0
Original line number Diff line number Diff line
@@ -1475,6 +1475,14 @@ package android.media.audiopolicy {

}

package android.media.metrics {

  public final class LogSessionId {
    method @NonNull public String getStringId();
  }

}

package android.media.tv {

  public final class TvInputManager {
+10 −5
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package android.media.metrics;

import android.annotation.IntRange;
import android.annotation.NonNull;
import android.os.Bundle;

/**
@@ -24,7 +25,7 @@ import android.os.Bundle;
 */
public abstract class Event {
    final long mTimeSinceCreatedMillis;
    Bundle mExtras;
    Bundle mMetricsBundle = new Bundle();

    // hide default constructor
    /* package */ Event() {
@@ -38,7 +39,7 @@ public abstract class Event {

    /* package */ Event(long timeSinceCreatedMillis, Bundle extras) {
        mTimeSinceCreatedMillis = timeSinceCreatedMillis;
        mExtras = extras;
        mMetricsBundle = extras;
    }

    /**
@@ -50,8 +51,12 @@ public abstract class Event {
        return mTimeSinceCreatedMillis;
    }

    /** @hide */
    public Bundle getExtras() {
        return mExtras;
    /**
     * Gets metrics-related information that is not supported by dedicated methods.
     * <p>It is intended to be used for backwards compatibility by the metrics infrastructure.
     */
    @NonNull
    public Bundle getMetricsBundle() {
        return mMetricsBundle;
    }
}
+12 −3
Original line number Diff line number Diff line
@@ -16,19 +16,28 @@

package android.media.metrics;

import android.annotation.NonNull;
import android.annotation.TestApi;

/**
 * An instances of this class represents the ID of a log session.
 * @hide
 */
public class LogSessionId {
public final class LogSessionId {
    private final String mSessionId;

    /* package */ LogSessionId(String id) {
    /* package */ LogSessionId(@NonNull String id) {
        mSessionId = id;
    }

    /** @hide */
    @TestApi
    @NonNull
    public String getStringId() {
        return mSessionId;
    }

    @Override
    public String toString() {
        return mSessionId;
    }
}
+0 −1
Original line number Diff line number Diff line
@@ -104,7 +104,6 @@ public class MediaMetricsManager {

    /**
     * Creates a recording session.
     * @hide
     */
    @NonNull
    public RecordingSession createRecordingSession() {
Loading