node-av 0.0.1
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/CHANGELOG.md +8 -0
- package/LICENSE.md +22 -0
- package/README.md +377 -0
- package/binding.gyp +78 -0
- package/dist/api/bitstream-filter.d.ts +246 -0
- package/dist/api/bitstream-filter.js +369 -0
- package/dist/api/bitstream-filter.js.map +1 -0
- package/dist/api/decoder.d.ts +257 -0
- package/dist/api/decoder.js +424 -0
- package/dist/api/decoder.js.map +1 -0
- package/dist/api/encoder.d.ts +298 -0
- package/dist/api/encoder.js +574 -0
- package/dist/api/encoder.js.map +1 -0
- package/dist/api/filter.d.ts +457 -0
- package/dist/api/filter.js +876 -0
- package/dist/api/filter.js.map +1 -0
- package/dist/api/hardware.d.ts +318 -0
- package/dist/api/hardware.js +558 -0
- package/dist/api/hardware.js.map +1 -0
- package/dist/api/index.d.ts +12 -0
- package/dist/api/index.js +20 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/io-stream.d.ts +109 -0
- package/dist/api/io-stream.js +124 -0
- package/dist/api/io-stream.js.map +1 -0
- package/dist/api/media-input.d.ts +295 -0
- package/dist/api/media-input.js +456 -0
- package/dist/api/media-input.js.map +1 -0
- package/dist/api/media-output.d.ts +274 -0
- package/dist/api/media-output.js +486 -0
- package/dist/api/media-output.js.map +1 -0
- package/dist/api/pipeline.d.ts +117 -0
- package/dist/api/pipeline.js +836 -0
- package/dist/api/pipeline.js.map +1 -0
- package/dist/api/types.d.ts +440 -0
- package/dist/api/types.js +2 -0
- package/dist/api/types.js.map +1 -0
- package/dist/api/utilities/audio-sample.d.ts +115 -0
- package/dist/api/utilities/audio-sample.js +110 -0
- package/dist/api/utilities/audio-sample.js.map +1 -0
- package/dist/api/utilities/channel-layout.d.ts +83 -0
- package/dist/api/utilities/channel-layout.js +87 -0
- package/dist/api/utilities/channel-layout.js.map +1 -0
- package/dist/api/utilities/image.d.ts +177 -0
- package/dist/api/utilities/image.js +183 -0
- package/dist/api/utilities/image.js.map +1 -0
- package/dist/api/utilities/index.d.ts +8 -0
- package/dist/api/utilities/index.js +17 -0
- package/dist/api/utilities/index.js.map +1 -0
- package/dist/api/utilities/media-type.d.ts +56 -0
- package/dist/api/utilities/media-type.js +60 -0
- package/dist/api/utilities/media-type.js.map +1 -0
- package/dist/api/utilities/pixel-format.d.ts +94 -0
- package/dist/api/utilities/pixel-format.js +102 -0
- package/dist/api/utilities/pixel-format.js.map +1 -0
- package/dist/api/utilities/sample-format.d.ts +132 -0
- package/dist/api/utilities/sample-format.js +144 -0
- package/dist/api/utilities/sample-format.js.map +1 -0
- package/dist/api/utilities/streaming.d.ts +104 -0
- package/dist/api/utilities/streaming.js +137 -0
- package/dist/api/utilities/streaming.js.map +1 -0
- package/dist/api/utilities/timestamp.d.ts +187 -0
- package/dist/api/utilities/timestamp.js +200 -0
- package/dist/api/utilities/timestamp.js.map +1 -0
- package/dist/api/utils.d.ts +61 -0
- package/dist/api/utils.js +330 -0
- package/dist/api/utils.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/audio-fifo.d.ts +339 -0
- package/dist/lib/audio-fifo.js +365 -0
- package/dist/lib/audio-fifo.js.map +1 -0
- package/dist/lib/binding.d.ts +192 -0
- package/dist/lib/binding.js +70 -0
- package/dist/lib/binding.js.map +1 -0
- package/dist/lib/bitstream-filter-context.d.ts +345 -0
- package/dist/lib/bitstream-filter-context.js +407 -0
- package/dist/lib/bitstream-filter-context.js.map +1 -0
- package/dist/lib/bitstream-filter.d.ts +124 -0
- package/dist/lib/bitstream-filter.js +138 -0
- package/dist/lib/bitstream-filter.js.map +1 -0
- package/dist/lib/channel-layouts.d.ts +51 -0
- package/dist/lib/channel-layouts.js +55 -0
- package/dist/lib/channel-layouts.js.map +1 -0
- package/dist/lib/codec-context.d.ts +763 -0
- package/dist/lib/codec-context.js +974 -0
- package/dist/lib/codec-context.js.map +1 -0
- package/dist/lib/codec-parameters.d.ts +362 -0
- package/dist/lib/codec-parameters.js +460 -0
- package/dist/lib/codec-parameters.js.map +1 -0
- package/dist/lib/codec-parser.d.ts +185 -0
- package/dist/lib/codec-parser.js +193 -0
- package/dist/lib/codec-parser.js.map +1 -0
- package/dist/lib/codec.d.ts +432 -0
- package/dist/lib/codec.js +492 -0
- package/dist/lib/codec.js.map +1 -0
- package/dist/lib/constants.d.ts +2037 -0
- package/dist/lib/constants.js +1659 -0
- package/dist/lib/constants.js.map +1 -0
- package/dist/lib/dictionary.d.ts +371 -0
- package/dist/lib/dictionary.js +406 -0
- package/dist/lib/dictionary.js.map +1 -0
- package/dist/lib/error.d.ts +216 -0
- package/dist/lib/error.js +254 -0
- package/dist/lib/error.js.map +1 -0
- package/dist/lib/filter-context.d.ts +445 -0
- package/dist/lib/filter-context.js +505 -0
- package/dist/lib/filter-context.js.map +1 -0
- package/dist/lib/filter-graph.d.ts +556 -0
- package/dist/lib/filter-graph.js +608 -0
- package/dist/lib/filter-graph.js.map +1 -0
- package/dist/lib/filter-inout.d.ts +205 -0
- package/dist/lib/filter-inout.js +264 -0
- package/dist/lib/filter-inout.js.map +1 -0
- package/dist/lib/filter.d.ts +231 -0
- package/dist/lib/filter.js +260 -0
- package/dist/lib/filter.js.map +1 -0
- package/dist/lib/format-context.d.ts +798 -0
- package/dist/lib/format-context.js +845 -0
- package/dist/lib/format-context.js.map +1 -0
- package/dist/lib/frame.d.ts +784 -0
- package/dist/lib/frame.js +933 -0
- package/dist/lib/frame.js.map +1 -0
- package/dist/lib/hardware-device-context.d.ts +407 -0
- package/dist/lib/hardware-device-context.js +429 -0
- package/dist/lib/hardware-device-context.js.map +1 -0
- package/dist/lib/hardware-frames-context.d.ts +374 -0
- package/dist/lib/hardware-frames-context.js +430 -0
- package/dist/lib/hardware-frames-context.js.map +1 -0
- package/dist/lib/index.d.ts +31 -0
- package/dist/lib/index.js +54 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/input-format.d.ts +216 -0
- package/dist/lib/input-format.js +246 -0
- package/dist/lib/input-format.js.map +1 -0
- package/dist/lib/io-context.d.ts +495 -0
- package/dist/lib/io-context.js +550 -0
- package/dist/lib/io-context.js.map +1 -0
- package/dist/lib/log.d.ts +201 -0
- package/dist/lib/log.js +219 -0
- package/dist/lib/log.js.map +1 -0
- package/dist/lib/native-types.d.ts +719 -0
- package/dist/lib/native-types.js +2 -0
- package/dist/lib/native-types.js.map +1 -0
- package/dist/lib/option.d.ts +589 -0
- package/dist/lib/option.js +853 -0
- package/dist/lib/option.js.map +1 -0
- package/dist/lib/output-format.d.ts +179 -0
- package/dist/lib/output-format.js +205 -0
- package/dist/lib/output-format.js.map +1 -0
- package/dist/lib/packet.d.ts +487 -0
- package/dist/lib/packet.js +558 -0
- package/dist/lib/packet.js.map +1 -0
- package/dist/lib/rational.d.ts +210 -0
- package/dist/lib/rational.js +233 -0
- package/dist/lib/rational.js.map +1 -0
- package/dist/lib/software-resample-context.d.ts +572 -0
- package/dist/lib/software-resample-context.js +610 -0
- package/dist/lib/software-resample-context.js.map +1 -0
- package/dist/lib/software-scale-context.d.ts +290 -0
- package/dist/lib/software-scale-context.js +308 -0
- package/dist/lib/software-scale-context.js.map +1 -0
- package/dist/lib/stream.d.ts +322 -0
- package/dist/lib/stream.js +408 -0
- package/dist/lib/stream.js.map +1 -0
- package/dist/lib/types.d.ts +59 -0
- package/dist/lib/types.js +8 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/utilities.d.ts +346 -0
- package/dist/lib/utilities.js +424 -0
- package/dist/lib/utilities.js.map +1 -0
- package/install/check.js +113 -0
- package/install/ffmpeg.js +163 -0
- package/package.json +107 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/api/filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HardwareContext - High-level Hardware Acceleration API
|
|
3
|
+
*
|
|
4
|
+
* Provides simplified access to hardware acceleration features.
|
|
5
|
+
* Automatically detects and configures hardware devices for encoding/decoding.
|
|
6
|
+
*
|
|
7
|
+
* Wraps the low-level HardwareDeviceContext and HardwareFramesContext.
|
|
8
|
+
* Manages lifecycle of hardware resources with automatic cleanup.
|
|
9
|
+
*
|
|
10
|
+
* @module api/hardware
|
|
11
|
+
*/
|
|
12
|
+
import { HardwareDeviceContext, HardwareFramesContext } from '../lib/index.js';
|
|
13
|
+
import type { AVCodecID, AVHWDeviceType, AVPixelFormat } from '../lib/index.js';
|
|
14
|
+
import type { HardwareOptions } from './types.js';
|
|
15
|
+
/**
|
|
16
|
+
* HardwareContext - Simplified hardware acceleration management.
|
|
17
|
+
*
|
|
18
|
+
* Provides automatic detection and configuration of hardware acceleration.
|
|
19
|
+
* Manages device contexts and frame contexts for hardware encoding/decoding.
|
|
20
|
+
*
|
|
21
|
+
* Supports various hardware types including VideoToolbox (macOS), CUDA,
|
|
22
|
+
* VAAPI (Linux), D3D11VA/D3D12VA (Windows), and more.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* import { HardwareContext } from 'node-av/api';
|
|
27
|
+
*
|
|
28
|
+
* // Auto-detect best available hardware
|
|
29
|
+
* const hw = await HardwareContext.auto();
|
|
30
|
+
* if (hw) {
|
|
31
|
+
* console.log(`Using hardware: ${hw.deviceType}`);
|
|
32
|
+
* decoder.hwDeviceCtx = hw.deviceContext;
|
|
33
|
+
* }
|
|
34
|
+
*
|
|
35
|
+
* // Use specific hardware
|
|
36
|
+
* const cuda = await HardwareContext.create(AV_HWDEVICE_TYPE_CUDA);
|
|
37
|
+
* encoder.hwDeviceCtx = cuda.deviceContext;
|
|
38
|
+
*
|
|
39
|
+
* // Clean up when done
|
|
40
|
+
* hw?.dispose();
|
|
41
|
+
* cuda.dispose();
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export declare class HardwareContext implements Disposable {
|
|
45
|
+
private _deviceContext;
|
|
46
|
+
private _framesContext?;
|
|
47
|
+
private _deviceType;
|
|
48
|
+
private _deviceName?;
|
|
49
|
+
private _devicePixelFormat;
|
|
50
|
+
private _isDisposed;
|
|
51
|
+
private waitingComponents;
|
|
52
|
+
/**
|
|
53
|
+
* Create a new HardwareContext instance.
|
|
54
|
+
*
|
|
55
|
+
* Private constructor - use HardwareContext.create() or HardwareContext.auto() to create instances.
|
|
56
|
+
*
|
|
57
|
+
* Stores the device context and type for later use.
|
|
58
|
+
*
|
|
59
|
+
* @param deviceContext - Initialized hardware device context
|
|
60
|
+
* @param deviceType - Hardware device type
|
|
61
|
+
* @param deviceName - Optional device name/identifier
|
|
62
|
+
*/
|
|
63
|
+
private constructor();
|
|
64
|
+
/**
|
|
65
|
+
* Auto-detect and create the best available hardware context.
|
|
66
|
+
*
|
|
67
|
+
* Tries hardware types in order of preference based on platform.
|
|
68
|
+
* Returns null if no hardware acceleration is available.
|
|
69
|
+
*
|
|
70
|
+
* Platform-specific preferences:
|
|
71
|
+
* - macOS: VideoToolbox
|
|
72
|
+
* - Windows: D3D12VA, D3D11VA, DXVA2, QSV, CUDA
|
|
73
|
+
* - Linux: VAAPI, VDPAU, CUDA, Vulkan, DRM
|
|
74
|
+
*
|
|
75
|
+
* @param options - Optional hardware configuration
|
|
76
|
+
*
|
|
77
|
+
* @returns Promise resolving to HardwareContext or null
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* const hw = await HardwareContext.auto();
|
|
82
|
+
* if (hw) {
|
|
83
|
+
* console.log(`Auto-detected: ${hw.deviceTypeName}`);
|
|
84
|
+
* }
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
static auto(options?: HardwareOptions): Promise<HardwareContext | null>;
|
|
88
|
+
/**
|
|
89
|
+
* Create a hardware context for a specific device type.
|
|
90
|
+
*
|
|
91
|
+
* Creates and initializes a hardware device context using FFmpeg's
|
|
92
|
+
* av_hwdevice_ctx_create() internally.
|
|
93
|
+
*
|
|
94
|
+
* @param device - Device type name (e.g., AV_HWDEVICE_TYPE_CUDA, AV_HWDEVICE_TYPE_VAAPI, AV_HWDEVICE_TYPE_VIDEOTOOLBOX)
|
|
95
|
+
* @param deviceName - Optional device name/index
|
|
96
|
+
* @param options - Optional device initialization options
|
|
97
|
+
*
|
|
98
|
+
* @returns Promise resolving to HardwareContext
|
|
99
|
+
*
|
|
100
|
+
* @throws {Error} If device type is not supported or initialization fails
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```typescript
|
|
104
|
+
* // Create CUDA context
|
|
105
|
+
* const cuda = await HardwareContext.create(AV_HWDEVICE_TYPE_CUDA, '0');
|
|
106
|
+
*
|
|
107
|
+
* // Create VAAPI context
|
|
108
|
+
* const vaapi = await HardwareContext.create(AV_HWDEVICE_TYPE_VAAPI, '/dev/dri/renderD128');
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
static create(device: AVHWDeviceType, deviceName?: string, options?: Record<string, string>): Promise<HardwareContext>;
|
|
112
|
+
/**
|
|
113
|
+
* List all available hardware device types.
|
|
114
|
+
*
|
|
115
|
+
* Uses av_hwdevice_iterate_types() internally to enumerate
|
|
116
|
+
* all hardware types supported by the FFmpeg build.
|
|
117
|
+
*
|
|
118
|
+
* @returns Array of available device type names
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```typescript
|
|
122
|
+
* const available = HardwareContext.listAvailable();
|
|
123
|
+
* console.log('Available hardware:', available.join(', '));
|
|
124
|
+
* ```
|
|
125
|
+
*/
|
|
126
|
+
static listAvailable(): string[];
|
|
127
|
+
/**
|
|
128
|
+
* Get the hardware device context.
|
|
129
|
+
*
|
|
130
|
+
* This can be assigned to CodecContext.hwDeviceCtx for hardware acceleration.
|
|
131
|
+
*
|
|
132
|
+
* @returns Hardware device context
|
|
133
|
+
*/
|
|
134
|
+
get deviceContext(): HardwareDeviceContext;
|
|
135
|
+
/**
|
|
136
|
+
* Get the hardware frames context.
|
|
137
|
+
*
|
|
138
|
+
* Created on-demand when needed for frame allocation.
|
|
139
|
+
*
|
|
140
|
+
* @returns Hardware frames context or undefined
|
|
141
|
+
*/
|
|
142
|
+
get framesContext(): HardwareFramesContext | undefined;
|
|
143
|
+
/**
|
|
144
|
+
* Set the hardware frames context.
|
|
145
|
+
*
|
|
146
|
+
* First component to set it "wins" - subsequent sets are ignored.
|
|
147
|
+
* This is typically called by the decoder after decoding the first frame,
|
|
148
|
+
* allowing other components (encoder, filters) to share the same frames context.
|
|
149
|
+
*
|
|
150
|
+
* @param framesContext - The hardware frames context to set
|
|
151
|
+
*/
|
|
152
|
+
set framesContext(framesContext: HardwareFramesContext | undefined);
|
|
153
|
+
/**
|
|
154
|
+
* Get the device type enum value.
|
|
155
|
+
*
|
|
156
|
+
* @returns AVHWDeviceType enum value
|
|
157
|
+
*/
|
|
158
|
+
get deviceType(): AVHWDeviceType;
|
|
159
|
+
/**
|
|
160
|
+
* Get the hardware device type name.
|
|
161
|
+
*
|
|
162
|
+
* Uses FFmpeg's native av_hwdevice_get_type_name() function.
|
|
163
|
+
*
|
|
164
|
+
* @returns Device type name as string (e.g., 'cuda', 'videotoolbox')
|
|
165
|
+
*/
|
|
166
|
+
get deviceTypeName(): string;
|
|
167
|
+
/**
|
|
168
|
+
* Get the device name/identifier.
|
|
169
|
+
*
|
|
170
|
+
* @returns Device name or undefined
|
|
171
|
+
*/
|
|
172
|
+
get deviceName(): string | undefined;
|
|
173
|
+
/**
|
|
174
|
+
* Get the device pixel format.
|
|
175
|
+
*
|
|
176
|
+
* @returns Device pixel format
|
|
177
|
+
*/
|
|
178
|
+
get devicePixelFormat(): AVPixelFormat;
|
|
179
|
+
/**
|
|
180
|
+
* Check if this hardware context has been disposed.
|
|
181
|
+
*
|
|
182
|
+
* @returns True if disposed
|
|
183
|
+
*/
|
|
184
|
+
get isDisposed(): boolean;
|
|
185
|
+
/**
|
|
186
|
+
* Create or ensure a frames context exists for this hardware device.
|
|
187
|
+
*
|
|
188
|
+
* If a frames context already exists with different dimensions, throws an error.
|
|
189
|
+
* This is used for raw/generated frames that need hardware processing.
|
|
190
|
+
*
|
|
191
|
+
* @param width - Frame width
|
|
192
|
+
* @param height - Frame height
|
|
193
|
+
* @param swFormat - Software pixel format (default: AV_PIX_FMT_NV12)
|
|
194
|
+
* @param initialPoolSize - Initial frame pool size (default: 20)
|
|
195
|
+
*
|
|
196
|
+
* @returns HardwareFramesContext - Either existing or newly created
|
|
197
|
+
*
|
|
198
|
+
* @throws {Error} If frames context exists with incompatible dimensions
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* ```typescript
|
|
202
|
+
* // For raw frames
|
|
203
|
+
* hw.ensureFramesContext(1920, 1080, AV_PIX_FMT_YUV420P);
|
|
204
|
+
* ```
|
|
205
|
+
*/
|
|
206
|
+
ensureFramesContext(width: number, height: number, swFormat?: AVPixelFormat, initialPoolSize?: number): HardwareFramesContext;
|
|
207
|
+
/**
|
|
208
|
+
* Wait for frames context to become available.
|
|
209
|
+
*
|
|
210
|
+
* Used by components that need hw_frames_ctx but don't have it yet.
|
|
211
|
+
* Resolves when another component (typically decoder) sets the frames context.
|
|
212
|
+
*
|
|
213
|
+
* @param timeout - Maximum time to wait in milliseconds (default: 5000)
|
|
214
|
+
*
|
|
215
|
+
* @returns Promise that resolves with the frames context
|
|
216
|
+
*
|
|
217
|
+
* @throws {Error} If timeout expires or HardwareContext is disposed
|
|
218
|
+
*
|
|
219
|
+
* @example
|
|
220
|
+
* ```typescript
|
|
221
|
+
* // Wait up to 3 seconds for frames context
|
|
222
|
+
* const framesCtx = await hw.waitForFramesContext(3000);
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
waitForFramesContext(timeout?: number): Promise<HardwareFramesContext>;
|
|
226
|
+
/**
|
|
227
|
+
* Get the hardware pixel format for this device type.
|
|
228
|
+
*
|
|
229
|
+
* Maps device types to their corresponding pixel formats.
|
|
230
|
+
*
|
|
231
|
+
* Returns the appropriate AV_PIX_FMT_* constant for the hardware type.
|
|
232
|
+
*
|
|
233
|
+
* @returns Hardware pixel format
|
|
234
|
+
*/
|
|
235
|
+
getHardwarePixelFormat(): AVPixelFormat;
|
|
236
|
+
/**
|
|
237
|
+
* Check if this hardware type supports a specific codec.
|
|
238
|
+
*
|
|
239
|
+
* Checks both decoder and encoder support by querying FFmpeg's codec configurations.
|
|
240
|
+
*
|
|
241
|
+
* Uses avcodec_get_hw_config() internally to check hardware support.
|
|
242
|
+
*
|
|
243
|
+
* @param codecId - Codec ID from AVCodecID enum
|
|
244
|
+
* @param isEncoder - Check for encoder support (default: false for decoder)
|
|
245
|
+
*
|
|
246
|
+
* @returns True if codec is supported by this hardware
|
|
247
|
+
*/
|
|
248
|
+
supportsCodec(codecId: AVCodecID, isEncoder?: boolean): boolean;
|
|
249
|
+
/**
|
|
250
|
+
* Check if this hardware device type supports a specific pixel format.
|
|
251
|
+
*
|
|
252
|
+
* @param codecId - Codec ID from AVCodecID enum
|
|
253
|
+
* @param pixelFormat - Pixel format to check
|
|
254
|
+
* @param isEncoder - Check for encoder support (default: false for decoder)
|
|
255
|
+
*
|
|
256
|
+
* @returns True if pixel format is supported by this hardware
|
|
257
|
+
*/
|
|
258
|
+
supportsPixelFormat(codecId: AVCodecID, pixelFormat: AVPixelFormat, isEncoder?: boolean): boolean;
|
|
259
|
+
/**
|
|
260
|
+
* Find all codecs that support this hardware device.
|
|
261
|
+
*
|
|
262
|
+
* Uses FFmpeg's native codec list to find compatible codecs.
|
|
263
|
+
*
|
|
264
|
+
* Iterates through all codecs using av_codec_iterate() and checks
|
|
265
|
+
* their hardware configurations.
|
|
266
|
+
*
|
|
267
|
+
* @param isEncoder - Find encoders (true) or decoders (false)
|
|
268
|
+
*
|
|
269
|
+
* @returns Array of codec names that support this hardware
|
|
270
|
+
*/
|
|
271
|
+
findSupportedCodecs(isEncoder?: boolean): string[];
|
|
272
|
+
/**
|
|
273
|
+
* Clean up and free hardware resources.
|
|
274
|
+
*
|
|
275
|
+
* Safe to call multiple times - subsequent calls are no-ops.
|
|
276
|
+
* Called automatically by Decoder/Encoder on close.
|
|
277
|
+
*
|
|
278
|
+
* Frees both frames context (if created) and device context.
|
|
279
|
+
* Notifies any waiting components that disposal occurred.
|
|
280
|
+
*/
|
|
281
|
+
dispose(): void;
|
|
282
|
+
/**
|
|
283
|
+
* Create hardware context from device type.
|
|
284
|
+
*
|
|
285
|
+
* Internal factory method using av_hwdevice_ctx_create().
|
|
286
|
+
*
|
|
287
|
+
* @param deviceType - AVHWDeviceType enum value
|
|
288
|
+
* @param deviceName - Optional device name/index
|
|
289
|
+
* @param options - Optional device options
|
|
290
|
+
*
|
|
291
|
+
* @returns HardwareContext or null if creation fails
|
|
292
|
+
*/
|
|
293
|
+
private static createFromType;
|
|
294
|
+
/**
|
|
295
|
+
* Get platform-specific preference order for hardware types.
|
|
296
|
+
*
|
|
297
|
+
* Returns the optimal hardware types for the current platform.
|
|
298
|
+
*
|
|
299
|
+
* @returns Array of AVHWDeviceType values in preference order
|
|
300
|
+
*/
|
|
301
|
+
private static getPreferenceOrder;
|
|
302
|
+
/**
|
|
303
|
+
* Automatic cleanup when using 'using' statement.
|
|
304
|
+
*
|
|
305
|
+
* Implements the Disposable interface for automatic cleanup.
|
|
306
|
+
*
|
|
307
|
+
* Calls dispose() to free hardware resources.
|
|
308
|
+
*
|
|
309
|
+
* @example
|
|
310
|
+
* ```typescript
|
|
311
|
+
* {
|
|
312
|
+
* using hw = await HardwareContext.auto();
|
|
313
|
+
* // Use hardware context...
|
|
314
|
+
* } // Automatically disposed
|
|
315
|
+
* ```
|
|
316
|
+
*/
|
|
317
|
+
[Symbol.dispose](): void;
|
|
318
|
+
}
|