@@ -48,60 +48,66 @@ shaka.media.SegmentUtils = class {
48
48
49
49
/**
50
50
* @param {!BufferSource } data
51
+ * @param {boolean= } disableAudio
52
+ * @param {boolean= } disableVideo
51
53
* @return {?shaka.media.SegmentUtils.BasicInfo }
52
54
*/
53
- static getBasicInfoFromTs ( data ) {
55
+ static getBasicInfoFromTs ( data , disableAudio = false , disableVideo = false ) {
54
56
const uint8ArrayData = shaka . util . BufferUtils . toUint8 ( data ) ;
55
57
const tsParser = new shaka . util . TsParser ( ) . parse ( uint8ArrayData ) ;
56
58
const tsCodecs = tsParser . getCodecs ( ) ;
57
59
const videoInfo = tsParser . getVideoInfo ( ) ;
58
60
const codecs = [ ] ;
59
61
let hasAudio = false ;
60
62
let hasVideo = false ;
61
- switch ( tsCodecs . audio ) {
62
- case 'aac' :
63
- case 'aac-loas' :
64
- codecs . push ( 'mp4a.40.2' ) ;
65
- hasAudio = true ;
66
- break ;
67
- case 'mp3' :
68
- codecs . push ( 'mp4a.40.34' ) ;
69
- hasAudio = true ;
70
- break ;
71
- case 'ac3' :
72
- codecs . push ( 'ac-3' ) ;
73
- hasAudio = true ;
74
- break ;
75
- case 'ec3' :
76
- codecs . push ( 'ec-3' ) ;
77
- hasAudio = true ;
78
- break ;
79
- case 'opus' :
80
- codecs . push ( 'opus' ) ;
81
- hasAudio = true ;
82
- break ;
63
+ if ( ! disableAudio ) {
64
+ switch ( tsCodecs . audio ) {
65
+ case 'aac' :
66
+ case 'aac-loas' :
67
+ codecs . push ( 'mp4a.40.2' ) ;
68
+ hasAudio = true ;
69
+ break ;
70
+ case 'mp3' :
71
+ codecs . push ( 'mp4a.40.34' ) ;
72
+ hasAudio = true ;
73
+ break ;
74
+ case 'ac3' :
75
+ codecs . push ( 'ac-3' ) ;
76
+ hasAudio = true ;
77
+ break ;
78
+ case 'ec3' :
79
+ codecs . push ( 'ec-3' ) ;
80
+ hasAudio = true ;
81
+ break ;
82
+ case 'opus' :
83
+ codecs . push ( 'opus' ) ;
84
+ hasAudio = true ;
85
+ break ;
86
+ }
83
87
}
84
- switch ( tsCodecs . video ) {
85
- case 'avc' :
86
- if ( videoInfo . codec ) {
87
- codecs . push ( videoInfo . codec ) ;
88
- } else {
89
- codecs . push ( 'avc1.42E01E' ) ;
90
- }
91
- hasVideo = true ;
92
- break ;
93
- case 'hvc' :
94
- if ( videoInfo . codec ) {
95
- codecs . push ( videoInfo . codec ) ;
96
- } else {
97
- codecs . push ( 'hvc1.1.6.L93.90' ) ;
98
- }
99
- hasVideo = true ;
100
- break ;
101
- case 'av1' :
102
- codecs . push ( 'av01.0.01M.08' ) ;
103
- hasVideo = true ;
104
- break ;
88
+ if ( ! disableVideo ) {
89
+ switch ( tsCodecs . video ) {
90
+ case 'avc' :
91
+ if ( videoInfo . codec ) {
92
+ codecs . push ( videoInfo . codec ) ;
93
+ } else {
94
+ codecs . push ( 'avc1.42E01E' ) ;
95
+ }
96
+ hasVideo = true ;
97
+ break ;
98
+ case 'hvc' :
99
+ if ( videoInfo . codec ) {
100
+ codecs . push ( videoInfo . codec ) ;
101
+ } else {
102
+ codecs . push ( 'hvc1.1.6.L93.90' ) ;
103
+ }
104
+ hasVideo = true ;
105
+ break ;
106
+ case 'av1' :
107
+ codecs . push ( 'av01.0.01M.08' ) ;
108
+ hasVideo = true ;
109
+ break ;
110
+ }
105
111
}
106
112
if ( ! codecs . length ) {
107
113
return null ;
0 commit comments