File tree Expand file tree Collapse file tree 3 files changed +20
-13
lines changed Expand file tree Collapse file tree 3 files changed +20
-13
lines changed Original file line number Diff line number Diff line change @@ -98,16 +98,10 @@ export default class FragmentPreloader extends FragmentLoader {
9898 this . abort ( ) ;
9999 }
100100
101- this . log (
102- `[${ this . getStateString ( ) } ] create request for [${ frag . type } ] ${
103- frag . sn
104- } :${ part ?. index } `,
105- ) ;
106-
107101 let loadPromise ;
108102 if ( part !== undefined ) {
109103 // TODO: Use fetch loader to progressively load open-ended byterange requests
110- if ( part . byteRangeEndOffset === 2 ** 53 - 1 ) {
104+ if ( part ? .byteRangeEndOffset === Number . MAX_SAFE_INTEGER ) {
111105 return ;
112106 } else {
113107 loadPromise = this . loadPart ( frag , part , noop ) ;
@@ -116,6 +110,12 @@ export default class FragmentPreloader extends FragmentLoader {
116110 loadPromise = this . load ( frag , noop ) ;
117111 }
118112
113+ this . log (
114+ `[${ this . getStateString ( ) } ] create request for [${ frag . type } ] ${
115+ frag . sn
116+ } :${ part ?. index } `,
117+ ) ;
118+
119119 const request = {
120120 frag,
121121 part,
Original file line number Diff line number Diff line change @@ -58,7 +58,13 @@ export class BaseSegment {
5858 } else {
5959 start = parseInt ( params [ 1 ] ) ;
6060 }
61- this . _byteRange = [ start , parseInt ( params [ 0 ] ) + start ] ;
61+ const bytelength = parseInt ( params [ 0 ] ) ;
62+ const offsetEnd =
63+ Number . isSafeInteger ( bytelength ) && bytelength !== Number . MAX_SAFE_INTEGER
64+ ? start + bytelength
65+ : Number . MAX_SAFE_INTEGER ;
66+
67+ this . _byteRange = [ start , offsetEnd ] ;
6268 }
6369
6470 get byteRange ( ) : [ number , number ] | [ ] {
Original file line number Diff line number Diff line change @@ -698,11 +698,12 @@ export default class M3U8Parser {
698698 preloadHintAttrs [ 'BYTERANGE-LENGTH' ]
699699 ) {
700700 const byteRangeStartOffset = preloadHintAttrs [ 'BYTERANGE-START' ] ;
701- let byteRangeLength = preloadHintAttrs [ 'BYTERANGE-LENGTH' ] ;
702- if ( byteRangeLength <= 0 ) {
703- byteRangeLength = 2 ** 53 - 1 ;
704- }
705- if ( isFinite ( byteRangeLength ) && isFinite ( byteRangeStartOffset ) ) {
701+
702+ if ( isFinite ( byteRangeStartOffset ) ) {
703+ let byteRangeLength = preloadHintAttrs [ 'BYTERANGE-LENGTH' ] ;
704+ if ( ! isFinite ( byteRangeLength ) || byteRangeLength <= 0 ) {
705+ byteRangeLength = Number . MAX_SAFE_INTEGER ;
706+ }
706707 byteRange = `${ byteRangeLength } @${ byteRangeStartOffset } ` ;
707708 }
708709 }
You can’t perform that action at this time.
0 commit comments