node-av 6.2.0-beta.3 → 6.2.0-beta.31

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 (109) hide show
  1. package/README.md +13 -8
  2. package/dist/api/audio-frame-buffer.d.ts +438 -7
  3. package/dist/api/audio-frame-buffer.js +792 -52
  4. package/dist/api/audio-frame-buffer.js.map +1 -1
  5. package/dist/api/bitstream-filter.d.ts +82 -4
  6. package/dist/api/bitstream-filter.js +197 -100
  7. package/dist/api/bitstream-filter.js.map +1 -1
  8. package/dist/api/decoder.d.ts +5 -0
  9. package/dist/api/decoder.js +13 -6
  10. package/dist/api/decoder.js.map +1 -1
  11. package/dist/api/demuxer.d.ts +29 -4
  12. package/dist/api/demuxer.js +209 -60
  13. package/dist/api/demuxer.js.map +1 -1
  14. package/dist/api/encoder-pool.d.ts +43 -1
  15. package/dist/api/encoder-pool.js +121 -9
  16. package/dist/api/encoder-pool.js.map +1 -1
  17. package/dist/api/encoder.d.ts +58 -2
  18. package/dist/api/encoder.js +173 -57
  19. package/dist/api/encoder.js.map +1 -1
  20. package/dist/api/filter.js +15 -6
  21. package/dist/api/filter.js.map +1 -1
  22. package/dist/api/fmp4-stream.d.ts +327 -8
  23. package/dist/api/fmp4-stream.js +663 -123
  24. package/dist/api/fmp4-stream.js.map +1 -1
  25. package/dist/api/hardware.d.ts +2 -0
  26. package/dist/api/hardware.js +25 -4
  27. package/dist/api/hardware.js.map +1 -1
  28. package/dist/api/index.d.ts +2 -2
  29. package/dist/api/index.js.map +1 -1
  30. package/dist/api/io-stream.d.ts +3 -2
  31. package/dist/api/io-stream.js +77 -5
  32. package/dist/api/io-stream.js.map +1 -1
  33. package/dist/api/muxer.d.ts +289 -7
  34. package/dist/api/muxer.js +696 -109
  35. package/dist/api/muxer.js.map +1 -1
  36. package/dist/api/pipeline.d.ts +24 -0
  37. package/dist/api/pipeline.js +76 -5
  38. package/dist/api/pipeline.js.map +1 -1
  39. package/dist/api/rtp-stream.d.ts +77 -8
  40. package/dist/api/rtp-stream.js +316 -88
  41. package/dist/api/rtp-stream.js.map +1 -1
  42. package/dist/api/scaler.d.ts +124 -21
  43. package/dist/api/scaler.js +347 -114
  44. package/dist/api/scaler.js.map +1 -1
  45. package/dist/api/utilities/async-queue.d.ts +3 -0
  46. package/dist/api/utilities/async-queue.js +8 -0
  47. package/dist/api/utilities/async-queue.js.map +1 -1
  48. package/dist/api/utilities/packet-age-watchdog.d.ts +198 -0
  49. package/dist/api/utilities/packet-age-watchdog.js +594 -0
  50. package/dist/api/utilities/packet-age-watchdog.js.map +1 -0
  51. package/dist/api/webrtc-stream.d.ts +2 -0
  52. package/dist/api/webrtc-stream.js +46 -12
  53. package/dist/api/webrtc-stream.js.map +1 -1
  54. package/dist/api/whisper.d.ts +2 -0
  55. package/dist/api/whisper.js +63 -23
  56. package/dist/api/whisper.js.map +1 -1
  57. package/dist/constants/constants.d.ts +1 -0
  58. package/dist/constants/constants.js +1 -0
  59. package/dist/constants/constants.js.map +1 -1
  60. package/dist/constants/filter-options.d.ts +2 -0
  61. package/dist/ffmpeg/install.js +104 -26
  62. package/dist/ffmpeg/install.js.map +1 -1
  63. package/dist/ffmpeg/utils.js +7 -4
  64. package/dist/ffmpeg/utils.js.map +1 -1
  65. package/dist/lib/binding.d.ts +10 -1
  66. package/dist/lib/binding.js +25 -16
  67. package/dist/lib/binding.js.map +1 -1
  68. package/dist/lib/bitstream-filter-context.d.ts +2 -0
  69. package/dist/lib/bitstream-filter-context.js +2 -0
  70. package/dist/lib/bitstream-filter-context.js.map +1 -1
  71. package/dist/lib/codec-context.d.ts +0 -2
  72. package/dist/lib/codec-context.js +4 -22
  73. package/dist/lib/codec-context.js.map +1 -1
  74. package/dist/lib/filter-context.d.ts +3 -1
  75. package/dist/lib/filter-context.js +5 -11
  76. package/dist/lib/filter-context.js.map +1 -1
  77. package/dist/lib/filter-graph-segment.d.ts +3 -2
  78. package/dist/lib/filter-graph-segment.js +3 -2
  79. package/dist/lib/filter-graph-segment.js.map +1 -1
  80. package/dist/lib/filter-graph.d.ts +4 -4
  81. package/dist/lib/filter-graph.js +4 -4
  82. package/dist/lib/filter-inout.d.ts +4 -0
  83. package/dist/lib/filter-inout.js +4 -0
  84. package/dist/lib/filter-inout.js.map +1 -1
  85. package/dist/lib/format-context.d.ts +72 -7
  86. package/dist/lib/format-context.js +80 -22
  87. package/dist/lib/format-context.js.map +1 -1
  88. package/dist/lib/frame.d.ts +17 -13
  89. package/dist/lib/frame.js +24 -23
  90. package/dist/lib/frame.js.map +1 -1
  91. package/dist/lib/hardware-frames-context.d.ts +0 -1
  92. package/dist/lib/hardware-frames-context.js +2 -8
  93. package/dist/lib/hardware-frames-context.js.map +1 -1
  94. package/dist/lib/io-context.d.ts +4 -2
  95. package/dist/lib/io-context.js +4 -2
  96. package/dist/lib/io-context.js.map +1 -1
  97. package/dist/lib/native-types.d.ts +7 -5
  98. package/dist/lib/option.d.ts +26 -0
  99. package/dist/lib/option.js +42 -18
  100. package/dist/lib/option.js.map +1 -1
  101. package/dist/lib/packet.d.ts +5 -0
  102. package/dist/lib/packet.js +5 -0
  103. package/dist/lib/packet.js.map +1 -1
  104. package/dist/lib/stream.d.ts +8 -4
  105. package/dist/lib/stream.js +22 -24
  106. package/dist/lib/stream.js.map +1 -1
  107. package/install/check.js +40 -79
  108. package/package.json +45 -34
  109. package/build_mac_local.sh +0 -69
