@@ -1538,7 +1538,7 @@ shaka.util.StreamUtils = class {
1538
1538
/**
1539
1539
* Generate and return an ID for this track, since the ID field is optional.
1540
1540
*
1541
- * @param {TextTrack|AudioTrack } html5Track
1541
+ * @param {TextTrack|AudioTrack|VideoTrack } html5Track
1542
1542
* @return {number } The generated ID.
1543
1543
*/
1544
1544
static html5TrackId ( html5Track ) {
@@ -1589,22 +1589,27 @@ shaka.util.StreamUtils = class {
1589
1589
1590
1590
1591
1591
/**
1592
- * @param {AudioTrack } audioTrack
1592
+ * @param {? AudioTrack } audioTrack
1593
1593
* @param {?VideoTrack } videoTrack
1594
1594
* @return {shaka.extern.Track }
1595
1595
*/
1596
1596
static html5TrackToShakaTrack ( audioTrack , videoTrack ) {
1597
+ goog . asserts . assert ( audioTrack || videoTrack ,
1598
+ 'There must be at least audioTrack or videoTrack.' ) ;
1599
+
1597
1600
const LanguageUtils = shaka . util . LanguageUtils ;
1598
1601
1602
+ const language = audioTrack ? audioTrack . language : null ;
1603
+
1599
1604
/** @type {shaka.extern.Track } */
1600
1605
const track = {
1601
- id : shaka . util . StreamUtils . html5TrackId ( audioTrack ) ,
1602
- active : audioTrack . enabled ,
1606
+ id : shaka . util . StreamUtils . html5TrackId ( audioTrack || videoTrack ) ,
1607
+ active : audioTrack ? audioTrack . enabled : videoTrack . selected ,
1603
1608
type : 'variant' ,
1604
1609
bandwidth : 0 ,
1605
- language : LanguageUtils . normalize ( audioTrack . language || 'und' ) ,
1606
- label : audioTrack . label ,
1607
- kind : audioTrack . kind ,
1610
+ language : LanguageUtils . normalize ( language || 'und' ) ,
1611
+ label : audioTrack ? audioTrack . label : null ,
1612
+ kind : audioTrack ? audioTrack . kind : null ,
1608
1613
width : null ,
1609
1614
height : null ,
1610
1615
frameRate : null ,
@@ -1618,7 +1623,7 @@ shaka.util.StreamUtils = class {
1618
1623
codecs : null ,
1619
1624
audioCodec : null ,
1620
1625
videoCodec : null ,
1621
- primary : audioTrack . kind == 'main' ,
1626
+ primary : audioTrack ? audioTrack . kind == 'main' : false ,
1622
1627
roles : [ ] ,
1623
1628
forced : false ,
1624
1629
audioRoles : null ,
@@ -1631,21 +1636,20 @@ shaka.util.StreamUtils = class {
1631
1636
tilesLayout : null ,
1632
1637
audioBandwidth : null ,
1633
1638
videoBandwidth : null ,
1634
- originalVideoId : null ,
1635
- originalAudioId : audioTrack . id ,
1639
+ originalVideoId : videoTrack ? videoTrack . id : null ,
1640
+ originalAudioId : audioTrack ? audioTrack . id : null ,
1636
1641
originalTextId : null ,
1637
1642
originalImageId : null ,
1638
1643
accessibilityPurpose : null ,
1639
- originalLanguage : audioTrack . language ,
1644
+ originalLanguage : language ,
1640
1645
} ;
1641
1646
1642
- if ( audioTrack . kind ) {
1647
+ if ( audioTrack && audioTrack . kind ) {
1643
1648
track . roles = [ audioTrack . kind ] ;
1644
1649
track . audioRoles = [ audioTrack . kind ] ;
1645
- track . label = audioTrack . label ;
1646
1650
}
1647
1651
1648
- if ( audioTrack . configuration ) {
1652
+ if ( audioTrack && audioTrack . configuration ) {
1649
1653
if ( audioTrack . configuration . codec ) {
1650
1654
track . audioCodec = audioTrack . configuration . codec ;
1651
1655
track . codecs = track . audioCodec ;
0 commit comments