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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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.
|
||||
*
|
||||
|
@ -418,30 +418,19 @@ public final class HlsPlaylistParser implements ParsingLoadable.Parser<HlsPlayli
|
||||
String supplementalCodecs = null;
|
||||
String supplementalProfiles = null; // i.e. Compatibility brand
|
||||
if (supplementalCodecsStrings != null) {
|
||||
String[] supplementalCodecsString = Util.split(supplementalCodecsStrings, ",");
|
||||
if (!supplementalCodecsString[0].isEmpty()) {
|
||||
// TODO: Support more than one element
|
||||
String[] codecsAndProfiles = Util.split(supplementalCodecsString[0], "/");
|
||||
supplementalCodecs = codecsAndProfiles[0];
|
||||
if (codecsAndProfiles.length > 1) {
|
||||
supplementalProfiles = codecsAndProfiles[1];
|
||||
}
|
||||
String[] supplementalCodecsString = Util.splitAtFirst(supplementalCodecsStrings, ",");
|
||||
// TODO: Support more than one element
|
||||
String[] codecsAndProfiles = Util.split(supplementalCodecsString[0], "/");
|
||||
supplementalCodecs = codecsAndProfiles[0];
|
||||
if (codecsAndProfiles.length > 1) {
|
||||
supplementalProfiles = codecsAndProfiles[1];
|
||||
}
|
||||
}
|
||||
String videoCodecs = Util.getCodecsOfType(codecs, C.TRACK_TYPE_VIDEO);
|
||||
if (isDolbyVisionFormat(videoRange, videoCodecs, supplementalCodecs, supplementalProfiles)) {
|
||||
videoCodecs = supplementalCodecs != null ? supplementalCodecs : videoCodecs;
|
||||
String[] codecArray = Util.splitCodecs(codecs);
|
||||
StringBuilder builder = new StringBuilder();
|
||||
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 nonVideoCodecs = Util.getCodecsWithoutType(codecs, C.TRACK_TYPE_VIDEO);
|
||||
codecs = nonVideoCodecs != null ? videoCodecs + "," + nonVideoCodecs : videoCodecs;
|
||||
}
|
||||
|
||||
String resolutionString =
|
||||
|
Loading…
x
Reference in New Issue
Block a user