typed-ffmpeg-compatible 3.5.1__py3-none-any.whl → 3.6__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.
Files changed (71) hide show
  1. typed_ffmpeg/__init__.py +4 -1
  2. typed_ffmpeg/_version.py +2 -2
  3. typed_ffmpeg/base.py +4 -1
  4. typed_ffmpeg/codecs/__init__.py +2 -0
  5. typed_ffmpeg/codecs/decoders.py +1852 -1853
  6. typed_ffmpeg/codecs/encoders.py +2001 -1782
  7. typed_ffmpeg/codecs/schema.py +6 -12
  8. typed_ffmpeg/common/__init__.py +1 -0
  9. typed_ffmpeg/common/cache.py +9 -6
  10. typed_ffmpeg/common/schema.py +11 -0
  11. typed_ffmpeg/common/serialize.py +13 -7
  12. typed_ffmpeg/compile/__init__.py +1 -0
  13. typed_ffmpeg/compile/compile_cli.py +55 -8
  14. typed_ffmpeg/compile/compile_json.py +4 -0
  15. typed_ffmpeg/compile/compile_python.py +15 -0
  16. typed_ffmpeg/compile/context.py +15 -4
  17. typed_ffmpeg/compile/validate.py +9 -8
  18. typed_ffmpeg/dag/factory.py +2 -0
  19. typed_ffmpeg/dag/global_runnable/__init__.py +1 -0
  20. typed_ffmpeg/dag/global_runnable/global_args.py +2 -2
  21. typed_ffmpeg/dag/global_runnable/runnable.py +51 -11
  22. typed_ffmpeg/dag/io/__init__.py +1 -0
  23. typed_ffmpeg/dag/io/_input.py +20 -5
  24. typed_ffmpeg/dag/io/_output.py +24 -9
  25. typed_ffmpeg/dag/io/output_args.py +21 -7
  26. typed_ffmpeg/dag/nodes.py +20 -0
  27. typed_ffmpeg/dag/schema.py +19 -6
  28. typed_ffmpeg/dag/utils.py +2 -2
  29. typed_ffmpeg/exceptions.py +2 -1
  30. typed_ffmpeg/expressions.py +884 -0
  31. typed_ffmpeg/ffprobe/__init__.py +1 -0
  32. typed_ffmpeg/ffprobe/parse.py +7 -1
  33. typed_ffmpeg/ffprobe/probe.py +3 -1
  34. typed_ffmpeg/ffprobe/schema.py +83 -1
  35. typed_ffmpeg/ffprobe/xml2json.py +8 -2
  36. typed_ffmpeg/filters.py +540 -631
  37. typed_ffmpeg/formats/__init__.py +2 -0
  38. typed_ffmpeg/formats/demuxers.py +1869 -1921
  39. typed_ffmpeg/formats/muxers.py +1382 -1107
  40. typed_ffmpeg/formats/schema.py +6 -12
  41. typed_ffmpeg/info.py +8 -0
  42. typed_ffmpeg/options/__init__.py +15 -0
  43. typed_ffmpeg/options/codec.py +711 -0
  44. typed_ffmpeg/options/format.py +196 -0
  45. typed_ffmpeg/options/framesync.py +43 -0
  46. typed_ffmpeg/options/timeline.py +22 -0
  47. typed_ffmpeg/schema.py +15 -0
  48. typed_ffmpeg/sources.py +392 -381
  49. typed_ffmpeg/streams/__init__.py +2 -0
  50. typed_ffmpeg/streams/audio.py +1071 -882
  51. typed_ffmpeg/streams/av.py +9 -3
  52. typed_ffmpeg/streams/subtitle.py +3 -3
  53. typed_ffmpeg/streams/video.py +1873 -1725
  54. typed_ffmpeg/types.py +3 -2
  55. typed_ffmpeg/utils/__init__.py +1 -0
  56. typed_ffmpeg/utils/escaping.py +8 -4
  57. typed_ffmpeg/utils/frozendict.py +31 -1
  58. typed_ffmpeg/utils/lazy_eval/__init__.py +1 -0
  59. typed_ffmpeg/utils/lazy_eval/operator.py +75 -27
  60. typed_ffmpeg/utils/lazy_eval/schema.py +176 -4
  61. typed_ffmpeg/utils/run.py +2 -0
  62. typed_ffmpeg/utils/snapshot.py +3 -2
  63. typed_ffmpeg/utils/typing.py +2 -1
  64. typed_ffmpeg/utils/view.py +2 -1
  65. {typed_ffmpeg_compatible-3.5.1.dist-info → typed_ffmpeg_compatible-3.6.dist-info}/METADATA +1 -1
  66. typed_ffmpeg_compatible-3.6.dist-info/RECORD +73 -0
  67. typed_ffmpeg_compatible-3.5.1.dist-info/RECORD +0 -67
  68. {typed_ffmpeg_compatible-3.5.1.dist-info → typed_ffmpeg_compatible-3.6.dist-info}/WHEEL +0 -0
  69. {typed_ffmpeg_compatible-3.5.1.dist-info → typed_ffmpeg_compatible-3.6.dist-info}/entry_points.txt +0 -0
  70. {typed_ffmpeg_compatible-3.5.1.dist-info → typed_ffmpeg_compatible-3.6.dist-info}/licenses/LICENSE +0 -0
  71. {typed_ffmpeg_compatible-3.5.1.dist-info → typed_ffmpeg_compatible-3.6.dist-info}/top_level.txt +0 -0
typed_ffmpeg/filters.py CHANGED
@@ -1,11 +1,16 @@
1
1
  # NOTE: this file is auto-generated, do not modify
2
-
2
+ """FFmpeg filters."""
3
3
 
4
4
  from typing import Any, Literal
5
5
 
6
6
  from .common.schema import FFMpegFilterDef
7
7
  from .dag.factory import filter_node_factory
8
- from .dag.nodes import FilterableStream, FilterNode
8
+ from .dag.nodes import (
9
+ FilterableStream,
10
+ FilterNode,
11
+ )
12
+ from .options.framesync import FFMpegFrameSyncOption
13
+ from .options.timeline import FFMpegTimelineOption
9
14
  from .schema import Auto, Default
10
15
  from .streams.audio import AudioStream
11
16
  from .streams.video import VideoStream
