File tree 2 files changed +7
-4
lines changed
2 files changed +7
-4
lines changed Original file line number Diff line number Diff line change @@ -506,8 +506,8 @@ export default class BaseStreamController
506
506
part ? ' part: ' + part . index : ''
507
507
} of ${ this . logPrefix === '[stream-controller]' ? 'level' : 'track' } ${
508
508
frag . level
509
- } (frag:[${ ( frag . startPTS || NaN ) . toFixed ( 3 ) } -${ (
510
- frag . endPTS || NaN
509
+ } (frag:[${ ( frag . startPTS ?? NaN ) . toFixed ( 3 ) } -${ (
510
+ frag . endPTS ?? NaN
511
511
) . toFixed ( 3 ) } ] > buffer:${
512
512
media
513
513
? TimeRanges . toString ( BufferHelper . getBuffered ( media ) )
Original file line number Diff line number Diff line change @@ -99,13 +99,14 @@ class TSDemuxer implements Demuxer {
99
99
}
100
100
101
101
static syncOffset ( data : Uint8Array ) : number {
102
+ const length = data . length ;
102
103
const scanwindow =
103
104
Math . min ( PACKET_LENGTH * 5 , data . length - PACKET_LENGTH ) + 1 ;
104
105
let i = 0 ;
105
106
while ( i < scanwindow ) {
106
107
// a TS init segment should contain at least 2 TS packets: PAT and PMT, each starting with 0x47
107
108
let foundPat = false ;
108
- for ( let j = 0 ; j < scanwindow ; j += PACKET_LENGTH ) {
109
+ for ( let j = i ; j < length ; j += PACKET_LENGTH ) {
109
110
if ( data [ j ] === 0x47 ) {
110
111
if ( ! foundPat && parsePID ( data , j ) === 0 ) {
111
112
foundPat = true ;
@@ -357,7 +358,9 @@ class TSDemuxer implements Demuxer {
357
358
}
358
359
359
360
if ( unknownPID !== null && ! pmtParsed ) {
360
- logger . log ( `unknown PID '${ unknownPID } ' in TS found` ) ;
361
+ logger . warn (
362
+ `MPEG-TS PMT found at ${ start } after unknown PID '${ unknownPID } '. Backtracking to sync byte @${ syncOffset } to parse all TS packets.`
363
+ ) ;
361
364
unknownPID = null ;
362
365
// we set it to -188, the += 188 in the for loop will reset start to 0
363
366
start = syncOffset - 188 ;
You can’t perform that action at this time.
0 commit comments