@@ -851,6 +851,38 @@ describe('StreamUtils', () => {
851851 v . video . bandwidth ) ) ) . toBeTruthy ( ) ;
852852 } ) ;
853853
854+ it ( 'should keep variants where the lower resolution bandwidth' +
855+ ' is greater than the higher resolution bandwidth' , ( ) => {
856+ manifest = shaka . test . ManifestGenerator . generate ( ( manifest ) => {
857+ manifest . addVariant ( 0 , ( variant ) => {
858+ variant . addVideo ( 1 , ( stream ) => {
859+ stream . bandwidth = 4000000 ;
860+ stream . size ( 1920 , 1080 ) ;
861+ } ) ;
862+ } ) ;
863+ manifest . addVariant ( 1 , ( variant ) => {
864+ variant . addVideo ( 2 , ( stream ) => {
865+ stream . bandwidth = 5000000 ;
866+ stream . size ( 1280 , 720 ) ;
867+ } ) ;
868+ } ) ;
869+ manifest . addVariant ( 2 , ( variant ) => {
870+ variant . addVideo ( 3 , ( stream ) => {
871+ stream . bandwidth = 3000000 ;
872+ stream . size ( 640 , 360 ) ;
873+ } ) ;
874+ } ) ;
875+ } ) ;
876+
877+ shaka . util . StreamUtils . chooseCodecsAndFilterManifest ( manifest ,
878+ /* preferredVideoCodecs= */ [ ] ,
879+ /* preferredAudioCodecs= */ [ ] ,
880+ /* preferredDecodingAttributes= */ [ ] ,
881+ /* preferredTextFormats= */ [ ] ) ;
882+
883+ expect ( manifest . variants . length ) . toBe ( 3 ) ;
884+ } ) ;
885+
854886 it ( 'should filter variants by the best available bandwidth' +
855887 ' for audio language' , ( ) => {
856888 // This test is flaky in some Tizen devices, due to codec restrictions.
0 commit comments