Add DRM info to Format.toLogString

The Widevine H264 samples in the demo app now log this from the EventLogger:
```
[X] Track:0, id=1, mimeType=video/avc, bitrate=772315, codecs=avc1.42c01e, drm=[widevine,cenc], res=320x142, fps=24.0, supported=YES
```

And the VP9 ones log:
```
[X] Track:0, id=1, mimeType=video/x-vnd.on2.vp9, bitrate=588256, codecs=vp9, drm=[widevine], res=320x142, fps=23.809525, supported=YES
```

#minor-release

PiperOrigin-RevId: 379498332
This commit is contained in:
ibaker 2021-06-15 16:48:46 +01:00 committed by Oliver Woodman
parent 912acacbe1
commit 391ad7dbb9

View File

@ -15,6 +15,8 @@
*/
package com.google.android.exoplayer2;
import static com.google.android.exoplayer2.util.Assertions.checkNotNull;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.Nullable;
@ -22,14 +24,17 @@ import com.google.android.exoplayer2.drm.DrmInitData;
import com.google.android.exoplayer2.drm.ExoMediaCrypto;
import com.google.android.exoplayer2.drm.UnsupportedMediaCrypto;
import com.google.android.exoplayer2.metadata.Metadata;
import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.MimeTypes;
import com.google.android.exoplayer2.util.Util;
import com.google.android.exoplayer2.video.ColorInfo;
import com.google.common.base.Joiner;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.UUID;
/**
* Represents a media format.
@ -984,7 +989,7 @@ public final class Format implements Parcelable {
int initializationDataSize = in.readInt();
initializationData = new ArrayList<>(initializationDataSize);
for (int i = 0; i < initializationDataSize; i++) {
initializationData.add(Assertions.checkNotNull(in.createByteArray()));
initializationData.add(checkNotNull(in.createByteArray()));
}
drmInitData = in.readParcelable(DrmInitData.class.getClassLoader());
subsampleOffsetUs = in.readLong();
@ -1322,6 +1327,26 @@ public final class Format implements Parcelable {
if (format.codecs != null) {
builder.append(", codecs=").append(format.codecs);
}
if (format.drmInitData != null) {
Set<String> schemes = new LinkedHashSet<>();
for (int i = 0; i < format.drmInitData.schemeDataCount; i++) {
UUID schemeUuid = format.drmInitData.get(i).uuid;
if (schemeUuid.equals(C.COMMON_PSSH_UUID)) {
schemes.add("cenc");
} else if (schemeUuid.equals(C.CLEARKEY_UUID)) {
schemes.add("clearkey");
} else if (schemeUuid.equals(C.PLAYREADY_UUID)) {
schemes.add("playready");
} else if (schemeUuid.equals(C.WIDEVINE_UUID)) {
schemes.add("widevine");
} else if (schemeUuid.equals(C.UUID_NIL)) {
schemes.add("universal");
} else {
schemes.add("unknown (" + schemeUuid + ")");
}
}
builder.append(", drm=[").append(Joiner.on(',').join(schemes)).append(']');
}
if (format.width != NO_VALUE && format.height != NO_VALUE) {
builder.append(", res=").append(format.width).append("x").append(format.height);
}