node-av 2.7.1 → 3.0.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.
Files changed (41) hide show
  1. package/README.md +2 -4
  2. package/binding.gyp +149 -88
  3. package/dist/api/encoder.d.ts +3 -0
  4. package/dist/api/encoder.js +9 -4
  5. package/dist/api/encoder.js.map +1 -1
  6. package/dist/api/filter-presets.d.ts +2 -0
  7. package/dist/api/filter-presets.js +97 -43
  8. package/dist/api/filter-presets.js.map +1 -1
  9. package/dist/api/hardware.js +5 -0
  10. package/dist/api/hardware.js.map +1 -1
  11. package/dist/api/media-input.d.ts +2 -0
  12. package/dist/api/media-input.js +10 -10
  13. package/dist/api/media-input.js.map +1 -1
  14. package/dist/constants/constants.d.ts +233 -28
  15. package/dist/constants/constants.js +198 -34
  16. package/dist/constants/constants.js.map +1 -1
  17. package/dist/constants/decoders.d.ts +23 -0
  18. package/dist/constants/decoders.js +25 -2
  19. package/dist/constants/decoders.js.map +1 -1
  20. package/dist/constants/encoders.d.ts +9 -2
  21. package/dist/constants/encoders.js +11 -4
  22. package/dist/constants/encoders.js.map +1 -1
  23. package/dist/lib/codec-context.d.ts +80 -0
  24. package/dist/lib/codec-context.js +88 -0
  25. package/dist/lib/codec-context.js.map +1 -1
  26. package/dist/lib/filter-context.d.ts +0 -24
  27. package/dist/lib/filter-context.js +0 -28
  28. package/dist/lib/filter-context.js.map +1 -1
  29. package/dist/lib/format-context.d.ts +40 -0
  30. package/dist/lib/format-context.js +44 -0
  31. package/dist/lib/format-context.js.map +1 -1
  32. package/dist/lib/native-types.d.ts +13 -4
  33. package/dist/lib/packet.d.ts +40 -0
  34. package/dist/lib/packet.js +44 -0
  35. package/dist/lib/packet.js.map +1 -1
  36. package/dist/lib/software-scale-context.d.ts +2 -2
  37. package/dist/lib/software-scale-context.js.map +1 -1
  38. package/dist/lib/stream.d.ts +40 -0
  39. package/dist/lib/stream.js +44 -0
  40. package/dist/lib/stream.js.map +1 -1
  41. package/package.json +17 -16
