Commit 35d34af2 by kimvde Committed by kim-vde

Fall back to AVC/HEVC for Dolby Vision levels 10-13

Before, the level was set to null in this case.
MediaCodecUtil.getCodecProfileAndLevel() was therefore returning null
and the fallback to AVC/HEVC was not enabled in MediaCodecVideoRenderer.

Issue:#8530
#minor-release
PiperOrigin-RevId: 355574499
parent e345e0a5
......@@ -6,6 +6,9 @@
* Core library:
* Log a warning when `SingleSampleMediaPeriod` transforms a load error
into end-of-stream.
* Fall back to AVC/HEVC decoders for Dolby Vision streams with level 10
to 13
([#8530](https://github.com/google/ExoPlayer/issues/8530)).
* UI:
* Add builder for `PlayerNotificationManager`.
* Extractors:
......
......@@ -45,7 +45,7 @@ public final class DolbyVisionConfig {
} else {
return null;
}
String codecs = codecsPrefix + ".0" + dvProfile + ".0" + dvLevel;
String codecs = codecsPrefix + ".0" + dvProfile + (dvLevel < 10 ? ".0" : ".") + dvLevel;
return new DolbyVisionConfig(dvProfile, dvLevel, codecs);
}
......
......@@ -1272,6 +1272,7 @@ public final class MediaCodecUtil {
if (levelString == null) {
return null;
}
// TODO (Internal: b/179261323): use framework constants for levels 10 to 13.
switch (levelString) {
case "01":
return CodecProfileLevel.DolbyVisionLevelHd24;
......@@ -1291,6 +1292,14 @@ public final class MediaCodecUtil {
return CodecProfileLevel.DolbyVisionLevelUhd48;
case "09":
return CodecProfileLevel.DolbyVisionLevelUhd60;
case "10":
return 0x200;
case "11":
return 0x400;
case "12":
return 0x800;
case "13":
return 0x1000;
default:
return null;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment