mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
Update code according to review result
This commit is contained in:
parent
545d37c104
commit
1ac847ad60
@ -2115,6 +2115,34 @@ public final class Util {
|
|||||||
return builder.length() > 0 ? builder.toString() : null;
|
return builder.length() > 0 ? builder.toString() : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a copy of {@code codecs} without the codecs whose track type matches {@code
|
||||||
|
* trackType}.
|
||||||
|
*
|
||||||
|
* @param codecs A codec sequence string, as defined in RFC 6381.
|
||||||
|
* @param trackType The {@link C.TrackType track type}.
|
||||||
|
* @return A copy of {@code codecs} without the codecs whose track type matches {@code
|
||||||
|
* trackType}. If this ends up empty, or {@code codecs} is null, returns null.
|
||||||
|
*/
|
||||||
|
@UnstableApi
|
||||||
|
@Nullable
|
||||||
|
public static String getCodecsWithoutType(@Nullable String codecs, @C.TrackType int trackType) {
|
||||||
|
String[] codecArray = splitCodecs(codecs);
|
||||||
|
if (codecArray.length == 0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
StringBuilder builder = new StringBuilder();
|
||||||
|
for (String codec : codecArray) {
|
||||||
|
if (trackType != MimeTypes.getTrackTypeOfCodec(codec)) {
|
||||||
|
if (builder.length() > 0) {
|
||||||
|
builder.append(",");
|
||||||
|
}
|
||||||
|
builder.append(codec);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return builder.length() > 0 ? builder.toString() : null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Splits a codecs sequence string, as defined in RFC 6381, into individual codec strings.
|
* Splits a codecs sequence string, as defined in RFC 6381, into individual codec strings.
|
||||||
*
|
*
|
||||||
|
@ -418,30 +418,19 @@ public final class HlsPlaylistParser implements ParsingLoadable.Parser<HlsPlayli
|
|||||||
String supplementalCodecs = null;
|
String supplementalCodecs = null;
|
||||||
String supplementalProfiles = null; // i.e. Compatibility brand
|
String supplementalProfiles = null; // i.e. Compatibility brand
|
||||||
if (supplementalCodecsStrings != null) {
|
if (supplementalCodecsStrings != null) {
|
||||||
String[] supplementalCodecsString = Util.split(supplementalCodecsStrings, ",");
|
String[] supplementalCodecsString = Util.splitAtFirst(supplementalCodecsStrings, ",");
|
||||||
if (!supplementalCodecsString[0].isEmpty()) {
|
// TODO: Support more than one element
|
||||||
// TODO: Support more than one element
|
String[] codecsAndProfiles = Util.split(supplementalCodecsString[0], "/");
|
||||||
String[] codecsAndProfiles = Util.split(supplementalCodecsString[0], "/");
|
supplementalCodecs = codecsAndProfiles[0];
|
||||||
supplementalCodecs = codecsAndProfiles[0];
|
if (codecsAndProfiles.length > 1) {
|
||||||
if (codecsAndProfiles.length > 1) {
|
supplementalProfiles = codecsAndProfiles[1];
|
||||||
supplementalProfiles = codecsAndProfiles[1];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
String videoCodecs = Util.getCodecsOfType(codecs, C.TRACK_TYPE_VIDEO);
|
String videoCodecs = Util.getCodecsOfType(codecs, C.TRACK_TYPE_VIDEO);
|
||||||
if (isDolbyVisionFormat(videoRange, videoCodecs, supplementalCodecs, supplementalProfiles)) {
|
if (isDolbyVisionFormat(videoRange, videoCodecs, supplementalCodecs, supplementalProfiles)) {
|
||||||
videoCodecs = supplementalCodecs != null ? supplementalCodecs : videoCodecs;
|
videoCodecs = supplementalCodecs != null ? supplementalCodecs : videoCodecs;
|
||||||
String[] codecArray = Util.splitCodecs(codecs);
|
String nonVideoCodecs = Util.getCodecsWithoutType(codecs, C.TRACK_TYPE_VIDEO);
|
||||||
StringBuilder builder = new StringBuilder();
|
codecs = nonVideoCodecs != null ? videoCodecs + "," + nonVideoCodecs : videoCodecs;
|
||||||
for (String codec : codecArray) {
|
|
||||||
if (builder.length() > 0) {
|
|
||||||
builder.append(",");
|
|
||||||
}
|
|
||||||
builder.append(MimeTypes.getTrackTypeOfCodec(codec) == C.TRACK_TYPE_VIDEO
|
|
||||||
? videoCodecs
|
|
||||||
: codec);
|
|
||||||
}
|
|
||||||
codecs = builder.length() > 0 ? builder.toString() : codecs;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
String resolutionString =
|
String resolutionString =
|
||||||
|
Loading…
x
Reference in New Issue
Block a user