Merge "Add log session id to MediaParser" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
7c8f0cb884
@@ -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",
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user