typed-ffmpeg-compatible 2.6.0__py3-none-any.whl → 2.6.2__py3-none-any.whl
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.
- typed_ffmpeg/base.py +24 -5
- typed_ffmpeg/common/schema.py +25 -9
- typed_ffmpeg/common/serialize.py +9 -4
- typed_ffmpeg/dag/__init__.py +8 -1
- typed_ffmpeg/dag/context.py +7 -2
- typed_ffmpeg/dag/factory.py +29 -9
- typed_ffmpeg/dag/global_runnable/global_args.py +1 -2
- typed_ffmpeg/dag/global_runnable/runnable.py +9 -3
- typed_ffmpeg/dag/io/_input.py +3 -1
- typed_ffmpeg/dag/io/_output.py +3 -1
- typed_ffmpeg/dag/io/output_args.py +7 -4
- typed_ffmpeg/dag/nodes.py +55 -26
- typed_ffmpeg/dag/schema.py +3 -3
- typed_ffmpeg/dag/validate.py +26 -8
- typed_ffmpeg/exceptions.py +1 -1
- typed_ffmpeg/filters.py +304 -72
- typed_ffmpeg/info.py +9 -3
- typed_ffmpeg/probe.py +9 -2
- typed_ffmpeg/schema.py +0 -1
- typed_ffmpeg/streams/audio.py +697 -214
- typed_ffmpeg/streams/video.py +1400 -401
- typed_ffmpeg/utils/escaping.py +6 -5
- typed_ffmpeg/utils/run.py +1 -1
- typed_ffmpeg/utils/snapshot.py +6 -1
- typed_ffmpeg/utils/view.py +7 -2
- {typed_ffmpeg_compatible-2.6.0.dist-info → typed_ffmpeg_compatible-2.6.2.dist-info}/METADATA +1 -1
- typed_ffmpeg_compatible-2.6.2.dist-info/RECORD +46 -0
- typed_ffmpeg_compatible-2.6.0.dist-info/RECORD +0 -46
- {typed_ffmpeg_compatible-2.6.0.dist-info → typed_ffmpeg_compatible-2.6.2.dist-info}/LICENSE +0 -0
- {typed_ffmpeg_compatible-2.6.0.dist-info → typed_ffmpeg_compatible-2.6.2.dist-info}/WHEEL +0 -0
- {typed_ffmpeg_compatible-2.6.0.dist-info → typed_ffmpeg_compatible-2.6.2.dist-info}/entry_points.txt +0 -0
typed_ffmpeg/filters.py
CHANGED
@@ -7,7 +7,19 @@ from .dag.nodes import FilterableStream, FilterNode
|
|
7
7
|
from .schema import Auto, Default
|
8
8
|
from .streams.audio import AudioStream
|
9
9
|
from .streams.video import VideoStream
|
10
|
-
from .types import
|
10
|
+
from .types import (
|
11
|
+
Boolean,
|
12
|
+
Color,
|
13
|
+
Double,
|
14
|
+
Duration,
|
15
|
+
Flags,
|
16
|
+
Float,
|
17
|
+
Image_size,
|
18
|
+
Int,
|
19
|
+
Int64,
|
20
|
+
Pix_fmt,
|
21
|
+
String,
|
22
|
+
)
|
11
23
|
|
12
24
|
|
13
25
|
def acrossfade(
|
@@ -94,7 +106,11 @@ def acrossfade(
|
|
94
106
|
|
95
107
|
"""
|
96
108
|
filter_node = filter_node_factory(
|
97
|
-
FFMpegFilterDef(
|
109
|
+
FFMpegFilterDef(
|
110
|
+
name="acrossfade",
|
111
|
+
typings_input=("audio", "audio"),
|
112
|
+
typings_output=("audio",),
|
113
|
+
),
|
98
114
|
_crossfade0,
|
99
115
|
_crossfade1,
|
100
116
|
**{
|
@@ -112,7 +128,9 @@ def acrossfade(
|
|
112
128
|
def ainterleave(
|
113
129
|
*streams: AudioStream,
|
114
130
|
nb_inputs: Int = Auto("len(streams)"),
|
115
|
-
duration: Int | Literal["longest", "shortest", "first"] | Default = Default(
|
131
|
+
duration: Int | Literal["longest", "shortest", "first"] | Default = Default(
|
132
|
+
"longest"
|
133
|
+
),
|
116
134
|
extra_options: dict[str, Any] = None,
|
117
135
|
) -> AudioStream:
|
118
136
|
"""
|
@@ -132,7 +150,9 @@ def ainterleave(
|
|
132
150
|
"""
|
133
151
|
filter_node = filter_node_factory(
|
134
152
|
FFMpegFilterDef(
|
135
|
-
name="ainterleave",
|
153
|
+
name="ainterleave",
|
154
|
+
typings_input="[StreamType.audio] * int(nb_inputs)",
|
155
|
+
typings_output=("audio",),
|
136
156
|
),
|
137
157
|
*streams,
|
138
158
|
**{
|
@@ -174,7 +194,11 @@ def alphamerge(
|
|
174
194
|
|
175
195
|
"""
|
176
196
|
filter_node = filter_node_factory(
|
177
|
-
FFMpegFilterDef(
|
197
|
+
FFMpegFilterDef(
|
198
|
+
name="alphamerge",
|
199
|
+
typings_input=("video", "video"),
|
200
|
+
typings_output=("video",),
|
201
|
+
),
|
178
202
|
_main,
|
179
203
|
_alpha,
|
180
204
|
**{
|
@@ -209,7 +233,11 @@ def amerge(
|
|
209
233
|
|
210
234
|
"""
|
211
235
|
filter_node = filter_node_factory(
|
212
|
-
FFMpegFilterDef(
|
236
|
+
FFMpegFilterDef(
|
237
|
+
name="amerge",
|
238
|
+
typings_input="[StreamType.audio] * int(inputs)",
|
239
|
+
typings_output=("audio",),
|
240
|
+
),
|
213
241
|
*streams,
|
214
242
|
**{
|
215
243
|
"inputs": inputs,
|
@@ -222,7 +250,9 @@ def amerge(
|
|
222
250
|
def amix(
|
223
251
|
*streams: AudioStream,
|
224
252
|
inputs: Int = Auto("len(streams)"),
|
225
|
-
duration: Int | Literal["longest", "shortest", "first"] | Default = Default(
|
253
|
+
duration: Int | Literal["longest", "shortest", "first"] | Default = Default(
|
254
|
+
"longest"
|
255
|
+
),
|
226
256
|
dropout_transition: Float = Default(2.0),
|
227
257
|
weights: String = Default("1 1"),
|
228
258
|
normalize: Boolean = Default(True),
|
@@ -247,7 +277,11 @@ def amix(
|
|
247
277
|
|
248
278
|
"""
|
249
279
|
filter_node = filter_node_factory(
|
250
|
-
FFMpegFilterDef(
|
280
|
+
FFMpegFilterDef(
|
281
|
+
name="amix",
|
282
|
+
typings_input="[StreamType.audio] * int(inputs)",
|
283
|
+
typings_output=("audio",),
|
284
|
+
),
|
251
285
|
*streams,
|
252
286
|
**{
|
253
287
|
"inputs": inputs,
|
@@ -278,7 +312,11 @@ def amultiply(
|
|
278
312
|
|
279
313
|
"""
|
280
314
|
filter_node = filter_node_factory(
|
281
|
-
FFMpegFilterDef(
|
315
|
+
FFMpegFilterDef(
|
316
|
+
name="amultiply",
|
317
|
+
typings_input=("audio", "audio"),
|
318
|
+
typings_output=("audio",),
|
319
|
+
),
|
282
320
|
_multiply0,
|
283
321
|
_multiply1,
|
284
322
|
**{} | (extra_options or {}),
|
@@ -318,7 +356,9 @@ def anlmf(
|
|
318
356
|
|
319
357
|
"""
|
320
358
|
filter_node = filter_node_factory(
|
321
|
-
FFMpegFilterDef(
|
359
|
+
FFMpegFilterDef(
|
360
|
+
name="anlmf", typings_input=("audio", "audio"), typings_output=("audio",)
|
361
|
+
),
|
322
362
|
_input,
|
323
363
|
_desired,
|
324
364
|
**{
|
@@ -366,7 +406,9 @@ def anlms(
|
|
366
406
|
|
367
407
|
"""
|
368
408
|
filter_node = filter_node_factory(
|
369
|
-
FFMpegFilterDef(
|
409
|
+
FFMpegFilterDef(
|
410
|
+
name="anlms", typings_input=("audio", "audio"), typings_output=("audio",)
|
411
|
+
),
|
370
412
|
_input,
|
371
413
|
_desired,
|
372
414
|
**{
|
@@ -404,7 +446,9 @@ def apsnr(
|
|
404
446
|
|
405
447
|
"""
|
406
448
|
filter_node = filter_node_factory(
|
407
|
-
FFMpegFilterDef(
|
449
|
+
FFMpegFilterDef(
|
450
|
+
name="apsnr", typings_input=("audio", "audio"), typings_output=("audio",)
|
451
|
+
),
|
408
452
|
_input0,
|
409
453
|
_input1,
|
410
454
|
**{
|
@@ -445,7 +489,9 @@ def arls(
|
|
445
489
|
|
446
490
|
"""
|
447
491
|
filter_node = filter_node_factory(
|
448
|
-
FFMpegFilterDef(
|
492
|
+
FFMpegFilterDef(
|
493
|
+
name="arls", typings_input=("audio", "audio"), typings_output=("audio",)
|
494
|
+
),
|
449
495
|
_input,
|
450
496
|
_desired,
|
451
497
|
**{
|
@@ -482,7 +528,9 @@ def asdr(
|
|
482
528
|
|
483
529
|
"""
|
484
530
|
filter_node = filter_node_factory(
|
485
|
-
FFMpegFilterDef(
|
531
|
+
FFMpegFilterDef(
|
532
|
+
name="asdr", typings_input=("audio", "audio"), typings_output=("audio",)
|
533
|
+
),
|
486
534
|
_input0,
|
487
535
|
_input1,
|
488
536
|
**{
|
@@ -515,7 +563,9 @@ def asisdr(
|
|
515
563
|
|
516
564
|
"""
|
517
565
|
filter_node = filter_node_factory(
|
518
|
-
FFMpegFilterDef(
|
566
|
+
FFMpegFilterDef(
|
567
|
+
name="asisdr", typings_input=("audio", "audio"), typings_output=("audio",)
|
568
|
+
),
|
519
569
|
_input0,
|
520
570
|
_input1,
|
521
571
|
**{
|
@@ -589,7 +639,11 @@ def axcorrelate(
|
|
589
639
|
|
590
640
|
"""
|
591
641
|
filter_node = filter_node_factory(
|
592
|
-
FFMpegFilterDef(
|
642
|
+
FFMpegFilterDef(
|
643
|
+
name="axcorrelate",
|
644
|
+
typings_input=("audio", "audio"),
|
645
|
+
typings_output=("audio",),
|
646
|
+
),
|
593
647
|
_axcorrelate0,
|
594
648
|
_axcorrelate1,
|
595
649
|
**{
|
@@ -886,7 +940,9 @@ def blend(
|
|
886
940
|
|
887
941
|
"""
|
888
942
|
filter_node = filter_node_factory(
|
889
|
-
FFMpegFilterDef(
|
943
|
+
FFMpegFilterDef(
|
944
|
+
name="blend", typings_input=("video", "video"), typings_output=("video",)
|
945
|
+
),
|
890
946
|
_top,
|
891
947
|
_bottom,
|
892
948
|
**{
|
@@ -1014,7 +1070,11 @@ def colormap(
|
|
1014
1070
|
|
1015
1071
|
"""
|
1016
1072
|
filter_node = filter_node_factory(
|
1017
|
-
FFMpegFilterDef(
|
1073
|
+
FFMpegFilterDef(
|
1074
|
+
name="colormap",
|
1075
|
+
typings_input=("video", "video", "video"),
|
1076
|
+
typings_output=("video",),
|
1077
|
+
),
|
1018
1078
|
_default,
|
1019
1079
|
_source,
|
1020
1080
|
_target,
|
@@ -1111,7 +1171,9 @@ def convolve(
|
|
1111
1171
|
|
1112
1172
|
"""
|
1113
1173
|
filter_node = filter_node_factory(
|
1114
|
-
FFMpegFilterDef(
|
1174
|
+
FFMpegFilterDef(
|
1175
|
+
name="convolve", typings_input=("video", "video"), typings_output=("video",)
|
1176
|
+
),
|
1115
1177
|
_main,
|
1116
1178
|
_impulse,
|
1117
1179
|
**{
|
@@ -1159,7 +1221,9 @@ def corr(
|
|
1159
1221
|
|
1160
1222
|
"""
|
1161
1223
|
filter_node = filter_node_factory(
|
1162
|
-
FFMpegFilterDef(
|
1224
|
+
FFMpegFilterDef(
|
1225
|
+
name="corr", typings_input=("video", "video"), typings_output=("video",)
|
1226
|
+
),
|
1163
1227
|
_main,
|
1164
1228
|
_reference,
|
1165
1229
|
**{
|
@@ -1265,7 +1329,11 @@ def deconvolve(
|
|
1265
1329
|
|
1266
1330
|
"""
|
1267
1331
|
filter_node = filter_node_factory(
|
1268
|
-
FFMpegFilterDef(
|
1332
|
+
FFMpegFilterDef(
|
1333
|
+
name="deconvolve",
|
1334
|
+
typings_input=("video", "video"),
|
1335
|
+
typings_output=("video",),
|
1336
|
+
),
|
1269
1337
|
_main,
|
1270
1338
|
_impulse,
|
1271
1339
|
**{
|
@@ -1288,7 +1356,9 @@ def displace(
|
|
1288
1356
|
_xmap: VideoStream,
|
1289
1357
|
_ymap: VideoStream,
|
1290
1358
|
*,
|
1291
|
-
edge: Int | Literal["blank", "smear", "wrap", "mirror"] | Default = Default(
|
1359
|
+
edge: Int | Literal["blank", "smear", "wrap", "mirror"] | Default = Default(
|
1360
|
+
"smear"
|
1361
|
+
),
|
1292
1362
|
enable: String = Default(None),
|
1293
1363
|
extra_options: dict[str, Any] = None,
|
1294
1364
|
) -> VideoStream:
|
@@ -1308,7 +1378,11 @@ def displace(
|
|
1308
1378
|
|
1309
1379
|
"""
|
1310
1380
|
filter_node = filter_node_factory(
|
1311
|
-
FFMpegFilterDef(
|
1381
|
+
FFMpegFilterDef(
|
1382
|
+
name="displace",
|
1383
|
+
typings_input=("video", "video", "video"),
|
1384
|
+
typings_output=("video",),
|
1385
|
+
),
|
1312
1386
|
_source,
|
1313
1387
|
_xmap,
|
1314
1388
|
_ymap,
|
@@ -1328,7 +1402,10 @@ def feedback(
|
|
1328
1402
|
x: Int = Default(0),
|
1329
1403
|
w: Int = Default(0),
|
1330
1404
|
extra_options: dict[str, Any] = None,
|
1331
|
-
) -> tuple[
|
1405
|
+
) -> tuple[
|
1406
|
+
VideoStream,
|
1407
|
+
VideoStream,
|
1408
|
+
]:
|
1332
1409
|
"""
|
1333
1410
|
|
1334
1411
|
Apply feedback video filter.
|
@@ -1346,7 +1423,11 @@ def feedback(
|
|
1346
1423
|
|
1347
1424
|
"""
|
1348
1425
|
filter_node = filter_node_factory(
|
1349
|
-
FFMpegFilterDef(
|
1426
|
+
FFMpegFilterDef(
|
1427
|
+
name="feedback",
|
1428
|
+
typings_input=("video", "video"),
|
1429
|
+
typings_output=("video", "video"),
|
1430
|
+
),
|
1350
1431
|
_default,
|
1351
1432
|
_feedin,
|
1352
1433
|
**{
|
@@ -1364,7 +1445,9 @@ def feedback(
|
|
1364
1445
|
def fieldmatch(
|
1365
1446
|
*streams: VideoStream,
|
1366
1447
|
order: Int | Literal["auto", "bff", "tff"] | Default = Default("auto"),
|
1367
|
-
mode: Int
|
1448
|
+
mode: Int
|
1449
|
+
| Literal["pc", "pc_n", "pc_u", "pc_n_ub", "pcn", "pcn_ub"]
|
1450
|
+
| Default = Default("pc_n"),
|
1368
1451
|
ppsrc: Boolean = Default(False),
|
1369
1452
|
field: Int | Literal["auto", "bottom", "top"] | Default = Default("auto"),
|
1370
1453
|
mchroma: Boolean = Default(True),
|
@@ -1438,7 +1521,9 @@ def framepack(
|
|
1438
1521
|
_left: VideoStream,
|
1439
1522
|
_right: VideoStream,
|
1440
1523
|
*,
|
1441
|
-
format: Int
|
1524
|
+
format: Int
|
1525
|
+
| Literal["sbs", "tab", "frameseq", "lines", "columns"]
|
1526
|
+
| Default = Default("sbs"),
|
1442
1527
|
extra_options: dict[str, Any] = None,
|
1443
1528
|
) -> VideoStream:
|
1444
1529
|
"""
|
@@ -1456,7 +1541,11 @@ def framepack(
|
|
1456
1541
|
|
1457
1542
|
"""
|
1458
1543
|
filter_node = filter_node_factory(
|
1459
|
-
FFMpegFilterDef(
|
1544
|
+
FFMpegFilterDef(
|
1545
|
+
name="framepack",
|
1546
|
+
typings_input=("video", "video"),
|
1547
|
+
typings_output=("video",),
|
1548
|
+
),
|
1460
1549
|
_left,
|
1461
1550
|
_right,
|
1462
1551
|
**{
|
@@ -1493,7 +1582,11 @@ def freezeframes(
|
|
1493
1582
|
|
1494
1583
|
"""
|
1495
1584
|
filter_node = filter_node_factory(
|
1496
|
-
FFMpegFilterDef(
|
1585
|
+
FFMpegFilterDef(
|
1586
|
+
name="freezeframes",
|
1587
|
+
typings_input=("video", "video"),
|
1588
|
+
typings_output=("video",),
|
1589
|
+
),
|
1497
1590
|
_source,
|
1498
1591
|
_replace,
|
1499
1592
|
**{
|
@@ -1563,7 +1656,9 @@ def haldclut(
|
|
1563
1656
|
_clut: VideoStream,
|
1564
1657
|
*,
|
1565
1658
|
clut: Int | Literal["first", "all"] | Default = Default("all"),
|
1566
|
-
interp: Int
|
1659
|
+
interp: Int
|
1660
|
+
| Literal["nearest", "trilinear", "tetrahedral", "pyramid", "prism"]
|
1661
|
+
| Default = Default("tetrahedral"),
|
1567
1662
|
eof_action: Int | Literal["repeat", "endall", "pass"] | Default = Default("repeat"),
|
1568
1663
|
shortest: Boolean = Default(False),
|
1569
1664
|
repeatlast: Boolean = Default(True),
|
@@ -1592,7 +1687,9 @@ def haldclut(
|
|
1592
1687
|
|
1593
1688
|
"""
|
1594
1689
|
filter_node = filter_node_factory(
|
1595
|
-
FFMpegFilterDef(
|
1690
|
+
FFMpegFilterDef(
|
1691
|
+
name="haldclut", typings_input=("video", "video"), typings_output=("video",)
|
1692
|
+
),
|
1596
1693
|
_main,
|
1597
1694
|
_clut,
|
1598
1695
|
**{
|
@@ -1680,7 +1777,11 @@ def hstack(
|
|
1680
1777
|
|
1681
1778
|
"""
|
1682
1779
|
filter_node = filter_node_factory(
|
1683
|
-
FFMpegFilterDef(
|
1780
|
+
FFMpegFilterDef(
|
1781
|
+
name="hstack",
|
1782
|
+
typings_input="[StreamType.video] * int(inputs)",
|
1783
|
+
typings_output=("video",),
|
1784
|
+
),
|
1684
1785
|
*streams,
|
1685
1786
|
**{
|
1686
1787
|
"inputs": inputs,
|
@@ -1725,7 +1826,11 @@ def hysteresis(
|
|
1725
1826
|
|
1726
1827
|
"""
|
1727
1828
|
filter_node = filter_node_factory(
|
1728
|
-
FFMpegFilterDef(
|
1829
|
+
FFMpegFilterDef(
|
1830
|
+
name="hysteresis",
|
1831
|
+
typings_input=("video", "video"),
|
1832
|
+
typings_output=("video",),
|
1833
|
+
),
|
1729
1834
|
_base,
|
1730
1835
|
_alt,
|
1731
1836
|
**{
|
@@ -1772,7 +1877,9 @@ def identity(
|
|
1772
1877
|
|
1773
1878
|
"""
|
1774
1879
|
filter_node = filter_node_factory(
|
1775
|
-
FFMpegFilterDef(
|
1880
|
+
FFMpegFilterDef(
|
1881
|
+
name="identity", typings_input=("video", "video"), typings_output=("video",)
|
1882
|
+
),
|
1776
1883
|
_main,
|
1777
1884
|
_reference,
|
1778
1885
|
**{
|
@@ -1790,7 +1897,9 @@ def identity(
|
|
1790
1897
|
def interleave(
|
1791
1898
|
*streams: VideoStream,
|
1792
1899
|
nb_inputs: Int = Auto("len(streams)"),
|
1793
|
-
duration: Int | Literal["longest", "shortest", "first"] | Default = Default(
|
1900
|
+
duration: Int | Literal["longest", "shortest", "first"] | Default = Default(
|
1901
|
+
"longest"
|
1902
|
+
),
|
1794
1903
|
extra_options: dict[str, Any] = None,
|
1795
1904
|
) -> VideoStream:
|
1796
1905
|
"""
|
@@ -1810,7 +1919,9 @@ def interleave(
|
|
1810
1919
|
"""
|
1811
1920
|
filter_node = filter_node_factory(
|
1812
1921
|
FFMpegFilterDef(
|
1813
|
-
name="interleave",
|
1922
|
+
name="interleave",
|
1923
|
+
typings_input="[StreamType.video] * int(nb_inputs)",
|
1924
|
+
typings_output=("video",),
|
1814
1925
|
),
|
1815
1926
|
*streams,
|
1816
1927
|
**{
|
@@ -1846,7 +1957,11 @@ def join(
|
|
1846
1957
|
|
1847
1958
|
"""
|
1848
1959
|
filter_node = filter_node_factory(
|
1849
|
-
FFMpegFilterDef(
|
1960
|
+
FFMpegFilterDef(
|
1961
|
+
name="join",
|
1962
|
+
typings_input="[StreamType.audio] * int(inputs)",
|
1963
|
+
typings_output=("audio",),
|
1964
|
+
),
|
1850
1965
|
*streams,
|
1851
1966
|
**{
|
1852
1967
|
"inputs": inputs,
|
@@ -1900,7 +2015,9 @@ def libvmaf(
|
|
1900
2015
|
|
1901
2016
|
"""
|
1902
2017
|
filter_node = filter_node_factory(
|
1903
|
-
FFMpegFilterDef(
|
2018
|
+
FFMpegFilterDef(
|
2019
|
+
name="libvmaf", typings_input=("video", "video"), typings_output=("video",)
|
2020
|
+
),
|
1904
2021
|
_main,
|
1905
2022
|
_reference,
|
1906
2023
|
**{
|
@@ -2007,7 +2124,9 @@ def lut2(
|
|
2007
2124
|
|
2008
2125
|
"""
|
2009
2126
|
filter_node = filter_node_factory(
|
2010
|
-
FFMpegFilterDef(
|
2127
|
+
FFMpegFilterDef(
|
2128
|
+
name="lut2", typings_input=("video", "video"), typings_output=("video",)
|
2129
|
+
),
|
2011
2130
|
_srcx,
|
2012
2131
|
_srcy,
|
2013
2132
|
**{
|
@@ -2056,7 +2175,11 @@ def maskedclamp(
|
|
2056
2175
|
|
2057
2176
|
"""
|
2058
2177
|
filter_node = filter_node_factory(
|
2059
|
-
FFMpegFilterDef(
|
2178
|
+
FFMpegFilterDef(
|
2179
|
+
name="maskedclamp",
|
2180
|
+
typings_input=("video", "video", "video"),
|
2181
|
+
typings_output=("video",),
|
2182
|
+
),
|
2060
2183
|
_base,
|
2061
2184
|
_dark,
|
2062
2185
|
_bright,
|
@@ -2096,7 +2219,11 @@ def maskedmax(
|
|
2096
2219
|
|
2097
2220
|
"""
|
2098
2221
|
filter_node = filter_node_factory(
|
2099
|
-
FFMpegFilterDef(
|
2222
|
+
FFMpegFilterDef(
|
2223
|
+
name="maskedmax",
|
2224
|
+
typings_input=("video", "video", "video"),
|
2225
|
+
typings_output=("video",),
|
2226
|
+
),
|
2100
2227
|
_source,
|
2101
2228
|
_filter1,
|
2102
2229
|
_filter2,
|
@@ -2134,7 +2261,11 @@ def maskedmerge(
|
|
2134
2261
|
|
2135
2262
|
"""
|
2136
2263
|
filter_node = filter_node_factory(
|
2137
|
-
FFMpegFilterDef(
|
2264
|
+
FFMpegFilterDef(
|
2265
|
+
name="maskedmerge",
|
2266
|
+
typings_input=("video", "video", "video"),
|
2267
|
+
typings_output=("video",),
|
2268
|
+
),
|
2138
2269
|
_base,
|
2139
2270
|
_overlay,
|
2140
2271
|
_mask,
|
@@ -2172,7 +2303,11 @@ def maskedmin(
|
|
2172
2303
|
|
2173
2304
|
"""
|
2174
2305
|
filter_node = filter_node_factory(
|
2175
|
-
FFMpegFilterDef(
|
2306
|
+
FFMpegFilterDef(
|
2307
|
+
name="maskedmin",
|
2308
|
+
typings_input=("video", "video", "video"),
|
2309
|
+
typings_output=("video",),
|
2310
|
+
),
|
2176
2311
|
_source,
|
2177
2312
|
_filter1,
|
2178
2313
|
_filter2,
|
@@ -2213,7 +2348,11 @@ def maskedthreshold(
|
|
2213
2348
|
|
2214
2349
|
"""
|
2215
2350
|
filter_node = filter_node_factory(
|
2216
|
-
FFMpegFilterDef(
|
2351
|
+
FFMpegFilterDef(
|
2352
|
+
name="maskedthreshold",
|
2353
|
+
typings_input=("video", "video"),
|
2354
|
+
typings_output=("video",),
|
2355
|
+
),
|
2217
2356
|
_source,
|
2218
2357
|
_reference,
|
2219
2358
|
**{
|
@@ -2312,7 +2451,11 @@ def midequalizer(
|
|
2312
2451
|
|
2313
2452
|
"""
|
2314
2453
|
filter_node = filter_node_factory(
|
2315
|
-
FFMpegFilterDef(
|
2454
|
+
FFMpegFilterDef(
|
2455
|
+
name="midequalizer",
|
2456
|
+
typings_input=("video", "video"),
|
2457
|
+
typings_output=("video",),
|
2458
|
+
),
|
2316
2459
|
_in0,
|
2317
2460
|
_in1,
|
2318
2461
|
**{
|
@@ -2330,7 +2473,9 @@ def mix(
|
|
2330
2473
|
weights: String = Default("1 1"),
|
2331
2474
|
scale: Float = Default(0.0),
|
2332
2475
|
planes: Flags = Default("F"),
|
2333
|
-
duration: Int | Literal["longest", "shortest", "first"] | Default = Default(
|
2476
|
+
duration: Int | Literal["longest", "shortest", "first"] | Default = Default(
|
2477
|
+
"longest"
|
2478
|
+
),
|
2334
2479
|
enable: String = Default(None),
|
2335
2480
|
extra_options: dict[str, Any] = None,
|
2336
2481
|
) -> VideoStream:
|
@@ -2354,7 +2499,11 @@ def mix(
|
|
2354
2499
|
|
2355
2500
|
"""
|
2356
2501
|
filter_node = filter_node_factory(
|
2357
|
-
FFMpegFilterDef(
|
2502
|
+
FFMpegFilterDef(
|
2503
|
+
name="mix",
|
2504
|
+
typings_input="[StreamType.video] * int(inputs)",
|
2505
|
+
typings_output=("video",),
|
2506
|
+
),
|
2358
2507
|
*streams,
|
2359
2508
|
**{
|
2360
2509
|
"inputs": inputs,
|
@@ -2407,7 +2556,9 @@ def morpho(
|
|
2407
2556
|
|
2408
2557
|
"""
|
2409
2558
|
filter_node = filter_node_factory(
|
2410
|
-
FFMpegFilterDef(
|
2559
|
+
FFMpegFilterDef(
|
2560
|
+
name="morpho", typings_input=("video", "video"), typings_output=("video",)
|
2561
|
+
),
|
2411
2562
|
_default,
|
2412
2563
|
_structure,
|
2413
2564
|
**{
|
@@ -2455,7 +2606,9 @@ def msad(
|
|
2455
2606
|
|
2456
2607
|
"""
|
2457
2608
|
filter_node = filter_node_factory(
|
2458
|
-
FFMpegFilterDef(
|
2609
|
+
FFMpegFilterDef(
|
2610
|
+
name="msad", typings_input=("video", "video"), typings_output=("video",)
|
2611
|
+
),
|
2459
2612
|
_main,
|
2460
2613
|
_reference,
|
2461
2614
|
**{
|
@@ -2498,7 +2651,9 @@ def multiply(
|
|
2498
2651
|
|
2499
2652
|
"""
|
2500
2653
|
filter_node = filter_node_factory(
|
2501
|
-
FFMpegFilterDef(
|
2654
|
+
FFMpegFilterDef(
|
2655
|
+
name="multiply", typings_input=("video", "video"), typings_output=("video",)
|
2656
|
+
),
|
2502
2657
|
_source,
|
2503
2658
|
_factor,
|
2504
2659
|
**{
|
@@ -2518,11 +2673,23 @@ def overlay(
|
|
2518
2673
|
*,
|
2519
2674
|
x: String = Default("0"),
|
2520
2675
|
y: String = Default("0"),
|
2521
|
-
eof_action: Int
|
2676
|
+
eof_action: Int
|
2677
|
+
| Literal["repeat", "endall", "pass", "repeat", "endall", "pass"]
|
2678
|
+
| Default = Default("repeat"),
|
2522
2679
|
eval: Int | Literal["init", "frame"] | Default = Default("frame"),
|
2523
2680
|
shortest: Boolean = Default(False),
|
2524
2681
|
format: Int
|
2525
|
-
| Literal[
|
2682
|
+
| Literal[
|
2683
|
+
"yuv420",
|
2684
|
+
"yuv420p10",
|
2685
|
+
"yuv422",
|
2686
|
+
"yuv422p10",
|
2687
|
+
"yuv444",
|
2688
|
+
"yuv444p10",
|
2689
|
+
"rgb",
|
2690
|
+
"gbrp",
|
2691
|
+
"auto",
|
2692
|
+
]
|
2526
2693
|
| Default = Default("yuv420"),
|
2527
2694
|
repeatlast: Boolean = Default(True),
|
2528
2695
|
alpha: Int | Literal["straight", "premultiplied"] | Default = Default("straight"),
|
@@ -2554,7 +2721,9 @@ def overlay(
|
|
2554
2721
|
|
2555
2722
|
"""
|
2556
2723
|
filter_node = filter_node_factory(
|
2557
|
-
FFMpegFilterDef(
|
2724
|
+
FFMpegFilterDef(
|
2725
|
+
name="overlay", typings_input=("video", "video"), typings_output=("video",)
|
2726
|
+
),
|
2558
2727
|
_main,
|
2559
2728
|
_overlay,
|
2560
2729
|
**{
|
@@ -2579,7 +2748,16 @@ def paletteuse(
|
|
2579
2748
|
_palette: VideoStream,
|
2580
2749
|
*,
|
2581
2750
|
dither: Int
|
2582
|
-
| Literal[
|
2751
|
+
| Literal[
|
2752
|
+
"bayer",
|
2753
|
+
"heckbert",
|
2754
|
+
"floyd_steinberg",
|
2755
|
+
"sierra2",
|
2756
|
+
"sierra2_4a",
|
2757
|
+
"sierra3",
|
2758
|
+
"burkes",
|
2759
|
+
"atkinson",
|
2760
|
+
]
|
2583
2761
|
| Default = Default("sierra2_4a"),
|
2584
2762
|
bayer_scale: Int = Default(2),
|
2585
2763
|
diff_mode: Int | Literal["rectangle"] | Default = Default(0),
|
@@ -2608,7 +2786,11 @@ def paletteuse(
|
|
2608
2786
|
|
2609
2787
|
"""
|
2610
2788
|
filter_node = filter_node_factory(
|
2611
|
-
FFMpegFilterDef(
|
2789
|
+
FFMpegFilterDef(
|
2790
|
+
name="paletteuse",
|
2791
|
+
typings_input=("video", "video"),
|
2792
|
+
typings_output=("video",),
|
2793
|
+
),
|
2612
2794
|
_default,
|
2613
2795
|
_palette,
|
2614
2796
|
**{
|
@@ -2700,7 +2882,9 @@ def psnr(
|
|
2700
2882
|
|
2701
2883
|
"""
|
2702
2884
|
filter_node = filter_node_factory(
|
2703
|
-
FFMpegFilterDef(
|
2885
|
+
FFMpegFilterDef(
|
2886
|
+
name="psnr", typings_input=("video", "video"), typings_output=("video",)
|
2887
|
+
),
|
2704
2888
|
_main,
|
2705
2889
|
_reference,
|
2706
2890
|
**{
|
@@ -2743,7 +2927,11 @@ def remap(
|
|
2743
2927
|
|
2744
2928
|
"""
|
2745
2929
|
filter_node = filter_node_factory(
|
2746
|
-
FFMpegFilterDef(
|
2930
|
+
FFMpegFilterDef(
|
2931
|
+
name="remap",
|
2932
|
+
typings_input=("video", "video", "video"),
|
2933
|
+
typings_output=("video",),
|
2934
|
+
),
|
2747
2935
|
_source,
|
2748
2936
|
_xmap,
|
2749
2937
|
_ymap,
|
@@ -2800,7 +2988,11 @@ def sidechaincompress(
|
|
2800
2988
|
|
2801
2989
|
"""
|
2802
2990
|
filter_node = filter_node_factory(
|
2803
|
-
FFMpegFilterDef(
|
2991
|
+
FFMpegFilterDef(
|
2992
|
+
name="sidechaincompress",
|
2993
|
+
typings_input=("audio", "audio"),
|
2994
|
+
typings_output=("audio",),
|
2995
|
+
),
|
2804
2996
|
_main,
|
2805
2997
|
_sidechain,
|
2806
2998
|
**{
|
@@ -2868,7 +3060,11 @@ def sidechaingate(
|
|
2868
3060
|
|
2869
3061
|
"""
|
2870
3062
|
filter_node = filter_node_factory(
|
2871
|
-
FFMpegFilterDef(
|
3063
|
+
FFMpegFilterDef(
|
3064
|
+
name="sidechaingate",
|
3065
|
+
typings_input=("audio", "audio"),
|
3066
|
+
typings_output=("audio",),
|
3067
|
+
),
|
2872
3068
|
_main,
|
2873
3069
|
_sidechain,
|
2874
3070
|
**{
|
@@ -2928,7 +3124,9 @@ def signature(
|
|
2928
3124
|
"""
|
2929
3125
|
filter_node = filter_node_factory(
|
2930
3126
|
FFMpegFilterDef(
|
2931
|
-
name="signature",
|
3127
|
+
name="signature",
|
3128
|
+
typings_input="[StreamType.video] * int(nb_inputs)",
|
3129
|
+
typings_output=("video",),
|
2932
3130
|
),
|
2933
3131
|
*streams,
|
2934
3132
|
**{
|
@@ -2954,7 +3152,9 @@ def spectrumsynth(
|
|
2954
3152
|
sample_rate: Int = Default(44100),
|
2955
3153
|
channels: Int = Default(1),
|
2956
3154
|
scale: Int | Literal["lin", "log"] | Default = Default("log"),
|
2957
|
-
slide: Int
|
3155
|
+
slide: Int
|
3156
|
+
| Literal["replace", "scroll", "fullframe", "rscroll"]
|
3157
|
+
| Default = Default("fullframe"),
|
2958
3158
|
win_func: Int
|
2959
3159
|
| Literal[
|
2960
3160
|
"rect",
|
@@ -2982,7 +3182,9 @@ def spectrumsynth(
|
|
2982
3182
|
]
|
2983
3183
|
| Default = Default("rect"),
|
2984
3184
|
overlap: Float = Default(1.0),
|
2985
|
-
orientation: Int | Literal["vertical", "horizontal"] | Default = Default(
|
3185
|
+
orientation: Int | Literal["vertical", "horizontal"] | Default = Default(
|
3186
|
+
"vertical"
|
3187
|
+
),
|
2986
3188
|
extra_options: dict[str, Any] = None,
|
2987
3189
|
) -> AudioStream:
|
2988
3190
|
"""
|
@@ -3006,7 +3208,11 @@ def spectrumsynth(
|
|
3006
3208
|
|
3007
3209
|
"""
|
3008
3210
|
filter_node = filter_node_factory(
|
3009
|
-
FFMpegFilterDef(
|
3211
|
+
FFMpegFilterDef(
|
3212
|
+
name="spectrumsynth",
|
3213
|
+
typings_input=("video", "video"),
|
3214
|
+
typings_output=("audio",),
|
3215
|
+
),
|
3010
3216
|
_magnitude,
|
3011
3217
|
_phase,
|
3012
3218
|
**{
|
@@ -3055,7 +3261,9 @@ def ssim(
|
|
3055
3261
|
|
3056
3262
|
"""
|
3057
3263
|
filter_node = filter_node_factory(
|
3058
|
-
FFMpegFilterDef(
|
3264
|
+
FFMpegFilterDef(
|
3265
|
+
name="ssim", typings_input=("video", "video"), typings_output=("video",)
|
3266
|
+
),
|
3059
3267
|
_main,
|
3060
3268
|
_reference,
|
3061
3269
|
**{
|
@@ -3137,7 +3345,9 @@ def threshold(
|
|
3137
3345
|
"""
|
3138
3346
|
filter_node = filter_node_factory(
|
3139
3347
|
FFMpegFilterDef(
|
3140
|
-
name="threshold",
|
3348
|
+
name="threshold",
|
3349
|
+
typings_input=("video", "video", "video", "video"),
|
3350
|
+
typings_output=("video",),
|
3141
3351
|
),
|
3142
3352
|
_default,
|
3143
3353
|
_threshold,
|
@@ -3228,7 +3438,9 @@ def varblur(
|
|
3228
3438
|
|
3229
3439
|
"""
|
3230
3440
|
filter_node = filter_node_factory(
|
3231
|
-
FFMpegFilterDef(
|
3441
|
+
FFMpegFilterDef(
|
3442
|
+
name="varblur", typings_input=("video", "video"), typings_output=("video",)
|
3443
|
+
),
|
3232
3444
|
_default,
|
3233
3445
|
_radius,
|
3234
3446
|
**{
|
@@ -3276,7 +3488,9 @@ def vif(
|
|
3276
3488
|
|
3277
3489
|
"""
|
3278
3490
|
filter_node = filter_node_factory(
|
3279
|
-
FFMpegFilterDef(
|
3491
|
+
FFMpegFilterDef(
|
3492
|
+
name="vif", typings_input=("video", "video"), typings_output=("video",)
|
3493
|
+
),
|
3280
3494
|
_main,
|
3281
3495
|
_reference,
|
3282
3496
|
**{
|
@@ -3313,7 +3527,11 @@ def vstack(
|
|
3313
3527
|
|
3314
3528
|
"""
|
3315
3529
|
filter_node = filter_node_factory(
|
3316
|
-
FFMpegFilterDef(
|
3530
|
+
FFMpegFilterDef(
|
3531
|
+
name="vstack",
|
3532
|
+
typings_input="[StreamType.video] * int(inputs)",
|
3533
|
+
typings_output=("video",),
|
3534
|
+
),
|
3317
3535
|
*streams,
|
3318
3536
|
**{
|
3319
3537
|
"inputs": inputs,
|
@@ -3358,7 +3576,11 @@ def xcorrelate(
|
|
3358
3576
|
|
3359
3577
|
"""
|
3360
3578
|
filter_node = filter_node_factory(
|
3361
|
-
FFMpegFilterDef(
|
3579
|
+
FFMpegFilterDef(
|
3580
|
+
name="xcorrelate",
|
3581
|
+
typings_input=("video", "video"),
|
3582
|
+
typings_output=("video",),
|
3583
|
+
),
|
3362
3584
|
_primary,
|
3363
3585
|
_secondary,
|
3364
3586
|
**{
|
@@ -3465,7 +3687,9 @@ def xfade(
|
|
3465
3687
|
|
3466
3688
|
"""
|
3467
3689
|
filter_node = filter_node_factory(
|
3468
|
-
FFMpegFilterDef(
|
3690
|
+
FFMpegFilterDef(
|
3691
|
+
name="xfade", typings_input=("video", "video"), typings_output=("video",)
|
3692
|
+
),
|
3469
3693
|
_main,
|
3470
3694
|
_xfade,
|
3471
3695
|
**{
|
@@ -3513,7 +3737,11 @@ def xmedian(
|
|
3513
3737
|
|
3514
3738
|
"""
|
3515
3739
|
filter_node = filter_node_factory(
|
3516
|
-
FFMpegFilterDef(
|
3740
|
+
FFMpegFilterDef(
|
3741
|
+
name="xmedian",
|
3742
|
+
typings_input="[StreamType.video] * int(inputs)",
|
3743
|
+
typings_output=("video",),
|
3744
|
+
),
|
3517
3745
|
*streams,
|
3518
3746
|
**{
|
3519
3747
|
"inputs": inputs,
|
@@ -3558,7 +3786,11 @@ def xstack(
|
|
3558
3786
|
|
3559
3787
|
"""
|
3560
3788
|
filter_node = filter_node_factory(
|
3561
|
-
FFMpegFilterDef(
|
3789
|
+
FFMpegFilterDef(
|
3790
|
+
name="xstack",
|
3791
|
+
typings_input="[StreamType.video] * int(inputs)",
|
3792
|
+
typings_output=("video",),
|
3793
|
+
),
|
3562
3794
|
*streams,
|
3563
3795
|
**{
|
3564
3796
|
"inputs": inputs,
|