@@ -1084,6 +1084,45 @@ describe('StreamUtils', () => {
1084
1084
expect ( manifest . variants [ 0 ] . video . codecs ) . toBe ( 'dav1.10.01' ) ;
1085
1085
} ) ;
1086
1086
1087
+ it ( 'prefer Dolby Vision p5 over Dolby Vision p8' , async ( ) => {
1088
+ // Dolby Vision profile 5 has a proprietary color space that produces a
1089
+ // better image than Dolby Vision profile 8 which must be backward
1090
+ // compatible with HEVC.
1091
+ manifest = shaka . test . ManifestGenerator . generate ( ( manifest ) => {
1092
+ manifest . addVariant ( 1 , ( variant ) => {
1093
+ variant . addVideo ( 2 , ( stream ) => {
1094
+ stream . bandwidth = 4000000 ;
1095
+ stream . size ( 1920 , 1080 ) ;
1096
+ stream . mime ( 'video/mp4' , 'dvh1.08.06' ) ;
1097
+ } ) ;
1098
+ } ) ;
1099
+ manifest . addVariant ( 2 , ( variant ) => {
1100
+ variant . addVideo ( 3 , ( stream ) => {
1101
+ stream . bandwidth = 4000000 ;
1102
+ stream . size ( 1920 , 1080 ) ;
1103
+ stream . mime ( 'video/mp4' , 'dvh1.05.06' ) ;
1104
+ } ) ;
1105
+ } ) ;
1106
+ } ) ;
1107
+ navigator . mediaCapabilities . decodingInfo =
1108
+ shaka . test . Util . spyFunc ( decodingInfoSpy ) ;
1109
+ decodingInfoSpy . and . callFake ( ( config ) => {
1110
+ return Promise . resolve ( { supported : true , smooth : true } ) ;
1111
+ } ) ;
1112
+
1113
+ await StreamUtils . getDecodingInfosForVariants ( manifest . variants ,
1114
+ /* usePersistentLicenses= */ false , /* srcEquals= */ false ,
1115
+ /* preferredKeySystems= */ [ ] ) ;
1116
+
1117
+ shaka . util . StreamUtils . chooseCodecsAndFilterManifest ( manifest ,
1118
+ /* preferredVideoCodecs= */ [ ] ,
1119
+ /* preferredAudioCodecs= */ [ ] ,
1120
+ /* preferredDecodingAttributes= */ [ ] ,
1121
+ /* preferredTextFormats= */ [ ] ) ;
1122
+ expect ( manifest . variants . length ) . toBe ( 1 ) ;
1123
+ expect ( manifest . variants [ 0 ] . video . codecs ) . toBe ( 'dvh1.05.06' ) ;
1124
+ } ) ;
1125
+
1087
1126
it ( 'chooses variants by decoding attributes' , async ( ) => {
1088
1127
manifest = shaka . test . ManifestGenerator . generate ( ( manifest ) => {
1089
1128
manifest . addVariant ( 0 , ( variant ) => {
0 commit comments