package/README.md CHANGED
@@ -8,8 +8,8 @@
8
8
  [![npm downloads](https://img.shields.io/npm/dm/node-av.svg)](https://www.npmjs.com/package/node-av)
9
9
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
10
10
  [![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue.svg)](https://www.typescriptlang.org/)
11
- [![FFmpeg](https://img.shields.io/badge/FFmpeg-7.1.2-green.svg)](https://ffmpeg.org)
12
- [![Platform](https://img.shields.io/badge/platform-Windows%20(MSVC%20%7C%20MinGW)%20%7C%20macOS%20%7C%20Linux-lightgrey.svg)](https://github.com/seydx/node-av/tree/main/INSTALLATION.md)
11
+ [![FFmpeg](https://img.shields.io/badge/FFmpeg-8-green.svg)](https://ffmpeg.org)
12
+ [![Platform](https://img.shields.io/badge/platform-Windows%20(MSVC%20%7C%20MinGW)%20%7C%20macOS%20%7C%20Linux-lightgrey.svg)](https://github.com/seydx/node-av)
13
13
 
14
14
  Native Node.js bindings for FFmpeg with full TypeScript support. Provides direct access to FFmpeg's C APIs through N-API. Includes both raw FFmpeg bindings for full control and higher-level abstractions. Automatic resource management via Disposable pattern, hardware acceleration support and prebuilt binaries for Windows, Linux, and macOS.
15
15
 
@@ -445,8 +445,6 @@ Prebuilt binaries are available for multiple platforms:
445
445
  - **Linux**: x64, ARM64
446
446
  - **Windows**: x64, ARM64 (automatic MSVC/MinGW selection)
447
447
 
448
- For detailed installation instructions, build requirements, and troubleshooting, see the **[Installation Guide](https://github.com/seydx/node-av/tree/main/INSTALLATION.md)**.
449
-
450
448
  ## License
451
449
 
452
450
  This project is licensed under the MIT License. See the LICENSE file for details.
package/binding.gyp CHANGED
@@ -1,91 +1,152 @@
1
1
  {
2
- "targets": [
3
- {
4
- "target_name": "node-av",
5
- "sources": [
6
- "src/bindings/index.cc",
7
- "src/bindings/packet.cc",
8
- "src/bindings/frame.cc",
9
- "src/bindings/frame_async.cc",
10
- "src/bindings/frame_sync.cc",
11
- "src/bindings/codec.cc",
12
- "src/bindings/codec_context.cc",
13
- "src/bindings/codec_context_async.cc",
14
- "src/bindings/codec_context_sync.cc",
15
- "src/bindings/codec_parameters.cc",
16
- "src/bindings/codec_parser.cc",
17
- "src/bindings/format_context.cc",
18
- "src/bindings/format_context_async.cc",
19
- "src/bindings/format_context_sync.cc",
20
- "src/bindings/stream.cc",
21
- "src/bindings/dictionary.cc",
22
- "src/bindings/input_format.cc",
23
- "src/bindings/input_format_async.cc",
24
- "src/bindings/input_format_sync.cc",
25
- "src/bindings/output_format.cc",
26
- "src/bindings/io_context.cc",
27
- "src/bindings/io_context_async.cc",
28
- "src/bindings/io_context_sync.cc",
29
- "src/bindings/error.cc",
30
- "src/bindings/software_scale_context.cc",
31
- "src/bindings/software_scale_context_async.cc",
32
- "src/bindings/software_scale_context_sync.cc",
33
- "src/bindings/software_resample_context.cc",
34
- "src/bindings/software_resample_context_async.cc",
35
- "src/bindings/software_resample_context_sync.cc",
36
- "src/bindings/filter.cc",
37
- "src/bindings/filter_context.cc",
38
- "src/bindings/filter_context_async.cc",
39
- "src/bindings/filter_context_sync.cc",
40
- "src/bindings/filter_graph.cc",
41
- "src/bindings/filter_graph_async.cc",
42
- "src/bindings/filter_graph_sync.cc",
43
- "src/bindings/filter_inout.cc",
44
- "src/bindings/hardware_device_context.cc",
45
- "src/bindings/hardware_frames_context.cc",
46
- "src/bindings/hardware_frames_context_async.cc",
47
- "src/bindings/hardware_frames_context_sync.cc",
48
- "src/bindings/log.cc",
49
- "src/bindings/utilities.cc",
50
- "src/bindings/audio_fifo.cc",
51
- "src/bindings/audio_fifo_async.cc",
52
- "src/bindings/audio_fifo_sync.cc",
53
- "src/bindings/frame_utils.cc",
54
- "src/bindings/bitstream_filter.cc",
55
- "src/bindings/bitstream_filter_context.cc",
56
- "src/bindings/bitstream_filter_context_async.cc",
57
- "src/bindings/bitstream_filter_context_sync.cc",
58
- "src/bindings/option.cc"
59
- ],
60
- "include_dirs": [
61
- "<!@(node -p \"require('node-addon-api').include\")",
62
- "<!@(pkg-config --cflags-only-I libavutil libavformat libavfilter | sed s/-I//g)"
63
- ],
64
- "dependencies": [
65
- "<!(node -p \"require('node-addon-api').gyp\")"
66
- ],
67
- "libraries": [
68
- "<!@(pkg-config --libs libavutil libavcodec libavformat libavfilter libswscale libswresample)"
69
- ],
70
- "cflags!": [
71
- "-fno-exceptions"
72
- ],
73
- "cflags_cc!": [
74
- "-fno-exceptions"
75
- ],
76
- "xcode_settings": {
77
- "GCC_ENABLE_CPP_EXCEPTIONS": "YES",
78
- "CLANG_CXX_LIBRARY": "libc++",
79
- "MACOSX_DEPLOYMENT_TARGET": "14.0"
80
- },
81
- "msvs_settings": {
82
- "VCCLCompilerTool": {
83
- "ExceptionHandling": 1
2
+ "targets": [
3
+ {
4
+ "target_name": "node-av",
5
+ "sources": [
6
+ "src/bindings/index.cc",
7
+ "src/bindings/packet.cc",
8
+ "src/bindings/frame.cc",
9
+ "src/bindings/frame_async.cc",
10
+ "src/bindings/frame_sync.cc",
11
+ "src/bindings/codec.cc",
12
+ "src/bindings/codec_context.cc",
13
+ "src/bindings/codec_context_async.cc",
14
+ "src/bindings/codec_context_sync.cc",
15
+ "src/bindings/codec_parameters.cc",
16
+ "src/bindings/codec_parser.cc",
17
+ "src/bindings/format_context.cc",
18
+ "src/bindings/format_context_async.cc",
19
+ "src/bindings/format_context_sync.cc",
20
+ "src/bindings/stream.cc",
21
+ "src/bindings/dictionary.cc",
22
+ "src/bindings/input_format.cc",
23
+ "src/bindings/input_format_async.cc",
24
+ "src/bindings/input_format_sync.cc",
25
+ "src/bindings/output_format.cc",
26
+ "src/bindings/io_context.cc",
27
+ "src/bindings/io_context_async.cc",
28
+ "src/bindings/io_context_sync.cc",
29
+ "src/bindings/error.cc",
30
+ "src/bindings/software_scale_context.cc",
31
+ "src/bindings/software_scale_context_async.cc",
32
+ "src/bindings/software_scale_context_sync.cc",
33
+ "src/bindings/software_resample_context.cc",
34
+ "src/bindings/software_resample_context_async.cc",
35
+ "src/bindings/software_resample_context_sync.cc",
36
+ "src/bindings/filter.cc",
37
+ "src/bindings/filter_context.cc",
38
+ "src/bindings/filter_context_async.cc",
39
+ "src/bindings/filter_context_sync.cc",
40
+ "src/bindings/filter_graph.cc",
41
+ "src/bindings/filter_graph_async.cc",
42
+ "src/bindings/filter_graph_sync.cc",
43
+ "src/bindings/filter_inout.cc",
44
+ "src/bindings/hardware_device_context.cc",
45
+ "src/bindings/hardware_frames_context.cc",
46
+ "src/bindings/hardware_frames_context_async.cc",
47
+ "src/bindings/hardware_frames_context_sync.cc",
48
+ "src/bindings/log.cc",
49
+ "src/bindings/utilities.cc",
50
+ "src/bindings/audio_fifo.cc",
51
+ "src/bindings/audio_fifo_async.cc",
52
+ "src/bindings/audio_fifo_sync.cc",
53
+ "src/bindings/frame_utils.cc",
54
+ "src/bindings/bitstream_filter.cc",
55
+ "src/bindings/bitstream_filter_context.cc",
56
+ "src/bindings/bitstream_filter_context_async.cc",
57
+ "src/bindings/bitstream_filter_context_sync.cc",
58
+ "src/bindings/option.cc",
59
+ ],
60
+ "include_dirs": [
61
+ "<!@(node -p \"require('node-addon-api').include\")",
62
+ "/opt/ffbuild/prefix/include",
63
+ ],
64
+ "library_dirs": ["/opt/ffbuild/prefix/lib"],
65
+ "dependencies": ["<!(node -p \"require('node-addon-api').gyp\")"],
66
+ "cflags!": ["-fno-exceptions"],
67
+ "cflags_cc!": ["-fno-exceptions"],
68
+ "defines": ["NAPI_DISABLE_CPP_EXCEPTIONS"],
69
+ "libraries": [
70
+ "-Wl,-force_load,/opt/ffbuild/prefix/lib/libavformat.a",
71
+ "-Wl,-force_load,/opt/ffbuild/prefix/lib/libavcodec.a",
72
+ "-Wl,-force_load,/opt/ffbuild/prefix/lib/libavfilter.a",
73
+ "-Wl,-force_load,/opt/ffbuild/prefix/lib/libavutil.a",
74
+ "-Wl,-force_load,/opt/ffbuild/prefix/lib/libswscale.a",
75
+ "-Wl,-force_load,/opt/ffbuild/prefix/lib/libswresample.a",
76
+ "-Wl,-force_load,/opt/ffbuild/prefix/lib/libavdevice.a",
77
+ "-L/opt/ffbuild/prefix/lib",
78
+ "/opt/ffbuild/prefix/lib/libx264.a",
79
+ "/opt/ffbuild/prefix/lib/libx265.a",
80
+ "/opt/ffbuild/prefix/lib/libvpx.a",
81
+ "/opt/ffbuild/prefix/lib/libopus.a",
82
+ "/opt/ffbuild/prefix/lib/libmp3lame.a",
83
+ "/opt/ffbuild/prefix/lib/libdav1d.a",
84
+ "/opt/ffbuild/prefix/lib/libSvtAv1Enc.a",
85
+ "/opt/ffbuild/prefix/lib/libogg.a",
86
+ "/opt/ffbuild/prefix/lib/libvorbis.a",
87
+ "/opt/ffbuild/prefix/lib/libvorbisenc.a",
88
+ "/opt/ffbuild/prefix/lib/libtheora.a",
89
+ "/opt/ffbuild/prefix/lib/libtheoraenc.a",
90
+ "/opt/ffbuild/prefix/lib/libtheoradec.a",
91
+ "/opt/ffbuild/prefix/lib/libwebp.a",
92
+ "/opt/ffbuild/prefix/lib/libwebpmux.a",
93
+ "/opt/ffbuild/prefix/lib/libsrt.a",
94
+ "/opt/ffbuild/prefix/lib/libass.a",
95
+ "/opt/ffbuild/prefix/lib/libharfbuzz.a",
96
+ "/opt/ffbuild/prefix/lib/libfontconfig.a",
97
+ "/opt/ffbuild/prefix/lib/libfreetype.a",
98
+ "/opt/ffbuild/prefix/lib/libfribidi.a",
99
+ "/opt/ffbuild/prefix/lib/libbluray.a",
100
+ "/opt/ffbuild/prefix/lib/libudfread.a",
101
+ "/opt/ffbuild/prefix/lib/libz.a",
102
+ "/opt/ffbuild/prefix/lib/liblzma.a",
103
+ "<!@(ls /opt/ffbuild/prefix/lib/libNE10.a 2>/dev/null || echo '')",
104
+ "<!@(ls /opt/ffbuild/prefix/lib/libwebpdemux.a 2>/dev/null || echo '')",
105
+ "<!@(ls /opt/ffbuild/prefix/lib/libchromaprint.a 2>/dev/null || echo '')",
106
+ "<!@(ls /opt/ffbuild/prefix/lib/libopenmpt.a 2>/dev/null || echo '')",
107
+ "<!@(ls /opt/ffbuild/prefix/lib/libxml2.a 2>/dev/null || echo '')",
108
+ "<!@(ls /opt/ffbuild/prefix/lib/libbz2.a 2>/dev/null || echo '')",
109
+ "<!@(ls /opt/ffbuild/prefix/lib/libzvbi.a 2>/dev/null || echo '')",
110
+ "<!@(ls /opt/ffbuild/prefix/lib/libzimg.a 2>/dev/null || echo '')",
111
+ "<!@(ls /opt/ffbuild/prefix/lib/libgmp.a 2>/dev/null || echo '')",
112
+ "<!@(ls /opt/ffbuild/prefix/lib/libssl.a 2>/dev/null || echo '')",
113
+ "<!@(ls /opt/ffbuild/prefix/lib/libcrypto.a 2>/dev/null || echo '')",
114
+ "-liconv",
115
+ "-lxml2",
116
+ "-lbz2",
117
+ "-framework CoreFoundation",
118
+ "-framework CoreVideo",
119
+ "-framework CoreMedia",
120
+ "-framework CoreServices",
121
+ "-framework AudioToolbox",
122
+ "-framework VideoToolbox",
123
+ "-framework AVFoundation",
124
+ "-framework AppKit",
125
+ "-framework Accelerate",
126
+ "-framework Security",
127
+ "-framework IOKit",
128
+ "-framework OpenGL",
129
+ "-framework Metal",
130
+ "-framework OpenCL",
131
+ ],
132
+ "xcode_settings": {
133
+ "GCC_ENABLE_CPP_EXCEPTIONS": "YES",
134
+ "CLANG_CXX_LIBRARY": "libc++",
135
+ "CLANG_CXX_LANGUAGE_STANDARD": "c++17",
136
+ "MACOSX_DEPLOYMENT_TARGET": "12.0",
137
+ "OTHER_CPLUSPLUSFLAGS": [
138
+ "-fexceptions",
139
+ "-O3",
140
+ ],
141
+ "OTHER_LDFLAGS": [
142
+ "-Wl,-dead_strip",
143
+ "-Wl,-no_warn_duplicate_libraries",
144
+ ],
145
+ "CONDITIONS": [
146
+ ["target_arch=='x64'", {"ARCHS": ["x86_64"]}],
147
+ ["target_arch=='arm64'", {"ARCHS": ["arm64"]}],
148
+ ],
149
+ },
84
150
  }
85
- },
86
- "defines": [
87
- "NAPI_DISABLE_CPP_EXCEPTIONS"
88
- ]
89
- }
90
- ]
151
+ ]
91
152
  }
@@ -68,11 +68,14 @@ export declare class Encoder implements Disposable {
68
68
  private initialized;
69
69
  private isClosed;
70
70
  private opts?;
71
+ private options;
71
72
  /**
72
73
  * @param codecContext - Configured codec context
73
74
  *
74
75
  * @param codec - Encoder codec
75
76
  *
77
+ * @param options - Encoder options
78
+ *
76
79
  * @param opts - Encoder options as Dictionary
77
80
  *
78
81
  * @internal
@@ -66,18 +66,22 @@ export class Encoder {
66
66
  initialized = false;
67
67
  isClosed = false;
68
68
  opts;
69
+ options;
69
70
  /**
70
71
  * @param codecContext - Configured codec context
71
72
  *
72
73
  * @param codec - Encoder codec
73
74
  *
75
+ * @param options - Encoder options
76
+ *
74
77
  * @param opts - Encoder options as Dictionary
75
78
  *
76
79
  * @internal
77
80
  */
78
- constructor(codecContext, codec, opts) {
81
+ constructor(codecContext, codec, options, opts) {
79
82
  this.codecContext = codecContext;
80
83
  this.codec = codec;
84
+ this.options = options;
81
85
  this.opts = opts;
82
86
  this.packet = new Packet();
83
87
  this.packet.alloc();
@@ -189,7 +193,7 @@ export class Encoder {
189
193
  codecContext.framerate = new Rational(options.frameRate.num, options.frameRate.den);
190
194
  }
191
195
  const opts = options.options ? Dictionary.fromObject(options.options) : undefined;
192
- return new Encoder(codecContext, codec, opts);
196
+ return new Encoder(codecContext, codec, options, opts);
193
197
  }
194
198
  /**
195
199
  * Create an encoder with specified codec and options synchronously.
@@ -299,7 +303,7 @@ export class Encoder {
299
303
  codecContext.timeBase = new Rational(options.timeBase.num, options.timeBase.den);
300
304
  codecContext.pktTimebase = new Rational(options.timeBase.num, options.timeBase.den);
301
305
  const opts = options.options ? Dictionary.fromObject(options.options) : undefined;
302
- return new Encoder(codecContext, codec, opts);
306
+ return new Encoder(codecContext, codec, options, opts);
303
307
  }
304
308
  /**
305
309
  * Check if encoder is open.
@@ -421,8 +425,9 @@ export class Encoder {
421
425
  if (sendRet < 0 && sendRet !== AVERROR_EOF) {
422
426
  // Encoder might be full, try to receive first
423
427
  const packet = await this.receive();
424
- if (packet)
428
+ if (packet) {
425
429
  return packet;
430
+ }
426
431
  // If still failing, it's an error
427
432
  if (sendRet !== AVERROR_EAGAIN) {
428
433
  FFmpegError.throwIfError(sendRet, 'Failed to send frame');
@@ -1 +1 @@
1
- {"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../src/api/encoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../src/api/encoder.ts"],"names":[],"mappings":"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"}
@@ -1188,6 +1188,8 @@ export declare class FilterPreset {
1188
1188
  *
1189
1189
  * @param filter - Filter string to add (ignored if null/undefined)
1190
1190
  *
1191
+ * @param unshift - If true, adds to the start instead of the end (default: false)
1192
+ *
1191
1193
  * @returns This instance for chaining
1192
1194
  *
1193
1195
  * @example
@@ -177,6 +177,10 @@ export class FilterPreset {
177
177
  filterName = 'vpp_qsv'; // QSV uses vpp_qsv for scaling with w= and h= parameters
178
178
  filter = `${filterName}=w=${width}:h=${height}`;
179
179
  }
180
+ else if (this.hardware.deviceType === AV_HWDEVICE_TYPE_VULKAN) {
181
+ filterName = 'libplacebo'; // Vulkan uses libplacebo for advanced GPU processing
182
+ filter = `${filterName}=w=${width}:h=${height}`;
183
+ }
180
184
  else {
181
185
  filterName = `scale_${this.hardware.deviceTypeName}`;
182
186
  filter = `${filterName}=${width}:${height}`;
@@ -245,6 +249,9 @@ export class FilterPreset {
245
249
  else if (this.hardware.deviceType === AV_HWDEVICE_TYPE_QSV) {
246
250
  filterName = 'vpp_qsv';
247
251
  }
252
+ else if (this.hardware.deviceType === AV_HWDEVICE_TYPE_VULKAN) {
253
+ filterName = 'libplacebo';
254
+ }
248
255
  else {
249
256
  filterName = `scale_${this.hardware.deviceTypeName}`;
250
257
  }
@@ -286,11 +293,8 @@ export class FilterPreset {
286
293
  if (this.hardware?.deviceType === AV_HWDEVICE_TYPE_OPENCL) {
287
294
  this.add(`scale_opencl=cw=${width}:ch=${height}:cx=${x}:cy=${y}`);
288
295
  }
289
- else if (this.hardware?.deviceType === AV_HWDEVICE_TYPE_QSV) {
290
- this.add(`vpp_qsv=cw=${width}:ch=${height}:cx=${x}:cy=${y}`);
291
- }
292
296
  else {
293
- this.add(`crop=${width}:${height}:${x}:${y}`);
297
+ this.add(`crop=${width}:${height}:${x}:${y}`, true);
294
298
  }
295
299
  return this;
296
300
  }
@@ -387,6 +391,11 @@ export class FilterPreset {
387
391
  const detail = amount ? Math.min(100, Math.max(0, Math.round(amount * 10))) : 50;
388
392
  filter = `vpp_qsv=detail=${detail}`;
389
393
  break;
394
+ case AV_HWDEVICE_TYPE_VULKAN:
395
+ // libplacebo contrast parameter (>1 increases sharpness)
396
+ const contrast = amount ? Math.max(1, 1 + amount) : 1.5;
397
+ filter = `libplacebo=contrast=${contrast}`;
398
+ break;
390
399
  case AV_HWDEVICE_TYPE_CUDA:
391
400
  // CUDA sharpening not available (NPP not included)
392
401
  filter = null;
@@ -574,6 +583,7 @@ export class FilterPreset {
574
583
  }
575
584
  if (this.hardware) {
576
585
  if (this.hardware.deviceType === AV_HWDEVICE_TYPE_VULKAN) {
586
+ // Use native Vulkan flip filters
577
587
  if (direction === 'v') {
578
588
  this.add('vflip_vulkan');
579
589
  }
@@ -666,16 +676,29 @@ export class FilterPreset {
666
676
  return this;
667
677
  }
668
678
  if (this.hardware) {
669
- // VideoToolbox uses different filter name
670
- const filterName = this.hardware.deviceType === AV_HWDEVICE_TYPE_VIDEOTOOLBOX ? 'tonemap_videotoolbox' : `tonemap_${this.hardware.deviceTypeName}`;
671
- let filter = `${filterName}=${alg}`;
672
- if (options) {
673
- const opts = Object.entries(options)
674
- .map(([k, v]) => `${k}=${v}`)
675
- .join(':');
676
- filter += `=${opts}`;
679
+ // Vulkan uses libplacebo for comprehensive HDR tone-mapping
680
+ if (this.hardware.deviceType === AV_HWDEVICE_TYPE_VULKAN) {
681
+ let filter = `libplacebo=tonemapping=${alg}`;
682
+ if (options) {
683
+ const opts = Object.entries(options)
684
+ .map(([k, v]) => `${k}=${v}`)
685
+ .join(':');
686
+ filter += `:${opts}`;
687
+ }
688
+ this.add(filter);
689
+ }
690
+ else {
691
+ // VideoToolbox uses different filter name
692
+ const filterName = this.hardware.deviceType === AV_HWDEVICE_TYPE_VIDEOTOOLBOX ? 'tonemap_videotoolbox' : `tonemap_${this.hardware.deviceTypeName}`;
693
+ let filter = `${filterName}=${alg}`;
694
+ if (options) {
695
+ const opts = Object.entries(options)
696
+ .map(([k, v]) => `${k}=${v}`)
697
+ .join(':');
698
+ filter += `=${opts}`;
699
+ }
700
+ this.add(filter);
677
701
  }
678
- this.add(filter);
679
702
  }
680
703
  else {
681
704
  let filter = `tonemap=${alg}`;
@@ -739,15 +762,27 @@ export class FilterPreset {
739
762
  return this;
740
763
  }
741
764
  if (this.hardware) {
742
- // Special handling for RKMPP which uses RGA
743
- const filterName = this.hardware.deviceType === AV_HWDEVICE_TYPE_RKMPP ? 'overlay_rkrga' : `overlay_${this.hardware.deviceTypeName}`;
744
- let filter = `${filterName}=${x}:${y}`;
745
- if (options) {
746
- for (const [key, value] of Object.entries(options)) {
747
- filter += `:${key}=${value}`;
765
+ // Vulkan uses libplacebo with multiple inputs support
766
+ if (this.hardware.deviceType === AV_HWDEVICE_TYPE_VULKAN) {
767
+ let filter = `libplacebo=x=${x}:y=${y}`;
768
+ if (options) {
769
+ for (const [key, value] of Object.entries(options)) {
770
+ filter += `:${key}=${value}`;
771
+ }
748
772
  }
773
+ this.add(filter);
774
+ }
775
+ else {
776
+ // Special handling for RKMPP which uses RGA
777
+ const filterName = this.hardware.deviceType === AV_HWDEVICE_TYPE_RKMPP ? 'overlay_rkrga' : `overlay_${this.hardware.deviceTypeName}`;
778
+ let filter = `${filterName}=${x}:${y}`;
779
+ if (options) {
780
+ for (const [key, value] of Object.entries(options)) {
781
+ filter += `:${key}=${value}`;
782
+ }
783
+ }
784
+ this.add(filter);
749
785
  }
750
- this.add(filter);
751
786
  }
752
787
  else {
753
788
  let filter = `overlay=${x}:${y}`;
@@ -955,13 +990,25 @@ export class FilterPreset {
955
990
  * @see {@link https://ffmpeg.org/ffmpeg-filters.html#pad | FFmpeg pad filter}
956
991
  */
957
992
  pad(width, height, x, y, color = 'black') {
958
- let filter = `pad=${width}:${height}`;
959
- if (x !== undefined)
960
- filter += `:${x}`;
961
- if (y !== undefined)
962
- filter += `:${y}`;
963
- filter += `:${color}`;
964
- this.add(filter);
993
+ if (this.hardware && this.hardware.deviceType === AV_HWDEVICE_TYPE_VULKAN) {
994
+ // Vulkan uses libplacebo with pos_x/y/w/h and fillcolor
995
+ let filter = `libplacebo=w=${width}:h=${height}`;
996
+ if (x !== undefined)
997
+ filter += `:pos_x=${x}`;
998
+ if (y !== undefined)
999
+ filter += `:pos_y=${y}`;
1000
+ filter += `:fillcolor=${color}`;
1001
+ this.add(filter);
1002
+ }
1003
+ else {
1004
+ let filter = `pad=${width}:${height}`;
1005
+ if (x !== undefined)
1006
+ filter += `:${x}`;
1007
+ if (y !== undefined)
1008
+ filter += `:${y}`;
1009
+ filter += `:${color}`;
1010
+ this.add(filter);
1011
+ }
965
1012
  return this;
966
1013
  }
967
1014
  /**
@@ -1779,6 +1826,8 @@ export class FilterPreset {
1779
1826
  *
1780
1827
  * @param filter - Filter string to add (ignored if null/undefined)
1781
1828
  *
1829
+ * @param unshift - If true, adds to the start instead of the end (default: false)
1830
+ *
1782
1831
  * @returns This instance for chaining
1783
1832
  *
1784
1833
  * @example
@@ -1788,9 +1837,14 @@ export class FilterPreset {
1788
1837
  *
1789
1838
  * @internal
1790
1839
  */
1791
- add(filter) {
1840
+ add(filter, unshift) {
1792
1841
  if (filter) {
1793
- this.filters.push(filter);
1842
+ if (unshift) {
1843
+ this.filters.unshift(filter);
1844
+ }
1845
+ else {
1846
+ this.filters.push(filter);
1847
+ }
1794
1848
  }
1795
1849
  return this;
1796
1850
  }
@@ -1875,20 +1929,20 @@ export class FilterPreset {
1875
1929
  };
1876
1930
  case AV_HWDEVICE_TYPE_VULKAN:
1877
1931
  return {
1878
- scale: true, // scale_vulkan
1879
- overlay: true, // overlay_vulkan
1880
- transpose: true, // transpose_vulkan
1881
- tonemap: false,
1882
- deinterlace: true, // bwdif_vulkan
1883
- denoise: false,
1884
- flip: true, // flip_vulkan, hflip_vulkan, vflip_vulkan
1885
- blur: true, // avgblur_vulkan, gblur_vulkan
1886
- sharpen: false,
1887
- sobel: false,
1888
- chromakey: false,
1889
- colorspace: false,
1890
- pad: false,
1891
- stack: false,
1932
+ scale: true, // libplacebo (w/h/format/crop params)
1933
+ overlay: true, // libplacebo (multiple inputs support)
1934
+ transpose: true, // libplacebo (rotate via pos_x/y/w/h transformations)
1935
+ tonemap: true, // libplacebo (comprehensive HDR tone-mapping)
1936
+ deinterlace: true, // bwdif_vulkan (libplacebo doesn't have deinterlace)
1937
+ denoise: true, // libplacebo (deband for banding artifacts)
1938
+ flip: true, // libplacebo (via transformations)
1939
+ blur: true, // libplacebo (via custom shaders or avgblur_vulkan fallback)
1940
+ sharpen: true, // libplacebo (contrast/sharpness adjustments)
1941
+ sobel: false, // Not available in libplacebo or vulkan
1942
+ chromakey: false, // Not available in libplacebo
1943
+ colorspace: true, // libplacebo (comprehensive color management)
1944
+ pad: true, // libplacebo (via pos_x/y/w/h and fillcolor)
1945
+ stack: false, // Not available (use overlay with positioning)
1892
1946
  };
1893
1947
  case AV_HWDEVICE_TYPE_OPENCL:
1894
1948
  return {