homebridge-plugin-utils 1.34.0 → 2.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.
- package/README.md +130 -2
- package/build/eslint-plugin/README.md +164 -0
- package/build/eslint-plugin/config.mjs +308 -0
- package/build/eslint-plugin/index.mjs +7 -0
- package/build/eslint-plugin/plugin.mjs +46 -0
- package/build/eslint-plugin/rules/blank-line-after-open-brace.mjs +137 -0
- package/build/eslint-plugin/rules/blank-line-after-open-brace.test.mjs +112 -0
- package/build/eslint-plugin/rules/comment-style.mjs +190 -0
- package/build/eslint-plugin/rules/comment-style.test.mjs +190 -0
- package/build/eslint-plugin/rules/enforce-node-protocol.mjs +114 -0
- package/build/eslint-plugin/rules/enforce-node-protocol.test.mjs +116 -0
- package/build/eslint-plugin/rules/paren-comparisons-in-logical.mjs +94 -0
- package/build/eslint-plugin/rules/paren-comparisons-in-logical.test.mjs +107 -0
- package/build/eslint-plugin/rules/split-type-imports.mjs +354 -0
- package/build/eslint-plugin/rules/split-type-imports.test.mjs +268 -0
- package/build/eslint-plugin/test-setup.mjs +21 -0
- package/build/fs-ops.mjs +184 -0
- package/build/tsconfig.json +18 -3
- package/dist/backpressure.d.ts +128 -0
- package/dist/backpressure.js +273 -0
- package/dist/backpressure.js.map +1 -0
- package/dist/cli/index.d.ts +95 -0
- package/dist/cli/index.js +355 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/clock-double.d.ts +93 -0
- package/dist/clock-double.js +141 -0
- package/dist/clock-double.js.map +1 -0
- package/dist/clock.d.ts +39 -0
- package/dist/clock.js +34 -0
- package/dist/clock.js.map +1 -0
- package/dist/eslint-plugin/config.d.mts +193 -0
- package/dist/eslint-plugin/index.d.mts +2 -0
- package/dist/eslint-plugin/plugin.d.mts +87 -0
- package/dist/eslint-plugin/rules/blank-line-after-open-brace.d.mts +19 -0
- package/dist/eslint-plugin/rules/comment-style.d.mts +15 -0
- package/dist/eslint-plugin/rules/enforce-node-protocol.d.mts +18 -0
- package/dist/eslint-plugin/rules/paren-comparisons-in-logical.d.mts +15 -0
- package/dist/eslint-plugin/rules/split-type-imports.d.mts +16 -0
- package/dist/featureOptions-docs.d.ts +96 -0
- package/dist/featureOptions-docs.js +193 -0
- package/dist/featureOptions-docs.js.map +1 -0
- package/dist/featureOptions.d.ts +674 -0
- package/dist/featureOptions.js +870 -0
- package/dist/featureOptions.js.map +1 -0
- package/dist/ffmpeg/codecs.d.ts +256 -72
- package/dist/ffmpeg/codecs.js +477 -257
- package/dist/ffmpeg/codecs.js.map +1 -1
- package/dist/ffmpeg/dgram-util.d.ts +46 -0
- package/dist/ffmpeg/dgram-util.js +38 -0
- package/dist/ffmpeg/dgram-util.js.map +1 -0
- package/dist/ffmpeg/exec.d.ts +83 -64
- package/dist/ffmpeg/exec.js +77 -86
- package/dist/ffmpeg/exec.js.map +1 -1
- package/dist/ffmpeg/fmp4.d.ts +70 -4
- package/dist/ffmpeg/fmp4.js +100 -11
- package/dist/ffmpeg/fmp4.js.map +1 -1
- package/dist/ffmpeg/hap-enums.d.ts +214 -0
- package/dist/ffmpeg/hap-enums.js +92 -0
- package/dist/ffmpeg/hap-enums.js.map +1 -0
- package/dist/ffmpeg/index.d.ts +16 -9
- package/dist/ffmpeg/index.js +6 -0
- package/dist/ffmpeg/index.js.map +1 -1
- package/dist/ffmpeg/mp4-assembler.d.ts +120 -0
- package/dist/ffmpeg/mp4-assembler.js +387 -0
- package/dist/ffmpeg/mp4-assembler.js.map +1 -0
- package/dist/ffmpeg/mp4-parser.d.ts +94 -0
- package/dist/ffmpeg/mp4-parser.js +130 -0
- package/dist/ffmpeg/mp4-parser.js.map +1 -0
- package/dist/ffmpeg/options.d.ts +62 -149
- package/dist/ffmpeg/options.js +608 -499
- package/dist/ffmpeg/options.js.map +1 -1
- package/dist/ffmpeg/process.d.ts +143 -91
- package/dist/ffmpeg/process.js +406 -265
- package/dist/ffmpeg/process.js.map +1 -1
- package/dist/ffmpeg/record.d.ts +302 -188
- package/dist/ffmpeg/record.js +408 -560
- package/dist/ffmpeg/record.js.map +1 -1
- package/dist/ffmpeg/recording-process-double.d.ts +144 -0
- package/dist/ffmpeg/recording-process-double.js +168 -0
- package/dist/ffmpeg/recording-process-double.js.map +1 -0
- package/dist/ffmpeg/rtp-parser.d.ts +70 -0
- package/dist/ffmpeg/rtp-parser.js +77 -0
- package/dist/ffmpeg/rtp-parser.js.map +1 -0
- package/dist/ffmpeg/rtp.d.ts +198 -141
- package/dist/ffmpeg/rtp.js +473 -244
- package/dist/ffmpeg/rtp.js.map +1 -1
- package/dist/ffmpeg/settings.d.ts +5 -1
- package/dist/ffmpeg/settings.js +20 -2
- package/dist/ffmpeg/settings.js.map +1 -1
- package/dist/ffmpeg/stream.d.ts +57 -107
- package/dist/ffmpeg/stream.js +121 -148
- package/dist/ffmpeg/stream.js.map +1 -1
- package/dist/formatters.d.ts +106 -0
- package/dist/formatters.js +174 -0
- package/dist/formatters.js.map +1 -0
- package/dist/homebridge-enums.d.ts +30 -0
- package/dist/homebridge-enums.js +17 -0
- package/dist/homebridge-enums.js.map +1 -0
- package/dist/index.d.ts +12 -5
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/logclient/auth.d.ts +114 -0
- package/dist/logclient/auth.js +199 -0
- package/dist/logclient/auth.js.map +1 -0
- package/dist/logclient/cli-run.d.ts +76 -0
- package/dist/logclient/cli-run.js +639 -0
- package/dist/logclient/cli-run.js.map +1 -0
- package/dist/logclient/cli.d.ts +3 -0
- package/dist/logclient/cli.js +97 -0
- package/dist/logclient/cli.js.map +1 -0
- package/dist/logclient/client.d.ts +145 -0
- package/dist/logclient/client.js +600 -0
- package/dist/logclient/client.js.map +1 -0
- package/dist/logclient/config.d.ts +173 -0
- package/dist/logclient/config.js +199 -0
- package/dist/logclient/config.js.map +1 -0
- package/dist/logclient/endpoints.d.ts +54 -0
- package/dist/logclient/endpoints.js +73 -0
- package/dist/logclient/endpoints.js.map +1 -0
- package/dist/logclient/filter.d.ts +45 -0
- package/dist/logclient/filter.js +51 -0
- package/dist/logclient/filter.js.map +1 -0
- package/dist/logclient/frame.d.ts +93 -0
- package/dist/logclient/frame.js +203 -0
- package/dist/logclient/frame.js.map +1 -0
- package/dist/logclient/index.d.ts +31 -0
- package/dist/logclient/index.js +12 -0
- package/dist/logclient/index.js.map +1 -0
- package/dist/logclient/parser.d.ts +211 -0
- package/dist/logclient/parser.js +393 -0
- package/dist/logclient/parser.js.map +1 -0
- package/dist/logclient/rest.d.ts +41 -0
- package/dist/logclient/rest.js +111 -0
- package/dist/logclient/rest.js.map +1 -0
- package/dist/logclient/settings.d.ts +15 -0
- package/dist/logclient/settings.js +64 -0
- package/dist/logclient/settings.js.map +1 -0
- package/dist/logclient/socket-double.d.ts +201 -0
- package/dist/logclient/socket-double.js +384 -0
- package/dist/logclient/socket-double.js.map +1 -0
- package/dist/logclient/socket.d.ts +257 -0
- package/dist/logclient/socket.js +620 -0
- package/dist/logclient/socket.js.map +1 -0
- package/dist/logclient/stitch.d.ts +83 -0
- package/dist/logclient/stitch.js +146 -0
- package/dist/logclient/stitch.js.map +1 -0
- package/dist/logclient/time-expression.d.ts +42 -0
- package/dist/logclient/time-expression.js +181 -0
- package/dist/logclient/time-expression.js.map +1 -0
- package/dist/logclient/time-window.d.ts +38 -0
- package/dist/logclient/time-window.js +53 -0
- package/dist/logclient/time-window.js.map +1 -0
- package/dist/logclient/types.d.ts +107 -0
- package/dist/logclient/types.js +6 -0
- package/dist/logclient/types.js.map +1 -0
- package/dist/mqttClient.d.ts +287 -0
- package/dist/mqttClient.js +433 -0
- package/dist/mqttClient.js.map +1 -0
- package/dist/service.d.ts +64 -15
- package/dist/service.js +93 -66
- package/dist/service.js.map +1 -1
- package/dist/ui/featureOptions.js +870 -0
- package/dist/ui/featureOptions.js.map +1 -0
- package/dist/ui/formatters.js +174 -0
- package/dist/ui/formatters.js.map +1 -0
- package/dist/ui/pluginConfigSession.mjs +141 -0
- package/dist/ui/webUi-featureOptions/categoryState.mjs +135 -0
- package/dist/ui/webUi-featureOptions/effects/keyboard.mjs +61 -0
- package/dist/ui/webUi-featureOptions/effects/persist.mjs +226 -0
- package/dist/ui/webUi-featureOptions/effects/theme.mjs +398 -0
- package/dist/ui/webUi-featureOptions/effects/tokens.mjs +152 -0
- package/dist/ui/webUi-featureOptions/rendering.mjs +431 -0
- package/dist/ui/webUi-featureOptions/selectors.mjs +360 -0
- package/dist/ui/webUi-featureOptions/state.mjs +319 -0
- package/dist/ui/webUi-featureOptions/store.mjs +181 -0
- package/dist/ui/webUi-featureOptions/utils.mjs +200 -0
- package/dist/ui/webUi-featureOptions/views/connectionError.mjs +152 -0
- package/dist/ui/webUi-featureOptions/views/deviceInfo.mjs +80 -0
- package/dist/ui/webUi-featureOptions/views/header.mjs +77 -0
- package/dist/ui/webUi-featureOptions/views/nav.mjs +327 -0
- package/dist/ui/webUi-featureOptions/views/options.mjs +521 -0
- package/dist/ui/webUi-featureOptions/views/search.mjs +395 -0
- package/dist/ui/webUi-featureOptions.mjs +677 -0
- package/dist/ui/webUi.mjs +192 -87
- package/dist/util.d.ts +597 -45
- package/dist/util.js +787 -68
- package/dist/util.js.map +1 -1
- package/package.json +33 -15
- package/build/eslint-rules.mjs +0 -511
- package/dist/featureoptions.d.ts +0 -264
- package/dist/featureoptions.js +0 -480
- package/dist/featureoptions.js.map +0 -1
- package/dist/mqttclient.d.ts +0 -178
- package/dist/mqttclient.js +0 -310
- package/dist/mqttclient.js.map +0 -1
- package/dist/ui/featureoptions.js +0 -480
- package/dist/ui/featureoptions.js.map +0 -1
- package/dist/ui/webUi-featureoptions.mjs +0 -3765
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"featureOptions.js","sourceRoot":"","sources":["../src/featureOptions.ts"],"names":[],"mappings":"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"}
|
package/dist/ffmpeg/codecs.d.ts
CHANGED
|
@@ -1,5 +1,115 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
1
|
+
import type { Logger } from "../util.ts";
|
|
2
|
+
/**
|
|
3
|
+
* Parse the stdout of `ffmpeg -version` and return the version string. Returns `"unknown"` when the expected `"ffmpeg version X Copyright..."` line is not found -
|
|
4
|
+
* matching the behavior of the class-level probe, which records the literal `"unknown"` when it cannot identify the binary.
|
|
5
|
+
*
|
|
6
|
+
* Exposed as a module-scope helper (rather than remaining a closure inside the class) so the parse logic is unit-testable against fixture strings without spinning up
|
|
7
|
+
* the probe plumbing.
|
|
8
|
+
*
|
|
9
|
+
* @param stdout - Captured stdout from `ffmpeg -hide_banner -version`.
|
|
10
|
+
*
|
|
11
|
+
* @returns The version string, or `"unknown"` if the version line is absent.
|
|
12
|
+
*
|
|
13
|
+
* @category FFmpeg
|
|
14
|
+
*/
|
|
15
|
+
export declare function parseFfmpegVersion(stdout: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* A parsed FFmpeg version, split into its numeric triple. Produced by {@link parseFfmpegVersionParts}; consumed by {@link ffmpegVersionAtLeast}.
|
|
18
|
+
*
|
|
19
|
+
* @property major - The leading integer (e.g., 6, 7, 8, 10). 0 when the version string doesn't begin with a digit.
|
|
20
|
+
* @property minor - The second numeric segment. 0 when absent or non-numeric.
|
|
21
|
+
* @property patch - The third numeric segment. 0 when absent or non-numeric.
|
|
22
|
+
*
|
|
23
|
+
* @category FFmpeg
|
|
24
|
+
*/
|
|
25
|
+
export interface FfmpegVersionParts {
|
|
26
|
+
major: number;
|
|
27
|
+
minor: number;
|
|
28
|
+
patch: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Parse an FFmpeg version string into its numeric triple. Splits on `.` and `-` so real-world version strings parse correctly across release tarballs ("8.1.1"),
|
|
32
|
+
* distributor suffixes ("8.1.1-tessus"), distro packages ("4.4.2-0ubuntu0.22.04.1"), and git snapshots ("N-123456-gabcdef"). Any non-numeric segment yields `0` via the
|
|
33
|
+
* `|| 0` fallback, which gives a safe, conservative result: an unknown build parses as `{ major: 0, minor: 0, patch: 0 }` and fails every {@link ffmpegVersionAtLeast}
|
|
34
|
+
* check where the requested major is >= 1.
|
|
35
|
+
*
|
|
36
|
+
* @param version - An FFmpeg version string as produced by {@link parseFfmpegVersion} or by `FfmpegCodecs.ffmpegVersion`.
|
|
37
|
+
*
|
|
38
|
+
* @returns The parsed numeric triple.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
*
|
|
42
|
+
* ```ts
|
|
43
|
+
* parseFfmpegVersionParts("8.1.1"); // { major: 8, minor: 1, patch: 1 }
|
|
44
|
+
* parseFfmpegVersionParts("8.1.1-tessus"); // { major: 8, minor: 1, patch: 1 }
|
|
45
|
+
* parseFfmpegVersionParts("N-123456-gabcdef"); // { major: 0, minor: 123456, patch: 0 } - git snapshot, effectively "unknown"
|
|
46
|
+
* parseFfmpegVersionParts("unknown"); // { major: 0, minor: 0, patch: 0 }
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* @category FFmpeg
|
|
50
|
+
*/
|
|
51
|
+
export declare function parseFfmpegVersionParts(version: string): FfmpegVersionParts;
|
|
52
|
+
/**
|
|
53
|
+
* Return `true` when `parts` represents an FFmpeg version at least as new as the requested major/minor/patch. Compares major, then minor, then patch - the canonical
|
|
54
|
+
* semver ordering. This is the single source of truth for version-gating comparisons across the library; both the `FfmpegCodecs.ffmpegAtLeast` instance method and the
|
|
55
|
+
* test-side fixtures delegate here so the boundary logic lives in one implementation.
|
|
56
|
+
*
|
|
57
|
+
* @param parts - A parsed version triple as produced by {@link parseFfmpegVersionParts}.
|
|
58
|
+
* @param major - The minimum major version to accept.
|
|
59
|
+
* @param minor - The minimum minor version, when major is equal. Defaults to `0`.
|
|
60
|
+
* @param patch - The minimum patch version, when major and minor are equal. Defaults to `0`.
|
|
61
|
+
*
|
|
62
|
+
* @returns `true` if `parts` is >= the requested version; `false` otherwise.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
*
|
|
66
|
+
* ```ts
|
|
67
|
+
* const parts = parseFfmpegVersionParts("8.1.2");
|
|
68
|
+
*
|
|
69
|
+
* ffmpegVersionAtLeast(parts, 8); // true - 8.1.2 >= 8.0.0
|
|
70
|
+
* ffmpegVersionAtLeast(parts, 8, 1, 3); // false - 8.1.2 < 8.1.3
|
|
71
|
+
* ffmpegVersionAtLeast(parts, 9); // false - 8.1.2 < 9.0.0
|
|
72
|
+
* ```
|
|
73
|
+
*
|
|
74
|
+
* @category FFmpeg
|
|
75
|
+
*/
|
|
76
|
+
export declare function ffmpegVersionAtLeast(parts: FfmpegVersionParts, major: number, minor?: number, patch?: number): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Parse the stdout of `ffmpeg -hwaccels` and return the list of hardware-acceleration method names in lowercase, in the order they appeared. Skips blank lines and
|
|
79
|
+
* the leading `"Hardware acceleration methods:"` banner.
|
|
80
|
+
*
|
|
81
|
+
* @param stdout - Captured stdout from `ffmpeg -hide_banner -hwaccels`.
|
|
82
|
+
*
|
|
83
|
+
* @returns Lowercased acceleration method names, one per entry.
|
|
84
|
+
*
|
|
85
|
+
* @category FFmpeg
|
|
86
|
+
*/
|
|
87
|
+
export declare function parseFfmpegHwAccels(stdout: string): string[];
|
|
88
|
+
/**
|
|
89
|
+
* Parse the stdout of `ffmpeg -codecs` into a format-keyed index of decoders and encoders. Both sets are lowercased for case-insensitive `hasDecoder` /
|
|
90
|
+
* `hasEncoder` lookups. Formats with only decoders or only encoders still produce a full entry (the opposite set is simply empty).
|
|
91
|
+
*
|
|
92
|
+
* @param stdout - Captured stdout from `ffmpeg -hide_banner -codecs`.
|
|
93
|
+
*
|
|
94
|
+
* @returns A record keyed by codec format, each entry carrying the decoders and encoders reported for that format.
|
|
95
|
+
*
|
|
96
|
+
* @category FFmpeg
|
|
97
|
+
*/
|
|
98
|
+
export declare function parseFfmpegCodecs(stdout: string): Record<string, {
|
|
99
|
+
decoders: Set<string>;
|
|
100
|
+
encoders: Set<string>;
|
|
101
|
+
}>;
|
|
102
|
+
/**
|
|
103
|
+
* Parse the stdout of `vcgencmd get_mem gpu` into a megabyte value. Returns `0` when the expected `gpu=<N>M` shape is absent or the captured digits fail integer
|
|
104
|
+
* parsing - matching the class-level fallback.
|
|
105
|
+
*
|
|
106
|
+
* @param stdout - Captured stdout from `vcgencmd get_mem gpu`.
|
|
107
|
+
*
|
|
108
|
+
* @returns The reported GPU memory size in megabytes, or `0` when the value could not be read.
|
|
109
|
+
*
|
|
110
|
+
* @category FFmpeg
|
|
111
|
+
*/
|
|
112
|
+
export declare function parseRpiGpuMem(stdout: string): number;
|
|
3
113
|
/**
|
|
4
114
|
* Options for configuring FFmpeg probing.
|
|
5
115
|
*
|
|
@@ -13,32 +123,56 @@ export interface FOptions {
|
|
|
13
123
|
/**
|
|
14
124
|
* Logging interface for output and errors.
|
|
15
125
|
*/
|
|
16
|
-
log:
|
|
126
|
+
log: Logger;
|
|
17
127
|
/**
|
|
18
128
|
* Optional. Enables or disables verbose logging output. Defaults to `false`.
|
|
19
129
|
*/
|
|
20
130
|
verbose?: boolean;
|
|
21
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Immutable state shape that a populated `FfmpegCodecs` instance holds. Produced by {@link FfmpegCodecs.probe} from live probing, or by {@link FfmpegCodecs.fromState}
|
|
134
|
+
* for callers that already have the capability data (tests, cached probe results, plugin-side injection of pre-computed capabilities). The state is the single source
|
|
135
|
+
* of truth for every getter and predicate on the class - the instance is a thin accessor facade.
|
|
136
|
+
*
|
|
137
|
+
* @property codecs - Format-keyed index of advertised decoders and encoders.
|
|
138
|
+
* @property cpuGeneration - Detected CPU generation for Intel Linux hosts and Apple Silicon macOS hosts; `0` when unknown.
|
|
139
|
+
* @property ffmpegExec - The path or command used to invoke FFmpeg.
|
|
140
|
+
* @property ffmpegVersion - FFmpeg version string as reported by `ffmpeg -version`; `"unknown"` when the version line was absent.
|
|
141
|
+
* @property ffmpegVersionParts - Pre-parsed numeric triple derived from `ffmpegVersion`; produced by {@link parseFfmpegVersionParts}.
|
|
142
|
+
* @property gpuMem - Raspberry Pi GPU memory in megabytes (from `vcgencmd get_mem gpu`); `0` on non-RPi hosts.
|
|
143
|
+
* @property hostSystem - `"generic"`, `"macOS.Apple"`, `"macOS.Intel"`, or `"raspbian"`.
|
|
144
|
+
* @property hwAccels - Advertised and capability-validated hardware accelerator names in lowercase.
|
|
145
|
+
* @property verbose - Controls verbose logging behavior propagated to consumers.
|
|
146
|
+
*
|
|
147
|
+
* @category FFmpeg
|
|
148
|
+
*/
|
|
149
|
+
export interface FfmpegCodecsState {
|
|
150
|
+
readonly codecs: Readonly<Record<string, {
|
|
151
|
+
readonly decoders: ReadonlySet<string>;
|
|
152
|
+
readonly encoders: ReadonlySet<string>;
|
|
153
|
+
}>>;
|
|
154
|
+
readonly cpuGeneration: number;
|
|
155
|
+
readonly ffmpegExec: string;
|
|
156
|
+
readonly ffmpegVersion: string;
|
|
157
|
+
readonly ffmpegVersionParts: FfmpegVersionParts;
|
|
158
|
+
readonly gpuMem: number;
|
|
159
|
+
readonly hostSystem: string;
|
|
160
|
+
readonly hwAccels: ReadonlySet<string>;
|
|
161
|
+
readonly verbose: boolean;
|
|
162
|
+
}
|
|
22
163
|
/**
|
|
23
164
|
* Probe FFmpeg capabilities and codecs on the host system.
|
|
24
165
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
166
|
+
* Construct via the static factory {@link FfmpegCodecs.probe} to run the live probe pipeline, or via {@link FfmpegCodecs.fromState} to inject pre-assembled state
|
|
167
|
+
* (tests, cached capability data). Instances are immutable value objects - every getter and predicate reads from a frozen {@link FfmpegCodecsState} snapshot
|
|
168
|
+
* assembled at construction, so callers holding a reference know its state cannot shift underneath them.
|
|
27
169
|
*
|
|
28
170
|
* @example
|
|
29
171
|
*
|
|
30
172
|
* ```ts
|
|
31
|
-
* const codecs =
|
|
173
|
+
* const codecs = await FfmpegCodecs.probe({ ffmpegExec: "ffmpeg", log: console, verbose: true });
|
|
32
174
|
*
|
|
33
|
-
*
|
|
34
|
-
* log: console,
|
|
35
|
-
* verbose: true
|
|
36
|
-
* });
|
|
37
|
-
*
|
|
38
|
-
* // Probe system and FFmpeg capabilities.
|
|
39
|
-
* const ready = await codecs.probe();
|
|
40
|
-
*
|
|
41
|
-
* if(ready) {
|
|
175
|
+
* if(codecs) {
|
|
42
176
|
*
|
|
43
177
|
* console.log("Available FFmpeg version:", codecs.ffmpegVersion);
|
|
44
178
|
*
|
|
@@ -52,59 +186,136 @@ export interface FOptions {
|
|
|
52
186
|
* @category FFmpeg
|
|
53
187
|
*/
|
|
54
188
|
export declare class FfmpegCodecs {
|
|
189
|
+
#private;
|
|
190
|
+
private constructor();
|
|
55
191
|
/**
|
|
56
|
-
*
|
|
192
|
+
* Async factory. Runs the full probe pipeline (host-system detection, optional Raspberry Pi GPU memory, FFmpeg version + codec inventory + hardware-accel inventory
|
|
193
|
+
* with per-accel capability validation) and returns a populated instance on success, or `null` when any required probe fails. Every inner probe runs under a
|
|
194
|
+
* watchdog timeout so a slow or hung FFmpeg binary cannot stall the caller indefinitely; the optional `init.signal` composes with that timeout so callers can cancel
|
|
195
|
+
* probing from outside (for example, during plugin shutdown).
|
|
196
|
+
*
|
|
197
|
+
* @param options - Options used to configure the probe (FFmpeg executable, logger, verbose flag).
|
|
198
|
+
* @param init - Optional probe options. `signal` cancels in-flight probes; the per-call watchdog still applies.
|
|
199
|
+
*
|
|
200
|
+
* @returns A promise that resolves to a populated `FfmpegCodecs` instance, or `null` if probing failed.
|
|
201
|
+
*
|
|
202
|
+
* @example
|
|
203
|
+
*
|
|
204
|
+
* ```ts
|
|
205
|
+
* const codecs = await FfmpegCodecs.probe({ log: plugin.log }, { signal: shutdown.signal });
|
|
206
|
+
*
|
|
207
|
+
* if(!codecs) {
|
|
208
|
+
*
|
|
209
|
+
* plugin.log.error("FFmpeg probing failed.");
|
|
210
|
+
* }
|
|
211
|
+
* ```
|
|
57
212
|
*/
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
private _hostSystem?;
|
|
62
|
-
private _cpuGeneration?;
|
|
63
|
-
private readonly log;
|
|
64
|
-
private readonly ffmpegCodecs;
|
|
65
|
-
private readonly ffmpegHwAccels;
|
|
213
|
+
static probe(options: FOptions, init?: {
|
|
214
|
+
signal?: AbortSignal;
|
|
215
|
+
}): Promise<FfmpegCodecs | null>;
|
|
66
216
|
/**
|
|
67
|
-
*
|
|
217
|
+
* Sync factory. Wraps a pre-assembled {@link FfmpegCodecsState} in a `FfmpegCodecs` instance without running any probes. Intended for tests that build a stand-in
|
|
218
|
+
* capability snapshot and for plugins that cache probe results across restarts and want to rehydrate the class without re-probing.
|
|
219
|
+
*
|
|
220
|
+
* @param state - Fully-assembled capability snapshot.
|
|
221
|
+
*
|
|
222
|
+
* @returns A populated `FfmpegCodecs` instance backed by the supplied state.
|
|
223
|
+
*
|
|
224
|
+
* @example
|
|
225
|
+
*
|
|
226
|
+
* ```ts
|
|
227
|
+
* const codecs = FfmpegCodecs.fromState({
|
|
228
|
+
*
|
|
229
|
+
* codecs: {},
|
|
230
|
+
* cpuGeneration: 0,
|
|
231
|
+
* ffmpegExec: "ffmpeg",
|
|
232
|
+
* ffmpegVersion: "8.0",
|
|
233
|
+
* ffmpegVersionParts: parseFfmpegVersionParts("8.0"),
|
|
234
|
+
* gpuMem: 0,
|
|
235
|
+
* hostSystem: "macOS.Apple",
|
|
236
|
+
* hwAccels: new Set([ "videotoolbox" ]),
|
|
237
|
+
* verbose: false
|
|
238
|
+
* });
|
|
239
|
+
* ```
|
|
68
240
|
*/
|
|
69
|
-
|
|
241
|
+
static fromState(state: FfmpegCodecsState): FfmpegCodecs;
|
|
242
|
+
/**
|
|
243
|
+
* The path or command name used to invoke FFmpeg.
|
|
244
|
+
*/
|
|
245
|
+
get ffmpegExec(): string;
|
|
246
|
+
/**
|
|
247
|
+
* Indicates whether verbose logging is enabled for FFmpeg probing and downstream consumers.
|
|
248
|
+
*/
|
|
249
|
+
get verbose(): boolean;
|
|
250
|
+
/**
|
|
251
|
+
* Returns the amount of GPU memory available on the host system, in megabytes.
|
|
252
|
+
*
|
|
253
|
+
* @remarks Always returns `0` on non-Raspberry Pi systems.
|
|
254
|
+
*/
|
|
255
|
+
get gpuMem(): number;
|
|
256
|
+
/**
|
|
257
|
+
* Returns the detected FFmpeg version string. `"unknown"` when the probe ran but the `ffmpeg version X Copyright...` line was not found in stdout. Any other value
|
|
258
|
+
* is the literal version string reported by the binary and may carry suffixes (`"8.1.1-tessus"`, `"4.4.2-0ubuntu0.22.04.1"`, etc.). For version-comparison decisions,
|
|
259
|
+
* prefer {@link ffmpegAtLeast} over parsing this string directly.
|
|
260
|
+
*/
|
|
261
|
+
get ffmpegVersion(): string;
|
|
70
262
|
/**
|
|
71
|
-
*
|
|
263
|
+
* Returns the detected FFmpeg major version as a number, or `0` when detection failed or the version string doesn't begin with an integer. Useful for display
|
|
264
|
+
* ("Running FFmpeg 8") and for callers that need the raw major number. Use {@link ffmpegAtLeast} for version-gating comparisons so all version logic flows through
|
|
265
|
+
* a single boundary-correct comparison primitive.
|
|
72
266
|
*
|
|
73
|
-
* @
|
|
267
|
+
* @returns The major version number (e.g., `6`, `7`, `8`, `10`), or `0` if the version is unknown or non-numeric.
|
|
74
268
|
*/
|
|
75
|
-
|
|
269
|
+
get ffmpegMajorVersion(): number;
|
|
76
270
|
/**
|
|
77
|
-
*
|
|
271
|
+
* Return `true` when the detected FFmpeg build is at least the requested version. Compares major, then minor, then patch - the canonical semver ordering. This is
|
|
272
|
+
* the single source of truth for version-gating decisions across the library; callers prefer this over hand-rolled comparisons so the boundary logic (major-equal
|
|
273
|
+
* but minor-greater means "newer", etc.) lives in one place and stays consistent.
|
|
78
274
|
*
|
|
79
|
-
*
|
|
275
|
+
* @param major - The minimum major version to accept.
|
|
276
|
+
* @param minor - The minimum minor version, when major is equal. Defaults to `0`.
|
|
277
|
+
* @param patch - The minimum patch version, when major and minor are equal. Defaults to `0`.
|
|
80
278
|
*
|
|
81
|
-
* @returns
|
|
279
|
+
* @returns `true` if the detected version is >= the requested version; `false` otherwise. Returns `false` for unknown or unparseable version strings (major = 0).
|
|
82
280
|
*
|
|
83
281
|
* @example
|
|
84
282
|
*
|
|
85
283
|
* ```ts
|
|
284
|
+
* if(codecs.ffmpegAtLeast(8)) {
|
|
86
285
|
*
|
|
87
|
-
*
|
|
286
|
+
* // FFmpeg 8.0.0 or later.
|
|
287
|
+
* }
|
|
88
288
|
*
|
|
89
|
-
* if(
|
|
289
|
+
* if(codecs.ffmpegAtLeast(8, 1)) {
|
|
90
290
|
*
|
|
91
|
-
*
|
|
291
|
+
* // FFmpeg 8.1.0 or later.
|
|
92
292
|
* }
|
|
93
293
|
* ```
|
|
94
294
|
*/
|
|
95
|
-
|
|
295
|
+
ffmpegAtLeast(major: number, minor?: number, patch?: number): boolean;
|
|
296
|
+
/**
|
|
297
|
+
* Returns the host system type we are running on as one of `"generic"`, `"macOS.Apple"`, `"macOS.Intel"`, or `"raspbian"`.
|
|
298
|
+
*
|
|
299
|
+
* @remarks We are only trying to detect host capabilities to the extent they impact which FFmpeg options we are going to use.
|
|
300
|
+
*/
|
|
301
|
+
get hostSystem(): string;
|
|
302
|
+
/**
|
|
303
|
+
* Returns the CPU generation if we're on Linux and have an Intel processor or on macOS and have an Apple Silicon processor.
|
|
304
|
+
*
|
|
305
|
+
* @returns Returns the CPU generation or 0 if it can't be detected or an invalid platform.
|
|
306
|
+
*/
|
|
307
|
+
get cpuGeneration(): number;
|
|
96
308
|
/**
|
|
97
309
|
* Checks whether a specific decoder is available for a given codec.
|
|
98
310
|
*
|
|
99
|
-
* @param codec
|
|
100
|
-
* @param decoder - The decoder name to check for, e.g., "h264_qsv"
|
|
311
|
+
* @param codec - The codec name, e.g., `"h264"`.
|
|
312
|
+
* @param decoder - The decoder name to check for, e.g., `"h264_qsv"`.
|
|
101
313
|
*
|
|
102
314
|
* @returns `true` if the decoder is available for the codec, `false` otherwise.
|
|
103
315
|
*
|
|
104
316
|
* @example
|
|
105
317
|
*
|
|
106
318
|
* ```ts
|
|
107
|
-
*
|
|
108
319
|
* if(codecs.hasDecoder("h264", "h264_qsv")) {
|
|
109
320
|
*
|
|
110
321
|
* // Use hardware decoding.
|
|
@@ -115,15 +326,14 @@ export declare class FfmpegCodecs {
|
|
|
115
326
|
/**
|
|
116
327
|
* Checks whether a specific encoder is available for a given codec.
|
|
117
328
|
*
|
|
118
|
-
* @param codec
|
|
119
|
-
* @param encoder - The encoder name to check for, e.g., "h264_videotoolbox"
|
|
329
|
+
* @param codec - The codec name, e.g., `"h264"`.
|
|
330
|
+
* @param encoder - The encoder name to check for, e.g., `"h264_videotoolbox"`.
|
|
120
331
|
*
|
|
121
332
|
* @returns `true` if the encoder is available for the codec, `false` otherwise.
|
|
122
333
|
*
|
|
123
334
|
* @example
|
|
124
335
|
*
|
|
125
336
|
* ```ts
|
|
126
|
-
*
|
|
127
337
|
* if(codecs.hasEncoder("h264", "h264_videotoolbox")) {
|
|
128
338
|
*
|
|
129
339
|
* // Use hardware encoding.
|
|
@@ -132,9 +342,10 @@ export declare class FfmpegCodecs {
|
|
|
132
342
|
*/
|
|
133
343
|
hasEncoder(codec: string, encoder: string): boolean;
|
|
134
344
|
/**
|
|
135
|
-
* Checks whether a given hardware acceleration method is available and validated on the host, as provided by the output of `ffmpeg -hwaccels
|
|
345
|
+
* Checks whether a given hardware acceleration method is available and validated on the host, as provided by the output of `ffmpeg -hwaccels` and the per-accel
|
|
346
|
+
* capability probe.
|
|
136
347
|
*
|
|
137
|
-
* @param accel - The hardware acceleration method name, e.g., "videotoolbox"
|
|
348
|
+
* @param accel - The hardware acceleration method name, e.g., `"videotoolbox"`.
|
|
138
349
|
*
|
|
139
350
|
* @returns `true` if the hardware acceleration method is available, `false` otherwise.
|
|
140
351
|
*
|
|
@@ -148,32 +359,5 @@ export declare class FfmpegCodecs {
|
|
|
148
359
|
* ```
|
|
149
360
|
*/
|
|
150
361
|
hasHwAccel(accel: string): boolean;
|
|
151
|
-
/**
|
|
152
|
-
* Returns the amount of GPU memory available on the host system, in megabytes.
|
|
153
|
-
*
|
|
154
|
-
* @remarks Always returns `0` on non-Raspberry Pi systems.
|
|
155
|
-
*/
|
|
156
|
-
get gpuMem(): number;
|
|
157
|
-
/**
|
|
158
|
-
* Returns the detected FFmpeg version string, or "unknown" if detection failed.
|
|
159
|
-
*/
|
|
160
|
-
get ffmpegVersion(): string;
|
|
161
|
-
/**
|
|
162
|
-
* Returns the host system type we are running on as one of "generic", "macOS.Apple", "macOS.Intel", or "raspbian".
|
|
163
|
-
*
|
|
164
|
-
* @remarks We are only trying to detect host capabilities to the extent they impact which FFmpeg options we are going to use.
|
|
165
|
-
*/
|
|
166
|
-
get hostSystem(): string;
|
|
167
|
-
/**
|
|
168
|
-
* Returns the CPU generation if we're on Linux and have an Intel processor or on macOS and have an Apple Silicon processor.
|
|
169
|
-
*
|
|
170
|
-
* @returns Returns the CPU generation or 0 if it can't be detected or an invalid platform.
|
|
171
|
-
*/
|
|
172
|
-
get cpuGeneration(): number;
|
|
173
|
-
private probeFfmpegVersion;
|
|
174
|
-
private probeFfmpegHwAccel;
|
|
175
|
-
private probeFfmpegCodecs;
|
|
176
|
-
private probeHwOs;
|
|
177
|
-
private probeRpiGpuMem;
|
|
178
|
-
private probeCmd;
|
|
179
362
|
}
|
|
363
|
+
//# sourceMappingURL=codecs.d.ts.map
|