@@ -31,9 +36,9 @@ def acrossfade(
31
36
  _crossfade0: AudioStream,
32
37
  _crossfade1: AudioStream,
33
38
  *,
34
- nb_samples: Int = Default(44100),
35
- duration: Duration = Default(0.0),
36
- overlap: Boolean = Default(True),
39
+ nb_samples: Int = Default("44100"),
40
+ duration: Duration = Default("0"),
41
+ overlap: Boolean = Default("true"),
37
42
  curve1: Int
38
43
  | Literal[
39
44
  "nofade",
@@ -102,6 +107,7 @@ def acrossfade(
102
107
  overlap: overlap 1st stream end with 2nd stream start (default true)
103
108
  curve1: set fade curve type for 1st stream (from -1 to 22) (default tri)
104
109
  curve2: set fade curve type for 2nd stream (from -1 to 22) (default tri)
110
+ extra_options: Extra options for the filter
105
111
 
106
112
  Returns:
107
113
  default: the audio stream
@@ -147,6 +153,7 @@ def ainterleave(
147
153
  Args:
148
154
  nb_inputs: set number of inputs (from 1 to INT_MAX) (default 2)
149
155
  duration: how to determine the end-of-stream (from 0 to 2) (default longest)
156
+ extra_options: Extra options for the filter
150
157
 
151
158
  Returns:
152
159
  default: the audio stream
@@ -176,12 +183,8 @@ def ainterleave(
176
183
  def alphamerge(
177
184
  _main: VideoStream,
178
185
  _alpha: VideoStream,
179
- *,
180
- eof_action: Int | Literal["repeat", "endall", "pass"] | Default = Default("repeat"),
181
- shortest: Boolean = Default(False),
182
- repeatlast: Boolean = Default(True),
183
- ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
184
- enable: String = Default(None),
186
+ framesync_options: FFMpegFrameSyncOption | None = None,
187
+ timeline_options: FFMpegTimelineOption | None = None,
185
188
  extra_options: dict[str, Any] | None = None,
186
189
  ) -> VideoStream:
187
190
  """
@@ -189,11 +192,9 @@ def alphamerge(
189
192
  Copy the luma value of the second input into the alpha channel of the first input.
190
193
 
191
194
  Args:
192
- eof_action: Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
193
- shortest: force termination when the shortest input terminates (default false)
194
- repeatlast: extend last frame of secondary streams beyond EOF (default true)
195
- ts_sync_mode: How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
196
- enable: timeline editing
195
+ framesync_options: Framesync options
196
+ timeline_options: Timeline options
197
+ extra_options: Extra options for the filter
197
198
 
198
199
  Returns:
199
200
  default: the video stream
@@ -211,14 +212,10 @@ def alphamerge(
211
212
  _main,
212
213
  _alpha,
213
214
  **merge(
214
- {
215
- "eof_action": eof_action,
216
- "shortest": shortest,
217
- "repeatlast": repeatlast,
218
- "ts_sync_mode": ts_sync_mode,
219
- "enable": enable,
220
- },
215
+ {},
221
216
  extra_options,
217
+ framesync_options,
218
+ timeline_options,
222
219
  ),
223
220
  )
224
221
  return filter_node.video(0)
@@ -235,6 +232,7 @@ def amerge(
235
232
 
236
233
  Args:
237
234
  inputs: specify the number of inputs (from 1 to 64) (default 2)
235
+ extra_options: Extra options for the filter
238
236
 
239
237
  Returns:
240
238
  default: the audio stream
@@ -266,9 +264,9 @@ def amix(
266
264
  duration: Int | Literal["longest", "shortest", "first"] | Default = Default(
267
265
  "longest"
268
266
  ),
269
- dropout_transition: Float = Default(2.0),
267
+ dropout_transition: Float = Default("2"),
270
268
  weights: String = Default("1 1"),
271
- normalize: Boolean = Default(True),
269
+ normalize: Boolean = Default("true"),
272
270
  extra_options: dict[str, Any] | None = None,
273
271
  ) -> AudioStream:
274
272
  """
@@ -281,6 +279,7 @@ def amix(
281
279
  dropout_transition: Transition time, in seconds, for volume renormalization when an input stream ends. (from 0 to INT_MAX) (default 2)
282
280
  weights: Set weight for each input. (default "1 1")
283
281
  normalize: Scale inputs (default true)
282
+ extra_options: Extra options for the filter
284
283
 
285
284
  Returns:
286
285
  default: the audio stream
@@ -319,6 +318,9 @@ def amultiply(
319
318
 
320
319
  Multiply two audio streams.
321
320
 
321
+ Args:
322
+ extra_options: Extra options for the filter
323
+
322
324
  Returns:
323
325
  default: the audio stream
324
326
 
@@ -334,7 +336,10 @@ def amultiply(
334
336
  ),
335
337
  _multiply0,
336
338
  _multiply1,
337
- **merge({}, extra_options),
339
+ **merge(
340
+ {},
341
+ extra_options,
342
+ ),
338
343
  )
339
344
  return filter_node.audio(0)
340
345
 
@@ -343,12 +348,12 @@ def anlmf(
343
348
  _input: AudioStream,
344
349
  _desired: AudioStream,
345
350
  *,
346
- order: Int = Default(256),
347
- mu: Float = Default(0.75),
348
- eps: Float = Default(1.0),
349
- leakage: Float = Default(0.0),
351
+ order: Int = Default("256"),
352
+ mu: Float = Default("0.75"),
353
+ eps: Float = Default("1"),
354
+ leakage: Float = Default("0"),
350
355
  out_mode: Int | Literal["i", "d", "o", "n", "e"] | Default = Default("o"),
351
- enable: String = Default(None),
356
+ timeline_options: FFMpegTimelineOption | None = None,
352
357
  extra_options: dict[str, Any] | None = None,
353
358
  ) -> AudioStream:
354
359
  """
@@ -361,7 +366,8 @@ def anlmf(
361
366
  eps: set the filter eps (from 0 to 1) (default 1)
362
367
  leakage: set the filter leakage (from 0 to 1) (default 0)
363
368
  out_mode: set output mode (from 0 to 4) (default o)
364
- enable: timeline editing
369
+ timeline_options: Timeline options
370
+ extra_options: Extra options for the filter
365
371
 
366
372
  Returns:
367
373
  default: the audio stream
@@ -383,9 +389,9 @@ def anlmf(
383
389
  "eps": eps,
384
390
  "leakage": leakage,
385
391
  "out_mode": out_mode,
386
- "enable": enable,
387
392
  },
388
393
  extra_options,
394
+ timeline_options,
389
395
  ),
390
396
  )
391
397
  return filter_node.audio(0)
@@ -395,12 +401,12 @@ def anlms(
395
401
  _input: AudioStream,
396
402
  _desired: AudioStream,
397
403
  *,
398
- order: Int = Default(256),
399
- mu: Float = Default(0.75),
400
- eps: Float = Default(1.0),
401
- leakage: Float = Default(0.0),
404
+ order: Int = Default("256"),
405
+ mu: Float = Default("0.75"),
406
+ eps: Float = Default("1"),
407
+ leakage: Float = Default("0"),
402
408
  out_mode: Int | Literal["i", "d", "o", "n", "e"] | Default = Default("o"),
403
- enable: String = Default(None),
409
+ timeline_options: FFMpegTimelineOption | None = None,
404
410
  extra_options: dict[str, Any] | None = None,
405
411
  ) -> AudioStream:
406
412
  """
@@ -413,7 +419,8 @@ def anlms(
413
419
  eps: set the filter eps (from 0 to 1) (default 1)
414
420
  leakage: set the filter leakage (from 0 to 1) (default 0)
415
421
  out_mode: set output mode (from 0 to 4) (default o)
416
- enable: timeline editing
422
+ timeline_options: Timeline options
423
+ extra_options: Extra options for the filter
417
424
 
418
425
  Returns:
419
426
  default: the audio stream
@@ -435,9 +442,9 @@ def anlms(
435
442
  "eps": eps,
436
443
  "leakage": leakage,
437
444
  "out_mode": out_mode,
438
- "enable": enable,
439
445
  },
440
446
  extra_options,
447
+ timeline_options,
441
448
  ),
442
449
  )
443
450
  return filter_node.audio(0)
@@ -446,8 +453,7 @@ def anlms(
446
453
  def apsnr(
447
454
  _input0: AudioStream,
448
455
  _input1: AudioStream,
449
- *,
450
- enable: String = Default(None),
456
+ timeline_options: FFMpegTimelineOption | None = None,
451
457
  extra_options: dict[str, Any] | None = None,
452
458
  ) -> AudioStream:
453
459
  """
@@ -455,7 +461,8 @@ def apsnr(
455
461
  Measure Audio Peak Signal-to-Noise Ratio.
456
462
 
457
463
  Args:
458
- enable: timeline editing
464
+ timeline_options: Timeline options
465
+ extra_options: Extra options for the filter
459
466
 
460
467
  Returns:
461
468
  default: the audio stream
@@ -471,10 +478,9 @@ def apsnr(
471
478
  _input0,
472
479
  _input1,
473
480
  **merge(
474
- {
475
- "enable": enable,
476
- },
481
+ {},
477
482
  extra_options,
483
+ timeline_options,
478
484
  ),
479
485
  )
480
486
  return filter_node.audio(0)
@@ -484,11 +490,11 @@ def arls(
484
490
  _input: AudioStream,
485
491
  _desired: AudioStream,
486
492
  *,
487
- order: Int = Default(16),
488
- _lambda: Float = Default(1.0),
489
- delta: Float = Default(2.0),
493
+ order: Int = Default("16"),
494
+ _lambda: Float = Default("1"),
495
+ delta: Float = Default("2"),
490
496
  out_mode: Int | Literal["i", "d", "o", "n", "e"] | Default = Default("o"),
491
- enable: String = Default(None),
497
+ timeline_options: FFMpegTimelineOption | None = None,
492
498
  extra_options: dict[str, Any] | None = None,
493
499
  ) -> AudioStream:
494
500
  """
@@ -500,7 +506,8 @@ def arls(
500
506
  _lambda: set the filter lambda (from 0 to 1) (default 1)
501
507
  delta: set the filter delta (from 0 to 32767) (default 2)
502
508
  out_mode: set output mode (from 0 to 4) (default o)
503
- enable: timeline editing
509
+ timeline_options: Timeline options
510
+ extra_options: Extra options for the filter
504
511
 
505
512
  Returns:
506
513
  default: the audio stream
@@ -521,9 +528,9 @@ def arls(
521
528
  "lambda": _lambda,
522
529
  "delta": delta,
523
530
  "out_mode": out_mode,
524
- "enable": enable,
525
531
  },
526
532
  extra_options,
533
+ timeline_options,
527
534
  ),
528
535
  )
529
536
  return filter_node.audio(0)
@@ -532,8 +539,7 @@ def arls(
532
539
  def asdr(
533
540
  _input0: AudioStream,
534
541
  _input1: AudioStream,
535
- *,
536
- enable: String = Default(None),
542
+ timeline_options: FFMpegTimelineOption | None = None,
537
543
  extra_options: dict[str, Any] | None = None,
538
544
  ) -> AudioStream:
539
545
  """
@@ -541,7 +547,8 @@ def asdr(
541
547
  Measure Audio Signal-to-Distortion Ratio.
542
548
 
543
549
  Args:
544
- enable: timeline editing
550
+ timeline_options: Timeline options
551
+ extra_options: Extra options for the filter
545
552
 
546
553
  Returns:
547
554
  default: the audio stream
@@ -557,10 +564,9 @@ def asdr(
557
564
  _input0,
558
565
  _input1,
559
566
  **merge(
560
- {
561
- "enable": enable,
562
- },
567
+ {},
563
568
  extra_options,
569
+ timeline_options,
564
570
  ),
565
571
  )
566
572
  return filter_node.audio(0)
@@ -569,8 +575,7 @@ def asdr(
569
575
  def asisdr(
570
576
  _input0: AudioStream,
571
577
  _input1: AudioStream,
572
- *,
573
- enable: String = Default(None),
578
+ timeline_options: FFMpegTimelineOption | None = None,
574
579
  extra_options: dict[str, Any] | None = None,
575
580
  ) -> AudioStream:
576
581
  """
@@ -578,7 +583,8 @@ def asisdr(
578
583
  Measure Audio Scale-Invariant Signal-to-Distortion Ratio.
579
584
 
580
585
  Args:
581
- enable: timeline editing
586
+ timeline_options: Timeline options
587
+ extra_options: Extra options for the filter
582
588
 
583
589
  Returns:
584
590
  default: the audio stream
@@ -594,10 +600,9 @@ def asisdr(
594
600
  _input0,
595
601
  _input1,
596
602
  **merge(
597
- {
598
- "enable": enable,
599
- },
603
+ {},
600
604
  extra_options,
605
+ timeline_options,
601
606
  ),
602
607
  )
603
608
  return filter_node.audio(0)
@@ -611,11 +616,12 @@ def astreamselect(
611
616
  ) -> FilterNode:
612
617
  """
613
618
 
614
- Select audio streams
619
+ Select audio streams.
615
620
 
616
621
  Args:
617
622
  inputs: number of input streams (from 2 to INT_MAX) (default 2)
618
623
  map: input indexes to remap to outputs
624
+ extra_options: Extra options for the filter
619
625
 
620
626
  Returns:
621
627
  filter_node: the filter node
@@ -648,7 +654,7 @@ def axcorrelate(
648
654
  _axcorrelate0: AudioStream,
649
655
  _axcorrelate1: AudioStream,
650
656
  *,
651
- size: Int = Default(256),
657
+ size: Int = Default("256"),
652
658
  algo: Int | Literal["slow", "fast", "best"] | Default = Default("best"),
653
659
  extra_options: dict[str, Any] | None = None,
654
660
  ) -> AudioStream:
@@ -659,6 +665,7 @@ def axcorrelate(
659
665
  Args:
660
666
  size: set the segment size (from 2 to 131072) (default 256)
661
667
  algo: set the algorithm (from 0 to 2) (default best)
668
+ extra_options: Extra options for the filter
662
669
 
663
670
  Returns:
664
671
  default: the audio stream
@@ -919,22 +926,19 @@ def blend(
919
926
  "interpolate",
920
927
  "hardoverlay",
921
928
  ]
922
- | Default = Default(-1),
929
+ | Default = Default("-1"),
923
930
  c0_expr: String = Default(None),
924
931
  c1_expr: String = Default(None),
925
932
  c2_expr: String = Default(None),
926
933
  c3_expr: String = Default(None),
927
934
  all_expr: String = Default(None),
928
- c0_opacity: Double = Default(1.0),
929
- c1_opacity: Double = Default(1.0),
930
- c2_opacity: Double = Default(1.0),
931
- c3_opacity: Double = Default(1.0),
932
- all_opacity: Double = Default(1.0),
933
- eof_action: Int | Literal["repeat", "endall", "pass"] | Default = Default("repeat"),
934
- shortest: Boolean = Default(False),
935
- repeatlast: Boolean = Default(True),
936
- ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
937
- enable: String = Default(None),
935
+ c0_opacity: Double = Default("1"),
936
+ c1_opacity: Double = Default("1"),
937
+ c2_opacity: Double = Default("1"),
938
+ c3_opacity: Double = Default("1"),
939
+ all_opacity: Double = Default("1"),
940
+ framesync_options: FFMpegFrameSyncOption | None = None,
941
+ timeline_options: FFMpegTimelineOption | None = None,
938
942
  extra_options: dict[str, Any] | None = None,
939
943
  ) -> VideoStream:
940
944
  """
@@ -957,11 +961,9 @@ def blend(
957
961
  c2_opacity: set color component #2 opacity (from 0 to 1) (default 1)
958
962
  c3_opacity: set color component #3 opacity (from 0 to 1) (default 1)
959
963
  all_opacity: set opacity for all color components (from 0 to 1) (default 1)
960
- eof_action: Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
961
- shortest: force termination when the shortest input terminates (default false)
962
- repeatlast: extend last frame of secondary streams beyond EOF (default true)
963
- ts_sync_mode: How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
964
- enable: timeline editing
964
+ framesync_options: Framesync options
965
+ timeline_options: Timeline options
966
+ extra_options: Extra options for the filter
965
967
 
966
968
  Returns:
967
969
  default: the video stream
@@ -993,13 +995,10 @@ def blend(
993
995
  "c2_opacity": c2_opacity,
994
996
  "c3_opacity": c3_opacity,
995
997
  "all_opacity": all_opacity,
996
- "eof_action": eof_action,
997
- "shortest": shortest,
998
- "repeatlast": repeatlast,
999
- "ts_sync_mode": ts_sync_mode,
1000
- "enable": enable,
1001
998
  },
1002
999
  extra_options,
1000
+ framesync_options,
1001
+ timeline_options,
1003
1002
  ),
1004
1003
  )
1005
1004
  return filter_node.video(0)
@@ -1013,17 +1012,17 @@ def blend_vulkan(
1013
1012
  c1_mode: Int | Literal["normal", "multiply"] | Default = Default("normal"),
1014
1013
  c2_mode: Int | Literal["normal", "multiply"] | Default = Default("normal"),
1015
1014
  c3_mode: Int | Literal["normal", "multiply"] | Default = Default("normal"),
1016
- all_mode: Int | Literal["normal", "multiply"] | Default = Default(-1),
1017
- c0_opacity: Double = Default(1.0),
1018
- c1_opacity: Double = Default(1.0),
1019
- c2_opacity: Double = Default(1.0),
1020
- c3_opacity: Double = Default(1.0),
1021
- all_opacity: Double = Default(1.0),
1015
+ all_mode: Int | Literal["normal", "multiply"] | Default = Default("-1"),
1016
+ c0_opacity: Double = Default("1"),
1017
+ c1_opacity: Double = Default("1"),
1018
+ c2_opacity: Double = Default("1"),
1019
+ c3_opacity: Double = Default("1"),
1020
+ all_opacity: Double = Default("1"),
1022
1021
  extra_options: dict[str, Any] | None = None,
1023
1022
  ) -> VideoStream:
1024
1023
  """
1025
1024
 
1026
- Blend two video frames in Vulkan
1025
+ Blend two video frames in Vulkan.
1027
1026
 
1028
1027
  Args:
1029
1028
  c0_mode: set component #0 blend mode (from 0 to 39) (default normal)
@@ -1036,6 +1035,7 @@ def blend_vulkan(
1036
1035
  c2_opacity: set color component #2 opacity (from 0 to 1) (default 1)
1037
1036
  c3_opacity: set color component #3 opacity (from 0 to 1) (default 1)
1038
1037
  all_opacity: set opacity for all color components (from 0 to 1) (default 1)
1038
+ extra_options: Extra options for the filter
1039
1039
 
1040
1040
  Returns:
1041
1041
  default: the video stream
@@ -1073,18 +1073,18 @@ def blend_vulkan(
1073
1073
 
1074
1074
  def bm3d(
1075
1075
  *streams: VideoStream,
1076
- sigma: Float = Default(1.0),
1077
- block: Int = Default(16),
1078
- bstep: Int = Default(4),
1079
- group: Int = Default(1),
1080
- range: Int = Default(9),
1081
- mstep: Int = Default(1),
1082
- thmse: Float = Default(0.0),
1083
- hdthr: Float = Default(2.7),
1076
+ sigma: Float = Default("1"),
1077
+ block: Int = Default("16"),
1078
+ bstep: Int = Default("4"),
1079
+ group: Int = Default("1"),
1080
+ range: Int = Default("9"),
1081
+ mstep: Int = Default("1"),
1082
+ thmse: Float = Default("0"),
1083
+ hdthr: Float = Default("2.7"),
1084
1084
  estim: Int | Literal["basic", "final"] | Default = Default("basic"),
1085
- ref: Boolean = Default(False),
1086
- planes: Int = Default(7),
1087
- enable: String = Default(None),
1085
+ ref: Boolean = Default("false"),
1086
+ planes: Int = Default("7"),
1087
+ timeline_options: FFMpegTimelineOption | None = None,
1088
1088
  extra_options: dict[str, Any] | None = None,
1089
1089
  ) -> VideoStream:
1090
1090
  """
@@ -1103,7 +1103,8 @@ def bm3d(
1103
1103
  estim: set filtering estimation mode (from 0 to 1) (default basic)
1104
1104
  ref: have reference stream (default false)
1105
1105
  planes: set planes to filter (from 0 to 15) (default 7)
1106
- enable: timeline editing
1106
+ timeline_options: Timeline options
1107
+ extra_options: Extra options for the filter
1107
1108
 
1108
1109
  Returns:
1109
1110
  default: the video stream
@@ -1132,9 +1133,9 @@ def bm3d(
1132
1133
  "estim": estim,
1133
1134
  "ref": ref,
1134
1135
  "planes": planes,
1135
- "enable": enable,
1136
1136
  },
1137
1137
  extra_options,
1138
+ timeline_options,
1138
1139
  ),
1139
1140
  )
1140
1141
  return filter_node.video(0)
@@ -1146,10 +1147,10 @@ def colormap(
1146
1147
  _target: VideoStream,
1147
1148
  *,
1148
1149
  patch_size: Image_size = Default("64x64"),
1149
- nb_patches: Int = Default(0),
1150
+ nb_patches: Int = Default("0"),
1150
1151
  type: Int | Literal["relative", "absolute"] | Default = Default("absolute"),
1151
1152
  kernel: Int | Literal["euclidean", "weuclidean"] | Default = Default("euclidean"),
1152
- enable: String = Default(None),
1153
+ timeline_options: FFMpegTimelineOption | None = None,
1153
1154
  extra_options: dict[str, Any] | None = None,
1154
1155
  ) -> VideoStream:
1155
1156
  """
@@ -1161,7 +1162,8 @@ def colormap(
1161
1162
  nb_patches: set number of patches (from 0 to 64) (default 0)
1162
1163
  type: set the target type used (from 0 to 1) (default absolute)
1163
1164
  kernel: set the kernel used for measuring color difference (from 0 to 1) (default euclidean)
1164
- enable: timeline editing
1165
+ timeline_options: Timeline options
1166
+ extra_options: Extra options for the filter
1165
1167
 
1166
1168
  Returns:
1167
1169
  default: the video stream
@@ -1185,9 +1187,9 @@ def colormap(
1185
1187
  "nb_patches": nb_patches,
1186
1188
  "type": type,
1187
1189
  "kernel": kernel,
1188
- "enable": enable,
1189
1190
  },
1190
1191
  extra_options,
1192
+ timeline_options,
1191
1193
  ),
1192
1194
  )
1193
1195
  return filter_node.video(0)
@@ -1196,9 +1198,9 @@ def colormap(
1196
1198
  def concat(
1197
1199
  *streams: FilterableStream,
1198
1200
  n: Int = Auto("len(streams) // (int(v) + int(a))"),
1199
- v: Int = Default(1),
1200
- a: Int = Default(0),
1201
- unsafe: Boolean = Default(False),
1201
+ v: Int = Default("1"),
1202
+ a: Int = Default("0"),
1203
+ unsafe: Boolean = Default("false"),
1202
1204
  extra_options: dict[str, Any] | None = None,
1203
1205
  ) -> FilterNode:
1204
1206
  """
@@ -1210,6 +1212,7 @@ def concat(
1210
1212
  v: specify the number of video streams (from 0 to INT_MAX) (default 1)
1211
1213
  a: specify the number of audio streams (from 0 to INT_MAX) (default 0)
1212
1214
  unsafe: enable unsafe mode (default false)
1215
+ extra_options: Extra options for the filter
1213
1216
 
1214
1217
  Returns:
1215
1218
  filter_node: the filter node
@@ -1244,14 +1247,11 @@ def convolve(
1244
1247
  _main: VideoStream,
1245
1248
  _impulse: VideoStream,
1246
1249
  *,
1247
- planes: Int = Default(7),
1250
+ planes: Int = Default("7"),
1248
1251
  impulse: Int | Literal["first", "all"] | Default = Default("all"),
1249
- noise: Float = Default(1e-07),
1250
- eof_action: Int | Literal["repeat", "endall", "pass"] | Default = Default("repeat"),
1251
- shortest: Boolean = Default(False),
1252
- repeatlast: Boolean = Default(True),
1253
- ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
1254
- enable: String = Default(None),
1252
+ noise: Float = Default("1e-07"),
1253
+ framesync_options: FFMpegFrameSyncOption | None = None,
1254
+ timeline_options: FFMpegTimelineOption | None = None,
1255
1255
  extra_options: dict[str, Any] | None = None,
1256
1256
  ) -> VideoStream:
1257
1257
  """
@@ -1262,11 +1262,9 @@ def convolve(
1262
1262
  planes: set planes to convolve (from 0 to 15) (default 7)
1263
1263
  impulse: when to process impulses (from 0 to 1) (default all)
1264
1264
  noise: set noise (from 0 to 1) (default 1e-07)
1265
- eof_action: Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
1266
- shortest: force termination when the shortest input terminates (default false)
1267
- repeatlast: extend last frame of secondary streams beyond EOF (default true)
1268
- ts_sync_mode: How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
1269
- enable: timeline editing
1265
+ framesync_options: Framesync options
1266
+ timeline_options: Timeline options
1267
+ extra_options: Extra options for the filter
1270
1268
 
1271
1269
  Returns:
1272
1270
  default: the video stream
@@ -1286,13 +1284,10 @@ def convolve(
1286
1284
  "planes": planes,
1287
1285
  "impulse": impulse,
1288
1286
  "noise": noise,
1289
- "eof_action": eof_action,
1290
- "shortest": shortest,
1291
- "repeatlast": repeatlast,
1292
- "ts_sync_mode": ts_sync_mode,
1293
- "enable": enable,
1294
1287
  },
1295
1288
  extra_options,
1289
+ framesync_options,
1290
+ timeline_options,
1296
1291
  ),
1297
1292
  )
1298
1293
  return filter_node.video(0)
@@ -1301,12 +1296,8 @@ def convolve(
1301
1296
  def corr(
1302
1297
  _main: VideoStream,
1303
1298
  _reference: VideoStream,
1304
- *,
1305
- eof_action: Int | Literal["repeat", "endall", "pass"] | Default = Default("repeat"),
1306
- shortest: Boolean = Default(False),
1307
- repeatlast: Boolean = Default(True),
1308
- ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
1309
- enable: String = Default(None),
1299
+ framesync_options: FFMpegFrameSyncOption | None = None,
1300
+ timeline_options: FFMpegTimelineOption | None = None,
1310
1301
  extra_options: dict[str, Any] | None = None,
1311
1302
  ) -> VideoStream:
1312
1303
  """
@@ -1314,11 +1305,9 @@ def corr(
1314
1305
  Calculate the correlation between two video streams.
1315
1306
 
1316
1307
  Args:
1317
- eof_action: Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
1318
- shortest: force termination when the shortest input terminates (default false)
1319
- repeatlast: extend last frame of secondary streams beyond EOF (default true)
1320
- ts_sync_mode: How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
1321
- enable: timeline editing
1308
+ framesync_options: Framesync options
1309
+ timeline_options: Timeline options
1310
+ extra_options: Extra options for the filter
1322
1311
 
1323
1312
  Returns:
1324
1313
  default: the video stream
@@ -1334,14 +1323,10 @@ def corr(
1334
1323
  _main,
1335
1324
  _reference,
1336
1325
  **merge(
1337
- {
1338
- "eof_action": eof_action,
1339
- "shortest": shortest,
1340
- "repeatlast": repeatlast,
1341
- "ts_sync_mode": ts_sync_mode,
1342
- "enable": enable,
1343
- },
1326
+ {},
1344
1327
  extra_options,
1328
+ framesync_options,
1329
+ timeline_options,
1345
1330
  ),
1346
1331
  )
1347
1332
  return filter_node.video(0)
@@ -1349,14 +1334,14 @@ def corr(
1349
1334
 
1350
1335
  def decimate(
1351
1336
  *streams: VideoStream,
1352
- cycle: Int = Default(5),
1353
- dupthresh: Double = Default(1.1),
1354
- scthresh: Double = Default(15.0),
1355
- blockx: Int = Default(32),
1356
- blocky: Int = Default(32),
1357
- ppsrc: Boolean = Default(False),
1358
- chroma: Boolean = Default(True),
1359
- mixed: Boolean = Default(False),
1337
+ cycle: Int = Default("5"),
1338
+ dupthresh: Double = Default("1.1"),
1339
+ scthresh: Double = Default("15"),
1340
+ blockx: Int = Default("32"),
1341
+ blocky: Int = Default("32"),
1342
+ ppsrc: Boolean = Default("false"),
1343
+ chroma: Boolean = Default("true"),
1344
+ mixed: Boolean = Default("false"),
1360
1345
  extra_options: dict[str, Any] | None = None,
1361
1346
  ) -> VideoStream:
1362
1347
  """
@@ -1372,6 +1357,7 @@ def decimate(
1372
1357
  ppsrc: mark main input as a pre-processed input and activate clean source input stream (default false)
1373
1358
  chroma: set whether or not chroma is considered in the metric calculations (default true)
1374
1359
  mixed: set whether or not the input only partially contains content to be decimated (default false)
1360
+ extra_options: Extra options for the filter
1375
1361
 
1376
1362
  Returns:
1377
1363
  default: the video stream
@@ -1408,14 +1394,11 @@ def deconvolve(
1408
1394
  _main: VideoStream,
1409
1395
  _impulse: VideoStream,
1410
1396
  *,
1411
- planes: Int = Default(7),
1397
+ planes: Int = Default("7"),
1412
1398
  impulse: Int | Literal["first", "all"] | Default = Default("all"),
1413
- noise: Float = Default(1e-07),
1414
- eof_action: Int | Literal["repeat", "endall", "pass"] | Default = Default("repeat"),
1415
- shortest: Boolean = Default(False),
1416
- repeatlast: Boolean = Default(True),
1417
- ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
1418
- enable: String = Default(None),
1399
+ noise: Float = Default("1e-07"),
1400
+ framesync_options: FFMpegFrameSyncOption | None = None,
1401
+ timeline_options: FFMpegTimelineOption | None = None,
1419
1402
  extra_options: dict[str, Any] | None = None,
1420
1403
  ) -> VideoStream:
1421
1404
  """
@@ -1426,11 +1409,9 @@ def deconvolve(
1426
1409
  planes: set planes to deconvolve (from 0 to 15) (default 7)
1427
1410
  impulse: when to process impulses (from 0 to 1) (default all)
1428
1411
  noise: set noise (from 0 to 1) (default 1e-07)
1429
- eof_action: Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
1430
- shortest: force termination when the shortest input terminates (default false)
1431
- repeatlast: extend last frame of secondary streams beyond EOF (default true)
1432
- ts_sync_mode: How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
1433
- enable: timeline editing
1412
+ framesync_options: Framesync options
1413
+ timeline_options: Timeline options
1414
+ extra_options: Extra options for the filter
1434
1415
 
1435
1416
  Returns:
1436
1417
  default: the video stream
@@ -1452,13 +1433,10 @@ def deconvolve(
1452
1433
  "planes": planes,
1453
1434
  "impulse": impulse,
1454
1435
  "noise": noise,
1455
- "eof_action": eof_action,
1456
- "shortest": shortest,
1457
- "repeatlast": repeatlast,
1458
- "ts_sync_mode": ts_sync_mode,
1459
- "enable": enable,
1460
1436
  },
1461
1437
  extra_options,
1438
+ framesync_options,
1439
+ timeline_options,
1462
1440
  ),
1463
1441
  )
1464
1442
  return filter_node.video(0)
@@ -1472,7 +1450,7 @@ def displace(
1472
1450
  edge: Int | Literal["blank", "smear", "wrap", "mirror"] | Default = Default(
1473
1451
  "smear"
1474
1452
  ),
1475
- enable: String = Default(None),
1453
+ timeline_options: FFMpegTimelineOption | None = None,
1476
1454
  extra_options: dict[str, Any] | None = None,
1477
1455
  ) -> VideoStream:
1478
1456
  """
@@ -1481,7 +1459,8 @@ def displace(
1481
1459
 
1482
1460
  Args:
1483
1461
  edge: set edge mode (from 0 to 3) (default smear)
1484
- enable: timeline editing
1462
+ timeline_options: Timeline options
1463
+ extra_options: Extra options for the filter
1485
1464
 
1486
1465
  Returns:
1487
1466
  default: the video stream
@@ -1502,9 +1481,9 @@ def displace(
1502
1481
  **merge(
1503
1482
  {
1504
1483
  "edge": edge,
1505
- "enable": enable,
1506
1484
  },
1507
1485
  extra_options,
1486
+ timeline_options,
1508
1487
  ),
1509
1488
  )
1510
1489
  return filter_node.video(0)
@@ -1514,8 +1493,8 @@ def feedback(
1514
1493
  _default: VideoStream,
1515
1494
  _feedin: VideoStream,
1516
1495
  *,
1517
- x: Int = Default(0),
1518
- w: Int = Default(0),
1496
+ x: Int = Default("0"),
1497
+ w: Int = Default("0"),
1519
1498
  extra_options: dict[str, Any] | None = None,
1520
1499
  ) -> tuple[
1521
1500
  VideoStream,
@@ -1528,6 +1507,7 @@ def feedback(
1528
1507
  Args:
1529
1508
  x: set top left crop position (from 0 to INT_MAX) (default 0)
1530
1509
  w: set crop size (from 0 to INT_MAX) (default 0)
1510
+ extra_options: Extra options for the filter
1531
1511
 
1532
1512
  Returns:
1533
1513
  default: the video stream
@@ -1565,18 +1545,18 @@ def fieldmatch(
1565
1545
  mode: Int
1566
1546
  | Literal["pc", "pc_n", "pc_u", "pc_n_ub", "pcn", "pcn_ub"]
1567
1547
  | Default = Default("pc_n"),
1568
- ppsrc: Boolean = Default(False),
1548
+ ppsrc: Boolean = Default("false"),
1569
1549
  field: Int | Literal["auto", "bottom", "top"] | Default = Default("auto"),
1570
- mchroma: Boolean = Default(True),
1571
- y0: Int = Default(0),
1572
- scthresh: Double = Default(12.0),
1550
+ mchroma: Boolean = Default("true"),
1551
+ y0: Int = Default("0"),
1552
+ scthresh: Double = Default("12"),
1573
1553
  combmatch: Int | Literal["none", "sc", "full"] | Default = Default("sc"),
1574
1554
  combdbg: Int | Literal["none", "pcn", "pcnub"] | Default = Default("none"),
1575
- cthresh: Int = Default(9),
1576
- chroma: Boolean = Default(False),
1577
- blockx: Int = Default(16),
1578
- blocky: Int = Default(16),
1579
- combpel: Int = Default(80),
1555
+ cthresh: Int = Default("9"),
1556
+ chroma: Boolean = Default("false"),
1557
+ blockx: Int = Default("16"),
1558
+ blocky: Int = Default("16"),
1559
+ combpel: Int = Default("80"),
1580
1560
  extra_options: dict[str, Any] | None = None,
1581
1561
  ) -> VideoStream:
1582
1562
  """
@@ -1598,6 +1578,7 @@ def fieldmatch(
1598
1578
  blockx: set the x-axis size of the window used during combed frame detection (from 4 to 512) (default 16)
1599
1579
  blocky: set the y-axis size of the window used during combed frame detection (from 4 to 512) (default 16)
1600
1580
  combpel: set the number of combed pixels inside any of the blocky by blockx size blocks on the frame for the frame to be detected as combed (from 0 to INT_MAX) (default 80)
1581
+ extra_options: Extra options for the filter
1601
1582
 
1602
1583
  Returns:
1603
1584
  default: the video stream
@@ -1651,6 +1632,7 @@ def framepack(
1651
1632
 
1652
1633
  Args:
1653
1634
  format: Frame pack output format (from 0 to INT_MAX) (default sbs)
1635
+ extra_options: Extra options for the filter
1654
1636
 
1655
1637
  Returns:
1656
1638
  packed: the video stream
@@ -1681,9 +1663,9 @@ def freezeframes(
1681
1663
  _source: VideoStream,
1682
1664
  _replace: VideoStream,
1683
1665
  *,
1684
- first: Int64 = Default(0),
1685
- last: Int64 = Default(0),
1686
- replace: Int64 = Default(0),
1666
+ first: Int64 = Default("0"),
1667
+ last: Int64 = Default("0"),
1668
+ replace: Int64 = Default("0"),
1687
1669
  extra_options: dict[str, Any] | None = None,
1688
1670
  ) -> VideoStream:
1689
1671
  """
@@ -1694,6 +1676,7 @@ def freezeframes(
1694
1676
  first: set first frame to freeze (from 0 to I64_MAX) (default 0)
1695
1677
  last: set last frame to freeze (from 0 to I64_MAX) (default 0)
1696
1678
  replace: set frame to replace (from 0 to I64_MAX) (default 0)
1679
+ extra_options: Extra options for the filter
1697
1680
 
1698
1681
  Returns:
1699
1682
  default: the video stream
@@ -1724,13 +1707,13 @@ def freezeframes(
1724
1707
 
1725
1708
  def guided(
1726
1709
  *streams: VideoStream,
1727
- radius: Int = Default(3),
1728
- eps: Float = Default(0.01),
1710
+ radius: Int = Default("3"),
1711
+ eps: Float = Default("0.01"),
1729
1712
  mode: Int | Literal["basic", "fast"] | Default = Default("basic"),
1730
- sub: Int = Default(4),
1713
+ sub: Int = Default("4"),
1731
1714
  guidance: Int | Literal["off", "on"] | Default = Default("off"),
1732
- planes: Int = Default(1),
1733
- enable: String = Default(None),
1715
+ planes: Int = Default("1"),
1716
+ timeline_options: FFMpegTimelineOption | None = None,
1734
1717
  extra_options: dict[str, Any] | None = None,
1735
1718
  ) -> VideoStream:
1736
1719
  """
@@ -1744,7 +1727,8 @@ def guided(
1744
1727
  sub: subsampling ratio for fast mode (from 2 to 64) (default 4)
1745
1728
  guidance: set guidance mode (0: off mode; 1: on mode) (from 0 to 1) (default off)
1746
1729
  planes: set planes to filter (from 0 to 15) (default 1)
1747
- enable: timeline editing
1730
+ timeline_options: Timeline options
1731
+ extra_options: Extra options for the filter
1748
1732
 
1749
1733
  Returns:
1750
1734
  default: the video stream
@@ -1768,9 +1752,9 @@ def guided(
1768
1752
  "sub": sub,
1769
1753
  "guidance": guidance,
1770
1754
  "planes": planes,
1771
- "enable": enable,
1772
1755
  },
1773
1756
  extra_options,
1757
+ timeline_options,
1774
1758
  ),
1775
1759
  )
1776
1760
  return filter_node.video(0)
@@ -1784,11 +1768,8 @@ def haldclut(
1784
1768
  interp: Int
1785
1769
  | Literal["nearest", "trilinear", "tetrahedral", "pyramid", "prism"]
1786
1770
  | Default = Default("tetrahedral"),
1787
- eof_action: Int | Literal["repeat", "endall", "pass"] | Default = Default("repeat"),
1788
- shortest: Boolean = Default(False),
1789
- repeatlast: Boolean = Default(True),
1790
- ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
1791
- enable: String = Default(None),
1771
+ framesync_options: FFMpegFrameSyncOption | None = None,
1772
+ timeline_options: FFMpegTimelineOption | None = None,
1792
1773
  extra_options: dict[str, Any] | None = None,
1793
1774
  ) -> VideoStream:
1794
1775
  """
@@ -1798,11 +1779,9 @@ def haldclut(
1798
1779
  Args:
1799
1780
  clut: when to process CLUT (from 0 to 1) (default all)
1800
1781
  interp: select interpolation mode (from 0 to 4) (default tetrahedral)
1801
- eof_action: Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
1802
- shortest: force termination when the shortest input terminates (default false)
1803
- repeatlast: extend last frame of secondary streams beyond EOF (default true)
1804
- ts_sync_mode: How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
1805
- enable: timeline editing
1782
+ framesync_options: Framesync options
1783
+ timeline_options: Timeline options
1784
+ extra_options: Extra options for the filter
1806
1785
 
1807
1786
  Returns:
1808
1787
  default: the video stream
@@ -1821,13 +1800,10 @@ def haldclut(
1821
1800
  {
1822
1801
  "clut": clut,
1823
1802
  "interp": interp,
1824
- "eof_action": eof_action,
1825
- "shortest": shortest,
1826
- "repeatlast": repeatlast,
1827
- "ts_sync_mode": ts_sync_mode,
1828
- "enable": enable,
1829
1803
  },
1830
1804
  extra_options,
1805
+ framesync_options,
1806
+ timeline_options,
1831
1807
  ),
1832
1808
  )
1833
1809
  return filter_node.video(0)
@@ -1836,10 +1812,10 @@ def haldclut(
1836
1812
  def headphone(
1837
1813
  *streams: AudioStream,
1838
1814
  map: String = Default(None),
1839
- gain: Float = Default(0.0),
1840
- lfe: Float = Default(0.0),
1815
+ gain: Float = Default("0"),
1816
+ lfe: Float = Default("0"),
1841
1817
  type: Int | Literal["time", "freq"] | Default = Default("freq"),
1842
- size: Int = Default(1024),
1818
+ size: Int = Default("1024"),
1843
1819
  hrir: Int | Literal["stereo", "multich"] | Default = Default("stereo"),
1844
1820
  extra_options: dict[str, Any] | None = None,
1845
1821
  ) -> AudioStream:
@@ -1854,6 +1830,7 @@ def headphone(
1854
1830
  type: set processing (from 0 to 1) (default freq)
1855
1831
  size: set frame size (from 1024 to 96000) (default 1024)
1856
1832
  hrir: set hrir format (from 0 to 1) (default stereo)
1833
+ extra_options: Extra options for the filter
1857
1834
 
1858
1835
  Returns:
1859
1836
  default: the audio stream
@@ -1887,7 +1864,7 @@ def headphone(
1887
1864
  def hstack(
1888
1865
  *streams: VideoStream,
1889
1866
  inputs: Int = Auto("len(streams)"),
1890
- shortest: Boolean = Default(False),
1867
+ shortest: Boolean = Default("false"),
1891
1868
  extra_options: dict[str, Any] | None = None,
1892
1869
  ) -> VideoStream:
1893
1870
  """
@@ -1897,6 +1874,7 @@ def hstack(
1897
1874
  Args:
1898
1875
  inputs: set number of inputs (from 2 to INT_MAX) (default 2)
1899
1876
  shortest: force termination when the shortest input terminates (default false)
1877
+ extra_options: Extra options for the filter
1900
1878
 
1901
1879
  Returns:
1902
1880
  default: the video stream
@@ -1925,19 +1903,20 @@ def hstack(
1925
1903
 
1926
1904
  def hstack_vaapi(
1927
1905
  *streams: VideoStream,
1928
- inputs: Int = Default(2),
1929
- shortest: Boolean = Default(False),
1930
- height: Int = Default(0),
1906
+ inputs: Int = Default("2"),
1907
+ shortest: Boolean = Default("false"),
1908
+ height: Int = Default("0"),
1931
1909
  extra_options: dict[str, Any] | None = None,
1932
1910
  ) -> VideoStream:
1933
1911
  """
1934
1912
 
1935
- "VA-API" hstack
1913
+ "VA-API" hstack.
1936
1914
 
1937
1915
  Args:
1938
1916
  inputs: Set number of inputs (from 2 to 65535) (default 2)
1939
1917
  shortest: Force termination when the shortest input terminates (default false)
1940
1918
  height: Set output height (0 to use the height of input 0) (from 0 to 65535) (default 0)
1919
+ extra_options: Extra options for the filter
1941
1920
 
1942
1921
  Returns:
1943
1922
  default: the video stream
@@ -1969,13 +1948,10 @@ def hysteresis(
1969
1948
  _base: VideoStream,
1970
1949
  _alt: VideoStream,
1971
1950
  *,
1972
- planes: Int = Default(15),
1973
- threshold: Int = Default(0),
1974
- eof_action: Int | Literal["repeat", "endall", "pass"] | Default = Default("repeat"),
1975
- shortest: Boolean = Default(False),
1976
- repeatlast: Boolean = Default(True),
1977
- ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
1978
- enable: String = Default(None),
1951
+ planes: Int = Default("15"),
1952
+ threshold: Int = Default("0"),
1953
+ framesync_options: FFMpegFrameSyncOption | None = None,
1954
+ timeline_options: FFMpegTimelineOption | None = None,
1979
1955
  extra_options: dict[str, Any] | None = None,
1980
1956
  ) -> VideoStream:
1981
1957
  """
@@ -1985,11 +1961,9 @@ def hysteresis(
1985
1961
  Args:
1986
1962
  planes: set planes (from 0 to 15) (default 15)
1987
1963
  threshold: set threshold (from 0 to 65535) (default 0)
1988
- eof_action: Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
1989
- shortest: force termination when the shortest input terminates (default false)
1990
- repeatlast: extend last frame of secondary streams beyond EOF (default true)
1991
- ts_sync_mode: How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
1992
- enable: timeline editing
1964
+ framesync_options: Framesync options
1965
+ timeline_options: Timeline options
1966
+ extra_options: Extra options for the filter
1993
1967
 
1994
1968
  Returns:
1995
1969
  default: the video stream
@@ -2010,13 +1984,10 @@ def hysteresis(
2010
1984
  {
2011
1985
  "planes": planes,
2012
1986
  "threshold": threshold,
2013
- "eof_action": eof_action,
2014
- "shortest": shortest,
2015
- "repeatlast": repeatlast,
2016
- "ts_sync_mode": ts_sync_mode,
2017
- "enable": enable,
2018
1987
  },
2019
1988
  extra_options,
1989
+ framesync_options,
1990
+ timeline_options,
2020
1991
  ),
2021
1992
  )
2022
1993
  return filter_node.video(0)
@@ -2025,12 +1996,8 @@ def hysteresis(
2025
1996
  def identity(
2026
1997
  _main: VideoStream,
2027
1998
  _reference: VideoStream,
2028
- *,
2029
- eof_action: Int | Literal["repeat", "endall", "pass"] | Default = Default("repeat"),
2030
- shortest: Boolean = Default(False),
2031
- repeatlast: Boolean = Default(True),
2032
- ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
2033
- enable: String = Default(None),
1999
+ framesync_options: FFMpegFrameSyncOption | None = None,
2000
+ timeline_options: FFMpegTimelineOption | None = None,
2034
2001
  extra_options: dict[str, Any] | None = None,
2035
2002
  ) -> VideoStream:
2036
2003
  """
@@ -2038,11 +2005,9 @@ def identity(
2038
2005
  Calculate the Identity between two video streams.
2039
2006
 
2040
2007
  Args:
2041
- eof_action: Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
2042
- shortest: force termination when the shortest input terminates (default false)
2043
- repeatlast: extend last frame of secondary streams beyond EOF (default true)
2044
- ts_sync_mode: How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
2045
- enable: timeline editing
2008
+ framesync_options: Framesync options
2009
+ timeline_options: Timeline options
2010
+ extra_options: Extra options for the filter
2046
2011
 
2047
2012
  Returns:
2048
2013
  default: the video stream
@@ -2058,14 +2023,10 @@ def identity(
2058
2023
  _main,
2059
2024
  _reference,
2060
2025
  **merge(
2061
- {
2062
- "eof_action": eof_action,
2063
- "shortest": shortest,
2064
- "repeatlast": repeatlast,
2065
- "ts_sync_mode": ts_sync_mode,
2066
- "enable": enable,
2067
- },
2026
+ {},
2068
2027
  extra_options,
2028
+ framesync_options,
2029
+ timeline_options,
2069
2030
  ),
2070
2031
  )
2071
2032
  return filter_node.video(0)
@@ -2086,6 +2047,7 @@ def interleave(
2086
2047
  Args:
2087
2048
  nb_inputs: set number of inputs (from 1 to INT_MAX) (default 2)
2088
2049
  duration: how to determine the end-of-stream (from 0 to 2) (default longest)
2050
+ extra_options: Extra options for the filter
2089
2051
 
2090
2052
  Returns:
2091
2053
  default: the video stream
@@ -2127,6 +2089,7 @@ def join(
2127
2089
  inputs: Number of input streams. (from 1 to INT_MAX) (default 2)
2128
2090
  channel_layout: Channel layout of the output stream. (default "stereo")
2129
2091
  map: A comma-separated list of channels maps in the format 'input_stream.input_channel-output_channel.
2092
+ extra_options: Extra options for the filter
2130
2093
 
2131
2094
  Returns:
2132
2095
  default: the audio stream
@@ -2159,10 +2122,10 @@ def ladspa(
2159
2122
  file: String = Default(None),
2160
2123
  plugin: String = Default(None),
2161
2124
  controls: String = Default(None),
2162
- sample_rate: Int = Default(44100),
2163
- nb_samples: Int = Default(1024),
2164
- duration: Duration = Default(-1e-06),
2165
- latency: Boolean = Default(False),
2125
+ sample_rate: Int = Default("44100"),
2126
+ nb_samples: Int = Default("1024"),
2127
+ duration: Duration = Default("-0.000001"),
2128
+ latency: Boolean = Default("false"),
2166
2129
  extra_options: dict[str, Any] | None = None,
2167
2130
  ) -> AudioStream:
2168
2131
  """
@@ -2177,6 +2140,7 @@ def ladspa(
2177
2140
  nb_samples: set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
2178
2141
  duration: set audio duration (default -0.000001)
2179
2142
  latency: enable latency compensation (default false)
2143
+ extra_options: Extra options for the filter
2180
2144
 
2181
2145
  Returns:
2182
2146
  default: the audio stream
@@ -2212,23 +2176,23 @@ def libplacebo(
2212
2176
  w: String = Default("iw"),
2213
2177
  h: String = Default("ih"),
2214
2178
  fps: String = Default("none"),
2215
- crop_x: String = Default("(iw-cw"),
2216
- crop_y: String = Default("(ih-ch"),
2179
+ crop_x: String = Default("(iw-cw)/2"),
2180
+ crop_y: String = Default("(ih-ch)/2"),
2217
2181
  crop_w: String = Default("iw"),
2218
2182
  crop_h: String = Default("ih"),
2219
- pos_x: String = Default("(ow-pw"),
2220
- pos_y: String = Default("(oh-ph"),
2183
+ pos_x: String = Default("(ow-pw)/2"),
2184
+ pos_y: String = Default("(oh-ph)/2"),
2221
2185
  pos_w: String = Default("ow"),
2222
2186
  pos_h: String = Default("oh"),
2223
2187
  format: String = Default(None),
2224
2188
  force_original_aspect_ratio: Int
2225
2189
  | Literal["disable", "decrease", "increase"]
2226
2190
  | Default = Default("disable"),
2227
- force_divisible_by: Int = Default(1),
2228
- normalize_sar: Boolean = Default(False),
2229
- pad_crop_ratio: Float = Default(0.0),
2191
+ force_divisible_by: Int = Default("1"),
2192
+ normalize_sar: Boolean = Default("false"),
2193
+ pad_crop_ratio: Float = Default("0"),
2230
2194
  fillcolor: String = Default("black"),
2231
- corner_rounding: Float = Default(0.0),
2195
+ corner_rounding: Float = Default("0"),
2232
2196
  extra_opts: Dictionary = Default(None),
2233
2197
  colorspace: Int
2234
2198
  | Literal[
@@ -2264,7 +2228,7 @@ def libplacebo(
2264
2228
  "smpte428",
2265
2229
  "smpte431",
2266
2230
  "smpte432",
2267
- "p22",
2231
+ "jedec-p22",
2268
2232
  "ebu3213",
2269
2233
  ]
2270
2234
  | Default = Default("auto"),
@@ -2278,39 +2242,39 @@ def libplacebo(
2278
2242
  "smpte170m",
2279
2243
  "smpte240m",
2280
2244
  "linear",
2281
- "4",
2245
+ "iec61966-2-4",
2282
2246
  "bt1361e",
2283
- "1",
2284
- "10",
2285
- "12",
2247
+ "iec61966-2-1",
2248
+ "bt2020-10",
2249
+ "bt2020-12",
2286
2250
  "smpte2084",
2287
- "b67",
2251
+ "arib-std-b67",
2288
2252
  ]
2289
2253
  | Default = Default("auto"),
2290
2254
  upscaler: String = Default("spline36"),
2291
2255
  downscaler: String = Default("mitchell"),
2292
2256
  frame_mixer: String = Default("none"),
2293
- lut_entries: Int = Default(0),
2294
- antiringing: Float = Default(0.0),
2295
- sigmoid: Boolean = Default(True),
2296
- apply_filmgrain: Boolean = Default(True),
2297
- apply_dolbyvision: Boolean = Default(True),
2298
- deband: Boolean = Default(False),
2299
- deband_iterations: Int = Default(1),
2300
- deband_threshold: Float = Default(4.0),
2301
- deband_radius: Float = Default(16.0),
2302
- deband_grain: Float = Default(6.0),
2303
- brightness: Float = Default(0.0),
2304
- contrast: Float = Default(1.0),
2305
- saturation: Float = Default(1.0),
2306
- hue: Float = Default(0.0),
2307
- gamma: Float = Default(1.0),
2308
- peak_detect: Boolean = Default(True),
2309
- smoothing_period: Float = Default(100.0),
2310
- minimum_peak: Float = Default(1.0),
2311
- scene_threshold_low: Float = Default(5.5),
2312
- scene_threshold_high: Float = Default(10.0),
2313
- percentile: Float = Default(99.995),
2257
+ lut_entries: Int = Default("0"),
2258
+ antiringing: Float = Default("0"),
2259
+ sigmoid: Boolean = Default("true"),
2260
+ apply_filmgrain: Boolean = Default("true"),
2261
+ apply_dolbyvision: Boolean = Default("true"),
2262
+ deband: Boolean = Default("false"),
2263
+ deband_iterations: Int = Default("1"),
2264
+ deband_threshold: Float = Default("4"),
2265
+ deband_radius: Float = Default("16"),
2266
+ deband_grain: Float = Default("6"),
2267
+ brightness: Float = Default("0"),
2268
+ contrast: Float = Default("1"),
2269
+ saturation: Float = Default("1"),
2270
+ hue: Float = Default("0"),
2271
+ gamma: Float = Default("1"),
2272
+ peak_detect: Boolean = Default("true"),
2273
+ smoothing_period: Float = Default("100"),
2274
+ minimum_peak: Float = Default("1"),
2275
+ scene_threshold_low: Float = Default("5.5"),
2276
+ scene_threshold_high: Float = Default("10"),
2277
+ percentile: Float = Default("99.995"),
2314
2278
  gamut_mode: Int
2315
2279
  | Literal[
2316
2280
  "clip",
@@ -2328,10 +2292,10 @@ def libplacebo(
2328
2292
  | Literal[
2329
2293
  "auto",
2330
2294
  "clip",
2331
- "40",
2332
- "10",
2333
- "2390",
2334
- "2446a",
2295
+ "st2094-40",
2296
+ "st2094-10",
2297
+ "bt.2390",
2298
+ "bt.2446a",
2335
2299
  "spline",
2336
2300
  "reinhard",
2337
2301
  "mobius",
@@ -2340,45 +2304,45 @@ def libplacebo(
2340
2304
  "linear",
2341
2305
  ]
2342
2306
  | Default = Default("auto"),
2343
- tonemapping_param: Float = Default(0.0),
2344
- inverse_tonemapping: Boolean = Default(False),
2345
- tonemapping_lut_size: Int = Default(256),
2346
- contrast_recovery: Float = Default(0.3),
2347
- contrast_smoothness: Float = Default(3.5),
2348
- desaturation_strength: Float = Default(-1.0),
2349
- desaturation_exponent: Float = Default(-1.0),
2350
- gamut_warning: Boolean = Default(False),
2351
- gamut_clipping: Boolean = Default(False),
2307
+ tonemapping_param: Float = Default("0"),
2308
+ inverse_tonemapping: Boolean = Default("false"),
2309
+ tonemapping_lut_size: Int = Default("256"),
2310
+ contrast_recovery: Float = Default("0.3"),
2311
+ contrast_smoothness: Float = Default("3.5"),
2312
+ desaturation_strength: Float = Default("-1"),
2313
+ desaturation_exponent: Float = Default("-1"),
2314
+ gamut_warning: Boolean = Default("false"),
2315
+ gamut_clipping: Boolean = Default("false"),
2352
2316
  intent: Int
2353
2317
  | Literal["perceptual", "relative", "absolute", "saturation"]
2354
2318
  | Default = Default("perceptual"),
2355
2319
  tonemapping_mode: Int
2356
2320
  | Literal["auto", "rgb", "max", "hybrid", "luma"]
2357
2321
  | Default = Default("auto"),
2358
- tonemapping_crosstalk: Float = Default(0.04),
2359
- overshoot: Float = Default(0.05),
2360
- hybrid_mix: Float = Default(0.2),
2322
+ tonemapping_crosstalk: Float = Default("0.04"),
2323
+ overshoot: Float = Default("0.05"),
2324
+ hybrid_mix: Float = Default("0.2"),
2361
2325
  dithering: Int
2362
2326
  | Literal["none", "blue", "ordered", "ordered_fixed", "white"]
2363
2327
  | Default = Default("blue"),
2364
- dither_lut_size: Int = Default(6),
2365
- dither_temporal: Boolean = Default(False),
2328
+ dither_lut_size: Int = Default("6"),
2329
+ dither_temporal: Boolean = Default("false"),
2366
2330
  cones: Flags | Literal["l", "m", "s"] | Default = Default("0"),
2367
- cone_strength: Float = Default(0.0),
2331
+ cone_strength: Float = Default("0"),
2368
2332
  custom_shader_path: String = Default(None),
2369
2333
  custom_shader_bin: Binary = Default(None),
2370
- skip_aa: Boolean = Default(False),
2371
- polar_cutoff: Float = Default(0.0),
2372
- disable_linear: Boolean = Default(False),
2373
- disable_builtin: Boolean = Default(False),
2374
- force_icc_lut: Boolean = Default(False),
2375
- force_dither: Boolean = Default(False),
2376
- disable_fbos: Boolean = Default(False),
2334
+ skip_aa: Boolean = Default("false"),
2335
+ polar_cutoff: Float = Default("0"),
2336
+ disable_linear: Boolean = Default("false"),
2337
+ disable_builtin: Boolean = Default("false"),
2338
+ force_icc_lut: Boolean = Default("false"),
2339
+ force_dither: Boolean = Default("false"),
2340
+ disable_fbos: Boolean = Default("false"),
2377
2341
  extra_options: dict[str, Any] | None = None,
2378
2342
  ) -> VideoStream:
2379
2343
  """
2380
2344
 
2381
- Apply various GPU filters from libplacebo
2345
+ Apply various GPU filters from libplacebo.
2382
2346
 
2383
2347
  Args:
2384
2348
  inputs: Number of inputs (from 1 to INT_MAX) (default 1)
@@ -2459,6 +2423,7 @@ def libplacebo(
2459
2423
  force_icc_lut: Deprecated, does nothing (default false)
2460
2424
  force_dither: Force dithering (default false)
2461
2425
  disable_fbos: Force-disable FBOs (default false)
2426
+ extra_options: Extra options for the filter
2462
2427
 
2463
2428
  Returns:
2464
2429
  default: the video stream
@@ -2563,11 +2528,11 @@ def libplacebo(
2563
2528
 
2564
2529
  def limitdiff(
2565
2530
  *streams: VideoStream,
2566
- threshold: Float = Default(0.00392157),
2567
- elasticity: Float = Default(2.0),
2568
- reference: Boolean = Default(False),
2569
- planes: Int = Default(15),
2570
- enable: String = Default(None),
2531
+ threshold: Float = Default("0.00392157"),
2532
+ elasticity: Float = Default("2"),
2533
+ reference: Boolean = Default("false"),
2534
+ planes: Int = Default("15"),
2535
+ timeline_options: FFMpegTimelineOption | None = None,
2571
2536
  extra_options: dict[str, Any] | None = None,
2572
2537
  ) -> VideoStream:
2573
2538
  """
@@ -2579,7 +2544,8 @@ def limitdiff(
2579
2544
  elasticity: set the elasticity (from 0 to 10) (default 2)
2580
2545
  reference: enable reference stream (default false)
2581
2546
  planes: set the planes to filter (from 0 to 15) (default 15)
2582
- enable: timeline editing
2547
+ timeline_options: Timeline options
2548
+ extra_options: Extra options for the filter
2583
2549
 
2584
2550
  Returns:
2585
2551
  default: the video stream
@@ -2601,9 +2567,9 @@ def limitdiff(
2601
2567
  "elasticity": elasticity,
2602
2568
  "reference": reference,
2603
2569
  "planes": planes,
2604
- "enable": enable,
2605
2570
  },
2606
2571
  extra_options,
2572
+ timeline_options,
2607
2573
  ),
2608
2574
  )
2609
2575
  return filter_node.video(0)
@@ -2617,12 +2583,9 @@ def lut2(
2617
2583
  c1: String = Default("x"),
2618
2584
  c2: String = Default("x"),
2619
2585
  c3: String = Default("x"),
2620
- d: Int = Default(0),
2621
- eof_action: Int | Literal["repeat", "endall", "pass"] | Default = Default("repeat"),
2622
- shortest: Boolean = Default(False),
2623
- repeatlast: Boolean = Default(True),
2624
- ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
2625
- enable: String = Default(None),
2586
+ d: Int = Default("0"),
2587
+ framesync_options: FFMpegFrameSyncOption | None = None,
2588
+ timeline_options: FFMpegTimelineOption | None = None,
2626
2589
  extra_options: dict[str, Any] | None = None,
2627
2590
  ) -> VideoStream:
2628
2591
  """
@@ -2635,11 +2598,9 @@ def lut2(
2635
2598
  c2: set component #2 expression (default "x")
2636
2599
  c3: set component #3 expression (default "x")
2637
2600
  d: set output depth (from 0 to 16) (default 0)
2638
- eof_action: Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
2639
- shortest: force termination when the shortest input terminates (default false)
2640
- repeatlast: extend last frame of secondary streams beyond EOF (default true)
2641
- ts_sync_mode: How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
2642
- enable: timeline editing
2601
+ framesync_options: Framesync options
2602
+ timeline_options: Timeline options
2603
+ extra_options: Extra options for the filter
2643
2604
 
2644
2605
  Returns:
2645
2606
  default: the video stream
@@ -2661,13 +2622,10 @@ def lut2(
2661
2622
  "c2": c2,
2662
2623
  "c3": c3,
2663
2624
  "d": d,
2664
- "eof_action": eof_action,
2665
- "shortest": shortest,
2666
- "repeatlast": repeatlast,
2667
- "ts_sync_mode": ts_sync_mode,
2668
- "enable": enable,
2669
2625
  },
2670
2626
  extra_options,
2627
+ framesync_options,
2628
+ timeline_options,
2671
2629
  ),
2672
2630
  )
2673
2631
  return filter_node.video(0)
@@ -2677,9 +2635,9 @@ def lv2(
2677
2635
  *streams: AudioStream,
2678
2636
  plugin: String = Default(None),
2679
2637
  controls: String = Default(None),
2680
- sample_rate: Int = Default(44100),
2681
- nb_samples: Int = Default(1024),
2682
- duration: Duration = Default(-1e-06),
2638
+ sample_rate: Int = Default("44100"),
2639
+ nb_samples: Int = Default("1024"),
2640
+ duration: Duration = Default("-0.000001"),
2683
2641
  extra_options: dict[str, Any] | None = None,
2684
2642
  ) -> AudioStream:
2685
2643
  """
@@ -2692,6 +2650,7 @@ def lv2(
2692
2650
  sample_rate: set sample rate (from 1 to INT_MAX) (default 44100)
2693
2651
  nb_samples: set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
2694
2652
  duration: set audio duration (default -0.000001)
2653
+ extra_options: Extra options for the filter
2695
2654
 
2696
2655
  Returns:
2697
2656
  default: the audio stream
@@ -2724,10 +2683,10 @@ def maskedclamp(
2724
2683
  _dark: VideoStream,
2725
2684
  _bright: VideoStream,
2726
2685
  *,
2727
- undershoot: Int = Default(0),
2728
- overshoot: Int = Default(0),
2729
- planes: Int = Default(15),
2730
- enable: String = Default(None),
2686
+ undershoot: Int = Default("0"),
2687
+ overshoot: Int = Default("0"),
2688
+ planes: Int = Default("15"),
2689
+ timeline_options: FFMpegTimelineOption | None = None,
2731
2690
  extra_options: dict[str, Any] | None = None,
2732
2691
  ) -> VideoStream:
2733
2692
  """
@@ -2738,7 +2697,8 @@ def maskedclamp(
2738
2697
  undershoot: set undershoot (from 0 to 65535) (default 0)
2739
2698
  overshoot: set overshoot (from 0 to 65535) (default 0)
2740
2699
  planes: set planes (from 0 to 15) (default 15)
2741
- enable: timeline editing
2700
+ timeline_options: Timeline options
2701
+ extra_options: Extra options for the filter
2742
2702
 
2743
2703
  Returns:
2744
2704
  default: the video stream
@@ -2761,9 +2721,9 @@ def maskedclamp(
2761
2721
  "undershoot": undershoot,
2762
2722
  "overshoot": overshoot,
2763
2723
  "planes": planes,
2764
- "enable": enable,
2765
2724
  },
2766
2725
  extra_options,
2726
+ timeline_options,
2767
2727
  ),
2768
2728
  )
2769
2729
  return filter_node.video(0)
@@ -2774,8 +2734,8 @@ def maskedmax(
2774
2734
  _filter1: VideoStream,
2775
2735
  _filter2: VideoStream,
2776
2736
  *,
2777
- planes: Int = Default(15),
2778
- enable: String = Default(None),
2737
+ planes: Int = Default("15"),
2738
+ timeline_options: FFMpegTimelineOption | None = None,
2779
2739
  extra_options: dict[str, Any] | None = None,
2780
2740
  ) -> VideoStream:
2781
2741
  """
@@ -2784,7 +2744,8 @@ def maskedmax(
2784
2744
 
2785
2745
  Args:
2786
2746
  planes: set planes (from 0 to 15) (default 15)
2787
- enable: timeline editing
2747
+ timeline_options: Timeline options
2748
+ extra_options: Extra options for the filter
2788
2749
 
2789
2750
  Returns:
2790
2751
  default: the video stream
@@ -2805,9 +2766,9 @@ def maskedmax(
2805
2766
  **merge(
2806
2767
  {
2807
2768
  "planes": planes,
2808
- "enable": enable,
2809
2769
  },
2810
2770
  extra_options,
2771
+ timeline_options,
2811
2772
  ),
2812
2773
  )
2813
2774
  return filter_node.video(0)
@@ -2818,8 +2779,8 @@ def maskedmerge(
2818
2779
  _overlay: VideoStream,
2819
2780
  _mask: VideoStream,
2820
2781
  *,
2821
- planes: Int = Default(15),
2822
- enable: String = Default(None),
2782
+ planes: Int = Default("15"),
2783
+ timeline_options: FFMpegTimelineOption | None = None,
2823
2784
  extra_options: dict[str, Any] | None = None,
2824
2785
  ) -> VideoStream:
2825
2786
  """
@@ -2828,7 +2789,8 @@ def maskedmerge(
2828
2789
 
2829
2790
  Args:
2830
2791
  planes: set planes (from 0 to 15) (default 15)
2831
- enable: timeline editing
2792
+ timeline_options: Timeline options
2793
+ extra_options: Extra options for the filter
2832
2794
 
2833
2795
  Returns:
2834
2796
  default: the video stream
@@ -2849,9 +2811,9 @@ def maskedmerge(
2849
2811
  **merge(
2850
2812
  {
2851
2813
  "planes": planes,
2852
- "enable": enable,
2853
2814
  },
2854
2815
  extra_options,
2816
+ timeline_options,
2855
2817
  ),
2856
2818
  )
2857
2819
  return filter_node.video(0)
@@ -2862,8 +2824,8 @@ def maskedmin(
2862
2824
  _filter1: VideoStream,
2863
2825
  _filter2: VideoStream,
2864
2826
  *,
2865
- planes: Int = Default(15),
2866
- enable: String = Default(None),
2827
+ planes: Int = Default("15"),
2828
+ timeline_options: FFMpegTimelineOption | None = None,
2867
2829
  extra_options: dict[str, Any] | None = None,
2868
2830
  ) -> VideoStream:
2869
2831
  """
@@ -2872,7 +2834,8 @@ def maskedmin(
2872
2834
 
2873
2835
  Args:
2874
2836
  planes: set planes (from 0 to 15) (default 15)
2875
- enable: timeline editing
2837
+ timeline_options: Timeline options
2838
+ extra_options: Extra options for the filter
2876
2839
 
2877
2840
  Returns:
2878
2841
  default: the video stream
@@ -2893,9 +2856,9 @@ def maskedmin(
2893
2856
  **merge(
2894
2857
  {
2895
2858
  "planes": planes,
2896
- "enable": enable,
2897
2859
  },
2898
2860
  extra_options,
2861
+ timeline_options,
2899
2862
  ),
2900
2863
  )
2901
2864
  return filter_node.video(0)
@@ -2905,10 +2868,10 @@ def maskedthreshold(
2905
2868
  _source: VideoStream,
2906
2869
  _reference: VideoStream,
2907
2870
  *,
2908
- threshold: Int = Default(1),
2909
- planes: Int = Default(15),
2871
+ threshold: Int = Default("1"),
2872
+ planes: Int = Default("15"),
2910
2873
  mode: Int | Literal["abs", "diff"] | Default = Default("abs"),
2911
- enable: String = Default(None),
2874
+ timeline_options: FFMpegTimelineOption | None = None,
2912
2875
  extra_options: dict[str, Any] | None = None,
2913
2876
  ) -> VideoStream:
2914
2877
  """
@@ -2919,7 +2882,8 @@ def maskedthreshold(
2919
2882
  threshold: set threshold (from 0 to 65535) (default 1)
2920
2883
  planes: set planes (from 0 to 15) (default 15)
2921
2884
  mode: set mode (from 0 to 1) (default abs)
2922
- enable: timeline editing
2885
+ timeline_options: Timeline options
2886
+ extra_options: Extra options for the filter
2923
2887
 
2924
2888
  Returns:
2925
2889
  default: the video stream
@@ -2941,9 +2905,9 @@ def maskedthreshold(
2941
2905
  "threshold": threshold,
2942
2906
  "planes": planes,
2943
2907
  "mode": mode,
2944
- "enable": enable,
2945
2908
  },
2946
2909
  extra_options,
2910
+ timeline_options,
2947
2911
  ),
2948
2912
  )
2949
2913
  return filter_node.video(0)
@@ -2951,16 +2915,16 @@ def maskedthreshold(
2951
2915
 
2952
2916
  def mergeplanes(
2953
2917
  *streams: VideoStream,
2954
- mapping: Int = Default(-1),
2918
+ mapping: Int = Default("-1"),
2955
2919
  format: Pix_fmt = Default("yuva444p"),
2956
- map0s: Int = Default(0),
2957
- map0p: Int = Default(0),
2958
- map1s: Int = Default(0),
2959
- map1p: Int = Default(0),
2960
- map2s: Int = Default(0),
2961
- map2p: Int = Default(0),
2962
- map3s: Int = Default(0),
2963
- map3p: Int = Default(0),
2920
+ map0s: Int = Default("0"),
2921
+ map0p: Int = Default("0"),
2922
+ map1s: Int = Default("0"),
2923
+ map1p: Int = Default("0"),
2924
+ map2s: Int = Default("0"),
2925
+ map2p: Int = Default("0"),
2926
+ map3s: Int = Default("0"),
2927
+ map3p: Int = Default("0"),
2964
2928
  extra_options: dict[str, Any] | None = None,
2965
2929
  ) -> VideoStream:
2966
2930
  """
@@ -2978,6 +2942,7 @@ def mergeplanes(
2978
2942
  map2p: set 3rd input to output plane mapping (from 0 to 3) (default 0)
2979
2943
  map3s: set 4th input to output stream mapping (from 0 to 3) (default 0)
2980
2944
  map3p: set 4th input to output plane mapping (from 0 to 3) (default 0)
2945
+ extra_options: Extra options for the filter
2981
2946
 
2982
2947
  Returns:
2983
2948
  default: the video stream
@@ -3016,8 +2981,8 @@ def midequalizer(
3016
2981
  _in0: VideoStream,
3017
2982
  _in1: VideoStream,
3018
2983
  *,
3019
- planes: Int = Default(15),
3020
- enable: String = Default(None),
2984
+ planes: Int = Default("15"),
2985
+ timeline_options: FFMpegTimelineOption | None = None,
3021
2986
  extra_options: dict[str, Any] | None = None,
3022
2987
  ) -> VideoStream:
3023
2988
  """
@@ -3026,7 +2991,8 @@ def midequalizer(
3026
2991
 
3027
2992
  Args:
3028
2993
  planes: set planes (from 0 to 15) (default 15)
3029
- enable: timeline editing
2994
+ timeline_options: Timeline options
2995
+ extra_options: Extra options for the filter
3030
2996
 
3031
2997
  Returns:
3032
2998
  default: the video stream
@@ -3046,9 +3012,9 @@ def midequalizer(
3046
3012
  **merge(
3047
3013
  {
3048
3014
  "planes": planes,
3049
- "enable": enable,
3050
3015
  },
3051
3016
  extra_options,
3017
+ timeline_options,
3052
3018
  ),
3053
3019
  )
3054
3020
  return filter_node.video(0)
@@ -3058,12 +3024,12 @@ def mix(
3058
3024
  *streams: VideoStream,
3059
3025
  inputs: Int = Auto("len(streams)"),
3060
3026
  weights: String = Default("1 1"),
3061
- scale: Float = Default(0.0),
3027
+ scale: Float = Default("0"),
3062
3028
  planes: Flags = Default("F"),
3063
3029
  duration: Int | Literal["longest", "shortest", "first"] | Default = Default(
3064
3030
  "longest"
3065
3031
  ),
3066
- enable: String = Default(None),
3032
+ timeline_options: FFMpegTimelineOption | None = None,
3067
3033
  extra_options: dict[str, Any] | None = None,
3068
3034
  ) -> VideoStream:
3069
3035
  """
@@ -3076,7 +3042,8 @@ def mix(
3076
3042
  scale: set scale (from 0 to 32767) (default 0)
3077
3043
  planes: set what planes to filter (default F)
3078
3044
  duration: how to determine end of stream (from 0 to 2) (default longest)
3079
- enable: timeline editing
3045
+ timeline_options: Timeline options
3046
+ extra_options: Extra options for the filter
3080
3047
 
3081
3048
  Returns:
3082
3049
  default: the video stream
@@ -3099,9 +3066,9 @@ def mix(
3099
3066
  "scale": scale,
3100
3067
  "planes": planes,
3101
3068
  "duration": duration,
3102
- "enable": enable,
3103
3069
  },
3104
3070
  extra_options,
3071
+ timeline_options,
3105
3072
  ),
3106
3073
  )
3107
3074
  return filter_node.video(0)
@@ -3114,13 +3081,10 @@ def morpho(
3114
3081
  mode: Int
3115
3082
  | Literal["erode", "dilate", "open", "close", "gradient", "tophat", "blackhat"]
3116
3083
  | Default = Default("erode"),
3117
- planes: Int = Default(7),
3084
+ planes: Int = Default("7"),
3118
3085
  structure: Int | Literal["first", "all"] | Default = Default("all"),
3119
- eof_action: Int | Literal["repeat", "endall", "pass"] | Default = Default("repeat"),
3120
- shortest: Boolean = Default(False),
3121
- repeatlast: Boolean = Default(True),
3122
- ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
3123
- enable: String = Default(None),
3086
+ framesync_options: FFMpegFrameSyncOption | None = None,
3087
+ timeline_options: FFMpegTimelineOption | None = None,
3124
3088
  extra_options: dict[str, Any] | None = None,
3125
3089
  ) -> VideoStream:
3126
3090
  """
@@ -3131,11 +3095,9 @@ def morpho(
3131
3095
  mode: set morphological transform (from 0 to 6) (default erode)
3132
3096
  planes: set planes to filter (from 0 to 15) (default 7)
3133
3097
  structure: when to process structures (from 0 to 1) (default all)
3134
- eof_action: Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
3135
- shortest: force termination when the shortest input terminates (default false)
3136
- repeatlast: extend last frame of secondary streams beyond EOF (default true)
3137
- ts_sync_mode: How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
3138
- enable: timeline editing
3098
+ framesync_options: Framesync options
3099
+ timeline_options: Timeline options
3100
+ extra_options: Extra options for the filter
3139
3101
 
3140
3102
  Returns:
3141
3103
  default: the video stream
@@ -3155,13 +3117,10 @@ def morpho(
3155
3117
  "mode": mode,
3156
3118
  "planes": planes,
3157
3119
  "structure": structure,
3158
- "eof_action": eof_action,
3159
- "shortest": shortest,
3160
- "repeatlast": repeatlast,
3161
- "ts_sync_mode": ts_sync_mode,
3162
- "enable": enable,
3163
3120
  },
3164
3121
  extra_options,
3122
+ framesync_options,
3123
+ timeline_options,
3165
3124
  ),
3166
3125
  )
3167
3126
  return filter_node.video(0)
@@ -3170,12 +3129,8 @@ def morpho(
3170
3129
  def msad(
3171
3130
  _main: VideoStream,
3172
3131
  _reference: VideoStream,
3173
- *,
3174
- eof_action: Int | Literal["repeat", "endall", "pass"] | Default = Default("repeat"),
3175
- shortest: Boolean = Default(False),
3176
- repeatlast: Boolean = Default(True),
3177
- ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
3178
- enable: String = Default(None),
3132
+ framesync_options: FFMpegFrameSyncOption | None = None,
3133
+ timeline_options: FFMpegTimelineOption | None = None,
3179
3134
  extra_options: dict[str, Any] | None = None,
3180
3135
  ) -> VideoStream:
3181
3136
  """
@@ -3183,11 +3138,9 @@ def msad(
3183
3138
  Calculate the MSAD between two video streams.
3184
3139
 
3185
3140
  Args:
3186
- eof_action: Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
3187
- shortest: force termination when the shortest input terminates (default false)
3188
- repeatlast: extend last frame of secondary streams beyond EOF (default true)
3189
- ts_sync_mode: How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
3190
- enable: timeline editing
3141
+ framesync_options: Framesync options
3142
+ timeline_options: Timeline options
3143
+ extra_options: Extra options for the filter
3191
3144
 
3192
3145
  Returns:
3193
3146
  default: the video stream
@@ -3203,14 +3156,10 @@ def msad(
3203
3156
  _main,
3204
3157
  _reference,
3205
3158
  **merge(
3206
- {
3207
- "eof_action": eof_action,
3208
- "shortest": shortest,
3209
- "repeatlast": repeatlast,
3210
- "ts_sync_mode": ts_sync_mode,
3211
- "enable": enable,
3212
- },
3159
+ {},
3213
3160
  extra_options,
3161
+ framesync_options,
3162
+ timeline_options,
3214
3163
  ),
3215
3164
  )
3216
3165
  return filter_node.video(0)
@@ -3220,10 +3169,10 @@ def multiply(
3220
3169
  _source: VideoStream,
3221
3170
  _factor: VideoStream,
3222
3171
  *,
3223
- scale: Float = Default(1.0),
3224
- offset: Float = Default(0.5),
3172
+ scale: Float = Default("1"),
3173
+ offset: Float = Default("0.5"),
3225
3174
  planes: Flags = Default("F"),
3226
- enable: String = Default(None),
3175
+ timeline_options: FFMpegTimelineOption | None = None,
3227
3176
  extra_options: dict[str, Any] | None = None,
3228
3177
  ) -> VideoStream:
3229
3178
  """
@@ -3234,7 +3183,8 @@ def multiply(
3234
3183
  scale: set scale (from 0 to 9) (default 1)
3235
3184
  offset: set offset (from -1 to 1) (default 0.5)
3236
3185
  planes: set planes (default F)
3237
- enable: timeline editing
3186
+ timeline_options: Timeline options
3187
+ extra_options: Extra options for the filter
3238
3188
 
3239
3189
  Returns:
3240
3190
  default: the video stream
@@ -3254,9 +3204,9 @@ def multiply(
3254
3204
  "scale": scale,
3255
3205
  "offset": offset,
3256
3206
  "planes": planes,
3257
- "enable": enable,
3258
3207
  },
3259
3208
  extra_options,
3209
+ timeline_options,
3260
3210
  ),
3261
3211
  )
3262
3212
  return filter_node.video(0)
@@ -3268,11 +3218,9 @@ def overlay(
3268
3218
  *,
3269
3219
  x: String = Default("0"),
3270
3220
  y: String = Default("0"),
3271
- eof_action: Int
3272
- | Literal["repeat", "endall", "pass", "repeat", "endall", "pass"]
3273
- | Default = Default("repeat"),
3221
+ eof_action: Int | Literal["repeat", "endall", "pass"] | Default = Default("repeat"),
3274
3222
  eval: Int | Literal["init", "frame"] | Default = Default("frame"),
3275
- shortest: Boolean = Default(False),
3223
+ shortest: Boolean = Default("false"),
3276
3224
  format: Int
3277
3225
  | Literal[
3278
3226
  "yuv420",
@@ -3286,10 +3234,10 @@ def overlay(
3286
3234
  "auto",
3287
3235
  ]
3288
3236
  | Default = Default("yuv420"),
3289
- repeatlast: Boolean = Default(True),
3237
+ repeatlast: Boolean = Default("true"),
3290
3238
  alpha: Int | Literal["straight", "premultiplied"] | Default = Default("straight"),
3291
- ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
3292
- enable: String = Default(None),
3239
+ framesync_options: FFMpegFrameSyncOption | None = None,
3240
+ timeline_options: FFMpegTimelineOption | None = None,
3293
3241
  extra_options: dict[str, Any] | None = None,
3294
3242
  ) -> VideoStream:
3295
3243
  """
@@ -3305,8 +3253,9 @@ def overlay(
3305
3253
  format: set output format (from 0 to 8) (default yuv420)
3306
3254
  repeatlast: repeat overlay of the last overlay frame (default true)
3307
3255
  alpha: alpha format (from 0 to 1) (default straight)
3308
- ts_sync_mode: How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
3309
- enable: timeline editing
3256
+ framesync_options: Framesync options
3257
+ timeline_options: Timeline options
3258
+ extra_options: Extra options for the filter
3310
3259
 
3311
3260
  Returns:
3312
3261
  default: the video stream
@@ -3331,10 +3280,10 @@ def overlay(
3331
3280
  "format": format,
3332
3281
  "repeatlast": repeatlast,
3333
3282
  "alpha": alpha,
3334
- "ts_sync_mode": ts_sync_mode,
3335
- "enable": enable,
3336
3283
  },
3337
3284
  extra_options,
3285
+ framesync_options,
3286
+ timeline_options,
3338
3287
  ),
3339
3288
  )
3340
3289
  return filter_node.video(0)
@@ -3344,17 +3293,18 @@ def overlay_opencl(
3344
3293
  _main: VideoStream,
3345
3294
  _overlay: VideoStream,
3346
3295
  *,
3347
- x: Int = Default(0),
3348
- y: Int = Default(0),
3296
+ x: Int = Default("0"),
3297
+ y: Int = Default("0"),
3349
3298
  extra_options: dict[str, Any] | None = None,
3350
3299
  ) -> VideoStream:
3351
3300
  """
3352
3301
 
3353
- Overlay one video on top of another
3302
+ Overlay one video on top of another.
3354
3303
 
3355
3304
  Args:
3356
3305
  x: Overlay x position (from 0 to INT_MAX) (default 0)
3357
3306
  y: Overlay y position (from 0 to INT_MAX) (default 0)
3307
+ extra_options: Extra options for the filter
3358
3308
 
3359
3309
  Returns:
3360
3310
  default: the video stream
@@ -3390,18 +3340,16 @@ def overlay_vaapi(
3390
3340
  y: String = Default("0"),
3391
3341
  w: String = Default("overlay_iw"),
3392
3342
  h: String = Default("overlay_ih*w/overlay_iw"),
3393
- alpha: Float = Default(1.0),
3394
- eof_action: Int
3395
- | Literal["repeat", "endall", "pass", "repeat", "endall", "pass"]
3396
- | Default = Default("repeat"),
3397
- shortest: Boolean = Default(False),
3398
- repeatlast: Boolean = Default(True),
3399
- ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
3343
+ alpha: Float = Default("1"),
3344
+ eof_action: Int | Literal["repeat", "endall", "pass"] | Default = Default("repeat"),
3345
+ shortest: Boolean = Default("false"),
3346
+ repeatlast: Boolean = Default("true"),
3347
+ framesync_options: FFMpegFrameSyncOption | None = None,
3400
3348
  extra_options: dict[str, Any] | None = None,
3401
3349
  ) -> VideoStream:
3402
3350
  """
3403
3351
 
3404
- Overlay one video on top of another
3352
+ Overlay one video on top of another.
3405
3353
 
3406
3354
  Args:
3407
3355
  x: Overlay x position (default "0")
@@ -3412,7 +3360,8 @@ def overlay_vaapi(
3412
3360
  eof_action: Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
3413
3361
  shortest: force termination when the shortest input terminates (default false)
3414
3362
  repeatlast: repeat overlay of the last overlay frame (default true)
3415
- ts_sync_mode: How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
3363
+ framesync_options: Framesync options
3364
+ extra_options: Extra options for the filter
3416
3365
 
3417
3366
  Returns:
3418
3367
  default: the video stream
@@ -3439,9 +3388,9 @@ def overlay_vaapi(
3439
3388
  "eof_action": eof_action,
3440
3389
  "shortest": shortest,
3441
3390
  "repeatlast": repeatlast,
3442
- "ts_sync_mode": ts_sync_mode,
3443
3391
  },
3444
3392
  extra_options,
3393
+ framesync_options,
3445
3394
  ),
3446
3395
  )
3447
3396
  return filter_node.video(0)
@@ -3451,17 +3400,18 @@ def overlay_vulkan(
3451
3400
  _main: VideoStream,
3452
3401
  _overlay: VideoStream,
3453
3402
  *,
3454
- x: Int = Default(0),
3455
- y: Int = Default(0),
3403
+ x: Int = Default("0"),
3404
+ y: Int = Default("0"),
3456
3405
  extra_options: dict[str, Any] | None = None,
3457
3406
  ) -> VideoStream:
3458
3407
  """
3459
3408
 
3460
- Overlay a source on top of another
3409
+ Overlay a source on top of another.
3461
3410
 
3462
3411
  Args:
3463
3412
  x: Set horizontal offset (from 0 to INT_MAX) (default 0)
3464
3413
  y: Set vertical offset (from 0 to INT_MAX) (default 0)
3414
+ extra_options: Extra options for the filter
3465
3415
 
3466
3416
  Returns:
3467
3417
  default: the video stream
@@ -3505,10 +3455,10 @@ def paletteuse(
3505
3455
  "atkinson",
3506
3456
  ]
3507
3457
  | Default = Default("sierra2_4a"),
3508
- bayer_scale: Int = Default(2),
3509
- diff_mode: Int | Literal["rectangle"] | Default = Default(0),
3510
- new: Boolean = Default(False),
3511
- alpha_threshold: Int = Default(128),
3458
+ bayer_scale: Int = Default("2"),
3459
+ diff_mode: Int | Literal["rectangle"] | Default = Default("0"),
3460
+ new: Boolean = Default("false"),
3461
+ alpha_threshold: Int = Default("128"),
3512
3462
  debug_kdtree: String = Default(None),
3513
3463
  extra_options: dict[str, Any] | None = None,
3514
3464
  ) -> VideoStream:
@@ -3523,6 +3473,7 @@ def paletteuse(
3523
3473
  new: take new palette for each output frame (default false)
3524
3474
  alpha_threshold: set the alpha threshold for transparency (from 0 to 255) (default 128)
3525
3475
  debug_kdtree: save Graphviz graph of the kdtree in specified file
3476
+ extra_options: Extra options for the filter
3526
3477
 
3527
3478
  Returns:
3528
3479
  default: the video stream
@@ -3556,9 +3507,9 @@ def paletteuse(
3556
3507
 
3557
3508
  def premultiply(
3558
3509
  *streams: VideoStream,
3559
- planes: Int = Default(15),
3560
- inplace: Boolean = Default(False),
3561
- enable: String = Default(None),
3510
+ planes: Int = Default("15"),
3511
+ inplace: Boolean = Default("false"),
3512
+ timeline_options: FFMpegTimelineOption | None = None,
3562
3513
  extra_options: dict[str, Any] | None = None,
3563
3514
  ) -> VideoStream:
3564
3515
  """
@@ -3568,7 +3519,8 @@ def premultiply(
3568
3519
  Args:
3569
3520
  planes: set planes (from 0 to 15) (default 15)
3570
3521
  inplace: enable inplace mode (default false)
3571
- enable: timeline editing
3522
+ timeline_options: Timeline options
3523
+ extra_options: Extra options for the filter
3572
3524
 
3573
3525
  Returns:
3574
3526
  default: the video stream
@@ -3588,9 +3540,9 @@ def premultiply(
3588
3540
  {
3589
3541
  "planes": planes,
3590
3542
  "inplace": inplace,
3591
- "enable": enable,
3592
3543
  },
3593
3544
  extra_options,
3545
+ timeline_options,
3594
3546
  ),
3595
3547
  )
3596
3548
  return filter_node.video(0)
@@ -3600,27 +3552,22 @@ def program_opencl(
3600
3552
  *streams: VideoStream,
3601
3553
  source: String = Default(None),
3602
3554
  kernel: String = Default(None),
3603
- inputs: Int = Default(1),
3555
+ inputs: Int = Default("1"),
3604
3556
  size: Image_size = Default(None),
3605
- eof_action: Int | Literal["repeat", "endall", "pass"] | Default = Default("repeat"),
3606
- shortest: Boolean = Default(False),
3607
- repeatlast: Boolean = Default(True),
3608
- ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
3557
+ framesync_options: FFMpegFrameSyncOption | None = None,
3609
3558
  extra_options: dict[str, Any] | None = None,
3610
3559
  ) -> VideoStream:
3611
3560
  """
3612
3561
 
3613
- Filter video using an OpenCL program
3562
+ Filter video using an OpenCL program.
3614
3563
 
3615
3564
  Args:
3616
3565
  source: OpenCL program source file
3617
3566
  kernel: Kernel name in program
3618
3567
  inputs: Number of inputs (from 1 to INT_MAX) (default 1)
3619
3568
  size: Video size
3620
- eof_action: Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
3621
- shortest: force termination when the shortest input terminates (default false)
3622
- repeatlast: extend last frame of secondary streams beyond EOF (default true)
3623
- ts_sync_mode: How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
3569
+ framesync_options: Framesync options
3570
+ extra_options: Extra options for the filter
3624
3571
 
3625
3572
  Returns:
3626
3573
  default: the video stream
@@ -3642,12 +3589,9 @@ def program_opencl(
3642
3589
  "kernel": kernel,
3643
3590
  "inputs": inputs,
3644
3591
  "size": size,
3645
- "eof_action": eof_action,
3646
- "shortest": shortest,
3647
- "repeatlast": repeatlast,
3648
- "ts_sync_mode": ts_sync_mode,
3649
3592
  },
3650
3593
  extra_options,
3594
+ framesync_options,
3651
3595
  ),
3652
3596
  )
3653
3597
  return filter_node.video(0)
@@ -3658,13 +3602,10 @@ def psnr(
3658
3602
  _reference: VideoStream,
3659
3603
  *,
3660
3604
  stats_file: String = Default(None),
3661
- stats_version: Int = Default(1),
3662
- output_max: Boolean = Default(False),
3663
- eof_action: Int | Literal["repeat", "endall", "pass"] | Default = Default("repeat"),
3664
- shortest: Boolean = Default(False),
3665
- repeatlast: Boolean = Default(True),
3666
- ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
3667
- enable: String = Default(None),
3605
+ stats_version: Int = Default("1"),
3606
+ output_max: Boolean = Default("false"),
3607
+ framesync_options: FFMpegFrameSyncOption | None = None,
3608
+ timeline_options: FFMpegTimelineOption | None = None,
3668
3609
  extra_options: dict[str, Any] | None = None,
3669
3610
  ) -> VideoStream:
3670
3611
  """
@@ -3675,11 +3616,9 @@ def psnr(
3675
3616
  stats_file: Set file where to store per-frame difference information
3676
3617
  stats_version: Set the format version for the stats file. (from 1 to 2) (default 1)
3677
3618
  output_max: Add raw stats (max values) to the output log. (default false)
3678
- eof_action: Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
3679
- shortest: force termination when the shortest input terminates (default false)
3680
- repeatlast: extend last frame of secondary streams beyond EOF (default true)
3681
- ts_sync_mode: How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
3682
- enable: timeline editing
3619
+ framesync_options: Framesync options
3620
+ timeline_options: Timeline options
3621
+ extra_options: Extra options for the filter
3683
3622
 
3684
3623
  Returns:
3685
3624
  default: the video stream
@@ -3699,13 +3638,10 @@ def psnr(
3699
3638
  "stats_file": stats_file,
3700
3639
  "stats_version": stats_version,
3701
3640
  "output_max": output_max,
3702
- "eof_action": eof_action,
3703
- "shortest": shortest,
3704
- "repeatlast": repeatlast,
3705
- "ts_sync_mode": ts_sync_mode,
3706
- "enable": enable,
3707
3641
  },
3708
3642
  extra_options,
3643
+ framesync_options,
3644
+ timeline_options,
3709
3645
  ),
3710
3646
  )
3711
3647
  return filter_node.video(0)
@@ -3727,6 +3663,7 @@ def remap(
3727
3663
  Args:
3728
3664
  format: set output format (from 0 to 1) (default color)
3729
3665
  fill: set the color of the unmapped pixels (default "black")
3666
+ extra_options: Extra options for the filter
3730
3667
 
3731
3668
  Returns:
3732
3669
  default: the video stream
@@ -3771,6 +3708,7 @@ def remap_opencl(
3771
3708
  Args:
3772
3709
  interp: set interpolation method (from 0 to 1) (default linear)
3773
3710
  fill: set the color of the unmapped pixels (default "black")
3711
+ extra_options: Extra options for the filter
3774
3712
 
3775
3713
  Returns:
3776
3714
  default: the video stream
@@ -3803,18 +3741,18 @@ def sidechaincompress(
3803
3741
  _main: AudioStream,
3804
3742
  _sidechain: AudioStream,
3805
3743
  *,
3806
- level_in: Double = Default(1.0),
3744
+ level_in: Double = Default("1"),
3807
3745
  mode: Int | Literal["downward", "upward"] | Default = Default("downward"),
3808
- threshold: Double = Default(0.125),
3809
- ratio: Double = Default(2.0),
3810
- attack: Double = Default(20.0),
3811
- release: Double = Default(250.0),
3812
- makeup: Double = Default(1.0),
3813
- knee: Double = Default(2.82843),
3746
+ threshold: Double = Default("0.125"),
3747
+ ratio: Double = Default("2"),
3748
+ attack: Double = Default("20"),
3749
+ release: Double = Default("250"),
3750
+ makeup: Double = Default("1"),
3751
+ knee: Double = Default("2.82843"),
3814
3752
  link: Int | Literal["average", "maximum"] | Default = Default("average"),
3815
3753
  detection: Int | Literal["peak", "rms"] | Default = Default("rms"),
3816
- level_sc: Double = Default(1.0),
3817
- mix: Double = Default(1.0),
3754
+ level_sc: Double = Default("1"),
3755
+ mix: Double = Default("1"),
3818
3756
  extra_options: dict[str, Any] | None = None,
3819
3757
  ) -> AudioStream:
3820
3758
  """
@@ -3834,6 +3772,7 @@ def sidechaincompress(
3834
3772
  detection: set detection (from 0 to 1) (default rms)
3835
3773
  level_sc: set sidechain gain (from 0.015625 to 64) (default 1)
3836
3774
  mix: set mix (from 0 to 1) (default 1)
3775
+ extra_options: Extra options for the filter
3837
3776
 
3838
3777
  Returns:
3839
3778
  default: the audio stream
@@ -3875,19 +3814,19 @@ def sidechaingate(
3875
3814
  _main: AudioStream,
3876
3815
  _sidechain: AudioStream,
3877
3816
  *,
3878
- level_in: Double = Default(1.0),
3817
+ level_in: Double = Default("1"),
3879
3818
  mode: Int | Literal["downward", "upward"] | Default = Default("downward"),
3880
- range: Double = Default(0.06125),
3881
- threshold: Double = Default(0.125),
3882
- ratio: Double = Default(2.0),
3883
- attack: Double = Default(20.0),
3884
- release: Double = Default(250.0),
3885
- makeup: Double = Default(1.0),
3886
- knee: Double = Default(2.82843),
3819
+ range: Double = Default("0.06125"),
3820
+ threshold: Double = Default("0.125"),
3821
+ ratio: Double = Default("2"),
3822
+ attack: Double = Default("20"),
3823
+ release: Double = Default("250"),
3824
+ makeup: Double = Default("1"),
3825
+ knee: Double = Default("2.82843"),
3887
3826
  detection: Int | Literal["peak", "rms"] | Default = Default("rms"),
3888
3827
  link: Int | Literal["average", "maximum"] | Default = Default("average"),
3889
- level_sc: Double = Default(1.0),
3890
- enable: String = Default(None),
3828
+ level_sc: Double = Default("1"),
3829
+ timeline_options: FFMpegTimelineOption | None = None,
3891
3830
  extra_options: dict[str, Any] | None = None,
3892
3831
  ) -> AudioStream:
3893
3832
  """
@@ -3907,7 +3846,8 @@ def sidechaingate(
3907
3846
  detection: set detection (from 0 to 1) (default rms)
3908
3847
  link: set link (from 0 to 1) (default average)
3909
3848
  level_sc: set sidechain gain (from 0.015625 to 64) (default 1)
3910
- enable: timeline editing
3849
+ timeline_options: Timeline options
3850
+ extra_options: Extra options for the filter
3911
3851
 
3912
3852
  Returns:
3913
3853
  default: the audio stream
@@ -3938,9 +3878,9 @@ def sidechaingate(
3938
3878
  "detection": detection,
3939
3879
  "link": link,
3940
3880
  "level_sc": level_sc,
3941
- "enable": enable,
3942
3881
  },
3943
3882
  extra_options,
3883
+ timeline_options,
3944
3884
  ),
3945
3885
  )
3946
3886
  return filter_node.audio(0)
@@ -3952,16 +3892,16 @@ def signature(
3952
3892
  nb_inputs: Int = Auto("len(streams)"),
3953
3893
  filename: String = Default(""),
3954
3894
  format: Int | Literal["binary", "xml"] | Default = Default("binary"),
3955
- th_d: Int = Default(9000),
3956
- th_dc: Int = Default(60000),
3957
- th_xh: Int = Default(116),
3958
- th_di: Int = Default(0),
3959
- th_it: Double = Default(0.5),
3895
+ th_d: Int = Default("9000"),
3896
+ th_dc: Int = Default("60000"),
3897
+ th_xh: Int = Default("116"),
3898
+ th_di: Int = Default("0"),
3899
+ th_it: Double = Default("0.5"),
3960
3900
  extra_options: dict[str, Any] | None = None,
3961
3901
  ) -> VideoStream:
3962
3902
  """
3963
3903
 
3964
- Calculate the MPEG-7 video signature
3904
+ Calculate the MPEG-7 video signature.
3965
3905
 
3966
3906
  Args:
3967
3907
  detectmode: set the detectmode (from 0 to 2) (default off)
@@ -3973,6 +3913,7 @@ def signature(
3973
3913
  th_xh: threshold to detect frames as similar (from 1 to INT_MAX) (default 116)
3974
3914
  th_di: minimum length of matching sequence in frames (from 0 to INT_MAX) (default 0)
3975
3915
  th_it: threshold for relation of good to all frames (from 0 to 1) (default 0.5)
3916
+ extra_options: Extra options for the filter
3976
3917
 
3977
3918
  Returns:
3978
3919
  default: the video stream
@@ -4010,8 +3951,8 @@ def spectrumsynth(
4010
3951
  _magnitude: VideoStream,
4011
3952
  _phase: VideoStream,
4012
3953
  *,
4013
- sample_rate: Int = Default(44100),
4014
- channels: Int = Default(1),
3954
+ sample_rate: Int = Default("44100"),
3955
+ channels: Int = Default("1"),
4015
3956
  scale: Int | Literal["lin", "log"] | Default = Default("log"),
4016
3957
  slide: Int
4017
3958
  | Literal["replace", "scroll", "fullframe", "rscroll"]
@@ -4042,7 +3983,7 @@ def spectrumsynth(
4042
3983
  "kaiser",
4043
3984
  ]
4044
3985
  | Default = Default("rect"),
4045
- overlap: Float = Default(1.0),
3986
+ overlap: Float = Default("1"),
4046
3987
  orientation: Int | Literal["vertical", "horizontal"] | Default = Default(
4047
3988
  "vertical"
4048
3989
  ),
@@ -4060,6 +4001,7 @@ def spectrumsynth(
4060
4001
  win_func: set window function (from 0 to 20) (default rect)
4061
4002
  overlap: set window overlap (from 0 to 1) (default 1)
4062
4003
  orientation: set orientation (from 0 to 1) (default vertical)
4004
+ extra_options: Extra options for the filter
4063
4005
 
4064
4006
  Returns:
4065
4007
  default: the audio stream
@@ -4097,11 +4039,8 @@ def ssim(
4097
4039
  _reference: VideoStream,
4098
4040
  *,
4099
4041
  stats_file: String = Default(None),
4100
- eof_action: Int | Literal["repeat", "endall", "pass"] | Default = Default("repeat"),
4101
- shortest: Boolean = Default(False),
4102
- repeatlast: Boolean = Default(True),
4103
- ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
4104
- enable: String = Default(None),
4042
+ framesync_options: FFMpegFrameSyncOption | None = None,
4043
+ timeline_options: FFMpegTimelineOption | None = None,
4105
4044
  extra_options: dict[str, Any] | None = None,
4106
4045
  ) -> VideoStream:
4107
4046
  """
@@ -4110,11 +4049,9 @@ def ssim(
4110
4049
 
4111
4050
  Args:
4112
4051
  stats_file: Set file where to store per-frame difference information
4113
- eof_action: Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
4114
- shortest: force termination when the shortest input terminates (default false)
4115
- repeatlast: extend last frame of secondary streams beyond EOF (default true)
4116
- ts_sync_mode: How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
4117
- enable: timeline editing
4052
+ framesync_options: Framesync options
4053
+ timeline_options: Timeline options
4054
+ extra_options: Extra options for the filter
4118
4055
 
4119
4056
  Returns:
4120
4057
  default: the video stream
@@ -4132,13 +4069,10 @@ def ssim(
4132
4069
  **merge(
4133
4070
  {
4134
4071
  "stats_file": stats_file,
4135
- "eof_action": eof_action,
4136
- "shortest": shortest,
4137
- "repeatlast": repeatlast,
4138
- "ts_sync_mode": ts_sync_mode,
4139
- "enable": enable,
4140
4072
  },
4141
4073
  extra_options,
4074
+ framesync_options,
4075
+ timeline_options,
4142
4076
  ),
4143
4077
  )
4144
4078
  return filter_node.video(0)
@@ -4152,11 +4086,12 @@ def streamselect(
4152
4086
  ) -> FilterNode:
4153
4087
  """
4154
4088
 
4155
- Select video streams
4089
+ Select video streams.
4156
4090
 
4157
4091
  Args:
4158
4092
  inputs: number of input streams (from 2 to INT_MAX) (default 2)
4159
4093
  map: input indexes to remap to outputs
4094
+ extra_options: Extra options for the filter
4160
4095
 
4161
4096
  Returns:
4162
4097
  filter_node: the filter node
@@ -4191,8 +4126,8 @@ def threshold(
4191
4126
  _min: VideoStream,
4192
4127
  _max: VideoStream,
4193
4128
  *,
4194
- planes: Int = Default(15),
4195
- enable: String = Default(None),
4129
+ planes: Int = Default("15"),
4130
+ timeline_options: FFMpegTimelineOption | None = None,
4196
4131
  extra_options: dict[str, Any] | None = None,
4197
4132
  ) -> VideoStream:
4198
4133
  """
@@ -4201,7 +4136,8 @@ def threshold(
4201
4136
 
4202
4137
  Args:
4203
4138
  planes: set planes to filter (from 0 to 15) (default 15)
4204
- enable: timeline editing
4139
+ timeline_options: Timeline options
4140
+ extra_options: Extra options for the filter
4205
4141
 
4206
4142
  Returns:
4207
4143
  default: the video stream
@@ -4223,9 +4159,9 @@ def threshold(
4223
4159
  **merge(
4224
4160
  {
4225
4161
  "planes": planes,
4226
- "enable": enable,
4227
4162
  },
4228
4163
  extra_options,
4164
+ timeline_options,
4229
4165
  ),
4230
4166
  )
4231
4167
  return filter_node.video(0)
@@ -4233,9 +4169,9 @@ def threshold(
4233
4169
 
4234
4170
  def unpremultiply(
4235
4171
  *streams: VideoStream,
4236
- planes: Int = Default(15),
4237
- inplace: Boolean = Default(False),
4238
- enable: String = Default(None),
4172
+ planes: Int = Default("15"),
4173
+ inplace: Boolean = Default("false"),
4174
+ timeline_options: FFMpegTimelineOption | None = None,
4239
4175
  extra_options: dict[str, Any] | None = None,
4240
4176
  ) -> VideoStream:
4241
4177
  """
@@ -4245,7 +4181,8 @@ def unpremultiply(
4245
4181
  Args:
4246
4182
  planes: set planes (from 0 to 15) (default 15)
4247
4183
  inplace: enable inplace mode (default false)
4248
- enable: timeline editing
4184
+ timeline_options: Timeline options
4185
+ extra_options: Extra options for the filter
4249
4186
 
4250
4187
  Returns:
4251
4188
  default: the video stream
@@ -4265,9 +4202,9 @@ def unpremultiply(
4265
4202
  {
4266
4203
  "planes": planes,
4267
4204
  "inplace": inplace,
4268
- "enable": enable,
4269
4205
  },
4270
4206
  extra_options,
4207
+ timeline_options,
4271
4208
  ),
4272
4209
  )
4273
4210
  return filter_node.video(0)
@@ -4277,14 +4214,11 @@ def varblur(
4277
4214
  _default: VideoStream,
4278
4215
  _radius: VideoStream,
4279
4216
  *,
4280
- min_r: Int = Default(0),
4281
- max_r: Int = Default(8),
4282
- planes: Int = Default(15),
4283
- eof_action: Int | Literal["repeat", "endall", "pass"] | Default = Default("repeat"),
4284
- shortest: Boolean = Default(False),
4285
- repeatlast: Boolean = Default(True),
4286
- ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
4287
- enable: String = Default(None),
4217
+ min_r: Int = Default("0"),
4218
+ max_r: Int = Default("8"),
4219
+ planes: Int = Default("15"),
4220
+ framesync_options: FFMpegFrameSyncOption | None = None,
4221
+ timeline_options: FFMpegTimelineOption | None = None,
4288
4222
  extra_options: dict[str, Any] | None = None,
4289
4223
  ) -> VideoStream:
4290
4224
  """
@@ -4295,11 +4229,9 @@ def varblur(
4295
4229
  min_r: set min blur radius (from 0 to 254) (default 0)
4296
4230
  max_r: set max blur radius (from 1 to 255) (default 8)
4297
4231
  planes: set planes to filter (from 0 to 15) (default 15)
4298
- eof_action: Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
4299
- shortest: force termination when the shortest input terminates (default false)
4300
- repeatlast: extend last frame of secondary streams beyond EOF (default true)
4301
- ts_sync_mode: How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
4302
- enable: timeline editing
4232
+ framesync_options: Framesync options
4233
+ timeline_options: Timeline options
4234
+ extra_options: Extra options for the filter
4303
4235
 
4304
4236
  Returns:
4305
4237
  default: the video stream
@@ -4319,13 +4251,10 @@ def varblur(
4319
4251
  "min_r": min_r,
4320
4252
  "max_r": max_r,
4321
4253
  "planes": planes,
4322
- "eof_action": eof_action,
4323
- "shortest": shortest,
4324
- "repeatlast": repeatlast,
4325
- "ts_sync_mode": ts_sync_mode,
4326
- "enable": enable,
4327
4254
  },
4328
4255
  extra_options,
4256
+ framesync_options,
4257
+ timeline_options,
4329
4258
  ),
4330
4259
  )
4331
4260
  return filter_node.video(0)
@@ -4334,12 +4263,8 @@ def varblur(
4334
4263
  def vif(
4335
4264
  _main: VideoStream,
4336
4265
  _reference: VideoStream,
4337
- *,
4338
- eof_action: Int | Literal["repeat", "endall", "pass"] | Default = Default("repeat"),
4339
- shortest: Boolean = Default(False),
4340
- repeatlast: Boolean = Default(True),
4341
- ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
4342
- enable: String = Default(None),
4266
+ framesync_options: FFMpegFrameSyncOption | None = None,
4267
+ timeline_options: FFMpegTimelineOption | None = None,
4343
4268
  extra_options: dict[str, Any] | None = None,
4344
4269
  ) -> VideoStream:
4345
4270
  """
@@ -4347,11 +4272,9 @@ def vif(
4347
4272
  Calculate the VIF between two video streams.
4348
4273
 
4349
4274
  Args:
4350
- eof_action: Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
4351
- shortest: force termination when the shortest input terminates (default false)
4352
- repeatlast: extend last frame of secondary streams beyond EOF (default true)
4353
- ts_sync_mode: How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
4354
- enable: timeline editing
4275
+ framesync_options: Framesync options
4276
+ timeline_options: Timeline options
4277
+ extra_options: Extra options for the filter
4355
4278
 
4356
4279
  Returns:
4357
4280
  default: the video stream
@@ -4367,14 +4290,10 @@ def vif(
4367
4290
  _main,
4368
4291
  _reference,
4369
4292
  **merge(
4370
- {
4371
- "eof_action": eof_action,
4372
- "shortest": shortest,
4373
- "repeatlast": repeatlast,
4374
- "ts_sync_mode": ts_sync_mode,
4375
- "enable": enable,
4376
- },
4293
+ {},
4377
4294
  extra_options,
4295
+ framesync_options,
4296
+ timeline_options,
4378
4297
  ),
4379
4298
  )
4380
4299
  return filter_node.video(0)
@@ -4383,7 +4302,7 @@ def vif(
4383
4302
  def vstack(
4384
4303
  *streams: VideoStream,
4385
4304
  inputs: Int = Auto("len(streams)"),
4386
- shortest: Boolean = Default(False),
4305
+ shortest: Boolean = Default("false"),
4387
4306
  extra_options: dict[str, Any] | None = None,
4388
4307
  ) -> VideoStream:
4389
4308
  """
@@ -4393,6 +4312,7 @@ def vstack(
4393
4312
  Args:
4394
4313
  inputs: set number of inputs (from 2 to INT_MAX) (default 2)
4395
4314
  shortest: force termination when the shortest input terminates (default false)
4315
+ extra_options: Extra options for the filter
4396
4316
 
4397
4317
  Returns:
4398
4318
  default: the video stream
@@ -4421,19 +4341,20 @@ def vstack(
4421
4341
 
4422
4342
  def vstack_vaapi(
4423
4343
  *streams: VideoStream,
4424
- inputs: Int = Default(2),
4425
- shortest: Boolean = Default(False),
4426
- width: Int = Default(0),
4344
+ inputs: Int = Default("2"),
4345
+ shortest: Boolean = Default("false"),
4346
+ width: Int = Default("0"),
4427
4347
  extra_options: dict[str, Any] | None = None,
4428
4348
  ) -> VideoStream:
4429
4349
  """
4430
4350
 
4431
- "VA-API" vstack
4351
+ "VA-API" vstack.
4432
4352
 
4433
4353
  Args:
4434
4354
  inputs: Set number of inputs (from 2 to 65535) (default 2)
4435
4355
  shortest: Force termination when the shortest input terminates (default false)
4436
4356
  width: Set output width (0 to use the width of input 0) (from 0 to 65535) (default 0)
4357
+ extra_options: Extra options for the filter
4437
4358
 
4438
4359
  Returns:
4439
4360
  default: the video stream
@@ -4465,13 +4386,10 @@ def xcorrelate(
4465
4386
  _primary: VideoStream,
4466
4387
  _secondary: VideoStream,
4467
4388
  *,
4468
- planes: Int = Default(7),
4389
+ planes: Int = Default("7"),
4469
4390
  secondary: Int | Literal["first", "all"] | Default = Default("all"),
4470
- eof_action: Int | Literal["repeat", "endall", "pass"] | Default = Default("repeat"),
4471
- shortest: Boolean = Default(False),
4472
- repeatlast: Boolean = Default(True),
4473
- ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
4474
- enable: String = Default(None),
4391
+ framesync_options: FFMpegFrameSyncOption | None = None,
4392
+ timeline_options: FFMpegTimelineOption | None = None,
4475
4393
  extra_options: dict[str, Any] | None = None,
4476
4394
  ) -> VideoStream:
4477
4395
  """
@@ -4481,11 +4399,9 @@ def xcorrelate(
4481
4399
  Args:
4482
4400
  planes: set planes to cross-correlate (from 0 to 15) (default 7)
4483
4401
  secondary: when to process secondary frame (from 0 to 1) (default all)
4484
- eof_action: Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
4485
- shortest: force termination when the shortest input terminates (default false)
4486
- repeatlast: extend last frame of secondary streams beyond EOF (default true)
4487
- ts_sync_mode: How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
4488
- enable: timeline editing
4402
+ framesync_options: Framesync options
4403
+ timeline_options: Timeline options
4404
+ extra_options: Extra options for the filter
4489
4405
 
4490
4406
  Returns:
4491
4407
  default: the video stream
@@ -4506,13 +4422,10 @@ def xcorrelate(
4506
4422
  {
4507
4423
  "planes": planes,
4508
4424
  "secondary": secondary,
4509
- "eof_action": eof_action,
4510
- "shortest": shortest,
4511
- "repeatlast": repeatlast,
4512
- "ts_sync_mode": ts_sync_mode,
4513
- "enable": enable,
4514
4425
  },
4515
4426
  extra_options,
4427
+ framesync_options,
4428
+ timeline_options,
4516
4429
  ),
4517
4430
  )
4518
4431
  return filter_node.video(0)
@@ -4585,8 +4498,8 @@ def xfade(
4585
4498
  "revealdown",
4586
4499
  ]
4587
4500
  | Default = Default("fade"),
4588
- duration: Duration = Default(1.0),
4589
- offset: Duration = Default(0.0),
4501
+ duration: Duration = Default("1"),
4502
+ offset: Duration = Default("0"),
4590
4503
  expr: String = Default(None),
4591
4504
  extra_options: dict[str, Any] | None = None,
4592
4505
  ) -> VideoStream:
@@ -4599,6 +4512,7 @@ def xfade(
4599
4512
  duration: set cross fade duration (default 1)
4600
4513
  offset: set cross fade start relative to first input stream (default 0)
4601
4514
  expr: set expression for custom transition
4515
+ extra_options: Extra options for the filter
4602
4516
 
4603
4517
  Returns:
4604
4518
  default: the video stream
@@ -4646,8 +4560,8 @@ def xfade_opencl(
4646
4560
  | Default = Default("fade"),
4647
4561
  source: String = Default(None),
4648
4562
  kernel: String = Default(None),
4649
- duration: Duration = Default(1.0),
4650
- offset: Duration = Default(0.0),
4563
+ duration: Duration = Default("1"),
4564
+ offset: Duration = Default("0"),
4651
4565
  extra_options: dict[str, Any] | None = None,
4652
4566
  ) -> VideoStream:
4653
4567
  """
@@ -4660,6 +4574,7 @@ def xfade_opencl(
4660
4574
  kernel: set kernel name in program file for custom transition
4661
4575
  duration: set cross fade duration (default 1)
4662
4576
  offset: set cross fade start relative to first input stream (default 0)
4577
+ extra_options: Extra options for the filter
4663
4578
 
4664
4579
  Returns:
4665
4580
  default: the video stream
@@ -4693,13 +4608,10 @@ def xfade_opencl(
4693
4608
  def xmedian(
4694
4609
  *streams: VideoStream,
4695
4610
  inputs: Int = Auto("len(streams)"),
4696
- planes: Int = Default(15),
4697
- percentile: Float = Default(0.5),
4698
- eof_action: Int | Literal["repeat", "endall", "pass"] | Default = Default("repeat"),
4699
- shortest: Boolean = Default(False),
4700
- repeatlast: Boolean = Default(True),
4701
- ts_sync_mode: Int | Literal["default", "nearest"] | Default = Default("default"),
4702
- enable: String = Default(None),
4611
+ planes: Int = Default("15"),
4612
+ percentile: Float = Default("0.5"),
4613
+ framesync_options: FFMpegFrameSyncOption | None = None,
4614
+ timeline_options: FFMpegTimelineOption | None = None,
4703
4615
  extra_options: dict[str, Any] | None = None,
4704
4616
  ) -> VideoStream:
4705
4617
  """
@@ -4710,11 +4622,9 @@ def xmedian(
4710
4622
  inputs: set number of inputs (from 3 to 255) (default 3)
4711
4623
  planes: set planes to filter (from 0 to 15) (default 15)
4712
4624
  percentile: set percentile (from 0 to 1) (default 0.5)
4713
- eof_action: Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
4714
- shortest: force termination when the shortest input terminates (default false)
4715
- repeatlast: extend last frame of secondary streams beyond EOF (default true)
4716
- ts_sync_mode: How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
4717
- enable: timeline editing
4625
+ framesync_options: Framesync options
4626
+ timeline_options: Timeline options
4627
+ extra_options: Extra options for the filter
4718
4628
 
4719
4629
  Returns:
4720
4630
  default: the video stream
@@ -4735,13 +4645,10 @@ def xmedian(
4735
4645
  "inputs": inputs,
4736
4646
  "planes": planes,
4737
4647
  "percentile": percentile,
4738
- "eof_action": eof_action,
4739
- "shortest": shortest,
4740
- "repeatlast": repeatlast,
4741
- "ts_sync_mode": ts_sync_mode,
4742
- "enable": enable,
4743
4648
  },
4744
4649
  extra_options,
4650
+ framesync_options,
4651
+ timeline_options,
4745
4652
  ),
4746
4653
  )
4747
4654
  return filter_node.video(0)
@@ -4752,7 +4659,7 @@ def xstack(
4752
4659
  inputs: Int = Auto("len(streams)"),
4753
4660
  layout: String = Default(None),
4754
4661
  grid: Image_size = Default(None),
4755
- shortest: Boolean = Default(False),
4662
+ shortest: Boolean = Default("false"),
4756
4663
  fill: String = Default("none"),
4757
4664
  extra_options: dict[str, Any] | None = None,
4758
4665
  ) -> VideoStream:
@@ -4766,6 +4673,7 @@ def xstack(
4766
4673
  grid: set fixed size grid layout
4767
4674
  shortest: force termination when the shortest input terminates (default false)
4768
4675
  fill: set the color for unused pixels (default "none")
4676
+ extra_options: Extra options for the filter
4769
4677
 
4770
4678
  Returns:
4771
4679
  default: the video stream
@@ -4797,8 +4705,8 @@ def xstack(
4797
4705
 
4798
4706
  def xstack_vaapi(
4799
4707
  *streams: VideoStream,
4800
- inputs: Int = Default(2),
4801
- shortest: Boolean = Default(False),
4708
+ inputs: Int = Default("2"),
4709
+ shortest: Boolean = Default("false"),
4802
4710
  layout: String = Default(None),
4803
4711
  grid: Image_size = Default(None),
4804
4712
  grid_tile_size: Image_size = Default(None),
@@ -4807,7 +4715,7 @@ def xstack_vaapi(
4807
4715
  ) -> VideoStream:
4808
4716
  """
4809
4717
 
4810
- "VA-API" xstack
4718
+ "VA-API" xstack.
4811
4719
 
4812
4720
  Args:
4813
4721
  inputs: Set number of inputs (from 2 to 65535) (default 2)
@@ -4816,6 +4724,7 @@ def xstack_vaapi(
4816
4724
  grid: set fixed size grid layout
4817
4725
  grid_tile_size: set tile size in grid layout
4818
4726
  fill: Set the color for unused pixels (default "none")
4727
+ extra_options: Extra options for the filter
4819
4728
 
4820
4729
  Returns:
4821
4730
  default: the video stream