@@ -695,8 +695,9 @@ shaka.dash.DashParser.prototype.parsePeriod_ = function(
695
695
696
696
var adaptationSetNodes =
697
697
XmlUtils . findChildren ( periodInfo . node , 'AdaptationSet' ) ;
698
- var adaptationSets =
699
- adaptationSetNodes . map ( this . parseAdaptationSet_ . bind ( this , context ) ) ;
698
+ var adaptationSets = adaptationSetNodes
699
+ . map ( this . parseAdaptationSet_ . bind ( this , context ) )
700
+ . filter ( shaka . util . Functional . isNotNull ) ;
700
701
701
702
if ( adaptationSets . length == 0 ) {
702
703
throw new shaka . util . Error (
@@ -722,7 +723,7 @@ shaka.dash.DashParser.prototype.parsePeriod_ = function(
722
723
*
723
724
* @param {shaka.dash.DashParser.Context } context
724
725
* @param {!Element } elem The AdaptationSet element.
725
- * @return {shaka.dash.DashParser.AdaptationInfo }
726
+ * @return {? shaka.dash.DashParser.AdaptationInfo }
726
727
* @throws shaka.util.Error When there is a parsing error.
727
728
* @private
728
729
*/
@@ -773,6 +774,20 @@ shaka.dash.DashParser.prototype.parseAdaptationSet_ = function(context, elem) {
773
774
}
774
775
} ) ;
775
776
777
+ var essentialProperties = XmlUtils . findChildren ( elem , 'EssentialProperty' ) ;
778
+ // ID of real AdaptationSet if this is a trick mode set:
779
+ var trickModeFor = null ;
780
+ essentialProperties . forEach ( function ( prop ) {
781
+ var schemeId = prop . getAttribute ( 'schemeIdUri' ) ;
782
+ if ( schemeId == 'http://dashif.org/guidelines/trickmode' ) {
783
+ trickModeFor = prop . getAttribute ( 'value' ) ;
784
+ }
785
+ } ) ;
786
+ if ( trickModeFor != null ) {
787
+ // Ignore trick mode tracks until we support them fully.
788
+ return null ;
789
+ }
790
+
776
791
var contentProtectionElems = XmlUtils . findChildren ( elem , 'ContentProtection' ) ;
777
792
var contentProtection = shaka . dash . ContentProtection . parseFromAdaptationSet (
778
793
contentProtectionElems , this . config_ . dash . customScheme ) ;
0 commit comments