@@ -1,10 +1,10 @@
1
1
  import { CodecParameters } from './codec-parameters.js';
2
2
  import { CodecParser } from './codec-parser.js';
3
3
  import { Dictionary } from './dictionary.js';
4
+ import { Packet } from './packet.js';
4
5
  import { Rational } from './rational.js';
5
6
  import type { AVDiscard, AVDisposition, AVStreamEventFlag } from '../constants/constants.js';
6
7
  import type { NativeStream, NativeWrapper } from './native-types.js';
7
- import type { Packet } from './packet.js';
8
8
  /**
9
9
  * Media stream within a format context.
10
10
  *
@@ -13,6 +13,10 @@ import type { Packet } from './packet.js';
13
13
  * metadata, and disposition flags. Each stream in a file has a unique index and may
14
14
  * contain packets of compressed data.
15
15
  *
16
+ * A stream belongs to its format context. Once that context is closed or freed, the
17
+ * stream and its codecpar read their defaults (e.g. index -1) and ignore writes;
18
+ * copy what must outlive the context first.
19
+ *
16
20
  * Direct mapping to FFmpeg's AVStream.
17
21
  *
18
22
  * @example
@@ -48,9 +52,7 @@ import type { Packet } from './packet.js';
48
52
  */
49
53
  export declare class Stream implements NativeWrapper<NativeStream> {
50
54
  private native;
51
- private _metadata?;
52
55
  private _codecpar?;
53
- private _parser?;
54
56
  /**
55
57
  * @param native - The native stream instance
56
58
  *
@@ -81,6 +83,7 @@ export declare class Stream implements NativeWrapper<NativeStream> {
81
83
  *
82
84
  * Contains essential codec configuration for this stream.
83
85
  * Used to initialize decoders and describe stream properties.
86
+ * Reads defaults once the format context is closed or freed.
84
87
  *
85
88
  * Direct mapping to AVStream->codecpar.
86
89
  */
@@ -192,7 +195,8 @@ export declare class Stream implements NativeWrapper<NativeStream> {
192
195
  * Dictionary containing stream-specific metadata
193
196
  * (e.g., language, title, encoder settings).
194
197
  *
195
- * Direct mapping to AVStream->metadata.
198
+ * Returns a copy of AVStream->metadata - mutating the returned Dictionary
199
+ * does not affect the stream. Assign it back to apply changes.
196
200
  */
197
201
  get metadata(): Dictionary | null;
198
202
  set metadata(value: Dictionary | null);
@@ -1,6 +1,7 @@
1
1
  import { CodecParameters } from './codec-parameters.js';
2
2
  import { CodecParser } from './codec-parser.js';
3
3
  import { Dictionary } from './dictionary.js';
4
+ import { Packet } from './packet.js';
4
5
  import { Rational } from './rational.js';
5
6
  /**
6
7
  * Media stream within a format context.
@@ -10,6 +11,10 @@ import { Rational } from './rational.js';
10
11
  * metadata, and disposition flags. Each stream in a file has a unique index and may
11
12
  * contain packets of compressed data.
12
13
  *
14
+ * A stream belongs to its format context. Once that context is closed or freed, the
15
+ * stream and its codecpar read their defaults (e.g. index -1) and ignore writes;
16
+ * copy what must outlive the context first.
17
+ *
13
18
  * Direct mapping to FFmpeg's AVStream.
14
19
  *
15
20
  * @example
@@ -45,9 +50,7 @@ import { Rational } from './rational.js';
45
50
  */
46
51
  export class Stream {
47
52
  native;
48
- _metadata; // Cache for metadata wrapper
49
53
  _codecpar; // Cache the wrapped codecpar
50
- _parser; // Cache the wrapped parser
51
54
  /**
52
55
  * @param native - The native stream instance
53
56
  *
@@ -86,6 +89,7 @@ export class Stream {
86
89
  *
87
90
  * Contains essential codec configuration for this stream.
88
91
  * Used to initialize decoders and describe stream properties.
92
+ * Reads defaults once the format context is closed or freed.
89
93
  *
90
94
  * Direct mapping to AVStream->codecpar.
91
95
  */
@@ -265,28 +269,20 @@ export class Stream {
265
269
  * Dictionary containing stream-specific metadata
266
270
  * (e.g., language, title, encoder settings).
267
271
  *
268
- * Direct mapping to AVStream->metadata.
272
+ * Returns a copy of AVStream->metadata - mutating the returned Dictionary
273
+ * does not affect the stream. Assign it back to apply changes.
269
274
  */
270
275
  get metadata() {
271
276
  const native = this.native.metadata;
272
277
  if (!native) {
273
- // Clear cache if native is null
274
- this._metadata = undefined;
275
278
  return null;
276
279
  }
277
- // Return cached wrapper if available and still valid
278
- if (this._metadata && this._metadata.native === native) {
279
- return this._metadata;
280
- }
281
- // Create and cache new wrapper
282
- const device = Object.create(Dictionary.prototype);
283
- device.native = native;
284
- this._metadata = device;
285
- return device;
280
+ const dict = Object.create(Dictionary.prototype);
281
+ dict.native = native;
282
+ return dict;
286
283
  }
287
284
  set metadata(value) {
288
285
  this.native.metadata = value?.getNative() ?? null;
289
- this._metadata = undefined;
290
286
  }
291
287
  /**
292
288
  * Attached picture.
@@ -297,7 +293,15 @@ export class Stream {
297
293
  * Direct mapping to AVStream->attached_pic.
298
294
  */
299
295
  get attachedPic() {
300
- return this.native.attachedPic;
296
+ const native = this.native.attachedPic;
297
+ if (!native) {
298
+ return null;
299
+ }
300
+ // The native getter refs the picture data into a new packet - the returned
301
+ // wrapper owns that ref (freed on GC, or free() to release earlier)
302
+ const packet = Object.create(Packet.prototype);
303
+ packet.native = native;
304
+ return packet;
301
305
  }
302
306
  /**
303
307
  * Event flags.
@@ -336,20 +340,14 @@ export class Stream {
336
340
  * @see {@link CodecParser} For parser details
337
341
  */
338
342
  get parser() {
343
+ // Not cached: the native getter returns a fresh object per access, so an
344
+ // identity-based cache can never hit
339
345
  const native = this.native.parser;
340
346
  if (!native) {
341
- // Clear cache if native is null
342
- this._parser = undefined;
343
347
  return null;
344
348
  }
345
- // Return cached wrapper if available and still valid
346
- if (this._parser && this._parser.native === native) {
347
- return this._parser;
348
- }
349
- // Create and cache new wrapper
350
349
  const parser = Object.create(CodecParser.prototype);
351
350
  parser.native = native;
352
- this._parser = parser;
353
351
  return parser;
354
352
  }
355
353
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/lib/stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/lib/stream.ts"],"names":[],"mappings":"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"}
package/install/check.js CHANGED
@@ -4,8 +4,7 @@ import { existsSync } from 'node:fs';
4
4
  import { createRequire } from 'node:module';
5
5
  import { join } from 'node:path';
6
6
 
7
- import { type } from 'node:os';
8
- import { log, spawnRebuild, useGlobalFFmpeg } from './ffmpeg.js';
7
+ import { log } from './ffmpeg.js';
9
8
 
10
9
  const require = createRequire(import.meta.url);
11
10
 
@@ -15,22 +14,21 @@ const tryLoadPrebuilt = () => {
15
14
  const arch = process.arch;
16
15
 
17
16
  if (platform === 'win32') {
18
- const useMingW = type() !== 'Windows_NT';
19
- if (useMingW) {
20
- try {
21
- const packageName = `@seydx/node-av-${platform}-${arch}-mingw`;
22
- // Check if the package is installed (don't check for .node file yet - it may be extracted by postinstall)
23
- const packageJsonPath = require.resolve(`${packageName}/package.json`);
24
- if (existsSync(packageJsonPath)) {
25
- log(`Using prebuilt binary from ${packageName}`);
26
- return true;
27
- }
28
- } catch {
29
- // Package not installed
30
- }
31
- }
17
+ // MinGW builds are discontinued, Windows ships MSVC only
18
+ // const useMingW = type() !== 'Windows_NT';
19
+ // if (useMingW) {
20
+ // try {
21
+ // const packageName = `@seydx/node-av-${platform}-${arch}-mingw`;
22
+ // const packageJsonPath = require.resolve(`${packageName}/package.json`);
23
+ // if (existsSync(packageJsonPath)) {
24
+ // log(`Using prebuilt binary from ${packageName}`);
25
+ // return true;
26
+ // }
27
+ // } catch {
28
+ // // Package not installed
29
+ // }
30
+ // }
32
31
 
33
- // Fallback to MSVC
34
32
  try {
35
33
  const packageName = `@seydx/node-av-${platform}-${arch}-msvc`;
36
34
  // Check if the package is installed (don't check for .node file yet - it may be extracted by postinstall)
@@ -67,87 +65,50 @@ const tryLoadPrebuilt = () => {
67
65
  return false;
68
66
  };
69
67
 
70
- const buildFromSource = () => {
71
- log('Building from source...');
72
-
73
- // Check for required build dependencies
74
- const missingDeps = [];
75
-
76
- try {
77
- require('node-addon-api');
78
- } catch {
79
- missingDeps.push('node-addon-api');
68
+ const isMuslLibc = () => {
69
+ if (process.platform !== 'linux') {
70
+ return false;
80
71
  }
81
72
 
82
73
  try {
83
- require('node-gyp');
74
+ const report = process.report?.getReport?.();
75
+ return !report?.header?.glibcVersionRuntime;
84
76
  } catch {
85
- missingDeps.push('node-gyp');
77
+ return false;
86
78
  }
79
+ };
87
80
 
88
- if (missingDeps.length > 0) {
89
- log('');
90
- log(`Missing build dependencies: ${missingDeps.join(', ')}`);
91
- log('Please install:');
92
- log(` npm install --save-dev ${missingDeps.join(' ')}`);
93
- log('');
94
- log('Then run npm install again.');
95
- process.exit(1);
96
- }
81
+ const noPrebuiltError = () => {
82
+ log('');
83
+ log(`No prebuilt binary available for ${process.platform}-${process.arch}.`);
97
84
 
98
- log('Building native bindings...');
99
-
100
- const status = spawnRebuild();
101
- if (status !== 0) {
102
- log('');
103
- log('Build failed. Please ensure you have:');
104
- log(' - FFmpeg 7.1+ libraries and headers installed');
105
- log(' - Python 3.12+ installed');
106
- log(' - A C++ compiler with C++17 support');
107
- log('');
108
- log('See https://github.com/seydx/node-av for detailed requirements');
109
- process.exit(status);
85
+ if (isMuslLibc()) {
86
+ log('Note: You appear to be on a musl-based system (e.g. Alpine Linux).');
87
+ log('Prebuilt binaries are only provided for glibc-based Linux distributions.');
110
88
  }
111
89
 
112
- log('Build completed successfully!');
90
+ log('The published npm package does not contain the native sources,');
91
+ log('so it cannot be built from source inside node_modules.');
92
+ log('To build from source, clone the repository and follow the build instructions:');
93
+ log(' https://github.com/seydx/node-av');
94
+ process.exit(1);
113
95
  };
114
96
 
115
97
  (async () => {
116
98
  try {
117
99
  const shouldBuildFromSource = process.env.npm_config_build_from_source === 'true';
118
100
 
119
- // Priority 1: User explicitly wants to build from source
120
101
  if (shouldBuildFromSource) {
121
- if (!useGlobalFFmpeg()) {
122
- log('--build-from-source specified but no FFmpeg libraries found');
123
- log('Please install FFmpeg 7.1+ with development headers');
124
- process.exit(1);
125
- }
126
- // Fall through to build logic below
127
- } else {
128
- // Priority 2: Try to use prebuilt binary if not forcing source build
129
- if (tryLoadPrebuilt()) {
130
- return;
131
- }
102
+ log('--build-from-source was specified, but the published npm package cannot be built from source.');
103
+ noPrebuiltError();
132
104
  }
133
105
 
134
- // Build from source (either requested or as fallback)
135
- if (useGlobalFFmpeg()) {
136
- // Determine why we're building
137
- if (shouldBuildFromSource) {
138
- log('Building from source as requested');
139
- } else {
140
- log('No prebuilt binary available for your platform');
141
- log('System FFmpeg detected, building from source automatically');
142
- }
143
-
144
- buildFromSource();
145
- } else {
146
- // No FFmpeg found and no prebuilt available
147
- log('⚠️ No prebuilt binary and no system FFmpeg found');
148
- log('See https://github.com/seydx/node-av for installation instructions');
149
- process.exit(1);
106
+ // Try to use prebuilt binary
107
+ if (tryLoadPrebuilt()) {
108
+ return;
150
109
  }
110
+
111
+ noPrebuiltError();
151
112
  } catch (err) {
152
113
  console.error(`node-av: Installation error: ${err.message}`);
153
114
  process.exit(1);
package/package.json CHANGED
@@ -1,9 +1,18 @@
1
1
  {
2
2
  "name": "node-av",
3
- "version": "6.2.0-beta.3",
3
+ "version": "6.2.0-beta.31",
4
4
  "description": "FFmpeg bindings for Node.js",
5
5
  "author": "seydx (https://github.com/seydx/node-av)",
6
6
  "type": "module",
7
+ "engines": {
8
+ "node": ">=22.18.0"
9
+ },
10
+ "files": [
11
+ "dist",
12
+ "install",
13
+ "README.md",
14
+ "LICENSE.md"
15
+ ],
7
16
  "main": "./dist/index.js",
8
17
  "types": "./dist/index.d.ts",
9
18
  "exports": {
@@ -67,6 +76,7 @@
67
76
  "install-updates": "npm i --save",
68
77
  "lint": "eslint .",
69
78
  "lint:fix": "eslint --fix .",
79
+ "lint:gyp": "node scripts/check-gyp-sync.js",
70
80
  "patch:ffmpeg": "node scripts/patch-ffmpeg.js",
71
81
  "postinstall": "node dist/ffmpeg/install.js",
72
82
  "predocs": "typedoc && cpy README.md docs/ --rename=index.md",
@@ -84,57 +94,58 @@
84
94
  "unzipper": "^0.12.5"
85
95
  },
86
96
  "optionalDependencies": {
87
- "werift": "^0.23.0",
88
- "@seydx/node-av-darwin-arm64": "^6.2.0-beta.3",
89
- "@seydx/node-av-darwin-x64": "^6.2.0-beta.3",
90
- "@seydx/node-av-linux-arm64": "^6.2.0-beta.3",
91
- "@seydx/node-av-linux-x64": "^6.2.0-beta.3",
92
- "@seydx/node-av-win32-arm64-mingw": "^6.2.0-beta.3",
93
- "@seydx/node-av-win32-arm64-msvc": "^6.2.0-beta.3",
94
- "@seydx/node-av-win32-x64-mingw": "^6.2.0-beta.3",
95
- "@seydx/node-av-win32-x64-msvc": "^6.2.0-beta.3"
97
+ "@seydx/node-av-darwin-arm64": "6.2.0-beta.31",
98
+ "@seydx/node-av-darwin-x64": "6.2.0-beta.31",
99
+ "@seydx/node-av-linux-arm64": "6.2.0-beta.31",
100
+ "@seydx/node-av-linux-x64": "6.2.0-beta.31",
101
+ "@seydx/node-av-win32-arm64-msvc": "6.2.0-beta.31",
102
+ "@seydx/node-av-win32-x64-msvc": "6.2.0-beta.31"
103
+ },
104
+ "peerDependencies": {
105
+ "werift": "^0.24.3 || ^0.25.0"
106
+ },
107
+ "peerDependenciesMeta": {
108
+ "werift": {
109
+ "optional": true
110
+ }
96
111
  },
97
112
  "devDependencies": {
98
113
  "@stylistic/eslint-plugin": "^5.10.0",
99
- "@types/node": "^26.1.0",
114
+ "@types/node": "^26.6.5",
100
115
  "@types/node-abi": "^3.0.3",
101
- "@types/semver": "^7.7.1",
116
+ "@types/semver": "^7.8.0",
102
117
  "@types/unzipper": "^0.10.11",
103
- "@types/ws": "^8.18.1",
104
- "@typescript-eslint/parser": "^8.62.1",
105
- "concurrently": "^10.0.3",
118
+ "@types/ws": "^8.18.2",
119
+ "@typescript-eslint/parser": "^8.71.2",
120
+ "concurrently": "^10.0.6",
106
121
  "cpy-cli": "^7.0.0",
107
122
  "cross-env": "^10.1.0",
108
123
  "eslint": "9.39.2",
109
- "eslint-plugin-jsdoc": "^63.0.12",
110
- "globals": "^17.7.0",
111
- "node-addon-api": "^8.9.0",
112
- "node-gyp": "^13.0.1",
113
- "prettier": "^3.9.4",
124
+ "eslint-plugin-jsdoc": "^65.3.11",
125
+ "globals": "^17.13.0",
126
+ "node-addon-api": "^8.9.2",
127
+ "node-gyp": "^13.1.0",
128
+ "prettier": "^3.9.10",
114
129
  "rimraf": "^6.1.3",
115
- "sharp": "^0.35.3",
116
- "tsx": "^4.23.0",
130
+ "sharp": "^0.35.5",
131
+ "tsx": "^4.23.15",
117
132
  "typedoc": "^0.28.20",
118
- "typedoc-plugin-markdown": "^4.12.0",
119
- "typedoc-vitepress-theme": "^1.1.3",
133
+ "typedoc-plugin-markdown": "^4.14.0",
134
+ "typedoc-vitepress-theme": "^1.1.4",
120
135
  "typescript": "5.9.3",
121
- "typescript-eslint": "^8.62.1",
122
- "updates": "^17.18.2",
123
- "vitepress": "^2.0.0-alpha.17",
124
- "werift": "^0.23.0",
125
- "ws": "^8.21.0"
136
+ "typescript-eslint": "^8.71.2",
137
+ "updates": "^19.2.1",
138
+ "vitepress": "^2.0.0-alpha.20",
139
+ "werift": "^0.25.1",
140
+ "ws": "^8.22.0"
126
141
  },
127
142
  "overrides": {
128
143
  "werift": {
129
- "@shinyoshiaki/binary-data": "npm:@seydx/binary-data@0.6.2",
130
- "ip": "npm:neoip@2.1.0"
144
+ "@shinyoshiaki/binary-data": "npm:@seydx/binary-data@0.6.2"
131
145
  },
132
146
  "werift-dtls": {
133
147
  "@shinyoshiaki/binary-data": "npm:@seydx/binary-data@0.6.2"
134
148
  },
135
- "werift-ice": {
136
- "ip": "npm:neoip@2.1.0"
137
- },
138
149
  "werift-sctp": {
139
150
  "@shinyoshiaki/binary-data": "npm:@seydx/binary-data@0.6.2"
140
151
  }
@@ -1,69 +0,0 @@
1
- #!/bin/bash
2
- set -e
3
-
4
- SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
5
- BUILDER_DIR="$SCRIPT_DIR/externals/jellyfin-ffmpeg/builder"
6
- BUILD_DIR="$BUILDER_DIR/build"
7
-
8
- echo ""
9
- echo "=== FFmpeg Local Build ==="
10
- echo ""
11
- echo " 1) Full build (clean + dependencies + FFmpeg)"
12
- echo " 2) FFmpeg only (skip dependency builds)"
13
- echo ""
14
- read -rp "Choose [1/2]: " choice
15
-
16
- case "$choice" in
17
- 1)
18
- echo ""
19
- echo "=> Full build selected. Cleaning build + prefix directories..."
20
- rm -rf "$BUILD_DIR"
21
- sudo rm -rf /opt/ffbuild/prefix
22
- SKIP_BUILD=""
23
- ;;
24
- 2)
25
- echo ""
26
- echo "=> FFmpeg-only build selected. Skipping dependencies..."
27
- SKIP_BUILD="--skip-build"
28
- ;;
29
- *)
30
- echo "Invalid choice."
31
- exit 1
32
- ;;
33
- esac
34
-
35
- # Ensure submodules are initialized
36
- if [ ! -f "$SCRIPT_DIR/externals/jellyfin-ffmpeg/configure" ]; then
37
- echo "=> Initializing git submodules..."
38
- git -C "$SCRIPT_DIR" submodule update --init --recursive
39
- fi
40
-
41
- # Log everything to terminal and file
42
- LOG_FILE="$SCRIPT_DIR/ffmpeg_build.log"
43
- exec > >(tee "$LOG_FILE") 2>&1
44
-
45
- # Ensure /opt/ffbuild exists with correct permissions
46
- sudo mkdir -p /opt/ffbuild/prefix
47
- sudo chown -R "$(whoami):staff" /opt/ffbuild
48
- sudo chmod -R 755 /opt/ffbuild
49
-
50
- cd "$SCRIPT_DIR"
51
-
52
- # Apply FFmpeg patches (skips if already applied)
53
- node scripts/patch-ffmpeg.js
54
-
55
- cd "$BUILDER_DIR"
56
-
57
- # Run Jellyfin build script
58
- ./buildmac.sh arm64 $SKIP_BUILD
59
-
60
- # The build script uses /ffbuild/prefix but we need /opt/ffbuild/prefix
61
- cd ..
62
- make install DESTDIR="" prefix="/opt/ffbuild/prefix"
63
-
64
- # Fix permissions after install
65
- sudo chown -R "$(whoami):staff" /opt/ffbuild
66
-
67
- cd "$SCRIPT_DIR"
68
-
69
- # npm run build:native