From 2360a6c5a3f95b216ab59eb03ba1236053163862 Mon Sep 17 00:00:00 2001 From: Rob Walch Date: Mon, 17 Feb 2020 15:38:29 -0500 Subject: [PATCH] Fix issue in TS Demuxer that skipped AAC frames at the end of PES packets Fixes #2528 --- src/demux/tsdemuxer.js | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/demux/tsdemuxer.js b/src/demux/tsdemuxer.js index 81ae6e7b9e9..f0325746305 100644 --- a/src/demux/tsdemuxer.js +++ b/src/demux/tsdemuxer.js @@ -995,15 +995,21 @@ class TSDemuxer { // scan for aac samples while (offset < len) { - if (ADTS.isHeader(data, offset) && (offset + 5) < len) { - let frame = ADTS.appendFrame(track, data, offset, pts, frameIndex); - if (frame) { - // logger.log(`${Math.round(frame.sample.pts)} : AAC`); - offset += frame.length; - stamp = frame.sample.pts; - frameIndex++; + if (ADTS.isHeader(data, offset)) { + if ((offset + 5) < len) { + let frame = ADTS.appendFrame(track, data, offset, pts, frameIndex); + if (frame) { + // logger.log(`${Math.round(frame.sample.pts)} : AAC`); + offset += frame.length; + stamp = frame.sample.pts; + frameIndex++; + } else { + // Remaining data will be added to aacOverFlow + // logger.log('Unable to parse AAC frame'); + break; + } } else { - // logger.log('Unable to parse AAC frame'); + // Remaining data will be added to aacOverFlow break; } } else {