@@ -1512,7 +1512,7 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
1512
1512
// components, we do not release the instance, we will reuse it in later
1513
1513
// loads.
1514
1514
if ( this . abrManager_ ) {
1515
- await this . abrManager_ . stop ( ) ;
1515
+ this . abrManager_ . stop ( ) ;
1516
1516
}
1517
1517
1518
1518
// Streaming engine will push new data to media source engine, so we need
@@ -1945,15 +1945,14 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
1945
1945
await this . drmEngine_ . attach ( this . video_ ) ;
1946
1946
} , 'drmEngine_.attach' ) ;
1947
1947
1948
- // Also get the ABR manager, which has special logic related to being
1949
- // received.
1950
- const abrManagerFactory = preloadManager . getAbrManagerFactory ( ) ;
1951
- if ( abrManagerFactory ) {
1952
- const abrManager = preloadManager . receiveAbrManager ( ) ;
1953
- if ( this . abrManager_ && this . abrManager_ !== abrManager ) {
1948
+
1949
+ const abrFactory = this . config_ . abrFactory ;
1950
+ if ( ! this . abrManager_ || this . abrManagerFactory_ != abrFactory ) {
1951
+ this . abrManagerFactory_ = abrFactory ;
1952
+ if ( this . abrManager_ ) {
1954
1953
this . abrManager_ . release ( ) ;
1955
1954
}
1956
- this . abrManager_ = abrManager ;
1955
+ this . abrManager_ = abrFactory ( ) ;
1957
1956
if ( typeof this . abrManager_ . setMediaElement != 'function' ) {
1958
1957
shaka . Deprecate . deprecateFeature ( 5 ,
1959
1958
'AbrManager w/o setMediaElement' ,
@@ -1972,7 +1971,7 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
1972
1971
'Please use an AbrManager with trySuggestStreams function.' ) ;
1973
1972
this . abrManager_ . trySuggestStreams = ( ) => { } ;
1974
1973
}
1975
- this . abrManagerFactory_ = abrManagerFactory ;
1974
+ this . abrManager_ . configure ( this . config_ . abr ) ;
1976
1975
}
1977
1976
1978
1977
// Load the asset.
@@ -2087,8 +2086,7 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
2087
2086
this . mimeType_ ,
2088
2087
this . config_ ,
2089
2088
/* allowPrefetch= */ true ,
2090
- /* disableVideo= */ false ,
2091
- /* allowMakeAbrManager= */ false ) ;
2089
+ /* disableVideo= */ false ) ;
2092
2090
this . createdPreloadManagers_ . push ( preloadManager ) ;
2093
2091
if ( this . parser_ && this . parser_ . setMediaElement ) {
2094
2092
this . parser_ . setMediaElement ( /* mediaElement= */ null ) ;
@@ -2192,25 +2190,12 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
2192
2190
}
2193
2191
const preloadConfig = config || this . config_ ;
2194
2192
let disableVideo = false ;
2195
- let allowMakeAbrManager = true ;
2196
- if ( standardLoad ) {
2197
- if ( this . abrManager_ &&
2198
- this . abrManagerFactory_ == preloadConfig . abrFactory ) {
2199
- // If there's already an abr manager, don't make a new abr manager at
2200
- // all.
2201
- // In standardLoad mode, the abr manager isn't used for anything anyway,
2202
- // so it should only be created to create an abr manager for the player
2203
- // to use... which is unnecessary if we already have one of the right
2204
- // type.
2205
- allowMakeAbrManager = false ;
2206
- }
2207
- if ( this . video_ && this . video_ . nodeName === 'AUDIO' ) {
2208
- disableVideo = true ;
2209
- }
2193
+ if ( standardLoad && this . video_ && this . video_ . nodeName === 'AUDIO' ) {
2194
+ disableVideo = true ;
2210
2195
}
2211
2196
let preloadManagerPromise = this . makePreloadManager_ (
2212
2197
assetUri , startTime , mimeType || null , preloadConfig ,
2213
- /* allowPrefetch= */ ! standardLoad , disableVideo , allowMakeAbrManager ) ;
2198
+ /* allowPrefetch= */ ! standardLoad , disableVideo ) ;
2214
2199
if ( ! standardLoad ) {
2215
2200
// We only need to track the PreloadManager if it is not part of a
2216
2201
// standard load. If it is, the load() method will handle destroying it.
@@ -2237,12 +2222,11 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
2237
2222
* @param {shaka.extern.PlayerConfiguration } preloadConfig
2238
2223
* @param {boolean= } allowPrefetch
2239
2224
* @param {boolean= } disableVideo
2240
- * @param {boolean= } allowMakeAbrManager
2241
2225
* @return {!Promise<!shaka.media.PreloadManager> }
2242
2226
* @private
2243
2227
*/
2244
2228
async makePreloadManager_ ( assetUri , startTime , mimeType , preloadConfig ,
2245
- allowPrefetch = true , disableVideo = false , allowMakeAbrManager = true ) {
2229
+ allowPrefetch = true , disableVideo = false ) {
2246
2230
goog . asserts . assert ( this . networkingEngine_ , 'Must have net engine' ) ;
2247
2231
/** @type {?shaka.media.PreloadManager } */
2248
2232
let preloadManager = null ;
@@ -2466,14 +2450,9 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
2466
2450
manifestFilterer,
2467
2451
networkingEngine,
2468
2452
allowPrefetch,
2469
- allowMakeAbrManager,
2470
2453
} ;
2471
2454
preloadManager = new shaka . media . PreloadManager (
2472
2455
assetUri , mimeType , startTime , playerInterface ) ;
2473
- if ( ! allowMakeAbrManager ) {
2474
- preloadManager . attachAbrManager (
2475
- this . abrManager_ , this . abrManagerFactory_ ) ;
2476
- }
2477
2456
return preloadManager ;
2478
2457
}
2479
2458
@@ -3746,13 +3725,6 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
3746
3725
getPreloadManager = ( ) => null ;
3747
3726
}
3748
3727
3749
- const getAbrManager = ( ) => {
3750
- if ( getPreloadManager ( ) ) {
3751
- return getPreloadManager ( ) . getAbrManager ( ) ;
3752
- } else {
3753
- return this . abrManager_ ;
3754
- }
3755
- } ;
3756
3728
const getParser = ( ) => {
3757
3729
if ( getPreloadManager ( ) ) {
3758
3730
return getPreloadManager ( ) . getParser ( ) ;
@@ -3784,14 +3756,12 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
3784
3756
/** @type {shaka.net.NetworkingEngine.onProgressUpdated } */
3785
3757
const onProgressUpdated_ = ( deltaTimeMs ,
3786
3758
bytesDownloaded , allowSwitch , request , context ) => {
3787
- // In some situations, such as during offline storage, the abr manager
3788
- // might not yet exist. Therefore, we need to check if abr manager has
3789
- // been initialized before using it.
3790
- const abrManager = getAbrManager ( ) ;
3791
- if ( abrManager ) {
3792
- abrManager . segmentDownloaded ( deltaTimeMs , bytesDownloaded ,
3793
- allowSwitch , request , context ) ;
3794
- }
3759
+ lateQueue ( ( ) => {
3760
+ if ( this . abrManager_ ) {
3761
+ this . abrManager_ . segmentDownloaded ( deltaTimeMs , bytesDownloaded ,
3762
+ allowSwitch , request , context ) ;
3763
+ }
3764
+ } ) ;
3795
3765
} ;
3796
3766
/** @type {shaka.net.NetworkingEngine.OnHeadersReceived } */
3797
3767
const onHeadersReceived_ = ( headers , request , requestType ) => {
@@ -3831,7 +3801,9 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
3831
3801
/** @type {shaka.net.NetworkingEngine.OnRequest } */
3832
3802
const onRequest_ = ( type , request , context ) => {
3833
3803
lateQueue ( ( ) => {
3834
- this . cmcdManager_ . applyRequestData ( type , request , context ) ;
3804
+ if ( this . cmcdManager_ ) {
3805
+ this . cmcdManager_ . applyRequestData ( type , request , context ) ;
3806
+ }
3835
3807
} ) ;
3836
3808
} ;
3837
3809
0 commit comments