@@ -20,6 +20,27 @@ goog.requireType('shaka.ui.Localization');
20
20
21
21
22
22
shaka . ui . LanguageUtils = class {
23
+ /**
24
+ * @param {!Array<shaka.extern.AudioTrack> } tracks
25
+ * @return {boolean }
26
+ * @private
27
+ */
28
+ static areAudioTracksEqualExceptLabel_ ( tracks ) {
29
+ const basicTrack = ( track ) => {
30
+ return {
31
+ codecs : track . codecs ,
32
+ channelCount : track . channelCount ,
33
+ language : track . language ,
34
+ roles : track . roles ,
35
+ spatialAudio : track . spatialAudio ,
36
+ } ;
37
+ } ;
38
+ const reference = basicTrack ( tracks [ 0 ] ) ;
39
+ return tracks . every ( ( track ) => {
40
+ return JSON . stringify ( basicTrack ( track ) ) === JSON . stringify ( reference ) ;
41
+ } ) ;
42
+ }
43
+
23
44
/**
24
45
* @param {!Array<shaka.extern.AudioTrack> } tracks
25
46
* @param {!HTMLElement } langMenu
@@ -42,6 +63,12 @@ shaka.ui.LanguageUtils = class {
42
63
return track . active == true ;
43
64
} ) ;
44
65
66
+ if ( tracks . length > 1 && tracks [ 0 ] . label &&
67
+ trackLabelFormat != shaka . ui . Overlay . TrackLabelFormat . LABEL &&
68
+ shaka . ui . LanguageUtils . areAudioTracksEqualExceptLabel_ ( tracks ) ) {
69
+ trackLabelFormat = shaka . ui . Overlay . TrackLabelFormat . LABEL ;
70
+ }
71
+
45
72
/** @type {!Map<string, !Set<string>> } */
46
73
const codecsByLanguage = new Map ( ) ;
47
74
for ( const track of tracks ) {
0 commit comments