@give-tech/ec-player 0.0.1-beta.16 → 0.0.1-beta.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fMP4Demuxer.d.ts","sourceRoot":"","sources":["../../src/demuxer/fMP4Demuxer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA8CH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,OAAO;IACtB,mBAAmB,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,OAAO;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,OAAO,EAAE,UAAU,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,EAAE,OAAO,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,CAAA;IACjC,KAAK,EAAE,OAAO,EAAE,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAMD,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAO;IACxB,OAAO,CAAC,OAAO,CAAI;IACnB,OAAO,CAAC,IAAI,CAA0B;IACtC,OAAO,CAAC,IAAI,CAA0B;IACtC,OAAO,CAAC,MAAM,CAAQ;IAEtB;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI;IAyBtD;;OAEG;IACH,OAAO,CAAC,SAAS;IAkBjB;;OAEG;IACH,OAAO,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"fMP4Demuxer.d.ts","sourceRoot":"","sources":["../../src/demuxer/fMP4Demuxer.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -464,6 +464,7 @@ class fMP4Demuxer {
|
|
|
464
464
|
const endOffset = trakOffset + trakSize;
|
|
465
465
|
let currentTrackId = null;
|
|
466
466
|
let isVideoTrack = false;
|
|
467
|
+
console.log("[fMP4Demuxer] parseTrak called, size:", trakSize);
|
|
467
468
|
while (offset < endOffset - 8) {
|
|
468
469
|
const boxSize = readUint32$1(data, offset);
|
|
469
470
|
const boxType = readFourCC(data, offset + 4);
|
|
@@ -476,10 +477,12 @@ class fMP4Demuxer {
|
|
|
476
477
|
} else {
|
|
477
478
|
currentTrackId = readUint32$1(data, boxDataStart + 1 + 3 + 4 + 4);
|
|
478
479
|
}
|
|
480
|
+
console.log("[fMP4Demuxer] tkhd: version=", version, "trackId=", currentTrackId);
|
|
479
481
|
} else if (boxType === "mdia") {
|
|
480
482
|
isVideoTrack = this.parseMdiaAndCheckVideo(data, offset, boxSize);
|
|
481
483
|
if (isVideoTrack && currentTrackId !== null) {
|
|
482
484
|
this.trackId = currentTrackId;
|
|
485
|
+
console.log("[fMP4Demuxer] Found video track, trackId:", currentTrackId);
|
|
483
486
|
}
|
|
484
487
|
}
|
|
485
488
|
offset += boxSize;
|
|
@@ -603,6 +606,7 @@ class fMP4Demuxer {
|
|
|
603
606
|
if (boxSize < 8) break;
|
|
604
607
|
if (boxType === "hvcC") {
|
|
605
608
|
this.hvcC = data.slice(offset, offset + boxSize);
|
|
609
|
+
console.log("[fMP4Demuxer] Found hvcC, size:", boxSize);
|
|
606
610
|
return;
|
|
607
611
|
}
|
|
608
612
|
offset += boxSize;
|
|
@@ -764,7 +768,9 @@ class fMP4Demuxer {
|
|
|
764
768
|
const samples = [];
|
|
765
769
|
for (const traf of moof.trafs) {
|
|
766
770
|
if (!traf.tfhd || !traf.tfdt) continue;
|
|
771
|
+
console.log(`[fMP4Demuxer] extractSamples: traf.trackId=${traf.tfhd.trackId}, videoTrackId=${this.trackId}`);
|
|
767
772
|
if (traf.tfhd.trackId !== this.trackId) {
|
|
773
|
+
console.log(`[fMP4Demuxer] Skipping track ${traf.tfhd.trackId}`);
|
|
768
774
|
continue;
|
|
769
775
|
}
|
|
770
776
|
let baseDts = traf.tfdt.baseMediaDecodeTime;
|
|
@@ -1226,11 +1232,16 @@ class SegmentPrefetcher extends BasePrefetcher {
|
|
|
1226
1232
|
/**
|
|
1227
1233
|
* 处理预取队列中的数据
|
|
1228
1234
|
*
|
|
1235
|
+
* @param maxSegments 最多处理的分片数量(默认处理所有)
|
|
1229
1236
|
* @returns 是否有数据被处理
|
|
1230
1237
|
*/
|
|
1231
|
-
processQueue() {
|
|
1238
|
+
processQueue(maxSegments) {
|
|
1232
1239
|
let processed = false;
|
|
1240
|
+
let processedCount = 0;
|
|
1233
1241
|
while (this.prefetchQueue.length > 0) {
|
|
1242
|
+
if (maxSegments !== void 0 && processedCount >= maxSegments) {
|
|
1243
|
+
break;
|
|
1244
|
+
}
|
|
1234
1245
|
const item = this.prefetchQueue[0];
|
|
1235
1246
|
if (item.segmentIndex !== this.currentSegmentIndex) {
|
|
1236
1247
|
break;
|
|
@@ -1246,6 +1257,7 @@ class SegmentPrefetcher extends BasePrefetcher {
|
|
|
1246
1257
|
callbacks.onSegmentParsed?.(item.segmentIndex, itemCount);
|
|
1247
1258
|
console.log(`[SegmentPrefetcher] Parsed segment #${item.segmentIndex}: ${itemCount} items, ${parseTime.toFixed(0)}ms`);
|
|
1248
1259
|
processed = true;
|
|
1260
|
+
processedCount++;
|
|
1249
1261
|
}
|
|
1250
1262
|
return processed;
|
|
1251
1263
|
}
|
|
@@ -1717,7 +1729,11 @@ class HLSPlayer extends BasePlayer {
|
|
|
1717
1729
|
console.log("[DecodeLoop] START, isFMP4:", this.isFMP4);
|
|
1718
1730
|
let batchCount = 0;
|
|
1719
1731
|
while (this.isPlaying && !this.decodeLoopAbort) {
|
|
1720
|
-
this.
|
|
1732
|
+
const sampleQueueSize = this.sampleQueue.length;
|
|
1733
|
+
const maxSamplesBeforePause = this.config.maxQueueSize * 3;
|
|
1734
|
+
if (sampleQueueSize < maxSamplesBeforePause && this.prefetcher) {
|
|
1735
|
+
this.prefetcher.processQueue(1);
|
|
1736
|
+
}
|
|
1721
1737
|
if (!this.config.isLive && this.frameBuffer.length >= this.config.targetBufferSize) {
|
|
1722
1738
|
await this.sleep(10);
|
|
1723
1739
|
continue;
|