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

Commit e9aa7d44 authored by Shubang Lu's avatar Shubang Lu Committed by Automerger Merge Worker
Browse files

Merge changes from topics "media_metrics_network", "media_metrics_pb_metrics",...

Merge changes from topics "media_metrics_network", "media_metrics_pb_metrics", "media_metrics_track_change" into sc-dev am: 0fc89d96

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13422511

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I0946bfca744807f22b4912f800d206e33f8e4e74
parents 258d3d5b 0fc89d96
Loading
Loading
Loading
Loading
+146 −1
Original line number Diff line number Diff line
@@ -21002,7 +21002,7 @@ package android.media {
    method @NonNull public String getDiagnosticInfo();
  }
  public final class MediaCodec {
  public final class MediaCodec implements android.media.metrics.PlaybackComponent {
    method public void configure(@Nullable android.media.MediaFormat, @Nullable android.view.Surface, @Nullable android.media.MediaCrypto, int);
    method public void configure(@Nullable android.media.MediaFormat, @Nullable android.view.Surface, int, @Nullable android.media.MediaDescrambler);
    method @NonNull public static android.media.MediaCodec createByCodecName(@NonNull String) throws java.io.IOException;
@@ -21028,6 +21028,7 @@ package android.media {
    method @NonNull public android.media.MediaFormat getOutputFormat(int);
    method @NonNull public android.media.MediaCodec.OutputFrame getOutputFrame(int);
    method @Nullable public android.media.Image getOutputImage(int);
    method public String getPlaybackId();
    method @NonNull public android.media.MediaCodec.QueueRequest getQueueRequest(int);
    method @Nullable public static android.media.Image mapHardwareBuffer(@NonNull android.hardware.HardwareBuffer);
    method public void queueInputBuffer(int, int, int, long, int) throws android.media.MediaCodec.CryptoException;
@@ -21043,6 +21044,7 @@ package android.media {
    method public void setOnFrameRenderedListener(@Nullable android.media.MediaCodec.OnFrameRenderedListener, @Nullable android.os.Handler);
    method public void setOutputSurface(@NonNull android.view.Surface);
    method public void setParameters(@Nullable android.os.Bundle);
    method public void setPlaybackId(@NonNull String);
    method public void setVideoScalingMode(int);
    method public void signalEndOfInputStream();
    method public void start();
@@ -24123,6 +24125,34 @@ package android.media.metrics {
    field public static final long INVALID_TIMESTAMP = -1L; // 0xffffffffffffffffL
  }
  public final class NetworkEvent extends android.media.metrics.Event implements android.os.Parcelable {
    method public int describeContents();
    method public int getNetworkType();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.media.metrics.NetworkEvent> CREATOR;
    field public static final int NETWORK_TYPE_2G = 4; // 0x4
    field public static final int NETWORK_TYPE_3G = 5; // 0x5
    field public static final int NETWORK_TYPE_4G = 6; // 0x6
    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_OTHER = 1; // 0x1
    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 setNetworkType(int);
    method @NonNull public android.media.metrics.NetworkEvent.Builder setTimeSinceCreatedMillis(@IntRange(from=0xffffffff) long);
  }
  public interface PlaybackComponent {
    method @NonNull public String getPlaybackId();
    method public void setPlaybackId(@NonNull String);
  }
  public final class PlaybackErrorEvent extends android.media.metrics.Event implements android.os.Parcelable {
    method public int describeContents();
    method public int getErrorCode();
@@ -24143,11 +24173,78 @@ package android.media.metrics {
    method @NonNull public android.media.metrics.PlaybackErrorEvent.Builder setTimeSinceCreatedMillis(@IntRange(from=0xffffffff) long);
  }
  public final class PlaybackMetrics implements android.os.Parcelable {
    method public int describeContents();
    method @IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) public int getAudioUnderrunCount();
    method public int getContentType();
    method public int getDrmType();
    method @NonNull public long[] getExperimentIds();
    method @IntRange(from=0xffffffff) public long getLocalBytesRead();
    method @IntRange(from=0xffffffff) public long getMediaDurationMillis();
    method @IntRange(from=0xffffffff) public long getNetworkBytesRead();
    method @IntRange(from=0xffffffff) public long getNetworkTransferDurationMillis();
    method public int getPlaybackType();
    method @Nullable public String getPlayerName();
    method @Nullable public String getPlayerVersion();
    method public int getStreamSource();
    method public int getStreamType();
    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 @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
    field public static final int DRM_TYPE_OTHER = 1; // 0x1
    field public static final int DRM_TYPE_PLAY_READY = 2; // 0x2
    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 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
    field public static final int STREAM_SOURCE_UNKNOWN = 0; // 0x0
    field public static final int STREAM_TYPE_DASH = 3; // 0x3
    field public static final int STREAM_TYPE_HLS = 4; // 0x4
    field public static final int STREAM_TYPE_OTHER = 1; // 0x1
    field public static final int STREAM_TYPE_PROGRESSIVE = 2; // 0x2
    field public static final int STREAM_TYPE_SS = 5; // 0x5
    field public static final int STREAM_TYPE_UNKNOWN = 0; // 0x0
  }
  public static final class PlaybackMetrics.Builder {
    ctor public PlaybackMetrics.Builder();
    method @NonNull public android.media.metrics.PlaybackMetrics.Builder addExperimentId(long);
    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 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 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);
    method @NonNull public android.media.metrics.PlaybackMetrics.Builder setPlayerName(@NonNull String);
    method @NonNull public android.media.metrics.PlaybackMetrics.Builder setPlayerVersion(@NonNull String);
    method @NonNull public android.media.metrics.PlaybackMetrics.Builder setStreamSource(int);
    method @NonNull public android.media.metrics.PlaybackMetrics.Builder setStreamType(int);
    method @NonNull public android.media.metrics.PlaybackMetrics.Builder setVideoFramesDropped(@IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) int);
    method @NonNull public android.media.metrics.PlaybackMetrics.Builder setVideoFramesPlayed(@IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) int);
  }
  public final class PlaybackSession implements java.lang.AutoCloseable {
    method public void close();
    method @NonNull public String getId();
    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);
    method public void reportPlaybackStateEvent(@NonNull android.media.metrics.PlaybackStateEvent);
    method public void reportTrackChangeEvent(@NonNull android.media.metrics.TrackChangeEvent);
  }
  public final class PlaybackStateEvent extends android.media.metrics.Event implements android.os.Parcelable {
@@ -24179,6 +24276,54 @@ package android.media.metrics {
    method @NonNull public android.media.metrics.PlaybackStateEvent.Builder setTimeSinceCreatedMillis(@IntRange(from=0xffffffff) long);
  }
  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 getBitrate();
    method @IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) public int getChannelCount();
    method @Nullable public String getCodecName();
    method @Nullable public String getContainerMimeType();
    method @IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) public int getHeight();
    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 @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;
    field public static final int TRACK_CHANGE_REASON_ADAPTIVE = 4; // 0x4
    field public static final int TRACK_CHANGE_REASON_INITIAL = 2; // 0x2
    field public static final int TRACK_CHANGE_REASON_MANUAL = 3; // 0x3
    field public static final int TRACK_CHANGE_REASON_OTHER = 1; // 0x1
    field public static final int TRACK_CHANGE_REASON_UNKNOWN = 0; // 0x0
    field public static final int TRACK_STATE_OFF = 0; // 0x0
    field public static final int TRACK_STATE_ON = 1; // 0x1
    field public static final int TRACK_TYPE_AUDIO = 0; // 0x0
    field public static final int TRACK_TYPE_TEXT = 2; // 0x2
    field public static final int TRACK_TYPE_VIDEO = 1; // 0x1
  }
  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 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);
    method @NonNull public android.media.metrics.TrackChangeEvent.Builder setContainerMimeType(@NonNull String);
    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 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 setWidth(@IntRange(from=0xffffffff, to=java.lang.Integer.MAX_VALUE) int);
  }
}
package android.media.midi {
+0 −14
Original line number Diff line number Diff line
@@ -1232,11 +1232,6 @@ package android.media {
    method public void forceResourceLost();
  }

  public final class MediaCodec implements android.media.metrics.PlaybackComponent {
    method public String getPlaybackId();
    method public void setPlaybackId(@NonNull String);
  }

  public static final class MediaCodecInfo.VideoCapabilities.PerformancePoint {
    ctor public MediaCodecInfo.VideoCapabilities.PerformancePoint(int, int, int, int, @NonNull android.util.Size);
    ctor public MediaCodecInfo.VideoCapabilities.PerformancePoint(@NonNull android.media.MediaCodecInfo.VideoCapabilities.PerformancePoint, @NonNull android.util.Size);
@@ -1311,15 +1306,6 @@ package android.media.audiopolicy {

}

package android.media.metrics {

  public interface PlaybackComponent {
    method @NonNull public String getPlaybackId();
    method public void setPlaybackId(@NonNull String);
  }

}

package android.media.tv {

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

import android.annotation.IntDef;
import android.annotation.IntRange;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.os.Parcel;
@@ -27,22 +28,30 @@ import java.lang.annotation.RetentionPolicy;
import java.util.Objects;

/**
 * Playback network event.
 * @hide
 * Media network event.
 */
public final class NetworkEvent implements Parcelable {
public final class NetworkEvent extends Event implements Parcelable {
    /** Network type is not specified. Default type. */
    public static final int NETWORK_TYPE_NONE = 0;
    /** Other network type */
    public static final int NETWORK_TYPE_OTHER = 1;
    /** Wi-Fi network */
    public static final int NETWORK_TYPE_WIFI = 2;
    /** Ethernet network */
    public static final int NETWORK_TYPE_ETHERNET = 3;
    /** 2G network */
    public static final int NETWORK_TYPE_2G = 4;
    /** 3G network */
    public static final int NETWORK_TYPE_3G = 5;
    /** 4G network */
    public static final int NETWORK_TYPE_4G = 6;
    /** 5G NSA network */
    public static final int NETWORK_TYPE_5G_NSA = 7;
    /** 5G SA network */
    public static final int NETWORK_TYPE_5G_SA = 8;

    private final int mType;
    private final long mTimeSincePlaybackCreatedMillis;
    private final int mNetworkType;
    private final long mTimeSinceCreatedMillis;

    /** @hide */
    @IntDef(prefix = "NETWORK_TYPE_", value = {
@@ -61,6 +70,7 @@ public final class NetworkEvent implements Parcelable {

    /**
     * Network type to string.
     * @hide
     */
    public static String networkTypeToString(@NetworkType int value) {
        switch (value) {
@@ -92,25 +102,34 @@ public final class NetworkEvent implements Parcelable {
     *
     * @hide
     */
    public NetworkEvent(@NetworkType int type, long timeSincePlaybackCreatedMillis) {
        this.mType = type;
        this.mTimeSincePlaybackCreatedMillis = timeSincePlaybackCreatedMillis;
    public NetworkEvent(@NetworkType int type, long timeSinceCreatedMillis) {
        this.mNetworkType = type;
        this.mTimeSinceCreatedMillis = timeSinceCreatedMillis;
    }

    /**
     * Gets network type.
     */
    @NetworkType
    public int getType() {
        return mType;
    public int getNetworkType() {
        return mNetworkType;
    }

    public long getTimeSincePlaybackCreatedMillis() {
        return mTimeSincePlaybackCreatedMillis;
    /**
     * Gets timestamp since the creation in milliseconds.
     * @return the timestamp since the creation in milliseconds, or -1 if unknown.
     */
    @Override
    @IntRange(from = -1)
    public long getTimeSinceCreatedMillis() {
        return mTimeSinceCreatedMillis;
    }

    @Override
    public String toString() {
        return "NetworkEvent { "
                + "type = " + mType + ", "
                + "timeSincePlaybackCreatedMillis = " + mTimeSincePlaybackCreatedMillis
                + "networkType = " + mNetworkType + ", "
                + "timeSinceCreatedMillis = " + mTimeSinceCreatedMillis
                + " }";
    }

@@ -119,19 +138,19 @@ public final class NetworkEvent implements Parcelable {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        NetworkEvent that = (NetworkEvent) o;
        return mType == that.mType
                && mTimeSincePlaybackCreatedMillis == that.mTimeSincePlaybackCreatedMillis;
        return mNetworkType == that.mNetworkType
                && mTimeSinceCreatedMillis == that.mTimeSinceCreatedMillis;
    }

    @Override
    public int hashCode() {
        return Objects.hash(mType, mTimeSincePlaybackCreatedMillis);
        return Objects.hash(mNetworkType, mTimeSinceCreatedMillis);
    }

    @Override
    public void writeToParcel(@NonNull android.os.Parcel dest, int flags) {
        dest.writeInt(mType);
        dest.writeLong(mTimeSincePlaybackCreatedMillis);
        dest.writeInt(mNetworkType);
        dest.writeLong(mTimeSinceCreatedMillis);
    }

    @Override
@@ -142,12 +161,15 @@ public final class NetworkEvent implements Parcelable {
    /** @hide */
    /* package-private */ NetworkEvent(@NonNull android.os.Parcel in) {
        int type = in.readInt();
        long timeSincePlaybackCreatedMillis = in.readLong();
        long timeSinceCreatedMillis = in.readLong();

        this.mType = type;
        this.mTimeSincePlaybackCreatedMillis = timeSincePlaybackCreatedMillis;
        this.mNetworkType = type;
        this.mTimeSinceCreatedMillis = timeSinceCreatedMillis;
    }

    /**
     * Used to read a NetworkEvent from a Parcel.
     */
    public static final @NonNull Parcelable.Creator<NetworkEvent> CREATOR =
            new Parcelable.Creator<NetworkEvent>() {
        @Override
@@ -165,13 +187,11 @@ public final class NetworkEvent implements Parcelable {
     * A builder for {@link NetworkEvent}
     */
    public static final class Builder {
        private int mType;
        private long mTimeSincePlaybackCreatedMillis;
        private int mNetworkType = NETWORK_TYPE_NONE;
        private long mTimeSinceCreatedMillis = -1;

        /**
         * Creates a new Builder.
         *
         * @hide
         */
        public Builder() {
        }
@@ -179,24 +199,24 @@ public final class NetworkEvent implements Parcelable {
        /**
         * Sets network type.
         */
        public @NonNull Builder setType(@NetworkType int value) {
            mType = value;
        public @NonNull Builder setNetworkType(@NetworkType int value) {
            mNetworkType = value;
            return this;
        }

        /**
         * Sets timestamp since the creation in milliseconds.
         * @param value the timestamp since the creation in milliseconds.
         *              -1 indicates the value is unknown.
         */
        public @NonNull Builder setTimeSincePlaybackCreatedMillis(long value) {
            mTimeSincePlaybackCreatedMillis = value;
        public @NonNull Builder setTimeSinceCreatedMillis(@IntRange(from = -1) long value) {
            mTimeSinceCreatedMillis = value;
            return this;
        }

        /** Builds the instance. */
        public @NonNull NetworkEvent build() {
            NetworkEvent o = new NetworkEvent(
                    mType,
                    mTimeSincePlaybackCreatedMillis);
            NetworkEvent o = new NetworkEvent(mNetworkType, mTimeSinceCreatedMillis);
            return o;
        }
    }
+0 −3
Original line number Diff line number Diff line
@@ -17,13 +17,10 @@
package android.media.metrics;

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

/**
 * Interface for playback related components used by playback metrics.
 * @hide
 */
@TestApi
public interface PlaybackComponent {

    /**
+75 −26

File changed.

Preview size limit exceeded, changes collapsed.

Loading