node-av 1.0.3 → 1.2.0
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 +56 -41
- package/dist/api/bitstream-filter.d.ts +180 -123
- package/dist/api/bitstream-filter.js +182 -126
- package/dist/api/bitstream-filter.js.map +1 -1
- package/dist/api/decoder.d.ts +286 -130
- package/dist/api/decoder.js +321 -159
- package/dist/api/decoder.js.map +1 -1
- package/dist/api/encoder.d.ts +254 -158
- package/dist/api/encoder.js +326 -298
- package/dist/api/encoder.js.map +1 -1
- package/dist/api/filter-presets.d.ts +912 -0
- package/dist/api/filter-presets.js +1407 -0
- package/dist/api/filter-presets.js.map +1 -0
- package/dist/api/filter.d.ts +280 -284
- package/dist/api/filter.js +435 -509
- package/dist/api/filter.js.map +1 -1
- package/dist/api/hardware.d.ts +226 -159
- package/dist/api/hardware.js +405 -287
- package/dist/api/hardware.js.map +1 -1
- package/dist/api/index.d.ts +3 -2
- package/dist/api/index.js +1 -0
- package/dist/api/index.js.map +1 -1
- package/dist/api/io-stream.d.ts +65 -61
- package/dist/api/io-stream.js +45 -47
- package/dist/api/io-stream.js.map +1 -1
- package/dist/api/media-input.d.ts +244 -141
- package/dist/api/media-input.js +207 -104
- package/dist/api/media-input.js.map +1 -1
- package/dist/api/media-output.d.ts +206 -128
- package/dist/api/media-output.js +212 -129
- package/dist/api/media-output.js.map +1 -1
- package/dist/api/pipeline.d.ts +168 -38
- package/dist/api/pipeline.js +238 -14
- package/dist/api/pipeline.js.map +1 -1
- package/dist/api/types.d.ts +22 -182
- package/dist/api/utilities/audio-sample.d.ts +1 -1
- package/dist/api/utilities/image.d.ts +1 -1
- package/dist/api/utilities/media-type.d.ts +1 -1
- package/dist/api/utilities/pixel-format.d.ts +1 -1
- package/dist/api/utilities/sample-format.d.ts +1 -1
- package/dist/api/utilities/timestamp.d.ts +1 -1
- package/dist/api/utils.d.ts +1 -2
- package/dist/api/utils.js +9 -0
- package/dist/api/utils.js.map +1 -1
- package/dist/{lib → constants}/channel-layouts.d.ts +1 -1
- package/dist/constants/channel-layouts.js.map +1 -0
- package/dist/{lib → constants}/constants.d.ts +19 -4
- package/dist/{lib → constants}/constants.js +15 -1
- package/dist/constants/constants.js.map +1 -0
- package/dist/constants/decoders.d.ts +609 -0
- package/dist/constants/decoders.js +617 -0
- package/dist/constants/decoders.js.map +1 -0
- package/dist/constants/encoders.d.ts +285 -0
- package/dist/constants/encoders.js +298 -0
- package/dist/constants/encoders.js.map +1 -0
- package/dist/constants/index.d.ts +4 -0
- package/dist/constants/index.js +5 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/audio-fifo.d.ts +128 -171
- package/dist/lib/audio-fifo.js +130 -173
- package/dist/lib/audio-fifo.js.map +1 -1
- package/dist/lib/binding.d.ts +7 -5
- package/dist/lib/binding.js +5 -0
- package/dist/lib/binding.js.map +1 -1
- package/dist/lib/bitstream-filter-context.d.ts +139 -184
- package/dist/lib/bitstream-filter-context.js +139 -188
- package/dist/lib/bitstream-filter-context.js.map +1 -1
- package/dist/lib/bitstream-filter.d.ts +69 -55
- package/dist/lib/bitstream-filter.js +68 -54
- package/dist/lib/bitstream-filter.js.map +1 -1
- package/dist/lib/codec-context.d.ts +317 -381
- package/dist/lib/codec-context.js +316 -381
- package/dist/lib/codec-context.js.map +1 -1
- package/dist/lib/codec-parameters.d.ts +161 -171
- package/dist/lib/codec-parameters.js +162 -172
- package/dist/lib/codec-parameters.js.map +1 -1
- package/dist/lib/codec-parser.d.ts +92 -105
- package/dist/lib/codec-parser.js +92 -103
- package/dist/lib/codec-parser.js.map +1 -1
- package/dist/lib/codec.d.ts +328 -217
- package/dist/lib/codec.js +392 -218
- package/dist/lib/codec.js.map +1 -1
- package/dist/lib/dictionary.d.ts +150 -204
- package/dist/lib/dictionary.js +159 -213
- package/dist/lib/dictionary.js.map +1 -1
- package/dist/lib/error.d.ts +97 -131
- package/dist/lib/error.js +98 -128
- package/dist/lib/error.js.map +1 -1
- package/dist/lib/filter-context.d.ts +317 -194
- package/dist/lib/filter-context.js +335 -200
- package/dist/lib/filter-context.js.map +1 -1
- package/dist/lib/filter-graph.d.ts +252 -293
- package/dist/lib/filter-graph.js +253 -294
- package/dist/lib/filter-graph.js.map +1 -1
- package/dist/lib/filter-inout.d.ts +87 -95
- package/dist/lib/filter-inout.js +87 -95
- package/dist/lib/filter-inout.js.map +1 -1
- package/dist/lib/filter.d.ts +93 -111
- package/dist/lib/filter.js +94 -112
- package/dist/lib/filter.js.map +1 -1
- package/dist/lib/format-context.d.ts +321 -429
- package/dist/lib/format-context.js +314 -386
- package/dist/lib/format-context.js.map +1 -1
- package/dist/lib/frame.d.ts +263 -406
- package/dist/lib/frame.js +263 -408
- package/dist/lib/frame.js.map +1 -1
- package/dist/lib/hardware-device-context.d.ts +150 -204
- package/dist/lib/hardware-device-context.js +149 -203
- package/dist/lib/hardware-device-context.js.map +1 -1
- package/dist/lib/hardware-frames-context.d.ts +171 -181
- package/dist/lib/hardware-frames-context.js +171 -181
- package/dist/lib/hardware-frames-context.js.map +1 -1
- package/dist/lib/index.d.ts +2 -3
- package/dist/lib/index.js +2 -5
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/input-format.d.ts +90 -118
- package/dist/lib/input-format.js +89 -117
- package/dist/lib/input-format.js.map +1 -1
- package/dist/lib/io-context.d.ts +210 -242
- package/dist/lib/io-context.js +221 -253
- package/dist/lib/io-context.js.map +1 -1
- package/dist/lib/log.d.ts +86 -120
- package/dist/lib/log.js +85 -122
- package/dist/lib/log.js.map +1 -1
- package/dist/lib/native-types.d.ts +127 -112
- package/dist/lib/native-types.js +9 -0
- package/dist/lib/native-types.js.map +1 -1
- package/dist/lib/option.d.ts +285 -242
- package/dist/lib/option.js +310 -250
- package/dist/lib/option.js.map +1 -1
- package/dist/lib/output-format.d.ts +78 -102
- package/dist/lib/output-format.js +77 -101
- package/dist/lib/output-format.js.map +1 -1
- package/dist/lib/packet.d.ts +173 -241
- package/dist/lib/packet.js +172 -241
- package/dist/lib/packet.js.map +1 -1
- package/dist/lib/rational.d.ts +0 -2
- package/dist/lib/rational.js +0 -2
- package/dist/lib/rational.js.map +1 -1
- package/dist/lib/software-resample-context.d.ts +242 -326
- package/dist/lib/software-resample-context.js +242 -326
- package/dist/lib/software-resample-context.js.map +1 -1
- package/dist/lib/software-scale-context.d.ts +130 -174
- package/dist/lib/software-scale-context.js +132 -176
- package/dist/lib/software-scale-context.js.map +1 -1
- package/dist/lib/stream.d.ts +88 -198
- package/dist/lib/stream.js +87 -197
- package/dist/lib/stream.js.map +1 -1
- package/dist/lib/types.d.ts +1 -1
- package/dist/lib/utilities.d.ts +372 -181
- package/dist/lib/utilities.js +373 -182
- package/dist/lib/utilities.js.map +1 -1
- package/install/check.js +0 -1
- package/package.json +32 -24
- package/release_notes.md +43 -13
- package/CHANGELOG.md +0 -8
- package/dist/lib/channel-layouts.js.map +0 -1
- package/dist/lib/constants.js.map +0 -1
- /package/dist/{lib → constants}/channel-layouts.js +0 -0
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { AVDictFlag, AVFilterCmdFlag, AVFilterConstants, AVFilterFlag, AVFrameSideDataType, AVHWDeviceType, AVHWFrameTransferDirection, AVIOFlag, AVOptionFlag, AVOptionType, AVPacketSideDataType, AVPixelFormat, AVSeekFlag, AVSeekWhence, SWSFlag } from './constants.js';
|
|
2
1
|
/**
|
|
3
2
|
* Native FFmpeg Binding Type Definitions
|
|
4
3
|
* =======================================
|
|
@@ -6,16 +5,10 @@ import type { AVDictFlag, AVFilterCmdFlag, AVFilterConstants, AVFilterFlag, AVFr
|
|
|
6
5
|
* This file contains all TypeScript interfaces for the native C++ FFmpeg bindings.
|
|
7
6
|
* These interfaces represent the exact API surface exposed by the C++ layer.
|
|
8
7
|
*
|
|
9
|
-
* IMPORTANT:
|
|
10
|
-
* - These are internal interfaces - users should use the wrapper classes in lib/
|
|
11
|
-
* - All interfaces map 1:1 to C++ binding implementations
|
|
12
|
-
* - Properties marked as readonly only have getters in C++
|
|
13
|
-
* - Resource-owning classes provide both free() and Symbol.dispose for cleanup
|
|
14
|
-
*
|
|
15
8
|
* @internal
|
|
16
|
-
* @packageDocumentation
|
|
17
9
|
*/
|
|
18
|
-
import type {
|
|
10
|
+
import type { AVDictFlag, AVFilterCmdFlag, AVFilterConstants, AVFilterFlag, AVFrameSideDataType, AVHWDeviceType, AVHWFrameTransferDirection, AVIOFlag, AVOptionFlag, AVOptionType, AVPacketSideDataType, AVPixelFormat, AVSeekFlag, AVSeekWhence, SWSFlag } from '../constants/constants.js';
|
|
11
|
+
import type { AVChromaLocation, AVCodecCap, AVCodecFlag, AVCodecFlag2, AVCodecID, AVColorPrimaries, AVColorRange, AVColorSpace, AVColorTransferCharacteristic, AVDiscard, AVDisposition, AVFormatFlag, AVMediaType, AVPacketFlag, AVPictureType, AVProfile, AVSampleFormat, AVStreamEventFlag } from '../constants/index.js';
|
|
19
12
|
import type { ChannelLayout, CodecProfile, FilterPad, IRational } from './types.js';
|
|
20
13
|
/**
|
|
21
14
|
* Native AVPacket binding interface
|
|
@@ -27,23 +20,23 @@ import type { ChannelLayout, CodecProfile, FilterPad, IRational } from './types.
|
|
|
27
20
|
*/
|
|
28
21
|
export interface NativePacket extends Disposable {
|
|
29
22
|
readonly __brand: 'NativePacket';
|
|
30
|
-
|
|
31
|
-
free(): void;
|
|
32
|
-
ref(src: NativePacket): number;
|
|
33
|
-
unref(): void;
|
|
34
|
-
clone(): NativePacket | null;
|
|
35
|
-
rescaleTs(srcTb: IRational, dstTb: IRational): void;
|
|
36
|
-
makeRefcounted(): number;
|
|
37
|
-
makeWritable(): number;
|
|
23
|
+
readonly size: number;
|
|
38
24
|
streamIndex: number;
|
|
39
25
|
pts: bigint;
|
|
40
26
|
dts: bigint;
|
|
41
27
|
duration: bigint;
|
|
42
28
|
pos: bigint;
|
|
43
|
-
readonly size: number;
|
|
44
29
|
flags: AVPacketFlag;
|
|
45
30
|
data: Buffer | null;
|
|
46
31
|
isKeyframe: boolean;
|
|
32
|
+
alloc(): void;
|
|
33
|
+
free(): void;
|
|
34
|
+
ref(src: NativePacket): number;
|
|
35
|
+
unref(): void;
|
|
36
|
+
clone(): NativePacket | null;
|
|
37
|
+
rescaleTs(srcTb: IRational, dstTb: IRational): void;
|
|
38
|
+
makeRefcounted(): number;
|
|
39
|
+
makeWritable(): number;
|
|
47
40
|
getSideData(type: AVPacketSideDataType): Buffer | null;
|
|
48
41
|
addSideData(type: AVPacketSideDataType, data: Buffer): number;
|
|
49
42
|
newSideData(type: AVPacketSideDataType, size: number): Buffer;
|
|
@@ -60,17 +53,11 @@ export interface NativePacket extends Disposable {
|
|
|
60
53
|
*/
|
|
61
54
|
export interface NativeFrame extends Disposable {
|
|
62
55
|
readonly __brand: 'NativeFrame';
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
getBuffer(align?: number): number;
|
|
69
|
-
allocBuffer(): number;
|
|
70
|
-
makeWritable(): number;
|
|
71
|
-
copyProps(src: NativeFrame): number;
|
|
72
|
-
copy(src: NativeFrame): number;
|
|
73
|
-
fromBuffer(buffer: Buffer): number;
|
|
56
|
+
readonly channels: number;
|
|
57
|
+
readonly linesize: number[];
|
|
58
|
+
readonly data: Buffer[] | null;
|
|
59
|
+
readonly extendedData: Buffer[] | null;
|
|
60
|
+
readonly isWritable: boolean;
|
|
74
61
|
format: AVPixelFormat | AVSampleFormat;
|
|
75
62
|
width: number;
|
|
76
63
|
height: number;
|
|
@@ -84,20 +71,26 @@ export interface NativeFrame extends Disposable {
|
|
|
84
71
|
sampleAspectRatio: IRational;
|
|
85
72
|
sampleRate: number;
|
|
86
73
|
channelLayout: ChannelLayout;
|
|
87
|
-
readonly channels: number;
|
|
88
|
-
readonly linesize: number[];
|
|
89
74
|
colorRange: AVColorRange;
|
|
90
75
|
colorPrimaries: AVColorPrimaries;
|
|
91
76
|
colorTrc: AVColorTransferCharacteristic;
|
|
92
77
|
colorSpace: AVColorSpace;
|
|
93
78
|
chromaLocation: AVChromaLocation;
|
|
94
|
-
readonly data: Buffer[] | null;
|
|
95
|
-
readonly extendedData: Buffer[] | null;
|
|
96
79
|
hwFramesCtx: NativeHardwareFramesContext | null;
|
|
80
|
+
alloc(): void;
|
|
81
|
+
free(): void;
|
|
82
|
+
ref(src: NativeFrame): number;
|
|
83
|
+
unref(): void;
|
|
84
|
+
clone(): NativeFrame | null;
|
|
85
|
+
getBuffer(align?: number): number;
|
|
86
|
+
allocBuffer(): number;
|
|
87
|
+
makeWritable(): number;
|
|
88
|
+
copyProps(src: NativeFrame): number;
|
|
89
|
+
copy(src: NativeFrame): number;
|
|
90
|
+
fromBuffer(buffer: Buffer): number;
|
|
97
91
|
hwframeTransferData(dst: NativeFrame, flags?: number): Promise<number>;
|
|
98
92
|
isHwFrame(): boolean;
|
|
99
93
|
isSwFrame(): boolean;
|
|
100
|
-
readonly isWritable: boolean;
|
|
101
94
|
getSideData(type: AVFrameSideDataType): Buffer | null;
|
|
102
95
|
newSideData(type: AVFrameSideDataType, size: number): Buffer;
|
|
103
96
|
removeSideData(type: AVFrameSideDataType): void;
|
|
@@ -145,23 +138,15 @@ export interface NativeCodec {
|
|
|
145
138
|
*/
|
|
146
139
|
export interface NativeCodecContext extends Disposable {
|
|
147
140
|
readonly __brand: 'NativeCodecContext';
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
parametersToContext(params: NativeCodecParameters): number;
|
|
153
|
-
parametersFromContext(params: NativeCodecParameters): number;
|
|
154
|
-
flushBuffers(): void;
|
|
155
|
-
sendPacket(packet: NativePacket | null): Promise<number>;
|
|
156
|
-
receiveFrame(frame: NativeFrame): Promise<number>;
|
|
157
|
-
sendFrame(frame: NativeFrame | null): Promise<number>;
|
|
158
|
-
receivePacket(packet: NativePacket): Promise<number>;
|
|
141
|
+
readonly delay: number;
|
|
142
|
+
readonly hasBFrames: number;
|
|
143
|
+
readonly frameNumber: number;
|
|
144
|
+
readonly isOpen: boolean;
|
|
159
145
|
codecType: AVMediaType;
|
|
160
146
|
codecId: AVCodecID;
|
|
161
147
|
bitRate: bigint;
|
|
162
148
|
timeBase: IRational;
|
|
163
149
|
pktTimebase: IRational;
|
|
164
|
-
readonly delay: number;
|
|
165
150
|
flags: AVCodecFlag;
|
|
166
151
|
flags2: AVCodecFlag2;
|
|
167
152
|
extraData: Buffer | null;
|
|
@@ -174,7 +159,6 @@ export interface NativeCodecContext extends Disposable {
|
|
|
174
159
|
pixelFormat: AVPixelFormat;
|
|
175
160
|
maxBFrames: number;
|
|
176
161
|
mbDecision: number;
|
|
177
|
-
readonly hasBFrames: number;
|
|
178
162
|
sampleAspectRatio: IRational;
|
|
179
163
|
framerate: IRational;
|
|
180
164
|
colorRange: AVColorRange;
|
|
@@ -186,7 +170,6 @@ export interface NativeCodecContext extends Disposable {
|
|
|
186
170
|
channels: number;
|
|
187
171
|
sampleFormat: AVSampleFormat;
|
|
188
172
|
frameSize: number;
|
|
189
|
-
readonly frameNumber: number;
|
|
190
173
|
channelLayout: ChannelLayout;
|
|
191
174
|
qMin: number;
|
|
192
175
|
qMax: number;
|
|
@@ -195,8 +178,19 @@ export interface NativeCodecContext extends Disposable {
|
|
|
195
178
|
rcMinRate: bigint;
|
|
196
179
|
hwDeviceCtx: NativeHardwareDeviceContext | null;
|
|
197
180
|
hwFramesCtx: NativeHardwareFramesContext | null;
|
|
181
|
+
allocContext3(codec?: NativeCodec | null): void;
|
|
182
|
+
freeContext(): void;
|
|
183
|
+
open2(codec?: NativeCodec | null, options?: NativeDictionary | null): Promise<number>;
|
|
184
|
+
open2Sync(codec?: NativeCodec | null, options?: NativeDictionary | null): number;
|
|
185
|
+
close(): number;
|
|
186
|
+
parametersToContext(params: NativeCodecParameters): number;
|
|
187
|
+
parametersFromContext(params: NativeCodecParameters): number;
|
|
188
|
+
flushBuffers(): void;
|
|
189
|
+
sendPacket(packet: NativePacket | null): Promise<number>;
|
|
190
|
+
receiveFrame(frame: NativeFrame): Promise<number>;
|
|
191
|
+
sendFrame(frame: NativeFrame | null): Promise<number>;
|
|
192
|
+
receivePacket(packet: NativePacket): Promise<number>;
|
|
198
193
|
setHardwarePixelFormat(hwFormat: AVPixelFormat, swFormat?: AVPixelFormat): void;
|
|
199
|
-
readonly isOpen: boolean;
|
|
200
194
|
[Symbol.dispose](): void;
|
|
201
195
|
}
|
|
202
196
|
/**
|
|
@@ -223,17 +217,11 @@ export interface NativeCodecParser {
|
|
|
223
217
|
*/
|
|
224
218
|
export interface NativeCodecParameters extends Disposable {
|
|
225
219
|
readonly __brand: 'NativeCodecParameters';
|
|
226
|
-
|
|
227
|
-
free(): void;
|
|
228
|
-
copy(dst: NativeCodecParameters): number;
|
|
229
|
-
fromContext(codecContext: NativeCodecContext): number;
|
|
230
|
-
toContext(codecContext: NativeCodecContext): number;
|
|
231
|
-
toJSON(): Record<string, any>;
|
|
220
|
+
readonly extradataSize: number;
|
|
232
221
|
codecType: AVMediaType;
|
|
233
222
|
codecId: AVCodecID;
|
|
234
223
|
codecTag: number;
|
|
235
224
|
extradata: Buffer | null;
|
|
236
|
-
readonly extradataSize: number;
|
|
237
225
|
format: AVPixelFormat | AVSampleFormat;
|
|
238
226
|
bitRate: bigint;
|
|
239
227
|
profile: AVProfile;
|
|
@@ -250,6 +238,12 @@ export interface NativeCodecParameters extends Disposable {
|
|
|
250
238
|
channelLayout: ChannelLayout;
|
|
251
239
|
channels: number;
|
|
252
240
|
sampleRate: number;
|
|
241
|
+
alloc(): void;
|
|
242
|
+
free(): void;
|
|
243
|
+
copy(dst: NativeCodecParameters): number;
|
|
244
|
+
fromContext(codecContext: NativeCodecContext): number;
|
|
245
|
+
toContext(codecContext: NativeCodecContext): number;
|
|
246
|
+
toJSON(): Record<string, any>;
|
|
253
247
|
[Symbol.dispose](): void;
|
|
254
248
|
}
|
|
255
249
|
/**
|
|
@@ -299,11 +293,11 @@ export interface NativeIOContext extends AsyncDisposable {
|
|
|
299
293
|
readonly eof: boolean;
|
|
300
294
|
readonly error: number;
|
|
301
295
|
readonly seekable: number;
|
|
302
|
-
maxPacketSize: number;
|
|
303
|
-
direct: number;
|
|
304
296
|
readonly pos: bigint;
|
|
305
297
|
readonly bufferSize: number;
|
|
306
298
|
readonly writeFlag: boolean;
|
|
299
|
+
maxPacketSize: number;
|
|
300
|
+
direct: number;
|
|
307
301
|
[Symbol.asyncDispose](): Promise<void>;
|
|
308
302
|
}
|
|
309
303
|
/**
|
|
@@ -353,6 +347,7 @@ export interface NativeOutputFormat {
|
|
|
353
347
|
export interface NativeStream {
|
|
354
348
|
readonly __brand: 'NativeStream';
|
|
355
349
|
readonly index: number;
|
|
350
|
+
readonly attachedPic: NativePacket | null;
|
|
356
351
|
id: number;
|
|
357
352
|
codecpar: NativeCodecParameters;
|
|
358
353
|
timeBase: IRational;
|
|
@@ -365,7 +360,6 @@ export interface NativeStream {
|
|
|
365
360
|
avgFrameRate: IRational;
|
|
366
361
|
rFrameRate: IRational;
|
|
367
362
|
metadata: NativeDictionary | null;
|
|
368
|
-
readonly attachedPic: NativePacket | null;
|
|
369
363
|
eventFlags: AVStreamEventFlag;
|
|
370
364
|
}
|
|
371
365
|
/**
|
|
@@ -378,6 +372,24 @@ export interface NativeStream {
|
|
|
378
372
|
*/
|
|
379
373
|
export interface NativeFormatContext extends AsyncDisposable {
|
|
380
374
|
readonly __brand: 'NativeFormatContext';
|
|
375
|
+
readonly startTime: bigint;
|
|
376
|
+
readonly duration: bigint;
|
|
377
|
+
readonly bitRate: bigint;
|
|
378
|
+
readonly iformat: NativeInputFormat | null;
|
|
379
|
+
readonly nbStreams: number;
|
|
380
|
+
readonly streams: NativeStream[] | null;
|
|
381
|
+
readonly nbPrograms: number;
|
|
382
|
+
readonly pbBytes: bigint;
|
|
383
|
+
readonly probeScore: number;
|
|
384
|
+
url: string | null;
|
|
385
|
+
flags: AVFormatFlag;
|
|
386
|
+
probesize: bigint;
|
|
387
|
+
maxAnalyzeDuration: bigint;
|
|
388
|
+
metadata: NativeDictionary | null;
|
|
389
|
+
oformat: NativeOutputFormat | null;
|
|
390
|
+
pb: NativeIOContext | null;
|
|
391
|
+
strictStdCompliance: number;
|
|
392
|
+
maxStreams: number;
|
|
381
393
|
allocContext(): void;
|
|
382
394
|
allocOutputContext2(oformat: NativeOutputFormat | null, formatName: string | null, filename: string | null): number;
|
|
383
395
|
freeContext(): void;
|
|
@@ -400,24 +412,6 @@ export interface NativeFormatContext extends AsyncDisposable {
|
|
|
400
412
|
streamIndex: number;
|
|
401
413
|
decoder: NativeCodec | null;
|
|
402
414
|
};
|
|
403
|
-
url: string | null;
|
|
404
|
-
readonly startTime: bigint;
|
|
405
|
-
readonly duration: bigint;
|
|
406
|
-
readonly bitRate: bigint;
|
|
407
|
-
flags: AVFormatFlag;
|
|
408
|
-
probesize: bigint;
|
|
409
|
-
maxAnalyzeDuration: bigint;
|
|
410
|
-
metadata: NativeDictionary | null;
|
|
411
|
-
readonly iformat: NativeInputFormat | null;
|
|
412
|
-
oformat: NativeOutputFormat | null;
|
|
413
|
-
pb: NativeIOContext | null;
|
|
414
|
-
readonly nbStreams: number;
|
|
415
|
-
readonly streams: NativeStream[] | null;
|
|
416
|
-
strictStdCompliance: number;
|
|
417
|
-
maxStreams: number;
|
|
418
|
-
readonly nbPrograms: number;
|
|
419
|
-
readonly pbBytes: bigint;
|
|
420
|
-
readonly probeScore: number;
|
|
421
415
|
[Symbol.dispose](): void;
|
|
422
416
|
}
|
|
423
417
|
/**
|
|
@@ -425,8 +419,11 @@ export interface NativeFormatContext extends AsyncDisposable {
|
|
|
425
419
|
*
|
|
426
420
|
* Provides error code translation and string representation.
|
|
427
421
|
* Maps FFmpeg error codes to human-readable messages.
|
|
422
|
+
*
|
|
423
|
+
* @internal
|
|
428
424
|
*/
|
|
429
425
|
export interface NativeFFmpegError {
|
|
426
|
+
readonly __brand: 'NativeFFmpegError';
|
|
430
427
|
readonly code: number;
|
|
431
428
|
readonly message: string;
|
|
432
429
|
}
|
|
@@ -440,6 +437,8 @@ export interface NativeFFmpegError {
|
|
|
440
437
|
*/
|
|
441
438
|
export interface NativeAudioFifo extends Disposable {
|
|
442
439
|
readonly __brand: 'NativeAudioFifo';
|
|
440
|
+
readonly size: number;
|
|
441
|
+
readonly space: number;
|
|
443
442
|
alloc(sampleFmt: AVSampleFormat, channels: number, nbSamples: number): void;
|
|
444
443
|
free(): void;
|
|
445
444
|
write(data: Buffer | Buffer[], nbSamples: number): Promise<number>;
|
|
@@ -448,8 +447,6 @@ export interface NativeAudioFifo extends Disposable {
|
|
|
448
447
|
drain(nbSamples: number): void;
|
|
449
448
|
reset(): void;
|
|
450
449
|
realloc(nbSamples: number): number;
|
|
451
|
-
readonly size: number;
|
|
452
|
-
readonly space: number;
|
|
453
450
|
}
|
|
454
451
|
/**
|
|
455
452
|
* Native SwsContext binding interface
|
|
@@ -524,6 +521,13 @@ export interface NativeFilter {
|
|
|
524
521
|
*/
|
|
525
522
|
export interface NativeFilterContext extends Disposable {
|
|
526
523
|
readonly __brand: 'NativeFilterContext';
|
|
524
|
+
readonly filter: NativeFilter | null;
|
|
525
|
+
readonly graph: NativeFilterGraph | null;
|
|
526
|
+
readonly nbInputs: number;
|
|
527
|
+
readonly nbOutputs: number;
|
|
528
|
+
readonly ready: number;
|
|
529
|
+
name: string | null;
|
|
530
|
+
hwDeviceCtx: NativeHardwareDeviceContext | null;
|
|
527
531
|
init(options?: NativeDictionary | null): number;
|
|
528
532
|
initStr(args?: string | null): number;
|
|
529
533
|
link(srcPad: number, dst: NativeFilterContext, dstPad: number): number;
|
|
@@ -541,18 +545,15 @@ export interface NativeFilterContext extends Disposable {
|
|
|
541
545
|
channelLayout?: bigint;
|
|
542
546
|
}): number;
|
|
543
547
|
buffersinkGetFrame(frame: NativeFrame): Promise<number>;
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
+
buffersinkGetWidth(): number;
|
|
549
|
+
buffersinkGetHeight(): number;
|
|
550
|
+
buffersinkGetFormat(): AVPixelFormat | AVSampleFormat;
|
|
551
|
+
buffersinkGetTimeBase(): IRational;
|
|
552
|
+
buffersinkGetFrameRate(): IRational;
|
|
553
|
+
buffersinkGetSampleRate(): number;
|
|
554
|
+
buffersinkGetChannelLayout(): ChannelLayout;
|
|
555
|
+
buffersinkGetSampleAspectRatio(): IRational;
|
|
548
556
|
free(): void;
|
|
549
|
-
name: string | null;
|
|
550
|
-
readonly filter: NativeFilter | null;
|
|
551
|
-
readonly graph: NativeFilterGraph | null;
|
|
552
|
-
readonly nbInputs: number;
|
|
553
|
-
readonly nbOutputs: number;
|
|
554
|
-
readonly ready: number;
|
|
555
|
-
hwDeviceCtx: NativeHardwareDeviceContext | null;
|
|
556
557
|
[Symbol.dispose](): void;
|
|
557
558
|
}
|
|
558
559
|
/**
|
|
@@ -565,6 +566,11 @@ export interface NativeFilterContext extends Disposable {
|
|
|
565
566
|
*/
|
|
566
567
|
export interface NativeFilterGraph extends Disposable {
|
|
567
568
|
readonly __brand: 'NativeFilterGraph';
|
|
569
|
+
readonly nbFilters: number;
|
|
570
|
+
readonly filters: NativeFilterContext[] | null;
|
|
571
|
+
threadType: AVFilterConstants;
|
|
572
|
+
nbThreads: number;
|
|
573
|
+
scaleSwsOpts: string | null;
|
|
568
574
|
alloc(): void;
|
|
569
575
|
free(): void;
|
|
570
576
|
createFilter(filter: NativeFilter, name: string, args?: string | null): NativeFilterContext | null;
|
|
@@ -581,11 +587,6 @@ export interface NativeFilterGraph extends Disposable {
|
|
|
581
587
|
response: string | null;
|
|
582
588
|
};
|
|
583
589
|
queueCommand(target: string, cmd: string, arg: string, ts: number, flags?: AVFilterCmdFlag): number;
|
|
584
|
-
readonly nbFilters: number;
|
|
585
|
-
readonly filters: NativeFilterContext[] | null;
|
|
586
|
-
threadType: AVFilterConstants;
|
|
587
|
-
nbThreads: number;
|
|
588
|
-
scaleSwsOpts: string | null;
|
|
589
590
|
[Symbol.dispose](): void;
|
|
590
591
|
}
|
|
591
592
|
/**
|
|
@@ -598,12 +599,12 @@ export interface NativeFilterGraph extends Disposable {
|
|
|
598
599
|
*/
|
|
599
600
|
export interface NativeFilterInOut extends Disposable {
|
|
600
601
|
readonly __brand: 'NativeFilterInOut';
|
|
601
|
-
alloc(): void;
|
|
602
|
-
free(): void;
|
|
603
602
|
name: string | null;
|
|
604
603
|
filterCtx: NativeFilterContext | null;
|
|
605
604
|
padIdx: number;
|
|
606
605
|
next: NativeFilterInOut | null;
|
|
606
|
+
alloc(): void;
|
|
607
|
+
free(): void;
|
|
607
608
|
[Symbol.dispose](): void;
|
|
608
609
|
}
|
|
609
610
|
/**
|
|
@@ -611,9 +612,13 @@ export interface NativeFilterInOut extends Disposable {
|
|
|
611
612
|
*
|
|
612
613
|
* Hardware device context for hardware acceleration.
|
|
613
614
|
* Direct mapping to FFmpeg's AVHWDeviceContext.
|
|
615
|
+
*
|
|
616
|
+
* @internal
|
|
614
617
|
*/
|
|
615
618
|
export interface NativeHardwareDeviceContext extends Disposable {
|
|
616
619
|
readonly __brand: 'NativeHardwareDeviceContext';
|
|
620
|
+
readonly type: AVHWDeviceType;
|
|
621
|
+
readonly hwctx: bigint | null;
|
|
617
622
|
alloc(type: AVHWDeviceType): void;
|
|
618
623
|
init(): number;
|
|
619
624
|
create(type: AVHWDeviceType, device: string | null, options: any | null): number;
|
|
@@ -628,8 +633,6 @@ export interface NativeHardwareDeviceContext extends Disposable {
|
|
|
628
633
|
maxHeight: number;
|
|
629
634
|
} | null;
|
|
630
635
|
free(): void;
|
|
631
|
-
readonly type: AVHWDeviceType;
|
|
632
|
-
readonly hwctx: bigint | null;
|
|
633
636
|
[Symbol.dispose](): void;
|
|
634
637
|
}
|
|
635
638
|
/**
|
|
@@ -637,9 +640,17 @@ export interface NativeHardwareDeviceContext extends Disposable {
|
|
|
637
640
|
*
|
|
638
641
|
* Hardware frames context for hardware acceleration.
|
|
639
642
|
* Direct mapping to FFmpeg's AVHWFramesContext.
|
|
643
|
+
*
|
|
644
|
+
* @internal
|
|
640
645
|
*/
|
|
641
646
|
export interface NativeHardwareFramesContext extends Disposable {
|
|
642
647
|
readonly __brand: 'NativeHardwareFramesContext';
|
|
648
|
+
readonly deviceRef: NativeHardwareDeviceContext | null;
|
|
649
|
+
format: AVPixelFormat;
|
|
650
|
+
swFormat: AVPixelFormat;
|
|
651
|
+
width: number;
|
|
652
|
+
height: number;
|
|
653
|
+
initialPoolSize: number;
|
|
643
654
|
alloc(device: NativeHardwareDeviceContext): void;
|
|
644
655
|
init(): number;
|
|
645
656
|
getBuffer(frame: NativeFrame, flags?: number): number;
|
|
@@ -648,16 +659,15 @@ export interface NativeHardwareFramesContext extends Disposable {
|
|
|
648
659
|
map(dst: NativeFrame, src: NativeFrame, flags?: number): number;
|
|
649
660
|
createDerived(format: AVPixelFormat, derivedDevice: NativeHardwareDeviceContext, source: NativeHardwareFramesContext, flags?: number): number;
|
|
650
661
|
free(): void;
|
|
651
|
-
format: AVPixelFormat;
|
|
652
|
-
swFormat: AVPixelFormat;
|
|
653
|
-
width: number;
|
|
654
|
-
height: number;
|
|
655
|
-
initialPoolSize: number;
|
|
656
|
-
readonly deviceRef: NativeHardwareDeviceContext | null;
|
|
657
662
|
[Symbol.dispose](): void;
|
|
658
663
|
}
|
|
659
664
|
/**
|
|
660
|
-
* Native
|
|
665
|
+
* Native AVBitStreamFilter binding interface
|
|
666
|
+
*
|
|
667
|
+
* Represents a bitstream filter definition for modifying packet data.
|
|
668
|
+
* This is an immutable descriptor - actual filtering happens via BitStreamFilterContext.
|
|
669
|
+
* Used for tasks like H.264 annexb conversion, adding/removing metadata, or format adjustments.
|
|
670
|
+
*
|
|
661
671
|
* @internal
|
|
662
672
|
*/
|
|
663
673
|
export interface NativeBitStreamFilter {
|
|
@@ -666,11 +676,21 @@ export interface NativeBitStreamFilter {
|
|
|
666
676
|
readonly codecIds: number[] | null;
|
|
667
677
|
}
|
|
668
678
|
/**
|
|
669
|
-
* Native
|
|
679
|
+
* Native AVBSFContext binding interface
|
|
680
|
+
*
|
|
681
|
+
* The main interface for bitstream filtering operations.
|
|
682
|
+
* Processes packets without full decode/encode, modifying headers, metadata, or format.
|
|
683
|
+
* Must be allocated with a filter, initialized, and properly disposed after use.
|
|
684
|
+
*
|
|
670
685
|
* @internal
|
|
671
686
|
*/
|
|
672
687
|
export interface NativeBitStreamFilterContext extends Disposable {
|
|
673
688
|
readonly __brand: 'NativeBitStreamFilterContext';
|
|
689
|
+
readonly inputCodecParameters: NativeCodecParameters | null;
|
|
690
|
+
readonly outputCodecParameters: NativeCodecParameters | null;
|
|
691
|
+
readonly outputTimeBase: IRational | null;
|
|
692
|
+
readonly filter: NativeBitStreamFilter | null;
|
|
693
|
+
inputTimeBase: IRational;
|
|
674
694
|
alloc(filter: NativeBitStreamFilter): number;
|
|
675
695
|
init(): number;
|
|
676
696
|
free(): void;
|
|
@@ -678,11 +698,6 @@ export interface NativeBitStreamFilterContext extends Disposable {
|
|
|
678
698
|
sendPacket(packet: NativePacket | null): Promise<number>;
|
|
679
699
|
receivePacket(packet: NativePacket): Promise<number>;
|
|
680
700
|
isInitialized(): boolean;
|
|
681
|
-
readonly inputCodecParameters: NativeCodecParameters | null;
|
|
682
|
-
readonly outputCodecParameters: NativeCodecParameters | null;
|
|
683
|
-
inputTimeBase: IRational;
|
|
684
|
-
readonly outputTimeBase: IRational | null;
|
|
685
|
-
readonly filter: NativeBitStreamFilter | null;
|
|
686
701
|
[Symbol.dispose](): void;
|
|
687
702
|
}
|
|
688
703
|
/**
|
package/dist/lib/native-types.js
CHANGED
|
@@ -1,2 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Native FFmpeg Binding Type Definitions
|
|
3
|
+
* =======================================
|
|
4
|
+
*
|
|
5
|
+
* This file contains all TypeScript interfaces for the native C++ FFmpeg bindings.
|
|
6
|
+
* These interfaces represent the exact API surface exposed by the C++ layer.
|
|
7
|
+
*
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
1
10
|
export {};
|
|
2
11
|
//# sourceMappingURL=native-types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-types.js","sourceRoot":"","sources":["../../src/lib/native-types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"native-types.js","sourceRoot":"","sources":["../../src/lib/native-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|