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

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

Merge "Add log session id to MediaParser" into sc-dev

parents c0515e80 9f5e9b24
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -41,7 +41,10 @@ java_library {
    installable: true,

    sdk_version: "module_current",
    libs: ["framework-annotations-lib"],
    libs: [
        "androidx.annotation_annotation",
        "framework-annotations-lib",
    ],
    static_libs: [
        "exoplayer2-extractor",
        "mediatranscoding_aidl_interface-java",
+17 −6
Original line number Diff line number Diff line
@@ -28,6 +28,10 @@ import android.util.Log;
import android.util.Pair;
import android.util.SparseArray;

import androidx.annotation.RequiresApi;

import com.android.modules.utils.build.SdkLevel;

import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.Format;
import com.google.android.exoplayer2.ParserException;
@@ -1068,7 +1072,7 @@ public final class MediaParser {
    private boolean mReleased;

    // MediaMetrics fields.
    @NonNull private LogSessionId mLogSessionId = LogSessionId.LOG_SESSION_ID_NONE;
    @Nullable private LogSessionId mLogSessionId;
    private final boolean mCreatedByName;
    private final SparseArray<Format> mTrackFormats;
    private String mLastObservedExceptionName;
@@ -1331,7 +1335,7 @@ public final class MediaParser {
                                MEDIAMETRICS_PARAMETER_LIST_MAX_LENGTH));

        nativeSubmitMetrics(
                // TODO: mLogSessionId,
                SdkLevel.isAtLeastS() ? getLogSessionIdStringV31() : "",
                mParserName,
                mCreatedByName,
                String.join(MEDIAMETRICS_ELEMENT_SEPARATOR, mParserNamesPool),
@@ -1345,13 +1349,15 @@ public final class MediaParser {
                videoHeight);
    }

    public void setLogSessionId(@NonNull LogSessionId sessionId) {
        this.mLogSessionId = Objects.requireNonNull(sessionId);
    @RequiresApi(31)
    public void setLogSessionId(@NonNull LogSessionId logSessionId) {
        this.mLogSessionId = Objects.requireNonNull(logSessionId);
    }

    @RequiresApi(31)
    @NonNull
    public LogSessionId getLogSessionId() {
        return mLogSessionId;
        return mLogSessionId != null ? mLogSessionId : LogSessionId.LOG_SESSION_ID_NONE;
    }

    // Private methods.
@@ -1548,6 +1554,11 @@ public final class MediaParser {
        return (String) mParserParameters.getOrDefault(name, defaultValue);
    }

    @RequiresApi(31)
    private String getLogSessionIdStringV31() {
        return mLogSessionId != null ? mLogSessionId.getStringId() : "";
    }

    // Private classes.

    private static final class InputReadingDataReader implements DataReader {
@@ -2197,7 +2208,7 @@ public final class MediaParser {
    // Native methods.

    private native void nativeSubmitMetrics(
            // TODO: String logSessionId,
            String logSessionId,
            String parserName,
            boolean createdByName,
            String parserPool,
+8 −4
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ namespace {

constexpr char kMediaMetricsKey[] = "mediaparser";

constexpr char kAttributeLogSessionId[] = "android.media.mediaparser.logSessionId";
constexpr char kAttributeParserName[] = "android.media.mediaparser.parserName";
constexpr char kAttributeCreatedByName[] = "android.media.mediaparser.createdByName";
constexpr char kAttributeParserPool[] = "android.media.mediaparser.parserPool";
@@ -65,11 +66,14 @@ public:

} // namespace

JNI_FUNCTION(void, nativeSubmitMetrics, jstring parserNameJstring, jboolean createdByName,
             jstring parserPoolJstring, jstring lastExceptionJstring, jlong resourceByteCount,
             jlong durationMillis, jstring trackMimeTypesJstring, jstring trackCodecsJstring,
             jstring alteredParameters, jint videoWidth, jint videoHeight) {
JNI_FUNCTION(void, nativeSubmitMetrics, jstring logSessionIdJstring, jstring parserNameJstring,
             jboolean createdByName, jstring parserPoolJstring, jstring lastExceptionJstring,
             jlong resourceByteCount, jlong durationMillis, jstring trackMimeTypesJstring,
             jstring trackCodecsJstring, jstring alteredParameters, jint videoWidth,
             jint videoHeight) {
    mediametrics_handle_t item(mediametrics_create(kMediaMetricsKey));
    mediametrics_setCString(item, kAttributeLogSessionId,
                            JstringHandle(env, logSessionIdJstring).value());
    mediametrics_setCString(item, kAttributeParserName,
                            JstringHandle(env, parserNameJstring).value());
    mediametrics_setInt32(item, kAttributeCreatedByName, createdByName ? 1 : 0);