@temelj/ffmpeg 0.1.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.
@@ -0,0 +1,294 @@
1
+ //#region src/generated/serialize.ts
2
+ const makeFlag = (flag) => ({
3
+ flag,
4
+ isFlag: true,
5
+ isArray: false
6
+ });
7
+ const makeValue = (flag) => ({
8
+ flag,
9
+ isFlag: false,
10
+ isArray: false
11
+ });
12
+ const makeArray = (flag) => ({
13
+ flag,
14
+ isFlag: false,
15
+ isArray: true
16
+ });
17
+ const generatedInputDefs = {
18
+ f: makeValue("-f"),
19
+ i: makeValue("-i"),
20
+ streamLoop: makeValue("-stream_loop"),
21
+ c: makeValue("-c"),
22
+ t: makeValue("-t"),
23
+ to: makeValue("-to"),
24
+ ss: makeValue("-ss"),
25
+ sseof: makeValue("-sseof"),
26
+ isync: makeValue("-isync"),
27
+ itsoffset: makeValue("-itsoffset"),
28
+ itsscale: makeValue("-itsscale"),
29
+ dn: makeFlag("-dn"),
30
+ reinitFilter: makeFlag("-reinit_filter"),
31
+ dropChanged: makeFlag("-drop_changed"),
32
+ dumpAttachment: makeValue("-dump_attachment"),
33
+ r: makeValue("-r"),
34
+ s: makeValue("-s"),
35
+ displayRotation: makeValue("-display_rotation"),
36
+ displayHflip: makeFlag("-display_hflip"),
37
+ displayVflip: makeFlag("-display_vflip"),
38
+ masteringDisplay: makeValue("-mastering_display"),
39
+ contentLight: makeValue("-content_light"),
40
+ vn: makeFlag("-vn"),
41
+ pixFmt: makeValue("-pix_fmt"),
42
+ swsFlags: makeValue("-sws_flags"),
43
+ applyCropping: makeValue("-apply_cropping"),
44
+ filterHwDevice: makeValue("-filter_hw_device"),
45
+ hwaccel: makeValue("-hwaccel"),
46
+ hwaccelDevice: makeValue("-hwaccel_device"),
47
+ fixSubDurationHeartbeat: makeValue("-fix_sub_duration_heartbeat"),
48
+ ar: makeValue("-ar"),
49
+ ac: makeValue("-ac"),
50
+ an: makeFlag("-an"),
51
+ acodec: makeValue("-acodec"),
52
+ guessLayoutMax: makeValue("-guess_layout_max"),
53
+ sn: makeFlag("-sn"),
54
+ ignoreUnknown: makeFlag("-ignore_unknown"),
55
+ copyUnknown: makeFlag("-copy_unknown"),
56
+ readrate: makeValue("-readrate"),
57
+ re: makeFlag("-re"),
58
+ readrateInitialBurst: makeValue("-readrate_initial_burst"),
59
+ readrateCatchup: makeValue("-readrate_catchup"),
60
+ copyTs: makeFlag("-copyts"),
61
+ startAtZero: makeFlag("-start_at_zero"),
62
+ copyTb: makeValue("-copytb"),
63
+ bitExact: makeFlag("-bitexact"),
64
+ dtsDeltaThreshold: makeValue("-dts_delta_threshold"),
65
+ dtsErrorThreshold: makeValue("-dts_error_threshold"),
66
+ bsf: makeValue("-bsf"),
67
+ tag: makeValue("-tag"),
68
+ timecode: makeValue("-timecode"),
69
+ accurateSeek: makeFlag("-accurate_seek"),
70
+ seekTimestamp: makeFlag("-seek_timestamp"),
71
+ threadQueueSize: makeValue("-thread_queue_size"),
72
+ discard: makeValue("-discard"),
73
+ loop: makeValue("-loop"),
74
+ initHwDevice: makeValue("-init_hw_device")
75
+ };
76
+ const generatedOutputDefs = {
77
+ f: makeValue("-f"),
78
+ c: makeValue("-c"),
79
+ t: makeValue("-t"),
80
+ to: makeValue("-to"),
81
+ fs: makeValue("-fs"),
82
+ ss: makeValue("-ss"),
83
+ timestamp: makeValue("-timestamp"),
84
+ metadata: makeArray("-metadata"),
85
+ disposition: makeArray("-disposition"),
86
+ program: makeArray("-program"),
87
+ streamGroup: makeArray("-stream_group"),
88
+ target: makeValue("-target"),
89
+ dn: makeFlag("-dn"),
90
+ dframes: makeValue("-dframes"),
91
+ frames: makeValue("-frames"),
92
+ q: makeValue("-q"),
93
+ filter: makeValue("-filter"),
94
+ pre: makeValue("-pre"),
95
+ attach: makeValue("-attach"),
96
+ vframes: makeValue("-vframes"),
97
+ r: makeValue("-r"),
98
+ fpsmax: makeValue("-fpsmax"),
99
+ s: makeValue("-s"),
100
+ aspect: makeValue("-aspect"),
101
+ vn: makeFlag("-vn"),
102
+ vcodec: makeValue("-vcodec"),
103
+ pass: makeValue("-pass"),
104
+ passLogfile: makeValue("-passlogfile"),
105
+ vf: makeValue("-vf"),
106
+ pixFmt: makeValue("-pix_fmt"),
107
+ swsFlags: makeValue("-sws_flags"),
108
+ rcOverride: makeValue("-rc_override"),
109
+ vstats: makeValue("-vstats"),
110
+ vstatsFile: makeValue("-vstats_file"),
111
+ vstatsVersion: makeValue("-vstats_version"),
112
+ vtag: makeValue("-vtag"),
113
+ forceKeyFrames: makeValue("-force_key_frames"),
114
+ copyinkf: makeFlag("-copyinkf"),
115
+ aframes: makeValue("-aframes"),
116
+ ar: makeValue("-ar"),
117
+ aq: makeValue("-aq"),
118
+ ac: makeValue("-ac"),
119
+ an: makeFlag("-an"),
120
+ acodec: makeValue("-acodec"),
121
+ sampleFmt: makeValue("-sample_fmt"),
122
+ af: makeValue("-af"),
123
+ atag: makeValue("-atag"),
124
+ chLayout: makeValue("-ch_layout"),
125
+ channelLayout: makeValue("-channel_layout"),
126
+ scodec: makeValue("-scodec"),
127
+ sn: makeFlag("-sn"),
128
+ canvasSize: makeValue("-canvas_size"),
129
+ map: makeArray("-map"),
130
+ mapMetadata: makeArray("-map_metadata"),
131
+ mapChapters: makeArray("-map_chapters"),
132
+ apad: makeValue("-apad"),
133
+ encTimeBase: makeValue("-enc_time_base"),
134
+ shortest: makeFlag("-shortest"),
135
+ shortestBufDuration: makeValue("-shortest_buf_duration"),
136
+ muxdelay: makeValue("-muxdelay"),
137
+ muxpreload: makeValue("-muxpreload"),
138
+ streamid: makeArray("-streamid"),
139
+ bsf: makeValue("-bsf"),
140
+ tag: makeValue("-tag"),
141
+ threadQueueSize: makeValue("-thread_queue_size"),
142
+ maxMuxingQueueSize: makeValue("-max_muxing_queue_size"),
143
+ muxingQueueDataThreshold: makeValue("-muxing_queue_data_threshold"),
144
+ bitsPerRawSample: makeValue("-bits_per_raw_sample"),
145
+ statsEncPre: makeValue("-stats_enc_pre"),
146
+ statsEncPreFmt: makeValue("-stats_enc_pre_fmt"),
147
+ videoCodec: makeValue("-c:v"),
148
+ audioCodec: makeValue("-c:a"),
149
+ subtitleCodec: makeValue("-c:s"),
150
+ dataCodec: makeValue("-c:d"),
151
+ videoBitrate: makeValue("-b:v"),
152
+ audioBitrate: makeValue("-b:a"),
153
+ subtitleBitrate: makeValue("-b:s"),
154
+ vq: makeValue("-q:v"),
155
+ qscale: makeValue("-qscale"),
156
+ level: makeValue("-level"),
157
+ profile: makeValue("-profile"),
158
+ preset: makeValue("-preset"),
159
+ tune: makeValue("-tune"),
160
+ crf: makeValue("-crf"),
161
+ movflags: makeValue("-movflags"),
162
+ minrate: makeValue("-minrate"),
163
+ maxrate: makeValue("-maxrate"),
164
+ bufsize: makeValue("-bufsize"),
165
+ codec: makeValue("-codec"),
166
+ statsEncPost: makeValue("-stats_enc_post"),
167
+ statsEncPostFmt: makeValue("-stats_enc_post_fmt")
168
+ };
169
+ const generatedGlobalDefs = {
170
+ loglevel: makeValue("-loglevel"),
171
+ report: makeFlag("-report"),
172
+ hideBanner: makeFlag("-hide_banner"),
173
+ cpuflags: makeValue("-cpuflags"),
174
+ cpucount: makeValue("-cpucount"),
175
+ y: makeFlag("-y"),
176
+ n: makeFlag("-n"),
177
+ recastMedia: makeFlag("-recast_media"),
178
+ filterThreads: makeValue("-filter_threads"),
179
+ filterBufferedFrames: makeValue("-filter_buffered_frames"),
180
+ stats: makeFlag("-stats"),
181
+ statsPeriod: makeValue("-stats_period"),
182
+ printGraphs: makeFlag("-print_graphs"),
183
+ printGraphsFile: makeValue("-print_graphs_file"),
184
+ printGraphsFormat: makeValue("-print_graphs_format"),
185
+ progress: makeValue("-progress"),
186
+ stdin: makeFlag("-stdin"),
187
+ debugTs: makeFlag("-debug_ts"),
188
+ autorotate: makeFlag("-autorotate"),
189
+ autoscale: makeFlag("-autoscale"),
190
+ fixSubDuration: makeFlag("-fix_sub_duration"),
191
+ benchmark: makeFlag("-benchmark"),
192
+ benchmarkAll: makeFlag("-benchmark_all"),
193
+ timelimit: makeValue("-timelimit"),
194
+ dump: makeFlag("-dump"),
195
+ hex: makeFlag("-hex"),
196
+ vsync: makeValue("-vsync"),
197
+ frameDropThreshold: makeValue("-frame_drop_threshold"),
198
+ filterComplex: makeValue("-filter_complex"),
199
+ filterComplexThreads: makeValue("-filter_complex_threads"),
200
+ lavfi: makeValue("-lavfi"),
201
+ sdpFile: makeValue("-sdp_file"),
202
+ abortOn: makeValue("-abort_on"),
203
+ maxErrorRate: makeValue("-max_error_rate"),
204
+ xerror: makeFlag("-xerror"),
205
+ autoConversionFilters: makeFlag("-auto_conversion_filters"),
206
+ overwrite: makeFlag("-y"),
207
+ noOverwrite: makeFlag("-n"),
208
+ noStdin: makeFlag("-nostdin"),
209
+ noStats: makeFlag("-nostats")
210
+ };
211
+ const generatedInputStreamDefs = {
212
+ c: makeValue("-c"),
213
+ itsscale: makeValue("-itsscale"),
214
+ reinitFilter: makeFlag("-reinit_filter"),
215
+ dropChanged: makeFlag("-drop_changed"),
216
+ dumpAttachment: makeValue("-dump_attachment"),
217
+ r: makeValue("-r"),
218
+ s: makeValue("-s"),
219
+ displayRotation: makeValue("-display_rotation"),
220
+ displayHflip: makeFlag("-display_hflip"),
221
+ displayVflip: makeFlag("-display_vflip"),
222
+ masteringDisplay: makeValue("-mastering_display"),
223
+ contentLight: makeValue("-content_light"),
224
+ pixFmt: makeValue("-pix_fmt"),
225
+ applyCropping: makeValue("-apply_cropping"),
226
+ hwaccel: makeValue("-hwaccel"),
227
+ hwaccelDevice: makeValue("-hwaccel_device"),
228
+ ar: makeValue("-ar"),
229
+ ac: makeValue("-ac"),
230
+ guessLayoutMax: makeValue("-guess_layout_max"),
231
+ bsf: makeValue("-bsf"),
232
+ tag: makeValue("-tag")
233
+ };
234
+ const generatedOutputStreamDefs = {
235
+ c: makeValue("-c"),
236
+ disposition: makeArray("-disposition"),
237
+ frames: makeValue("-frames"),
238
+ q: makeValue("-q"),
239
+ filter: makeValue("-filter"),
240
+ pre: makeValue("-pre"),
241
+ r: makeValue("-r"),
242
+ fpsmax: makeValue("-fpsmax"),
243
+ s: makeValue("-s"),
244
+ aspect: makeValue("-aspect"),
245
+ pass: makeValue("-pass"),
246
+ passLogfile: makeValue("-passlogfile"),
247
+ pixFmt: makeValue("-pix_fmt"),
248
+ rcOverride: makeValue("-rc_override"),
249
+ forceKeyFrames: makeValue("-force_key_frames"),
250
+ copyinkf: makeFlag("-copyinkf"),
251
+ ar: makeValue("-ar"),
252
+ aq: makeValue("-aq"),
253
+ ac: makeValue("-ac"),
254
+ sampleFmt: makeValue("-sample_fmt"),
255
+ chLayout: makeValue("-ch_layout"),
256
+ channelLayout: makeValue("-channel_layout"),
257
+ apad: makeValue("-apad"),
258
+ encTimeBase: makeValue("-enc_time_base"),
259
+ bsf: makeValue("-bsf"),
260
+ tag: makeValue("-tag"),
261
+ maxMuxingQueueSize: makeValue("-max_muxing_queue_size"),
262
+ muxingQueueDataThreshold: makeValue("-muxing_queue_data_threshold"),
263
+ bitsPerRawSample: makeValue("-bits_per_raw_sample"),
264
+ statsEncPre: makeValue("-stats_enc_pre"),
265
+ statsEncPreFmt: makeValue("-stats_enc_pre_fmt"),
266
+ videoCodec: makeValue("-c:v"),
267
+ audioCodec: makeValue("-c:a"),
268
+ subtitleCodec: makeValue("-c:s"),
269
+ dataCodec: makeValue("-c:d"),
270
+ videoBitrate: makeValue("-b:v"),
271
+ audioBitrate: makeValue("-b:a"),
272
+ subtitleBitrate: makeValue("-b:s"),
273
+ vq: makeValue("-q:v"),
274
+ qscale: makeValue("-qscale"),
275
+ level: makeValue("-level"),
276
+ profile: makeValue("-profile"),
277
+ preset: makeValue("-preset"),
278
+ tune: makeValue("-tune"),
279
+ crf: makeValue("-crf"),
280
+ minrate: makeValue("-minrate"),
281
+ maxrate: makeValue("-maxrate"),
282
+ bufsize: makeValue("-bufsize"),
283
+ codec: makeValue("-codec"),
284
+ statsEncPost: makeValue("-stats_enc_post"),
285
+ statsEncPostFmt: makeValue("-stats_enc_post_fmt")
286
+ };
287
+ const generatedOutputMetadataDefs = {
288
+ metadata: makeArray("-metadata"),
289
+ mapMetadata: makeArray("-map_metadata")
290
+ };
291
+ //#endregion
292
+ export { generatedGlobalDefs, generatedInputDefs, generatedInputStreamDefs, generatedOutputDefs, generatedOutputMetadataDefs, generatedOutputStreamDefs };
293
+
294
+ //# sourceMappingURL=serialize.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize.mjs","names":[],"sources":["../../src/generated/serialize.ts"],"sourcesContent":["// auto-generated from ffmpeg-options.json — do not edit\n// scraper run: 2026-05-30T17:50:52.551Z\n// source: https://ffmpeg.org\n\nconst makeFlag = (flag: string) => ({ flag, isFlag: true as const, isArray: false as const });\nconst makeValue = (flag: string) => ({ flag, isFlag: false as const, isArray: false as const });\nconst makeArray = (flag: string) => ({ flag, isFlag: false as const, isArray: true as const });\n\nexport const generatedInputDefs: Record<\n string,\n { flag: string; isFlag: boolean; isArray: boolean }\n> = {\n f: makeValue(\"-f\"),\n i: makeValue(\"-i\"),\n streamLoop: makeValue(\"-stream_loop\"),\n c: makeValue(\"-c\"),\n t: makeValue(\"-t\"),\n to: makeValue(\"-to\"),\n ss: makeValue(\"-ss\"),\n sseof: makeValue(\"-sseof\"),\n isync: makeValue(\"-isync\"),\n itsoffset: makeValue(\"-itsoffset\"),\n itsscale: makeValue(\"-itsscale\"),\n dn: makeFlag(\"-dn\"),\n reinitFilter: makeFlag(\"-reinit_filter\"),\n dropChanged: makeFlag(\"-drop_changed\"),\n dumpAttachment: makeValue(\"-dump_attachment\"),\n r: makeValue(\"-r\"),\n s: makeValue(\"-s\"),\n displayRotation: makeValue(\"-display_rotation\"),\n displayHflip: makeFlag(\"-display_hflip\"),\n displayVflip: makeFlag(\"-display_vflip\"),\n masteringDisplay: makeValue(\"-mastering_display\"),\n contentLight: makeValue(\"-content_light\"),\n vn: makeFlag(\"-vn\"),\n pixFmt: makeValue(\"-pix_fmt\"),\n swsFlags: makeValue(\"-sws_flags\"),\n applyCropping: makeValue(\"-apply_cropping\"),\n filterHwDevice: makeValue(\"-filter_hw_device\"),\n hwaccel: makeValue(\"-hwaccel\"),\n hwaccelDevice: makeValue(\"-hwaccel_device\"),\n fixSubDurationHeartbeat: makeValue(\"-fix_sub_duration_heartbeat\"),\n ar: makeValue(\"-ar\"),\n ac: makeValue(\"-ac\"),\n an: makeFlag(\"-an\"),\n acodec: makeValue(\"-acodec\"),\n guessLayoutMax: makeValue(\"-guess_layout_max\"),\n sn: makeFlag(\"-sn\"),\n ignoreUnknown: makeFlag(\"-ignore_unknown\"),\n copyUnknown: makeFlag(\"-copy_unknown\"),\n readrate: makeValue(\"-readrate\"),\n re: makeFlag(\"-re\"),\n readrateInitialBurst: makeValue(\"-readrate_initial_burst\"),\n readrateCatchup: makeValue(\"-readrate_catchup\"),\n copyTs: makeFlag(\"-copyts\"),\n startAtZero: makeFlag(\"-start_at_zero\"),\n copyTb: makeValue(\"-copytb\"),\n bitExact: makeFlag(\"-bitexact\"),\n dtsDeltaThreshold: makeValue(\"-dts_delta_threshold\"),\n dtsErrorThreshold: makeValue(\"-dts_error_threshold\"),\n bsf: makeValue(\"-bsf\"),\n tag: makeValue(\"-tag\"),\n timecode: makeValue(\"-timecode\"),\n accurateSeek: makeFlag(\"-accurate_seek\"),\n seekTimestamp: makeFlag(\"-seek_timestamp\"),\n threadQueueSize: makeValue(\"-thread_queue_size\"),\n discard: makeValue(\"-discard\"),\n loop: makeValue(\"-loop\"),\n initHwDevice: makeValue(\"-init_hw_device\"),\n};\n\nexport const generatedOutputDefs: Record<\n string,\n { flag: string; isFlag: boolean; isArray: boolean }\n> = {\n f: makeValue(\"-f\"),\n c: makeValue(\"-c\"),\n t: makeValue(\"-t\"),\n to: makeValue(\"-to\"),\n fs: makeValue(\"-fs\"),\n ss: makeValue(\"-ss\"),\n timestamp: makeValue(\"-timestamp\"),\n metadata: makeArray(\"-metadata\"),\n disposition: makeArray(\"-disposition\"),\n program: makeArray(\"-program\"),\n streamGroup: makeArray(\"-stream_group\"),\n target: makeValue(\"-target\"),\n dn: makeFlag(\"-dn\"),\n dframes: makeValue(\"-dframes\"),\n frames: makeValue(\"-frames\"),\n q: makeValue(\"-q\"),\n filter: makeValue(\"-filter\"),\n pre: makeValue(\"-pre\"),\n attach: makeValue(\"-attach\"),\n vframes: makeValue(\"-vframes\"),\n r: makeValue(\"-r\"),\n fpsmax: makeValue(\"-fpsmax\"),\n s: makeValue(\"-s\"),\n aspect: makeValue(\"-aspect\"),\n vn: makeFlag(\"-vn\"),\n vcodec: makeValue(\"-vcodec\"),\n pass: makeValue(\"-pass\"),\n passLogfile: makeValue(\"-passlogfile\"),\n vf: makeValue(\"-vf\"),\n pixFmt: makeValue(\"-pix_fmt\"),\n swsFlags: makeValue(\"-sws_flags\"),\n rcOverride: makeValue(\"-rc_override\"),\n vstats: makeValue(\"-vstats\"),\n vstatsFile: makeValue(\"-vstats_file\"),\n vstatsVersion: makeValue(\"-vstats_version\"),\n vtag: makeValue(\"-vtag\"),\n forceKeyFrames: makeValue(\"-force_key_frames\"),\n copyinkf: makeFlag(\"-copyinkf\"),\n aframes: makeValue(\"-aframes\"),\n ar: makeValue(\"-ar\"),\n aq: makeValue(\"-aq\"),\n ac: makeValue(\"-ac\"),\n an: makeFlag(\"-an\"),\n acodec: makeValue(\"-acodec\"),\n sampleFmt: makeValue(\"-sample_fmt\"),\n af: makeValue(\"-af\"),\n atag: makeValue(\"-atag\"),\n chLayout: makeValue(\"-ch_layout\"),\n channelLayout: makeValue(\"-channel_layout\"),\n scodec: makeValue(\"-scodec\"),\n sn: makeFlag(\"-sn\"),\n canvasSize: makeValue(\"-canvas_size\"),\n map: makeArray(\"-map\"),\n mapMetadata: makeArray(\"-map_metadata\"),\n mapChapters: makeArray(\"-map_chapters\"),\n apad: makeValue(\"-apad\"),\n encTimeBase: makeValue(\"-enc_time_base\"),\n shortest: makeFlag(\"-shortest\"),\n shortestBufDuration: makeValue(\"-shortest_buf_duration\"),\n muxdelay: makeValue(\"-muxdelay\"),\n muxpreload: makeValue(\"-muxpreload\"),\n streamid: makeArray(\"-streamid\"),\n bsf: makeValue(\"-bsf\"),\n tag: makeValue(\"-tag\"),\n threadQueueSize: makeValue(\"-thread_queue_size\"),\n maxMuxingQueueSize: makeValue(\"-max_muxing_queue_size\"),\n muxingQueueDataThreshold: makeValue(\"-muxing_queue_data_threshold\"),\n bitsPerRawSample: makeValue(\"-bits_per_raw_sample\"),\n statsEncPre: makeValue(\"-stats_enc_pre\"),\n statsEncPreFmt: makeValue(\"-stats_enc_pre_fmt\"),\n videoCodec: makeValue(\"-c:v\"),\n audioCodec: makeValue(\"-c:a\"),\n subtitleCodec: makeValue(\"-c:s\"),\n dataCodec: makeValue(\"-c:d\"),\n videoBitrate: makeValue(\"-b:v\"),\n audioBitrate: makeValue(\"-b:a\"),\n subtitleBitrate: makeValue(\"-b:s\"),\n vq: makeValue(\"-q:v\"),\n qscale: makeValue(\"-qscale\"),\n level: makeValue(\"-level\"),\n profile: makeValue(\"-profile\"),\n preset: makeValue(\"-preset\"),\n tune: makeValue(\"-tune\"),\n crf: makeValue(\"-crf\"),\n movflags: makeValue(\"-movflags\"),\n minrate: makeValue(\"-minrate\"),\n maxrate: makeValue(\"-maxrate\"),\n bufsize: makeValue(\"-bufsize\"),\n codec: makeValue(\"-codec\"),\n statsEncPost: makeValue(\"-stats_enc_post\"),\n statsEncPostFmt: makeValue(\"-stats_enc_post_fmt\"),\n};\n\nexport const generatedGlobalDefs: Record<\n string,\n { flag: string; isFlag: boolean; isArray: boolean }\n> = {\n loglevel: makeValue(\"-loglevel\"),\n report: makeFlag(\"-report\"),\n hideBanner: makeFlag(\"-hide_banner\"),\n cpuflags: makeValue(\"-cpuflags\"),\n cpucount: makeValue(\"-cpucount\"),\n y: makeFlag(\"-y\"),\n n: makeFlag(\"-n\"),\n recastMedia: makeFlag(\"-recast_media\"),\n filterThreads: makeValue(\"-filter_threads\"),\n filterBufferedFrames: makeValue(\"-filter_buffered_frames\"),\n stats: makeFlag(\"-stats\"),\n statsPeriod: makeValue(\"-stats_period\"),\n printGraphs: makeFlag(\"-print_graphs\"),\n printGraphsFile: makeValue(\"-print_graphs_file\"),\n printGraphsFormat: makeValue(\"-print_graphs_format\"),\n progress: makeValue(\"-progress\"),\n stdin: makeFlag(\"-stdin\"),\n debugTs: makeFlag(\"-debug_ts\"),\n autorotate: makeFlag(\"-autorotate\"),\n autoscale: makeFlag(\"-autoscale\"),\n fixSubDuration: makeFlag(\"-fix_sub_duration\"),\n benchmark: makeFlag(\"-benchmark\"),\n benchmarkAll: makeFlag(\"-benchmark_all\"),\n timelimit: makeValue(\"-timelimit\"),\n dump: makeFlag(\"-dump\"),\n hex: makeFlag(\"-hex\"),\n vsync: makeValue(\"-vsync\"),\n frameDropThreshold: makeValue(\"-frame_drop_threshold\"),\n filterComplex: makeValue(\"-filter_complex\"),\n filterComplexThreads: makeValue(\"-filter_complex_threads\"),\n lavfi: makeValue(\"-lavfi\"),\n sdpFile: makeValue(\"-sdp_file\"),\n abortOn: makeValue(\"-abort_on\"),\n maxErrorRate: makeValue(\"-max_error_rate\"),\n xerror: makeFlag(\"-xerror\"),\n autoConversionFilters: makeFlag(\"-auto_conversion_filters\"),\n overwrite: makeFlag(\"-y\"),\n noOverwrite: makeFlag(\"-n\"),\n noStdin: makeFlag(\"-nostdin\"),\n noStats: makeFlag(\"-nostats\"),\n};\n\nexport const generatedInputStreamDefs: Record<\n string,\n { flag: string; isFlag: boolean; isArray: boolean }\n> = {\n c: makeValue(\"-c\"),\n itsscale: makeValue(\"-itsscale\"),\n reinitFilter: makeFlag(\"-reinit_filter\"),\n dropChanged: makeFlag(\"-drop_changed\"),\n dumpAttachment: makeValue(\"-dump_attachment\"),\n r: makeValue(\"-r\"),\n s: makeValue(\"-s\"),\n displayRotation: makeValue(\"-display_rotation\"),\n displayHflip: makeFlag(\"-display_hflip\"),\n displayVflip: makeFlag(\"-display_vflip\"),\n masteringDisplay: makeValue(\"-mastering_display\"),\n contentLight: makeValue(\"-content_light\"),\n pixFmt: makeValue(\"-pix_fmt\"),\n applyCropping: makeValue(\"-apply_cropping\"),\n hwaccel: makeValue(\"-hwaccel\"),\n hwaccelDevice: makeValue(\"-hwaccel_device\"),\n ar: makeValue(\"-ar\"),\n ac: makeValue(\"-ac\"),\n guessLayoutMax: makeValue(\"-guess_layout_max\"),\n bsf: makeValue(\"-bsf\"),\n tag: makeValue(\"-tag\"),\n};\n\nexport const generatedOutputStreamDefs: Record<\n string,\n { flag: string; isFlag: boolean; isArray: boolean }\n> = {\n c: makeValue(\"-c\"),\n disposition: makeArray(\"-disposition\"),\n frames: makeValue(\"-frames\"),\n q: makeValue(\"-q\"),\n filter: makeValue(\"-filter\"),\n pre: makeValue(\"-pre\"),\n r: makeValue(\"-r\"),\n fpsmax: makeValue(\"-fpsmax\"),\n s: makeValue(\"-s\"),\n aspect: makeValue(\"-aspect\"),\n pass: makeValue(\"-pass\"),\n passLogfile: makeValue(\"-passlogfile\"),\n pixFmt: makeValue(\"-pix_fmt\"),\n rcOverride: makeValue(\"-rc_override\"),\n forceKeyFrames: makeValue(\"-force_key_frames\"),\n copyinkf: makeFlag(\"-copyinkf\"),\n ar: makeValue(\"-ar\"),\n aq: makeValue(\"-aq\"),\n ac: makeValue(\"-ac\"),\n sampleFmt: makeValue(\"-sample_fmt\"),\n chLayout: makeValue(\"-ch_layout\"),\n channelLayout: makeValue(\"-channel_layout\"),\n apad: makeValue(\"-apad\"),\n encTimeBase: makeValue(\"-enc_time_base\"),\n bsf: makeValue(\"-bsf\"),\n tag: makeValue(\"-tag\"),\n maxMuxingQueueSize: makeValue(\"-max_muxing_queue_size\"),\n muxingQueueDataThreshold: makeValue(\"-muxing_queue_data_threshold\"),\n bitsPerRawSample: makeValue(\"-bits_per_raw_sample\"),\n statsEncPre: makeValue(\"-stats_enc_pre\"),\n statsEncPreFmt: makeValue(\"-stats_enc_pre_fmt\"),\n videoCodec: makeValue(\"-c:v\"),\n audioCodec: makeValue(\"-c:a\"),\n subtitleCodec: makeValue(\"-c:s\"),\n dataCodec: makeValue(\"-c:d\"),\n videoBitrate: makeValue(\"-b:v\"),\n audioBitrate: makeValue(\"-b:a\"),\n subtitleBitrate: makeValue(\"-b:s\"),\n vq: makeValue(\"-q:v\"),\n qscale: makeValue(\"-qscale\"),\n level: makeValue(\"-level\"),\n profile: makeValue(\"-profile\"),\n preset: makeValue(\"-preset\"),\n tune: makeValue(\"-tune\"),\n crf: makeValue(\"-crf\"),\n minrate: makeValue(\"-minrate\"),\n maxrate: makeValue(\"-maxrate\"),\n bufsize: makeValue(\"-bufsize\"),\n codec: makeValue(\"-codec\"),\n statsEncPost: makeValue(\"-stats_enc_post\"),\n statsEncPostFmt: makeValue(\"-stats_enc_post_fmt\"),\n};\n\nexport const generatedOutputMetadataDefs: Record<\n string,\n { flag: string; isFlag: boolean; isArray: boolean }\n> = {\n metadata: makeArray(\"-metadata\"),\n mapMetadata: makeArray(\"-map_metadata\"),\n};\n"],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { StreamType } from "./generated/options.mjs";
2
+
3
+ //#region src/mapping.d.ts
4
+ type MapStreamType = StreamType;
5
+ interface InputMapSpecifier {
6
+ fileIndex: number;
7
+ streamType?: MapStreamType;
8
+ streamIndex?: number;
9
+ viewSpecifier?: string;
10
+ optional?: boolean;
11
+ disabled?: boolean;
12
+ }
13
+ type MapTarget = InputMapSpecifier | string;
14
+ interface StreamMetadataTarget {
15
+ streamType: Exclude<MapStreamType, "V">;
16
+ streamIndex: number;
17
+ }
18
+ declare function serializeInputMap(specifier: InputMapSpecifier): string;
19
+ declare function mapInputStream(fileIndex: number, streamType?: MapStreamType, streamIndex?: number): string;
20
+ declare function mapAllStreams(fileIndex: number): string;
21
+ declare function mapLabel(label: string): string;
22
+ declare function disableMap(target: InputMapSpecifier | string): string;
23
+ declare function streamMetadataKey(target: StreamMetadataTarget, _key: string): string;
24
+ declare function streamDispositionKey(target: StreamMetadataTarget): string;
25
+ //#endregion
26
+ export { InputMapSpecifier, MapStreamType, MapTarget, StreamMetadataTarget, disableMap, mapAllStreams, mapInputStream, mapLabel, serializeInputMap, streamDispositionKey, streamMetadataKey };
27
+ //# sourceMappingURL=mapping.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.d.mts","names":[],"sources":["../src/mapping.ts"],"mappings":";;;KAEY,aAAA,GAAgB,UAAU;AAAA,UAErB,iBAAA;EACf,SAAA;EACA,UAAA,GAAa,aAAa;EAC1B,WAAA;EACA,aAAA;EACA,QAAA;EACA,QAAA;AAAA;AAAA,KAGU,SAAA,GAAY,iBAAiB;AAAA,UAExB,oBAAA;EACf,UAAA,EAAY,OAAO,CAAC,aAAA;EACpB,WAAA;AAAA;AAAA,iBAOc,iBAAA,CAAkB,SAA4B,EAAjB,iBAAiB;AAAA,iBA8B9C,cAAA,CACd,SAAA,UACA,UAAA,GAAa,aAAa,EAC1B,WAAA;AAAA,iBAKc,aAAA,CAAc,SAAiB;AAAA,iBAI/B,QAAA,CAAS,KAAa;AAAA,iBAItB,UAAA,CAAW,MAAkC,EAA1B,iBAAiB;AAAA,iBAQpC,iBAAA,CAAkB,MAAA,EAAQ,oBAAoB,EAAE,IAAA;AAAA,iBAIhD,oBAAA,CAAqB,MAA4B,EAApB,oBAAoB"}
@@ -0,0 +1,44 @@
1
+ //#region src/mapping.ts
2
+ function normalizeLabel(label) {
3
+ return label.startsWith("[") ? label : `[${label}]`;
4
+ }
5
+ function serializeInputMap(specifier) {
6
+ let value = String(specifier.fileIndex);
7
+ if (specifier.streamType !== void 0) value += `:${specifier.streamType}`;
8
+ if (specifier.streamIndex !== void 0) if (specifier.streamType === void 0) value += `:${specifier.streamIndex}`;
9
+ else value += `:${specifier.streamIndex}`;
10
+ if (specifier.viewSpecifier !== void 0) value += `:${specifier.viewSpecifier}`;
11
+ if (specifier.optional) value += "?";
12
+ if (specifier.disabled) value = `-${value}`;
13
+ return value;
14
+ }
15
+ function mapInputStream(fileIndex, streamType, streamIndex) {
16
+ return serializeInputMap({
17
+ fileIndex,
18
+ streamType,
19
+ streamIndex
20
+ });
21
+ }
22
+ function mapAllStreams(fileIndex) {
23
+ return serializeInputMap({ fileIndex });
24
+ }
25
+ function mapLabel(label) {
26
+ return normalizeLabel(label);
27
+ }
28
+ function disableMap(target) {
29
+ if (typeof target === "string") return target.startsWith("-") ? target : `-${target}`;
30
+ return serializeInputMap({
31
+ ...target,
32
+ disabled: true
33
+ });
34
+ }
35
+ function streamMetadataKey(target, _key) {
36
+ return `-metadata:s:${target.streamType}:${target.streamIndex}`;
37
+ }
38
+ function streamDispositionKey(target) {
39
+ return `-disposition:${target.streamType}:${target.streamIndex}`;
40
+ }
41
+ //#endregion
42
+ export { disableMap, mapAllStreams, mapInputStream, mapLabel, serializeInputMap, streamDispositionKey, streamMetadataKey };
43
+
44
+ //# sourceMappingURL=mapping.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.mjs","names":[],"sources":["../src/mapping.ts"],"sourcesContent":["import type { StreamType } from \"./types.ts\";\n\nexport type MapStreamType = StreamType;\n\nexport interface InputMapSpecifier {\n fileIndex: number;\n streamType?: MapStreamType;\n streamIndex?: number;\n viewSpecifier?: string;\n optional?: boolean;\n disabled?: boolean;\n}\n\nexport type MapTarget = InputMapSpecifier | string;\n\nexport interface StreamMetadataTarget {\n streamType: Exclude<MapStreamType, \"V\">;\n streamIndex: number;\n}\n\nfunction normalizeLabel(label: string): string {\n return label.startsWith(\"[\") ? label : `[${label}]`;\n}\n\nexport function serializeInputMap(specifier: InputMapSpecifier): string {\n let value = String(specifier.fileIndex);\n\n if (specifier.streamType !== undefined) {\n value += `:${specifier.streamType}`;\n }\n\n if (specifier.streamIndex !== undefined) {\n if (specifier.streamType === undefined) {\n value += `:${specifier.streamIndex}`;\n } else {\n value += `:${specifier.streamIndex}`;\n }\n }\n\n if (specifier.viewSpecifier !== undefined) {\n value += `:${specifier.viewSpecifier}`;\n }\n\n if (specifier.optional) {\n value += \"?\";\n }\n\n if (specifier.disabled) {\n value = `-${value}`;\n }\n\n return value;\n}\n\nexport function mapInputStream(\n fileIndex: number,\n streamType?: MapStreamType,\n streamIndex?: number,\n): string {\n return serializeInputMap({ fileIndex, streamType, streamIndex });\n}\n\nexport function mapAllStreams(fileIndex: number): string {\n return serializeInputMap({ fileIndex });\n}\n\nexport function mapLabel(label: string): string {\n return normalizeLabel(label);\n}\n\nexport function disableMap(target: InputMapSpecifier | string): string {\n if (typeof target === \"string\") {\n return target.startsWith(\"-\") ? target : `-${target}`;\n }\n\n return serializeInputMap({ ...target, disabled: true });\n}\n\nexport function streamMetadataKey(target: StreamMetadataTarget, _key: string): string {\n return `-metadata:s:${target.streamType}:${target.streamIndex}`;\n}\n\nexport function streamDispositionKey(target: StreamMetadataTarget): string {\n return `-disposition:${target.streamType}:${target.streamIndex}`;\n}\n"],"mappings":";AAoBA,SAAS,eAAe,OAAuB;CAC7C,OAAO,MAAM,WAAW,GAAG,IAAI,QAAQ,IAAI,MAAM;AACnD;AAEA,SAAgB,kBAAkB,WAAsC;CACtE,IAAI,QAAQ,OAAO,UAAU,SAAS;CAEtC,IAAI,UAAU,eAAe,KAAA,GAC3B,SAAS,IAAI,UAAU;CAGzB,IAAI,UAAU,gBAAgB,KAAA,GAC5B,IAAI,UAAU,eAAe,KAAA,GAC3B,SAAS,IAAI,UAAU;MAEvB,SAAS,IAAI,UAAU;CAI3B,IAAI,UAAU,kBAAkB,KAAA,GAC9B,SAAS,IAAI,UAAU;CAGzB,IAAI,UAAU,UACZ,SAAS;CAGX,IAAI,UAAU,UACZ,QAAQ,IAAI;CAGd,OAAO;AACT;AAEA,SAAgB,eACd,WACA,YACA,aACQ;CACR,OAAO,kBAAkB;EAAE;EAAW;EAAY;CAAY,CAAC;AACjE;AAEA,SAAgB,cAAc,WAA2B;CACvD,OAAO,kBAAkB,EAAE,UAAU,CAAC;AACxC;AAEA,SAAgB,SAAS,OAAuB;CAC9C,OAAO,eAAe,KAAK;AAC7B;AAEA,SAAgB,WAAW,QAA4C;CACrE,IAAI,OAAO,WAAW,UACpB,OAAO,OAAO,WAAW,GAAG,IAAI,SAAS,IAAI;CAG/C,OAAO,kBAAkB;EAAE,GAAG;EAAQ,UAAU;CAAK,CAAC;AACxD;AAEA,SAAgB,kBAAkB,QAA8B,MAAsB;CACpF,OAAO,eAAe,OAAO,WAAW,GAAG,OAAO;AACpD;AAEA,SAAgB,qBAAqB,QAAsC;CACzE,OAAO,gBAAgB,OAAO,WAAW,GAAG,OAAO;AACrD"}
package/dist/mod.d.mts ADDED
@@ -0,0 +1,7 @@
1
+ import { AspectRatio, Bitrate, Duration, FrameSize, LogLevel, MetadataOptionBag, MetadataSpecifier, RawOptionBag, SerializedOptionScalar, SerializedOptionValue, StreamOptionBag, StreamSpecifier, StreamType, Target, Vsync } from "./generated/options.mjs";
2
+ import { DispositionDefinition, DispositionValue, ForceKeyFramesDefinition, ForceKeyFramesValue, MetadataAssignment, MetadataMap, MetadataMapValue, MetadataValue, ProgramDefinition, ProgramValue, StreamGroupDefinition, StreamGroupValue, StreamIdDefinition, StreamIdValue, serializeDispositions, serializeForceKeyFrames, serializeMetadataAssignments, serializeMetadataMaps, serializeProgramDefinitions, serializeStreamGroupDefinitions, serializeStreamIds } from "./structured.mjs";
3
+ import { GlobalOptions, InputOptions, InputStreamOptions, OutputMetadataOptions, OutputOptions, OutputStreamOptions } from "./types.mjs";
4
+ import { InputMapSpecifier, MapStreamType, MapTarget, StreamMetadataTarget, disableMap, mapAllStreams, mapInputStream, mapLabel, serializeInputMap, streamDispositionKey, streamMetadataKey } from "./mapping.mjs";
5
+ import { BuildResult, FFmpegBuilder, ffmpeg } from "./builder.mjs";
6
+ import { AmixOptions, ConcatOptions, FilterGraph, FilterGraphMediaType, FilterGraphStream, FilterNamedOptions, FilterNodeSpec, FilterScalar, OverlayOptions, TrimOptions, filterGraph, resetFilterGraphLabelCounter } from "./filter-graph.mjs";
7
+ export { type AmixOptions, type AspectRatio, type Bitrate, type BuildResult, type ConcatOptions, type DispositionDefinition, type DispositionValue, type Duration, FFmpegBuilder, FilterGraph, type FilterGraphMediaType, FilterGraphStream, type FilterNamedOptions, type FilterNodeSpec, type FilterScalar, type ForceKeyFramesDefinition, type ForceKeyFramesValue, type FrameSize, type GlobalOptions, type InputMapSpecifier, type InputOptions, type InputStreamOptions, type LogLevel, type MapStreamType, type MapTarget, type MetadataAssignment, type MetadataMap, type MetadataMapValue, type MetadataOptionBag, type MetadataSpecifier, type MetadataValue, type OutputMetadataOptions, type OutputOptions, type OutputStreamOptions, type OverlayOptions, type ProgramDefinition, type ProgramValue, type RawOptionBag, type SerializedOptionScalar, type SerializedOptionValue, type StreamGroupDefinition, type StreamGroupValue, type StreamIdDefinition, type StreamIdValue, type StreamMetadataTarget, type StreamOptionBag, type StreamSpecifier, type StreamType, type Target, type TrimOptions, type Vsync, disableMap, ffmpeg, filterGraph, mapAllStreams, mapInputStream, mapLabel, resetFilterGraphLabelCounter, serializeDispositions, serializeForceKeyFrames, serializeInputMap, serializeMetadataAssignments, serializeMetadataMaps, serializeProgramDefinitions, serializeStreamGroupDefinitions, serializeStreamIds, streamDispositionKey, streamMetadataKey };
package/dist/mod.mjs ADDED
@@ -0,0 +1,5 @@
1
+ import { serializeDispositions, serializeForceKeyFrames, serializeMetadataAssignments, serializeMetadataMaps, serializeProgramDefinitions, serializeStreamGroupDefinitions, serializeStreamIds } from "./structured.mjs";
2
+ import { FilterGraph, FilterGraphStream, filterGraph, resetFilterGraphLabelCounter } from "./filter-graph.mjs";
3
+ import { disableMap, mapAllStreams, mapInputStream, mapLabel, serializeInputMap, streamDispositionKey, streamMetadataKey } from "./mapping.mjs";
4
+ import { FFmpegBuilder, ffmpeg } from "./builder.mjs";
5
+ export { FFmpegBuilder, FilterGraph, FilterGraphStream, disableMap, ffmpeg, filterGraph, mapAllStreams, mapInputStream, mapLabel, resetFilterGraphLabelCounter, serializeDispositions, serializeForceKeyFrames, serializeInputMap, serializeMetadataAssignments, serializeMetadataMaps, serializeProgramDefinitions, serializeStreamGroupDefinitions, serializeStreamIds, streamDispositionKey, streamMetadataKey };
@@ -0,0 +1,66 @@
1
+ import { MetadataSpecifier, OutputMetadataOptions, OutputOptions } from "./generated/options.mjs";
2
+
3
+ //#region src/structured.d.ts
4
+ interface MetadataAssignment {
5
+ key: string;
6
+ value: string | number | boolean;
7
+ }
8
+ interface MetadataMap {
9
+ inputFileIndex: number;
10
+ inputScope?: MetadataSpecifier;
11
+ outputScope?: MetadataSpecifier;
12
+ }
13
+ interface ProgramDefinition {
14
+ title?: string;
15
+ programNum?: number;
16
+ streams: Array<number | string>;
17
+ }
18
+ interface StreamGroupDefinition {
19
+ inputFileId?: number;
20
+ inputGroupId?: number;
21
+ type?: string;
22
+ id?: number | string;
23
+ streams?: Array<number | string>;
24
+ streamGroups?: Array<number | string>;
25
+ options?: Record<string, string | number | boolean>;
26
+ }
27
+ interface StreamIdDefinition {
28
+ outputStreamIndex: number;
29
+ newValue: number | string;
30
+ }
31
+ interface DispositionDefinition {
32
+ clear?: boolean;
33
+ set?: string[];
34
+ add?: string[];
35
+ remove?: string[];
36
+ }
37
+ type ForceKeyFramesDefinition = {
38
+ mode: "times";
39
+ times: Array<string | number>;
40
+ } | {
41
+ mode: "expr";
42
+ expr: string;
43
+ } | {
44
+ mode: "source";
45
+ } | {
46
+ mode: "scd_metadata";
47
+ };
48
+ type MetadataValue = string | string[] | MetadataAssignment | MetadataAssignment[];
49
+ type MetadataMapValue = string | string[] | MetadataMap | MetadataMap[];
50
+ type ProgramValue = string | string[] | ProgramDefinition | ProgramDefinition[];
51
+ type StreamGroupValue = string | string[] | StreamGroupDefinition | StreamGroupDefinition[];
52
+ type StreamIdValue = string | string[] | StreamIdDefinition | StreamIdDefinition[];
53
+ type DispositionValue = string | string[] | DispositionDefinition | DispositionDefinition[];
54
+ type ForceKeyFramesValue = string | ForceKeyFramesDefinition;
55
+ declare function serializeMetadataAssignments(value: MetadataValue | undefined): string | string[] | undefined;
56
+ declare function serializeMetadataMaps(value: MetadataMapValue | undefined): string | string[] | undefined;
57
+ declare function serializeProgramDefinitions(value: ProgramValue | undefined): string | string[] | undefined;
58
+ declare function serializeStreamGroupDefinitions(value: StreamGroupValue | undefined): string | string[] | undefined;
59
+ declare function serializeStreamIds(value: StreamIdValue | undefined): string | string[] | undefined;
60
+ declare function serializeDispositions(value: DispositionValue | undefined): string | string[] | undefined;
61
+ declare function serializeForceKeyFrames(value: ForceKeyFramesValue | undefined): string | undefined;
62
+ declare function normalizeOutputMetadataOptions(options: OutputMetadataOptions): OutputMetadataOptions;
63
+ declare function normalizeOutputOptions(options: OutputOptions): OutputOptions;
64
+ //#endregion
65
+ export { DispositionDefinition, DispositionValue, ForceKeyFramesDefinition, ForceKeyFramesValue, MetadataAssignment, MetadataMap, MetadataMapValue, MetadataValue, ProgramDefinition, ProgramValue, StreamGroupDefinition, StreamGroupValue, StreamIdDefinition, StreamIdValue, normalizeOutputMetadataOptions, normalizeOutputOptions, serializeDispositions, serializeForceKeyFrames, serializeMetadataAssignments, serializeMetadataMaps, serializeProgramDefinitions, serializeStreamGroupDefinitions, serializeStreamIds };
66
+ //# sourceMappingURL=structured.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structured.d.mts","names":[],"sources":["../src/structured.ts"],"mappings":";;;UAMiB,kBAAA;EACf,GAAA;EACA,KAAK;AAAA;AAAA,UAGU,WAAA;EACf,cAAA;EACA,UAAA,GAAa,iBAAA;EACb,WAAA,GAAc,iBAAiB;AAAA;AAAA,UAGhB,iBAAA;EACf,KAAA;EACA,UAAA;EACA,OAAA,EAAS,KAAK;AAAA;AAAA,UAGC,qBAAA;EACf,WAAA;EACA,YAAA;EACA,IAAA;EACA,EAAA;EACA,OAAA,GAAU,KAAA;EACV,YAAA,GAAe,KAAA;EACf,OAAA,GAAU,MAAA;AAAA;AAAA,UAGK,kBAAA;EACf,iBAAA;EACA,QAAQ;AAAA;AAAA,UAGO,qBAAA;EACf,KAAA;EACA,GAAA;EACA,GAAA;EACA,MAAA;AAAA;AAAA,KAGU,wBAAA;EACN,IAAA;EAAe,KAAA,EAAO,KAAK;AAAA;EAC3B,IAAA;EAAc,IAAA;AAAA;EACd,IAAA;AAAA;EACA,IAAA;AAAA;AAAA,KAEM,aAAA,uBAAoC,kBAAA,GAAqB,kBAAkB;AAAA,KAC3E,gBAAA,uBAAuC,WAAA,GAAc,WAAW;AAAA,KAChE,YAAA,uBAAmC,iBAAA,GAAoB,iBAAiB;AAAA,KACxE,gBAAA,uBAAuC,qBAAA,GAAwB,qBAAqB;AAAA,KACpF,aAAA,uBAAoC,kBAAA,GAAqB,kBAAkB;AAAA,KAC3E,gBAAA,uBAAuC,qBAAA,GAAwB,qBAAqB;AAAA,KACpF,mBAAA,YAA+B,wBAAwB;AAAA,iBAanD,4BAAA,CACd,KAAgC,EAAzB,aAAa;AAAA,iBAgBN,qBAAA,CACd,KAAmC,EAA5B,gBAAgB;AAAA,iBAqBT,2BAAA,CACd,KAA+B,EAAxB,YAAY;AAAA,iBA0BL,+BAAA,CACd,KAAmC,EAA5B,gBAAgB;AAAA,iBA4CT,kBAAA,CACd,KAAgC,EAAzB,aAAa;AAAA,iBAcN,qBAAA,CACd,KAAmC,EAA5B,gBAAgB;AAAA,iBAgDT,uBAAA,CACd,KAAsC,EAA/B,mBAAmB;AAAA,iBAqBZ,8BAAA,CACd,OAAA,EAAS,qBAAA,GACR,qBAA8B;AAAA,iBAYjB,sBAAA,CAAuB,OAAA,EAAS,aAAA,GAAyB,aAAsB"}
@@ -0,0 +1,114 @@
1
+ //#region src/structured.ts
2
+ function isStringArray(value) {
3
+ return Array.isArray(value) && value.every((item) => typeof item === "string");
4
+ }
5
+ function ensureNonEmpty(value, label) {
6
+ if (value.length === 0) throw new Error(`${label} cannot be empty`);
7
+ return value;
8
+ }
9
+ function serializeMetadataAssignments(value) {
10
+ if (value === void 0) return;
11
+ if (typeof value === "string" || isStringArray(value)) return value;
12
+ const serialized = (Array.isArray(value) ? value : [value]).map((item) => `${ensureNonEmpty(item.key, "Metadata key")}=${String(item.value)}`);
13
+ return serialized.length === 1 ? serialized[0] : serialized;
14
+ }
15
+ function serializeMetadataMaps(value) {
16
+ if (value === void 0) return;
17
+ if (typeof value === "string" || isStringArray(value)) return value;
18
+ const serialized = (Array.isArray(value) ? value : [value]).map((item) => {
19
+ const parts = [String(item.inputFileIndex)];
20
+ if (item.inputScope) parts.push(item.inputScope);
21
+ const source = parts.join(":");
22
+ return item.outputScope ? `${source}:${item.outputScope}` : source;
23
+ });
24
+ return serialized.length === 1 ? serialized[0] : serialized;
25
+ }
26
+ function serializeProgramDefinitions(value) {
27
+ if (value === void 0) return;
28
+ if (typeof value === "string" || isStringArray(value)) return value;
29
+ const serialized = (Array.isArray(value) ? value : [value]).map((item) => {
30
+ if (item.streams.length === 0) throw new Error("Program definition must include at least one stream");
31
+ const parts = [];
32
+ if (item.title !== void 0) parts.push(`title=${item.title}`);
33
+ if (item.programNum !== void 0) parts.push(`program_num=${item.programNum}`);
34
+ for (const stream of item.streams) parts.push(`st=${stream}`);
35
+ return parts.join(":");
36
+ });
37
+ return serialized.length === 1 ? serialized[0] : serialized;
38
+ }
39
+ function serializeStreamGroupDefinitions(value) {
40
+ if (value === void 0) return;
41
+ if (typeof value === "string" || isStringArray(value)) return value;
42
+ const serialized = (Array.isArray(value) ? value : [value]).map((item) => {
43
+ const parts = [];
44
+ if (item.inputFileId !== void 0 || item.inputGroupId !== void 0) {
45
+ if (item.inputFileId === void 0 || item.inputGroupId === void 0) throw new Error("Stream group input mapping requires both inputFileId and inputGroupId");
46
+ parts.push(`map=${item.inputFileId}=${item.inputGroupId}`);
47
+ }
48
+ if (item.type !== void 0) parts.push(`type=${item.type}`);
49
+ if (item.id !== void 0) parts.push(`id=${item.id}`);
50
+ for (const stream of item.streams ?? []) parts.push(`st=${stream}`);
51
+ for (const streamGroup of item.streamGroups ?? []) parts.push(`stg=${streamGroup}`);
52
+ for (const [key, raw] of Object.entries(item.options ?? {})) parts.push(`${key}=${String(raw)}`);
53
+ return parts.join(":");
54
+ });
55
+ return serialized.length === 1 ? serialized[0] : serialized;
56
+ }
57
+ function serializeStreamIds(value) {
58
+ if (value === void 0) return;
59
+ if (typeof value === "string" || isStringArray(value)) return value;
60
+ const serialized = (Array.isArray(value) ? value : [value]).map((item) => `${item.outputStreamIndex}:${item.newValue}`);
61
+ return serialized.length === 1 ? serialized[0] : serialized;
62
+ }
63
+ function serializeDispositions(value) {
64
+ if (value === void 0) return;
65
+ if (typeof value === "string" || isStringArray(value)) return value;
66
+ const serialized = (Array.isArray(value) ? value : [value]).map((item) => {
67
+ if (item.clear) {
68
+ if ((item.set?.length ?? 0) > 0 || (item.add?.length ?? 0) > 0 || (item.remove?.length ?? 0) > 0) throw new Error("Disposition definition cannot combine clear with set/add/remove");
69
+ return "0";
70
+ }
71
+ if ((item.set?.length ?? 0) > 0 && ((item.add?.length ?? 0) > 0 || (item.remove?.length ?? 0) > 0)) throw new Error("Disposition definition cannot combine set with add/remove");
72
+ if (item.set && item.set.length > 0) return item.set.join("+");
73
+ const parts = [...(item.add ?? []).map((flag) => `+${flag}`), ...(item.remove ?? []).map((flag) => `-${flag}`)];
74
+ if (parts.length === 0) throw new Error("Disposition definition must include clear, set, add, or remove");
75
+ return parts.join("");
76
+ });
77
+ return serialized.length === 1 ? serialized[0] : serialized;
78
+ }
79
+ function serializeForceKeyFrames(value) {
80
+ if (value === void 0 || typeof value === "string") return value;
81
+ switch (value.mode) {
82
+ case "times":
83
+ if (value.times.length === 0) throw new Error("forceKeyFrames times mode requires at least one time");
84
+ return value.times.map(String).join(",");
85
+ case "expr": return `expr:${value.expr}`;
86
+ case "source": return "source";
87
+ case "scd_metadata": return "scd_metadata";
88
+ }
89
+ }
90
+ function normalizeOutputMetadataOptions(options) {
91
+ return {
92
+ ...options,
93
+ metadata: serializeMetadataAssignments(options.metadata),
94
+ mapMetadata: serializeMetadataMaps(options.mapMetadata)
95
+ };
96
+ }
97
+ function normalizeOutputOptions(options) {
98
+ const metadataScopes = options.metadataScopes === void 0 ? void 0 : Object.fromEntries(Object.entries(options.metadataScopes).filter(([, scopeOptions]) => scopeOptions !== void 0).map(([scope, scopeOptions]) => [scope, normalizeOutputMetadataOptions(scopeOptions)]));
99
+ return {
100
+ ...options,
101
+ metadata: serializeMetadataAssignments(options.metadata),
102
+ mapMetadata: serializeMetadataMaps(options.mapMetadata),
103
+ disposition: serializeDispositions(options.disposition),
104
+ forceKeyFrames: serializeForceKeyFrames(options.forceKeyFrames),
105
+ program: serializeProgramDefinitions(options.program),
106
+ streamGroup: serializeStreamGroupDefinitions(options.streamGroup),
107
+ streamid: serializeStreamIds(options.streamid),
108
+ metadataScopes
109
+ };
110
+ }
111
+ //#endregion
112
+ export { normalizeOutputMetadataOptions, normalizeOutputOptions, serializeDispositions, serializeForceKeyFrames, serializeMetadataAssignments, serializeMetadataMaps, serializeProgramDefinitions, serializeStreamGroupDefinitions, serializeStreamIds };
113
+
114
+ //# sourceMappingURL=structured.mjs.map