node-av 6.2.0-beta.2 → 6.2.0-beta.20
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.
- package/README.md +13 -8
- package/dist/api/audio-frame-buffer.d.ts +73 -1
- package/dist/api/audio-frame-buffer.js +127 -1
- package/dist/api/audio-frame-buffer.js.map +1 -1
- package/dist/api/bitstream-filter.d.ts +82 -4
- package/dist/api/bitstream-filter.js +197 -100
- package/dist/api/bitstream-filter.js.map +1 -1
- package/dist/api/decoder.d.ts +5 -0
- package/dist/api/decoder.js +13 -6
- package/dist/api/decoder.js.map +1 -1
- package/dist/api/demuxer.d.ts +15 -1
- package/dist/api/demuxer.js +165 -54
- package/dist/api/demuxer.js.map +1 -1
- package/dist/api/encoder-pool.d.ts +43 -1
- package/dist/api/encoder-pool.js +121 -9
- package/dist/api/encoder-pool.js.map +1 -1
- package/dist/api/encoder.d.ts +19 -0
- package/dist/api/encoder.js +112 -45
- package/dist/api/encoder.js.map +1 -1
- package/dist/api/filter.js +15 -6
- package/dist/api/filter.js.map +1 -1
- package/dist/api/fmp4-stream.d.ts +167 -3
- package/dist/api/fmp4-stream.js +423 -90
- package/dist/api/fmp4-stream.js.map +1 -1
- package/dist/api/hardware.d.ts +2 -0
- package/dist/api/hardware.js +25 -4
- package/dist/api/hardware.js.map +1 -1
- package/dist/api/io-stream.d.ts +3 -2
- package/dist/api/io-stream.js +61 -5
- package/dist/api/io-stream.js.map +1 -1
- package/dist/api/muxer.d.ts +14 -0
- package/dist/api/muxer.js +131 -51
- package/dist/api/muxer.js.map +1 -1
- package/dist/api/pipeline.d.ts +24 -0
- package/dist/api/pipeline.js +76 -5
- package/dist/api/pipeline.js.map +1 -1
- package/dist/api/rtp-stream.d.ts +56 -6
- package/dist/api/rtp-stream.js +252 -80
- package/dist/api/rtp-stream.js.map +1 -1
- package/dist/api/scaler.d.ts +105 -17
- package/dist/api/scaler.js +326 -108
- package/dist/api/scaler.js.map +1 -1
- package/dist/api/utilities/async-queue.d.ts +3 -0
- package/dist/api/utilities/async-queue.js +8 -0
- package/dist/api/utilities/async-queue.js.map +1 -1
- package/dist/api/webrtc-stream.d.ts +2 -0
- package/dist/api/webrtc-stream.js +46 -12
- package/dist/api/webrtc-stream.js.map +1 -1
- package/dist/api/whisper.d.ts +2 -0
- package/dist/api/whisper.js +63 -23
- package/dist/api/whisper.js.map +1 -1
- package/dist/ffmpeg/install.js +115 -29
- package/dist/ffmpeg/install.js.map +1 -1
- package/dist/ffmpeg/utils.js +7 -4
- package/dist/ffmpeg/utils.js.map +1 -1
- package/dist/lib/binding.d.ts +1 -0
- package/dist/lib/binding.js +12 -16
- package/dist/lib/binding.js.map +1 -1
- package/dist/lib/codec-context.d.ts +0 -2
- package/dist/lib/codec-context.js +4 -22
- package/dist/lib/codec-context.js.map +1 -1
- package/dist/lib/filter-context.d.ts +0 -1
- package/dist/lib/filter-context.js +2 -11
- package/dist/lib/filter-context.js.map +1 -1
- package/dist/lib/format-context.d.ts +63 -7
- package/dist/lib/format-context.js +70 -21
- package/dist/lib/format-context.js.map +1 -1
- package/dist/lib/frame.d.ts +11 -11
- package/dist/lib/frame.js +13 -20
- package/dist/lib/frame.js.map +1 -1
- package/dist/lib/hardware-frames-context.d.ts +0 -1
- package/dist/lib/hardware-frames-context.js +2 -8
- package/dist/lib/hardware-frames-context.js.map +1 -1
- package/dist/lib/io-context.d.ts +4 -2
- package/dist/lib/io-context.js +4 -2
- package/dist/lib/io-context.js.map +1 -1
- package/dist/lib/native-types.d.ts +4 -4
- package/dist/lib/option.d.ts +26 -0
- package/dist/lib/option.js +42 -18
- package/dist/lib/option.js.map +1 -1
- package/dist/lib/packet.d.ts +5 -0
- package/dist/lib/packet.js +5 -0
- package/dist/lib/packet.js.map +1 -1
- package/dist/lib/stream.d.ts +3 -4
- package/dist/lib/stream.js +17 -24
- package/dist/lib/stream.js.map +1 -1
- package/install/check.js +40 -79
- package/package.json +43 -32
- package/build_mac_local.sh +0 -69
|
@@ -106,6 +106,7 @@ export class BitStreamFilterAPI {
|
|
|
106
106
|
source;
|
|
107
107
|
initialized = false;
|
|
108
108
|
packet;
|
|
109
|
+
pendingOutput = [];
|
|
109
110
|
isClosed = false;
|
|
110
111
|
// Worker pattern for push-based processing
|
|
111
112
|
inputQueue;
|
|
@@ -362,10 +363,7 @@ export class BitStreamFilterAPI {
|
|
|
362
363
|
}
|
|
363
364
|
this.ensureInitialized();
|
|
364
365
|
// Send packet to filter (null signals EOF/flush)
|
|
365
|
-
|
|
366
|
-
if (sendRet < 0 && sendRet !== AVERROR_EOF && sendRet !== AVERROR_EAGAIN) {
|
|
367
|
-
FFmpegError.throwIfError(sendRet, 'Failed to send packet to bitstream filter');
|
|
368
|
-
}
|
|
366
|
+
await this.sendPacketWithRetry(packet);
|
|
369
367
|
}
|
|
370
368
|
/**
|
|
371
369
|
* Send a packet to the filter synchronously.
|
|
@@ -426,10 +424,7 @@ export class BitStreamFilterAPI {
|
|
|
426
424
|
}
|
|
427
425
|
this.ensureInitialized();
|
|
428
426
|
// Send packet to filter (null signals EOF/flush)
|
|
429
|
-
|
|
430
|
-
if (sendRet < 0 && sendRet !== AVERROR_EOF && sendRet !== AVERROR_EAGAIN) {
|
|
431
|
-
FFmpegError.throwIfError(sendRet, 'Failed to send packet to bitstream filter');
|
|
432
|
-
}
|
|
427
|
+
this.sendPacketWithRetrySync(packet);
|
|
433
428
|
}
|
|
434
429
|
/**
|
|
435
430
|
* Filter a packet to packets.
|
|
@@ -750,8 +745,9 @@ export class BitStreamFilterAPI {
|
|
|
750
745
|
* Sends null packet to filter to signal end-of-stream.
|
|
751
746
|
* Does nothing if filter is closed.
|
|
752
747
|
* Must call receive() or flushPackets() to get remaining buffered packets.
|
|
748
|
+
* Does not reset filter state - use {@link reset} for that.
|
|
753
749
|
*
|
|
754
|
-
* Direct mapping to av_bsf_send_packet(NULL)
|
|
750
|
+
* Direct mapping to av_bsf_send_packet(NULL).
|
|
755
751
|
*
|
|
756
752
|
* @throws {FFmpegError} If flush fails
|
|
757
753
|
*
|
|
@@ -779,13 +775,9 @@ export class BitStreamFilterAPI {
|
|
|
779
775
|
if (this.isClosed || !this.initialized) {
|
|
780
776
|
return;
|
|
781
777
|
}
|
|
782
|
-
// Send EOF
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
FFmpegError.throwIfError(sendRet, 'Failed to flush bitstream filter');
|
|
786
|
-
}
|
|
787
|
-
// Also flush the context to reset internal state
|
|
788
|
-
this.ctx.flush();
|
|
778
|
+
// Send EOF only - resetting via av_bsf_flush() here would discard the
|
|
779
|
+
// packets that buffering filters (vp9_superframe, setts, ...) still hold.
|
|
780
|
+
await this.sendPacketWithRetry(null);
|
|
789
781
|
}
|
|
790
782
|
/**
|
|
791
783
|
* Flush filter and signal end-of-stream synchronously.
|
|
@@ -794,8 +786,9 @@ export class BitStreamFilterAPI {
|
|
|
794
786
|
* Sends null packet to filter to signal end-of-stream.
|
|
795
787
|
* Does nothing if filter is closed.
|
|
796
788
|
* Must call receiveSync() or flushPacketsSync() to get remaining buffered packets.
|
|
789
|
+
* Does not reset filter state - use {@link reset} for that.
|
|
797
790
|
*
|
|
798
|
-
* Direct mapping to av_bsf_send_packet(NULL)
|
|
791
|
+
* Direct mapping to av_bsf_send_packet(NULL).
|
|
799
792
|
*
|
|
800
793
|
* @throws {FFmpegError} If flush fails
|
|
801
794
|
*
|
|
@@ -822,13 +815,8 @@ export class BitStreamFilterAPI {
|
|
|
822
815
|
if (this.isClosed || !this.initialized) {
|
|
823
816
|
return;
|
|
824
817
|
}
|
|
825
|
-
//
|
|
826
|
-
|
|
827
|
-
if (sendRet < 0 && sendRet !== AVERROR_EOF && sendRet !== AVERROR_EAGAIN) {
|
|
828
|
-
FFmpegError.throwIfError(sendRet, 'Failed to flush bitstream filter');
|
|
829
|
-
}
|
|
830
|
-
// Also flush the context to reset internal state
|
|
831
|
-
this.ctx.flush();
|
|
818
|
+
// See flush(): send EOF only, never av_bsf_flush()
|
|
819
|
+
this.sendPacketWithRetrySync(null);
|
|
832
820
|
}
|
|
833
821
|
/**
|
|
834
822
|
* Receive packet from filter.
|
|
@@ -875,30 +863,12 @@ export class BitStreamFilterAPI {
|
|
|
875
863
|
if (this.isClosed || !this.initialized) {
|
|
876
864
|
return null;
|
|
877
865
|
}
|
|
878
|
-
//
|
|
879
|
-
this.
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
// Filters like aac_adtstoasc deliver new global headers via packet side
|
|
883
|
-
// data rather than par_out; fold it into the output parameters so callers
|
|
884
|
-
// (and Muxer's bsf integration) can read it from outputCodecParameters.
|
|
885
|
-
this.foldNewExtradata(this.packet);
|
|
886
|
-
// Got a packet, clone it for the user
|
|
887
|
-
const cloned = this.packet.clone();
|
|
888
|
-
if (!cloned) {
|
|
889
|
-
throw new Error('Failed to clone packet (out of memory)');
|
|
890
|
-
}
|
|
891
|
-
return cloned;
|
|
892
|
-
}
|
|
893
|
-
else if (recvRet === AVERROR_EAGAIN || recvRet === AVERROR_EOF) {
|
|
894
|
-
// Need more data or end of stream
|
|
895
|
-
return null;
|
|
896
|
-
}
|
|
897
|
-
else {
|
|
898
|
-
// Error
|
|
899
|
-
FFmpegError.throwIfError(recvRet, 'Failed to receive packet from bitstream filter');
|
|
900
|
-
return null;
|
|
866
|
+
// Deliver output buffered by an EAGAIN-triggered drain first (FIFO order)
|
|
867
|
+
const pending = this.pendingOutput.shift();
|
|
868
|
+
if (pending) {
|
|
869
|
+
return pending;
|
|
901
870
|
}
|
|
871
|
+
return await this.receiveFromContext();
|
|
902
872
|
}
|
|
903
873
|
/**
|
|
904
874
|
* Receive packet from filter synchronously.
|
|
@@ -946,28 +916,12 @@ export class BitStreamFilterAPI {
|
|
|
946
916
|
if (this.isClosed || !this.initialized) {
|
|
947
917
|
return null;
|
|
948
918
|
}
|
|
949
|
-
//
|
|
950
|
-
this.
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
// See receive(): fold side-data extradata into the output parameters.
|
|
954
|
-
this.foldNewExtradata(this.packet);
|
|
955
|
-
// Got a packet, clone it for the user
|
|
956
|
-
const cloned = this.packet.clone();
|
|
957
|
-
if (!cloned) {
|
|
958
|
-
throw new Error('Failed to clone packet (out of memory)');
|
|
959
|
-
}
|
|
960
|
-
return cloned;
|
|
961
|
-
}
|
|
962
|
-
else if (recvRet === AVERROR_EAGAIN || recvRet === AVERROR_EOF) {
|
|
963
|
-
// Need more data or end of stream
|
|
964
|
-
return null;
|
|
965
|
-
}
|
|
966
|
-
else {
|
|
967
|
-
// Error
|
|
968
|
-
FFmpegError.throwIfError(recvRet, 'Failed to receive packet from bitstream filter');
|
|
969
|
-
return null;
|
|
919
|
+
// See receive(): pending output first
|
|
920
|
+
const pending = this.pendingOutput.shift();
|
|
921
|
+
if (pending) {
|
|
922
|
+
return pending;
|
|
970
923
|
}
|
|
924
|
+
return this.receiveFromContextSync();
|
|
971
925
|
}
|
|
972
926
|
pipeTo(target, streamIndex) {
|
|
973
927
|
if (target instanceof Muxer) {
|
|
@@ -976,10 +930,22 @@ export class BitStreamFilterAPI {
|
|
|
976
930
|
// Start pipe task: filter.outputQueue -> output
|
|
977
931
|
this.pipeToPromise = (async () => {
|
|
978
932
|
while (true) {
|
|
979
|
-
const
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
933
|
+
const env_3 = { stack: [], error: void 0, hasError: false };
|
|
934
|
+
try {
|
|
935
|
+
// writePacket clones internally, so the queue-owned packet must be
|
|
936
|
+
// freed here - `using` also covers the write throwing
|
|
937
|
+
const packet = __addDisposableResource(env_3, await this.receiveFromQueue(), false);
|
|
938
|
+
if (!packet)
|
|
939
|
+
break;
|
|
940
|
+
await target.writePacket(packet, streamIndex);
|
|
941
|
+
}
|
|
942
|
+
catch (e_3) {
|
|
943
|
+
env_3.error = e_3;
|
|
944
|
+
env_3.hasError = true;
|
|
945
|
+
}
|
|
946
|
+
finally {
|
|
947
|
+
__disposeResources(env_3);
|
|
948
|
+
}
|
|
983
949
|
}
|
|
984
950
|
})();
|
|
985
951
|
// Return control without pipeTo (terminal stage)
|
|
@@ -1029,6 +995,9 @@ export class BitStreamFilterAPI {
|
|
|
1029
995
|
* @see {@link flushPacketsSync} For synchronous version
|
|
1030
996
|
*/
|
|
1031
997
|
async *flushPackets() {
|
|
998
|
+
// Signal EOF first - buffering filters only release their queued packets
|
|
999
|
+
// after av_bsf_send_packet(NULL)
|
|
1000
|
+
await this.flush();
|
|
1032
1001
|
while (true) {
|
|
1033
1002
|
const packet = await this.receive();
|
|
1034
1003
|
if (!packet)
|
|
@@ -1041,7 +1010,7 @@ export class BitStreamFilterAPI {
|
|
|
1041
1010
|
* Synchronous version of flushPackets.
|
|
1042
1011
|
*
|
|
1043
1012
|
* Convenient sync iteration over remaining packets.
|
|
1044
|
-
* Automatically retrieves buffered packets
|
|
1013
|
+
* Automatically sends flush signal and retrieves buffered packets.
|
|
1045
1014
|
* Useful for end-of-stream processing.
|
|
1046
1015
|
*
|
|
1047
1016
|
* @yields {Packet} Buffered packets
|
|
@@ -1061,6 +1030,8 @@ export class BitStreamFilterAPI {
|
|
|
1061
1030
|
* @see {@link flushPackets} For async version
|
|
1062
1031
|
*/
|
|
1063
1032
|
*flushPacketsSync() {
|
|
1033
|
+
// See flushPackets(): EOF first, then drain
|
|
1034
|
+
this.flushSync();
|
|
1064
1035
|
while (true) {
|
|
1065
1036
|
const packet = this.receiveSync();
|
|
1066
1037
|
if (!packet)
|
|
@@ -1082,12 +1053,14 @@ export class BitStreamFilterAPI {
|
|
|
1082
1053
|
* filter.reset();
|
|
1083
1054
|
* ```
|
|
1084
1055
|
*
|
|
1085
|
-
* @see {@link flush} For
|
|
1056
|
+
* @see {@link flush} For end-of-stream signaling with packet retrieval
|
|
1086
1057
|
*/
|
|
1087
1058
|
reset() {
|
|
1088
1059
|
if (this.isClosed) {
|
|
1089
1060
|
return;
|
|
1090
1061
|
}
|
|
1062
|
+
// Drop output buffered from an EAGAIN drain - it belongs to the old segment
|
|
1063
|
+
this.clearPendingOutput();
|
|
1091
1064
|
this.ctx.flush();
|
|
1092
1065
|
}
|
|
1093
1066
|
/**
|
|
@@ -1112,6 +1085,7 @@ export class BitStreamFilterAPI {
|
|
|
1112
1085
|
this.outputQueue.close();
|
|
1113
1086
|
this.inputQueue.clear();
|
|
1114
1087
|
this.outputQueue.clear();
|
|
1088
|
+
this.clearPendingOutput();
|
|
1115
1089
|
this.packet.free();
|
|
1116
1090
|
this.ctx.free();
|
|
1117
1091
|
}
|
|
@@ -1178,6 +1152,146 @@ export class BitStreamFilterAPI {
|
|
|
1178
1152
|
FFmpegError.throwIfError(initRet, 'Failed to initialize bitstream filter');
|
|
1179
1153
|
this.initialized = true;
|
|
1180
1154
|
}
|
|
1155
|
+
/**
|
|
1156
|
+
* Send a packet to the filter context, retrying once on EAGAIN.
|
|
1157
|
+
*
|
|
1158
|
+
* av_bsf_send_packet() returning EAGAIN means the packet was NOT consumed:
|
|
1159
|
+
* the filter holds output that must be received before it accepts more
|
|
1160
|
+
* input. That output is drained into pendingOutput (delivered by subsequent
|
|
1161
|
+
* receive() calls in FIFO order) and the send is retried, mirroring how the
|
|
1162
|
+
* FFmpeg CLI interleaves send/receive.
|
|
1163
|
+
*
|
|
1164
|
+
* @param packet - Packet to send, or null to signal EOF
|
|
1165
|
+
*
|
|
1166
|
+
* @throws {FFmpegError} If sending fails
|
|
1167
|
+
*
|
|
1168
|
+
* @internal
|
|
1169
|
+
*/
|
|
1170
|
+
async sendPacketWithRetry(packet) {
|
|
1171
|
+
let sendRet = await this.ctx.sendPacket(packet);
|
|
1172
|
+
if (sendRet === AVERROR_EAGAIN) {
|
|
1173
|
+
while (true) {
|
|
1174
|
+
const outPacket = await this.receiveFromContext();
|
|
1175
|
+
if (!outPacket)
|
|
1176
|
+
break;
|
|
1177
|
+
this.pendingOutput.push(outPacket);
|
|
1178
|
+
}
|
|
1179
|
+
sendRet = await this.ctx.sendPacket(packet);
|
|
1180
|
+
}
|
|
1181
|
+
if (sendRet < 0 && sendRet !== AVERROR_EOF && sendRet !== AVERROR_EAGAIN) {
|
|
1182
|
+
FFmpegError.throwIfError(sendRet, 'Failed to send packet to bitstream filter');
|
|
1183
|
+
}
|
|
1184
|
+
}
|
|
1185
|
+
/**
|
|
1186
|
+
* Send a packet to the filter context, retrying once on EAGAIN.
|
|
1187
|
+
* Synchronous version of sendPacketWithRetry.
|
|
1188
|
+
*
|
|
1189
|
+
* @param packet - Packet to send, or null to signal EOF
|
|
1190
|
+
*
|
|
1191
|
+
* @throws {FFmpegError} If sending fails
|
|
1192
|
+
*
|
|
1193
|
+
* @internal
|
|
1194
|
+
*/
|
|
1195
|
+
sendPacketWithRetrySync(packet) {
|
|
1196
|
+
let sendRet = this.ctx.sendPacketSync(packet);
|
|
1197
|
+
if (sendRet === AVERROR_EAGAIN) {
|
|
1198
|
+
while (true) {
|
|
1199
|
+
const outPacket = this.receiveFromContextSync();
|
|
1200
|
+
if (!outPacket)
|
|
1201
|
+
break;
|
|
1202
|
+
this.pendingOutput.push(outPacket);
|
|
1203
|
+
}
|
|
1204
|
+
sendRet = this.ctx.sendPacketSync(packet);
|
|
1205
|
+
}
|
|
1206
|
+
if (sendRet < 0 && sendRet !== AVERROR_EOF && sendRet !== AVERROR_EAGAIN) {
|
|
1207
|
+
FFmpegError.throwIfError(sendRet, 'Failed to send packet to bitstream filter');
|
|
1208
|
+
}
|
|
1209
|
+
}
|
|
1210
|
+
/**
|
|
1211
|
+
* Receive one packet directly from the filter context.
|
|
1212
|
+
*
|
|
1213
|
+
* Bypasses pendingOutput so an EAGAIN drain can buffer packets without
|
|
1214
|
+
* re-reading them.
|
|
1215
|
+
*
|
|
1216
|
+
* @returns Cloned packet or null if no packets available
|
|
1217
|
+
*
|
|
1218
|
+
* @throws {FFmpegError} If receive fails
|
|
1219
|
+
*
|
|
1220
|
+
* @throws {Error} If packet cloning fails (out of memory)
|
|
1221
|
+
*
|
|
1222
|
+
* @internal
|
|
1223
|
+
*/
|
|
1224
|
+
async receiveFromContext() {
|
|
1225
|
+
// Clear previous packet data
|
|
1226
|
+
this.packet.unref();
|
|
1227
|
+
const recvRet = await this.ctx.receivePacket(this.packet);
|
|
1228
|
+
return this.consumeReceived(recvRet);
|
|
1229
|
+
}
|
|
1230
|
+
/**
|
|
1231
|
+
* Receive one packet directly from the filter context.
|
|
1232
|
+
* Synchronous version of receiveFromContext.
|
|
1233
|
+
*
|
|
1234
|
+
* @returns Cloned packet or null if no packets available
|
|
1235
|
+
*
|
|
1236
|
+
* @throws {FFmpegError} If receive fails
|
|
1237
|
+
*
|
|
1238
|
+
* @throws {Error} If packet cloning fails (out of memory)
|
|
1239
|
+
*
|
|
1240
|
+
* @internal
|
|
1241
|
+
*/
|
|
1242
|
+
receiveFromContextSync() {
|
|
1243
|
+
// Clear previous packet data
|
|
1244
|
+
this.packet.unref();
|
|
1245
|
+
const recvRet = this.ctx.receivePacketSync(this.packet);
|
|
1246
|
+
return this.consumeReceived(recvRet);
|
|
1247
|
+
}
|
|
1248
|
+
/**
|
|
1249
|
+
* Convert a receive return code into a cloned output packet.
|
|
1250
|
+
*
|
|
1251
|
+
* @param recvRet - Return code of av_bsf_receive_packet()
|
|
1252
|
+
*
|
|
1253
|
+
* @returns Cloned packet, or null on EAGAIN/EOF
|
|
1254
|
+
*
|
|
1255
|
+
* @throws {FFmpegError} If the return code is any other error
|
|
1256
|
+
*
|
|
1257
|
+
* @throws {Error} If packet cloning fails (out of memory)
|
|
1258
|
+
*
|
|
1259
|
+
* @internal
|
|
1260
|
+
*/
|
|
1261
|
+
consumeReceived(recvRet) {
|
|
1262
|
+
if (recvRet === 0) {
|
|
1263
|
+
// Filters like aac_adtstoasc deliver new global headers via packet side
|
|
1264
|
+
// data rather than par_out; fold it into the output parameters so callers
|
|
1265
|
+
// (and Muxer's bsf integration) can read it from outputCodecParameters.
|
|
1266
|
+
this.foldNewExtradata(this.packet);
|
|
1267
|
+
// Got a packet, clone it for the user
|
|
1268
|
+
const cloned = this.packet.clone();
|
|
1269
|
+
if (!cloned) {
|
|
1270
|
+
throw new Error('Failed to clone packet (out of memory)');
|
|
1271
|
+
}
|
|
1272
|
+
return cloned;
|
|
1273
|
+
}
|
|
1274
|
+
else if (recvRet === AVERROR_EAGAIN || recvRet === AVERROR_EOF) {
|
|
1275
|
+
// Need more data or end of stream
|
|
1276
|
+
return null;
|
|
1277
|
+
}
|
|
1278
|
+
else {
|
|
1279
|
+
// Error
|
|
1280
|
+
FFmpegError.throwIfError(recvRet, 'Failed to receive packet from bitstream filter');
|
|
1281
|
+
return null;
|
|
1282
|
+
}
|
|
1283
|
+
}
|
|
1284
|
+
/**
|
|
1285
|
+
* Free and clear any packets buffered by an EAGAIN drain.
|
|
1286
|
+
*
|
|
1287
|
+
* @internal
|
|
1288
|
+
*/
|
|
1289
|
+
clearPendingOutput() {
|
|
1290
|
+
for (const packet of this.pendingOutput) {
|
|
1291
|
+
packet.free();
|
|
1292
|
+
}
|
|
1293
|
+
this.pendingOutput = [];
|
|
1294
|
+
}
|
|
1181
1295
|
/**
|
|
1182
1296
|
* Send packet to input queue or flush the pipeline.
|
|
1183
1297
|
*
|
|
@@ -1237,35 +1351,18 @@ export class BitStreamFilterAPI {
|
|
|
1237
1351
|
try {
|
|
1238
1352
|
// Outer loop - receive packets
|
|
1239
1353
|
while (!this.inputQueue.isClosed) {
|
|
1240
|
-
const
|
|
1354
|
+
const env_4 = { stack: [], error: void 0, hasError: false };
|
|
1241
1355
|
try {
|
|
1242
|
-
const packet = __addDisposableResource(
|
|
1356
|
+
const packet = __addDisposableResource(env_4, await this.inputQueue.receive(), false);
|
|
1243
1357
|
if (!packet)
|
|
1244
1358
|
break;
|
|
1245
1359
|
if (this.isClosed) {
|
|
1246
1360
|
break;
|
|
1247
1361
|
}
|
|
1248
1362
|
this.ensureInitialized();
|
|
1249
|
-
// Send packet to filter
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
if (sendRet === AVERROR_EAGAIN) {
|
|
1253
|
-
// Filter buffer full, receive packets first
|
|
1254
|
-
while (!this.outputQueue.isClosed) {
|
|
1255
|
-
const outPacket = await this.receive();
|
|
1256
|
-
if (!outPacket)
|
|
1257
|
-
break;
|
|
1258
|
-
await this.outputQueue.send(outPacket);
|
|
1259
|
-
}
|
|
1260
|
-
// Retry sending
|
|
1261
|
-
const retryRet = await this.ctx.sendPacket(packet);
|
|
1262
|
-
if (retryRet < 0 && retryRet !== AVERROR_EOF && retryRet !== AVERROR_EAGAIN) {
|
|
1263
|
-
FFmpegError.throwIfError(retryRet, 'Failed to send packet to bitstream filter');
|
|
1264
|
-
}
|
|
1265
|
-
}
|
|
1266
|
-
else if (sendRet < 0 && sendRet !== AVERROR_EOF) {
|
|
1267
|
-
FFmpegError.throwIfError(sendRet, 'Failed to send packet to bitstream filter');
|
|
1268
|
-
}
|
|
1363
|
+
// Send packet to filter; on EAGAIN the pending output is buffered
|
|
1364
|
+
// internally and delivered by the receive() calls below
|
|
1365
|
+
await this.sendPacketWithRetry(packet);
|
|
1269
1366
|
// Receive ALL available packets immediately
|
|
1270
1367
|
while (!this.outputQueue.isClosed) {
|
|
1271
1368
|
const outPacket = await this.receive();
|
|
@@ -1274,12 +1371,12 @@ export class BitStreamFilterAPI {
|
|
|
1274
1371
|
await this.outputQueue.send(outPacket);
|
|
1275
1372
|
}
|
|
1276
1373
|
}
|
|
1277
|
-
catch (
|
|
1278
|
-
|
|
1279
|
-
|
|
1374
|
+
catch (e_4) {
|
|
1375
|
+
env_4.error = e_4;
|
|
1376
|
+
env_4.hasError = true;
|
|
1280
1377
|
}
|
|
1281
1378
|
finally {
|
|
1282
|
-
__disposeResources(
|
|
1379
|
+
__disposeResources(env_4);
|
|
1283
1380
|
}
|
|
1284
1381
|
}
|
|
1285
1382
|
// Flush filter at end
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitstream-filter.js","sourceRoot":"","sources":["../../src/api/bitstream-filter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bitstream-filter.js","sourceRoot":"","sources":["../../src/api/bitstream-filter.ts"],"names":[],"mappings":"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"}
|
package/dist/api/decoder.d.ts
CHANGED
|
@@ -239,6 +239,8 @@ export declare class Decoder implements Disposable {
|
|
|
239
239
|
private codec;
|
|
240
240
|
private frame;
|
|
241
241
|
private stream;
|
|
242
|
+
private readonly streamIndex;
|
|
243
|
+
private readonly streamFramerate;
|
|
242
244
|
private initialized;
|
|
243
245
|
private isClosed;
|
|
244
246
|
private options;
|
|
@@ -1017,6 +1019,9 @@ export declare class Decoder implements Disposable {
|
|
|
1017
1019
|
* Returns the underlying stream being decoded.
|
|
1018
1020
|
* Provides access to stream metadata and parameters.
|
|
1019
1021
|
*
|
|
1022
|
+
* Borrowed: the stream is owned by the demuxer's format context and must not
|
|
1023
|
+
* be read after that demuxer is closed.
|
|
1024
|
+
*
|
|
1020
1025
|
* @returns Stream object
|
|
1021
1026
|
*
|
|
1022
1027
|
* @internal
|
package/dist/api/decoder.js
CHANGED
|
@@ -112,6 +112,8 @@ export class Decoder {
|
|
|
112
112
|
codec;
|
|
113
113
|
frame;
|
|
114
114
|
stream;
|
|
115
|
+
streamIndex;
|
|
116
|
+
streamFramerate;
|
|
115
117
|
initialized = true;
|
|
116
118
|
isClosed = false;
|
|
117
119
|
options;
|
|
@@ -157,6 +159,8 @@ export class Decoder {
|
|
|
157
159
|
this.codecContext = codecContext;
|
|
158
160
|
this.codec = codec;
|
|
159
161
|
this.stream = stream;
|
|
162
|
+
this.streamIndex = stream.index;
|
|
163
|
+
this.streamFramerate = stream.avgFrameRate ?? stream.rFrameRate;
|
|
160
164
|
this.options = options;
|
|
161
165
|
this.frame = new Frame();
|
|
162
166
|
this.frame.alloc();
|
|
@@ -373,7 +377,7 @@ export class Decoder {
|
|
|
373
377
|
}
|
|
374
378
|
options.exitOnError = options.exitOnError ?? true;
|
|
375
379
|
// Enable COPY_OPAQUE flag to copy packet.opaque to frame.opaque
|
|
376
|
-
|
|
380
|
+
codecContext.setFlags(AV_CODEC_FLAG_COPY_OPAQUE);
|
|
377
381
|
// Thread parameters need to be set before open2
|
|
378
382
|
codecContext.threadCount = options.threadCount ?? 0;
|
|
379
383
|
if (options.threadType !== undefined) {
|
|
@@ -535,7 +539,7 @@ export class Decoder {
|
|
|
535
539
|
await this.flush();
|
|
536
540
|
return;
|
|
537
541
|
}
|
|
538
|
-
if (packet.streamIndex !== this.
|
|
542
|
+
if (packet.streamIndex !== this.streamIndex) {
|
|
539
543
|
return;
|
|
540
544
|
}
|
|
541
545
|
// Skip 0-sized packets
|
|
@@ -619,7 +623,7 @@ export class Decoder {
|
|
|
619
623
|
this.flushSync();
|
|
620
624
|
return;
|
|
621
625
|
}
|
|
622
|
-
if (packet.streamIndex !== this.
|
|
626
|
+
if (packet.streamIndex !== this.streamIndex) {
|
|
623
627
|
return;
|
|
624
628
|
}
|
|
625
629
|
// Skip 0-sized packets
|
|
@@ -1390,7 +1394,6 @@ export class Decoder {
|
|
|
1390
1394
|
this.outputQueue?.close();
|
|
1391
1395
|
this.inputQueue?.clear();
|
|
1392
1396
|
this.outputQueue?.clear();
|
|
1393
|
-
this.frame.free();
|
|
1394
1397
|
this.audioResampler?.[Symbol.dispose]();
|
|
1395
1398
|
this.audioResampler = undefined;
|
|
1396
1399
|
this.resampledFrame?.free();
|
|
@@ -1400,6 +1403,7 @@ export class Decoder {
|
|
|
1400
1403
|
this.scaledFrame?.free();
|
|
1401
1404
|
this.scaledFrame = undefined;
|
|
1402
1405
|
this.codecContext.freeContext();
|
|
1406
|
+
this.frame.free();
|
|
1403
1407
|
this.initialized = false;
|
|
1404
1408
|
}
|
|
1405
1409
|
/**
|
|
@@ -1408,6 +1412,9 @@ export class Decoder {
|
|
|
1408
1412
|
* Returns the underlying stream being decoded.
|
|
1409
1413
|
* Provides access to stream metadata and parameters.
|
|
1410
1414
|
*
|
|
1415
|
+
* Borrowed: the stream is owned by the demuxer's format context and must not
|
|
1416
|
+
* be read after that demuxer is closed.
|
|
1417
|
+
*
|
|
1411
1418
|
* @returns Stream object
|
|
1412
1419
|
*
|
|
1413
1420
|
* @internal
|
|
@@ -1463,7 +1470,7 @@ export class Decoder {
|
|
|
1463
1470
|
if (!packet)
|
|
1464
1471
|
break;
|
|
1465
1472
|
// Skip packets for other streams
|
|
1466
|
-
if (packet.streamIndex !== this.
|
|
1473
|
+
if (packet.streamIndex !== this.streamIndex) {
|
|
1467
1474
|
continue;
|
|
1468
1475
|
}
|
|
1469
1476
|
if (packet.size === 0) {
|
|
@@ -1614,7 +1621,7 @@ export class Decoder {
|
|
|
1614
1621
|
return codecDuration;
|
|
1615
1622
|
}
|
|
1616
1623
|
// Try stream framerate
|
|
1617
|
-
const streamFramerate = this.
|
|
1624
|
+
const streamFramerate = this.streamFramerate;
|
|
1618
1625
|
if (streamFramerate && streamFramerate.num > 0 && streamFramerate.den > 0) {
|
|
1619
1626
|
const d = avRescaleQ(1, avInvQ(streamFramerate), frame.timeBase);
|
|
1620
1627
|
if (d > 0n) {
|