typed-ffmpeg-compatible 2.1.0a0__py3-none-any.whl → 2.2.0__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -9,7 +9,7 @@ from ..common.schema import FFMpegFilterDef
9
9
  from ..dag.factory import filter_node_factory
10
10
  from ..dag.nodes import FilterableStream, FilterNode
11
11
  from ..schema import Default
12
- from ..types import Boolean, Color, Double, Duration, Flags, Float, Image_size, Int, Int64, String, Video_rate
12
+ from ..types import Boolean, Color, Double, Duration, Flags, Float, Image_size, Int, Int64, Rational, String, Video_rate
13
13
 
14
14
  if TYPE_CHECKING:
15
15
  from .video import VideoStream
@@ -28,6 +28,7 @@ class AudioStream(FilterableStream):
28
28
  xzoom: Float = Default(1.0),
29
29
  xpos: Float = Default(0.0),
30
30
  length: Int = Default(15),
31
+ extra_options: dict[str, Any] = None,
31
32
  **kwargs: Any,
32
33
  ) -> VideoStream:
33
34
  """
@@ -66,12 +67,17 @@ class AudioStream(FilterableStream):
66
67
  "xpos": xpos,
67
68
  "length": length,
68
69
  }
70
+ | (extra_options or {})
69
71
  | kwargs,
70
72
  )
71
73
  return filter_node.video(0)
72
74
 
73
75
  def abench(
74
- self, *, action: Int | Literal["start", "stop"] | Default = Default("start"), **kwargs: Any
76
+ self,
77
+ *,
78
+ action: Int | Literal["start", "stop"] | Default = Default("start"),
79
+ extra_options: dict[str, Any] = None,
80
+ **kwargs: Any,
75
81
  ) -> AudioStream:
76
82
  """
77
83
 
@@ -93,6 +99,7 @@ class AudioStream(FilterableStream):
93
99
  **{
94
100
  "action": action,
95
101
  }
102
+ | (extra_options or {})
96
103
  | kwargs,
97
104
  )
98
105
  return filter_node.audio(0)
@@ -104,6 +111,7 @@ class AudioStream(FilterableStream):
104
111
  size: Image_size = Default("1024x256"),
105
112
  colors: String = Default("red|green|blue|yellow|orange|lime|pink|magenta|brown"),
106
113
  mode: Int | Literal["bars", "trace"] | Default = Default("bars"),
114
+ extra_options: dict[str, Any] = None,
107
115
  **kwargs: Any,
108
116
  ) -> VideoStream:
109
117
  """
@@ -132,6 +140,7 @@ class AudioStream(FilterableStream):
132
140
  "colors": colors,
133
141
  "mode": mode,
134
142
  }
143
+ | (extra_options or {})
135
144
  | kwargs,
136
145
  )
137
146
  return filter_node.video(0)
@@ -151,6 +160,7 @@ class AudioStream(FilterableStream):
151
160
  detection: Int | Literal["peak", "rms"] | Default = Default("rms"),
152
161
  level_sc: Double = Default(1.0),
153
162
  mix: Double = Default(1.0),
163
+ extra_options: dict[str, Any] = None,
154
164
  **kwargs: Any,
155
165
  ) -> AudioStream:
156
166
  """
@@ -195,11 +205,14 @@ class AudioStream(FilterableStream):
195
205
  "level_sc": level_sc,
196
206
  "mix": mix,
197
207
  }
208
+ | (extra_options or {})
198
209
  | kwargs,
199
210
  )
200
211
  return filter_node.audio(0)
201
212
 
202
- def acontrast(self, *, contrast: Float = Default(33.0), **kwargs: Any) -> AudioStream:
213
+ def acontrast(
214
+ self, *, contrast: Float = Default(33.0), extra_options: dict[str, Any] = None, **kwargs: Any
215
+ ) -> AudioStream:
203
216
  """
204
217
 
205
218
  Simple audio dynamic range compression/expansion filter.
@@ -220,11 +233,12 @@ class AudioStream(FilterableStream):
220
233
  **{
221
234
  "contrast": contrast,
222
235
  }
236
+ | (extra_options or {})
223
237
  | kwargs,
224
238
  )
225
239
  return filter_node.audio(0)
226
240
 
227
- def acopy(self, **kwargs: Any) -> AudioStream:
241
+ def acopy(self, extra_options: dict[str, Any] = None, **kwargs: Any) -> AudioStream:
228
242
  """
229
243
 
230
244
  Copy the input audio unchanged to the output.
@@ -237,7 +251,9 @@ class AudioStream(FilterableStream):
237
251
 
238
252
  """
239
253
  filter_node = filter_node_factory(
240
- FFMpegFilterDef(name="acopy", typings_input=("audio",), typings_output=("audio",)), self, **{} | kwargs
254
+ FFMpegFilterDef(name="acopy", typings_input=("audio",), typings_output=("audio",)),
255
+ self,
256
+ **{} | (extra_options or {}) | kwargs,
241
257
  )
242
258
  return filter_node.audio(0)
243
259
 
@@ -270,6 +286,10 @@ class AudioStream(FilterableStream):
270
286
  "losi",
271
287
  "sinc",
272
288
  "isinc",
289
+ "quat",
290
+ "quatr",
291
+ "qsin2",
292
+ "hsin2",
273
293
  ]
274
294
  | Default = Default("tri"),
275
295
  curve2: Int
@@ -294,8 +314,13 @@ class AudioStream(FilterableStream):
294
314
  "losi",
295
315
  "sinc",
296
316
  "isinc",
317
+ "quat",
318
+ "quatr",
319
+ "qsin2",
320
+ "hsin2",
297
321
  ]
298
322
  | Default = Default("tri"),
323
+ extra_options: dict[str, Any] = None,
299
324
  **kwargs: Any,
300
325
  ) -> AudioStream:
301
326
  """
@@ -306,8 +331,8 @@ class AudioStream(FilterableStream):
306
331
  nb_samples: set number of samples for cross fade duration (from 1 to 2.14748e+08) (default 44100)
307
332
  duration: set cross fade duration (default 0)
308
333
  overlap: overlap 1st stream end with 2nd stream start (default true)
309
- curve1: set fade curve type for 1st stream (from -1 to 18) (default tri)
310
- curve2: set fade curve type for 2nd stream (from -1 to 18) (default tri)
334
+ curve1: set fade curve type for 1st stream (from -1 to 22) (default tri)
335
+ curve2: set fade curve type for 2nd stream (from -1 to 22) (default tri)
311
336
 
312
337
  Returns:
313
338
  default: the audio stream
@@ -327,6 +352,7 @@ class AudioStream(FilterableStream):
327
352
  "curve1": curve1,
328
353
  "curve2": curve2,
329
354
  }
355
+ | (extra_options or {})
330
356
  | kwargs,
331
357
  )
332
358
  return filter_node.audio(0)
@@ -341,6 +367,7 @@ class AudioStream(FilterableStream):
341
367
  level: Float = Default(1.0),
342
368
  gain: String = Default("1.f"),
343
369
  precision: Int | Literal["auto", "float", "double"] | Default = Default("auto"),
370
+ extra_options: dict[str, Any] = None,
344
371
  **kwargs: Any,
345
372
  ) -> FilterNode:
346
373
  """
@@ -376,6 +403,7 @@ class AudioStream(FilterableStream):
376
403
  "gain": gain,
377
404
  "precision": precision,
378
405
  }
406
+ | (extra_options or {})
379
407
  | kwargs,
380
408
  )
381
409
 
@@ -396,6 +424,7 @@ class AudioStream(FilterableStream):
396
424
  lforange: Double = Default(20.0),
397
425
  lforate: Double = Default(0.3),
398
426
  enable: String = Default(None),
427
+ extra_options: dict[str, Any] = None,
399
428
  **kwargs: Any,
400
429
  ) -> AudioStream:
401
430
  """
@@ -440,6 +469,7 @@ class AudioStream(FilterableStream):
440
469
  "lforate": lforate,
441
470
  "enable": enable,
442
471
  }
472
+ | (extra_options or {})
443
473
  | kwargs,
444
474
  )
445
475
  return filter_node.audio(0)
@@ -450,6 +480,7 @@ class AudioStream(FilterableStream):
450
480
  cue: Int64 = Default(0),
451
481
  preroll: Duration = Default(0.0),
452
482
  buffer: Duration = Default(0.0),
483
+ extra_options: dict[str, Any] = None,
453
484
  **kwargs: Any,
454
485
  ) -> AudioStream:
455
486
  """
@@ -476,6 +507,7 @@ class AudioStream(FilterableStream):
476
507
  "preroll": preroll,
477
508
  "buffer": buffer,
478
509
  }
510
+ | (extra_options or {})
479
511
  | kwargs,
480
512
  )
481
513
  return filter_node.audio(0)
@@ -490,6 +522,7 @@ class AudioStream(FilterableStream):
490
522
  burst: Double = Default(2.0),
491
523
  method: Int | Literal["add", "a", "save", "s"] | Default = Default("add"),
492
524
  enable: String = Default(None),
525
+ extra_options: dict[str, Any] = None,
493
526
  **kwargs: Any,
494
527
  ) -> AudioStream:
495
528
  """
@@ -524,6 +557,7 @@ class AudioStream(FilterableStream):
524
557
  "method": method,
525
558
  "enable": enable,
526
559
  }
560
+ | (extra_options or {})
527
561
  | kwargs,
528
562
  )
529
563
  return filter_node.audio(0)
@@ -538,6 +572,7 @@ class AudioStream(FilterableStream):
538
572
  hsize: Int = Default(1000),
539
573
  method: Int | Literal["add", "a", "save", "s"] | Default = Default("add"),
540
574
  enable: String = Default(None),
575
+ extra_options: dict[str, Any] = None,
541
576
  **kwargs: Any,
542
577
  ) -> AudioStream:
543
578
  """
@@ -572,12 +607,19 @@ class AudioStream(FilterableStream):
572
607
  "method": method,
573
608
  "enable": enable,
574
609
  }
610
+ | (extra_options or {})
575
611
  | kwargs,
576
612
  )
577
613
  return filter_node.audio(0)
578
614
 
579
615
  def adecorrelate(
580
- self, *, stages: Int = Default(6), seed: Int64 = Default(-1), enable: String = Default(None), **kwargs: Any
616
+ self,
617
+ *,
618
+ stages: Int = Default(6),
619
+ seed: Int64 = Default(-1),
620
+ enable: String = Default(None),
621
+ extra_options: dict[str, Any] = None,
622
+ **kwargs: Any,
581
623
  ) -> AudioStream:
582
624
  """
583
625
 
@@ -603,6 +645,7 @@ class AudioStream(FilterableStream):
603
645
  "seed": seed,
604
646
  "enable": enable,
605
647
  }
648
+ | (extra_options or {})
606
649
  | kwargs,
607
650
  )
608
651
  return filter_node.audio(0)
@@ -613,6 +656,7 @@ class AudioStream(FilterableStream):
613
656
  delays: String = Default(None),
614
657
  all: Boolean = Default(False),
615
658
  enable: String = Default(None),
659
+ extra_options: dict[str, Any] = None,
616
660
  **kwargs: Any,
617
661
  ) -> AudioStream:
618
662
  """
@@ -639,6 +683,7 @@ class AudioStream(FilterableStream):
639
683
  "all": all,
640
684
  "enable": enable,
641
685
  }
686
+ | (extra_options or {})
642
687
  | kwargs,
643
688
  )
644
689
  return filter_node.audio(0)
@@ -649,6 +694,7 @@ class AudioStream(FilterableStream):
649
694
  level: Double = Default(-351.0),
650
695
  type: Int | Literal["dc", "ac", "square", "pulse"] | Default = Default("dc"),
651
696
  enable: String = Default(None),
697
+ extra_options: dict[str, Any] = None,
652
698
  **kwargs: Any,
653
699
  ) -> AudioStream:
654
700
  """
@@ -675,11 +721,14 @@ class AudioStream(FilterableStream):
675
721
  "type": type,
676
722
  "enable": enable,
677
723
  }
724
+ | (extra_options or {})
678
725
  | kwargs,
679
726
  )
680
727
  return filter_node.audio(0)
681
728
 
682
- def aderivative(self, *, enable: String = Default(None), **kwargs: Any) -> AudioStream:
729
+ def aderivative(
730
+ self, *, enable: String = Default(None), extra_options: dict[str, Any] = None, **kwargs: Any
731
+ ) -> AudioStream:
683
732
  """
684
733
 
685
734
  Compute derivative of input audio.
@@ -700,6 +749,7 @@ class AudioStream(FilterableStream):
700
749
  **{
701
750
  "enable": enable,
702
751
  }
752
+ | (extra_options or {})
703
753
  | kwargs,
704
754
  )
705
755
  return filter_node.audio(0)
@@ -722,6 +772,7 @@ class AudioStream(FilterableStream):
722
772
  slide: Int | Literal["frame", "replace", "scroll", "rscroll", "picture"] | Default = Default("frame"),
723
773
  size: Image_size = Default("900x256"),
724
774
  rate: Video_rate = Default("25"),
775
+ extra_options: dict[str, Any] = None,
725
776
  **kwargs: Any,
726
777
  ) -> VideoStream:
727
778
  """
@@ -772,6 +823,7 @@ class AudioStream(FilterableStream):
772
823
  "size": size,
773
824
  "rate": rate,
774
825
  }
826
+ | (extra_options or {})
775
827
  | kwargs,
776
828
  )
777
829
  return filter_node.video(0)
@@ -784,6 +836,7 @@ class AudioStream(FilterableStream):
784
836
  release: Double = Default(100.0),
785
837
  channels: String = Default("all"),
786
838
  enable: String = Default(None),
839
+ extra_options: dict[str, Any] = None,
787
840
  **kwargs: Any,
788
841
  ) -> AudioStream:
789
842
  """
@@ -814,6 +867,7 @@ class AudioStream(FilterableStream):
814
867
  "channels": channels,
815
868
  "enable": enable,
816
869
  }
870
+ | (extra_options or {})
817
871
  | kwargs,
818
872
  )
819
873
  return filter_node.audio(0)
@@ -832,10 +886,13 @@ class AudioStream(FilterableStream):
832
886
  makeup: Double = Default(0.0),
833
887
  range: Double = Default(50.0),
834
888
  mode: Int | Literal["listen", "cut", "boost"] | Default = Default("cut"),
889
+ dftype: Int | Literal["bandpass", "lowpass", "highpass", "peak"] | Default = Default("bandpass"),
835
890
  tftype: Int | Literal["bell", "lowshelf", "highshelf"] | Default = Default("bell"),
836
891
  direction: Int | Literal["downward", "upward"] | Default = Default("downward"),
837
892
  auto: Int | Literal["disabled", "off", "on"] | Default = Default("disabled"),
893
+ precision: Int | Literal["auto", "float", "double"] | Default = Default("auto"),
838
894
  enable: String = Default(None),
895
+ extra_options: dict[str, Any] = None,
839
896
  **kwargs: Any,
840
897
  ) -> AudioStream:
841
898
  """
@@ -854,9 +911,11 @@ class AudioStream(FilterableStream):
854
911
  makeup: set makeup gain (from 0 to 100) (default 0)
855
912
  range: set max gain (from 1 to 200) (default 50)
856
913
  mode: set mode (from -1 to 1) (default cut)
914
+ dftype: set detection filter type (from 0 to 3) (default bandpass)
857
915
  tftype: set target filter type (from 0 to 2) (default bell)
858
916
  direction: set direction (from 0 to 1) (default downward)
859
917
  auto: set auto threshold (from -1 to 1) (default disabled)
918
+ precision: set processing precision (from 0 to 2) (default auto)
860
919
  enable: timeline editing
861
920
 
862
921
  Returns:
@@ -881,11 +940,14 @@ class AudioStream(FilterableStream):
881
940
  "makeup": makeup,
882
941
  "range": range,
883
942
  "mode": mode,
943
+ "dftype": dftype,
884
944
  "tftype": tftype,
885
945
  "direction": direction,
886
946
  "auto": auto,
947
+ "precision": precision,
887
948
  "enable": enable,
888
949
  }
950
+ | (extra_options or {})
889
951
  | kwargs,
890
952
  )
891
953
  return filter_node.audio(0)
@@ -896,6 +958,7 @@ class AudioStream(FilterableStream):
896
958
  sensitivity: Double = Default(2.0),
897
959
  basefreq: Double = Default(22050.0),
898
960
  enable: String = Default(None),
961
+ extra_options: dict[str, Any] = None,
899
962
  **kwargs: Any,
900
963
  ) -> AudioStream:
901
964
  """
@@ -922,6 +985,7 @@ class AudioStream(FilterableStream):
922
985
  "basefreq": basefreq,
923
986
  "enable": enable,
924
987
  }
988
+ | (extra_options or {})
925
989
  | kwargs,
926
990
  )
927
991
  return filter_node.audio(0)
@@ -933,6 +997,7 @@ class AudioStream(FilterableStream):
933
997
  out_gain: Float = Default(0.3),
934
998
  delays: String = Default("1000"),
935
999
  decays: String = Default("0.5"),
1000
+ extra_options: dict[str, Any] = None,
936
1001
  **kwargs: Any,
937
1002
  ) -> AudioStream:
938
1003
  """
@@ -961,6 +1026,7 @@ class AudioStream(FilterableStream):
961
1026
  "delays": delays,
962
1027
  "decays": decays,
963
1028
  }
1029
+ | (extra_options or {})
964
1030
  | kwargs,
965
1031
  )
966
1032
  return filter_node.audio(0)
@@ -975,6 +1041,7 @@ class AudioStream(FilterableStream):
975
1041
  | Literal["col", "emi", "bsi", "riaa", "cd", "50fm", "75fm", "50kf", "75kf"]
976
1042
  | Default = Default("cd"),
977
1043
  enable: String = Default(None),
1044
+ extra_options: dict[str, Any] = None,
978
1045
  **kwargs: Any,
979
1046
  ) -> AudioStream:
980
1047
  """
@@ -1005,6 +1072,7 @@ class AudioStream(FilterableStream):
1005
1072
  "type": type,
1006
1073
  "enable": enable,
1007
1074
  }
1075
+ | (extra_options or {})
1008
1076
  | kwargs,
1009
1077
  )
1010
1078
  return filter_node.audio(0)
@@ -1015,6 +1083,7 @@ class AudioStream(FilterableStream):
1015
1083
  exprs: String = Default(None),
1016
1084
  channel_layout: String = Default(None),
1017
1085
  enable: String = Default(None),
1086
+ extra_options: dict[str, Any] = None,
1018
1087
  **kwargs: Any,
1019
1088
  ) -> AudioStream:
1020
1089
  """
@@ -1041,6 +1110,7 @@ class AudioStream(FilterableStream):
1041
1110
  "channel_layout": channel_layout,
1042
1111
  "enable": enable,
1043
1112
  }
1113
+ | (extra_options or {})
1044
1114
  | kwargs,
1045
1115
  )
1046
1116
  return filter_node.audio(0)
@@ -1057,6 +1127,7 @@ class AudioStream(FilterableStream):
1057
1127
  ceil: Double = Default(9999.0),
1058
1128
  listen: Boolean = Default(False),
1059
1129
  enable: String = Default(None),
1130
+ extra_options: dict[str, Any] = None,
1060
1131
  **kwargs: Any,
1061
1132
  ) -> AudioStream:
1062
1133
  """
@@ -1095,6 +1166,7 @@ class AudioStream(FilterableStream):
1095
1166
  "listen": listen,
1096
1167
  "enable": enable,
1097
1168
  }
1169
+ | (extra_options or {})
1098
1170
  | kwargs,
1099
1171
  )
1100
1172
  return filter_node.audio(0)
@@ -1129,11 +1201,16 @@ class AudioStream(FilterableStream):
1129
1201
  "losi",
1130
1202
  "sinc",
1131
1203
  "isinc",
1204
+ "quat",
1205
+ "quatr",
1206
+ "qsin2",
1207
+ "hsin2",
1132
1208
  ]
1133
1209
  | Default = Default("tri"),
1134
1210
  silence: Double = Default(0.0),
1135
1211
  unity: Double = Default(1.0),
1136
1212
  enable: String = Default(None),
1213
+ extra_options: dict[str, Any] = None,
1137
1214
  **kwargs: Any,
1138
1215
  ) -> AudioStream:
1139
1216
  """
@@ -1146,7 +1223,7 @@ class AudioStream(FilterableStream):
1146
1223
  nb_samples: set number of samples for fade duration (from 1 to I64_MAX) (default 44100)
1147
1224
  start_time: set time to start fading (default 0)
1148
1225
  duration: set fade duration (default 0)
1149
- curve: set fade curve type (from -1 to 18) (default tri)
1226
+ curve: set fade curve type (from -1 to 22) (default tri)
1150
1227
  silence: set the silence gain (from 0 to 1) (default 0)
1151
1228
  unity: set the unity gain (from 0 to 1) (default 1)
1152
1229
  enable: timeline editing
@@ -1172,6 +1249,7 @@ class AudioStream(FilterableStream):
1172
1249
  "unity": unity,
1173
1250
  "enable": enable,
1174
1251
  }
1252
+ | (extra_options or {})
1175
1253
  | kwargs,
1176
1254
  )
1177
1255
  return filter_node.audio(0)
@@ -1196,6 +1274,7 @@ class AudioStream(FilterableStream):
1196
1274
  sample_noise: Int | Literal["none", "start", "begin", "stop", "end"] | Default = Default("none"),
1197
1275
  gain_smooth: Int = Default(0),
1198
1276
  enable: String = Default(None),
1277
+ extra_options: dict[str, Any] = None,
1199
1278
  **kwargs: Any,
1200
1279
  ) -> AudioStream:
1201
1280
  """
@@ -1246,6 +1325,7 @@ class AudioStream(FilterableStream):
1246
1325
  "gain_smooth": gain_smooth,
1247
1326
  "enable": enable,
1248
1327
  }
1328
+ | (extra_options or {})
1249
1329
  | kwargs,
1250
1330
  )
1251
1331
  return filter_node.audio(0)
@@ -1284,6 +1364,7 @@ class AudioStream(FilterableStream):
1284
1364
  | Default = Default("hann"),
1285
1365
  overlap: Float = Default(0.75),
1286
1366
  enable: String = Default(None),
1367
+ extra_options: dict[str, Any] = None,
1287
1368
  **kwargs: Any,
1288
1369
  ) -> AudioStream:
1289
1370
  """
@@ -1316,6 +1397,7 @@ class AudioStream(FilterableStream):
1316
1397
  "overlap": overlap,
1317
1398
  "enable": enable,
1318
1399
  }
1400
+ | (extra_options or {})
1319
1401
  | kwargs,
1320
1402
  )
1321
1403
  return filter_node.audio(0)
@@ -1326,6 +1408,7 @@ class AudioStream(FilterableStream):
1326
1408
  sample_fmts: String = Default(None),
1327
1409
  sample_rates: String = Default(None),
1328
1410
  channel_layouts: String = Default(None),
1411
+ extra_options: dict[str, Any] = None,
1329
1412
  **kwargs: Any,
1330
1413
  ) -> AudioStream:
1331
1414
  """
@@ -1352,6 +1435,7 @@ class AudioStream(FilterableStream):
1352
1435
  "sample_rates": sample_rates,
1353
1436
  "channel_layouts": channel_layouts,
1354
1437
  }
1438
+ | (extra_options or {})
1355
1439
  | kwargs,
1356
1440
  )
1357
1441
  return filter_node.audio(0)
@@ -1363,6 +1447,7 @@ class AudioStream(FilterableStream):
1363
1447
  level: Double = Default(1.0),
1364
1448
  order: Int = Default(8),
1365
1449
  enable: String = Default(None),
1450
+ extra_options: dict[str, Any] = None,
1366
1451
  **kwargs: Any,
1367
1452
  ) -> AudioStream:
1368
1453
  """
@@ -1391,6 +1476,7 @@ class AudioStream(FilterableStream):
1391
1476
  "order": order,
1392
1477
  "enable": enable,
1393
1478
  }
1479
+ | (extra_options or {})
1394
1480
  | kwargs,
1395
1481
  )
1396
1482
  return filter_node.audio(0)
@@ -1407,6 +1493,7 @@ class AudioStream(FilterableStream):
1407
1493
  samples: Int = Default(8192),
1408
1494
  softness: Double = Default(1.0),
1409
1495
  enable: String = Default(None),
1496
+ extra_options: dict[str, Any] = None,
1410
1497
  **kwargs: Any,
1411
1498
  ) -> AudioStream:
1412
1499
  """
@@ -1445,6 +1532,7 @@ class AudioStream(FilterableStream):
1445
1532
  "softness": softness,
1446
1533
  "enable": enable,
1447
1534
  }
1535
+ | (extra_options or {})
1448
1536
  | kwargs,
1449
1537
  )
1450
1538
  return filter_node.audio(0)
@@ -1465,6 +1553,7 @@ class AudioStream(FilterableStream):
1465
1553
  link: Int | Literal["average", "maximum"] | Default = Default("average"),
1466
1554
  level_sc: Double = Default(1.0),
1467
1555
  enable: String = Default(None),
1556
+ extra_options: dict[str, Any] = None,
1468
1557
  **kwargs: Any,
1469
1558
  ) -> AudioStream:
1470
1559
  """
@@ -1511,6 +1600,7 @@ class AudioStream(FilterableStream):
1511
1600
  "level_sc": level_sc,
1512
1601
  "enable": enable,
1513
1602
  }
1603
+ | (extra_options or {})
1514
1604
  | kwargs,
1515
1605
  )
1516
1606
  return filter_node.audio(0)
@@ -1520,9 +1610,11 @@ class AudioStream(FilterableStream):
1520
1610
  *,
1521
1611
  size: Image_size = Default("hd720"),
1522
1612
  opacity: Float = Default(0.9),
1523
- mode: Int | Literal["full", "compact"] | Default = Default("full"),
1613
+ mode: Flags | Literal["full", "compact", "nozero", "noeof", "nodisabled"] | Default = Default("0"),
1524
1614
  flags: Flags
1525
1615
  | Literal[
1616
+ "none",
1617
+ "all",
1526
1618
  "queue",
1527
1619
  "frame_count_in",
1528
1620
  "frame_count_out",
@@ -1539,9 +1631,11 @@ class AudioStream(FilterableStream):
1539
1631
  "sample_count_in",
1540
1632
  "sample_count_out",
1541
1633
  "sample_count_delta",
1634
+ "disabled",
1542
1635
  ]
1543
- | Default = Default("queue"),
1636
+ | Default = Default("all+queue"),
1544
1637
  rate: Video_rate = Default("25"),
1638
+ extra_options: dict[str, Any] = None,
1545
1639
  **kwargs: Any,
1546
1640
  ) -> VideoStream:
1547
1641
  """
@@ -1551,8 +1645,8 @@ class AudioStream(FilterableStream):
1551
1645
  Args:
1552
1646
  size: set monitor size (default "hd720")
1553
1647
  opacity: set video opacity (from 0 to 1) (default 0.9)
1554
- mode: set mode (from 0 to 1) (default full)
1555
- flags: set flags (default queue)
1648
+ mode: set mode (default 0)
1649
+ flags: set flags (default all+queue)
1556
1650
  rate: set video rate (default "25")
1557
1651
 
1558
1652
  Returns:
@@ -1572,6 +1666,7 @@ class AudioStream(FilterableStream):
1572
1666
  "flags": flags,
1573
1667
  "rate": rate,
1574
1668
  }
1669
+ | (extra_options or {})
1575
1670
  | kwargs,
1576
1671
  )
1577
1672
  return filter_node.video(0)
@@ -1588,6 +1683,7 @@ class AudioStream(FilterableStream):
1588
1683
  rheight: Float = Default(0.1),
1589
1684
  slide: Int | Literal["replace", "scroll"] | Default = Default("replace"),
1590
1685
  hmode: Int | Literal["abs", "sign"] | Default = Default("abs"),
1686
+ extra_options: dict[str, Any] = None,
1591
1687
  **kwargs: Any,
1592
1688
  ) -> VideoStream:
1593
1689
  """
@@ -1626,6 +1722,7 @@ class AudioStream(FilterableStream):
1626
1722
  "slide": slide,
1627
1723
  "hmode": hmode,
1628
1724
  }
1725
+ | (extra_options or {})
1629
1726
  | kwargs,
1630
1727
  )
1631
1728
  return filter_node.video(0)
@@ -1648,6 +1745,7 @@ class AudioStream(FilterableStream):
1648
1745
  channel: Int = Default(0),
1649
1746
  size: Image_size = Default("hd720"),
1650
1747
  rate: Video_rate = Default("25"),
1748
+ extra_options: dict[str, Any] = None,
1651
1749
  **kwargs: Any,
1652
1750
  ) -> FilterNode:
1653
1751
  """
@@ -1703,12 +1801,15 @@ class AudioStream(FilterableStream):
1703
1801
  "size": size,
1704
1802
  "rate": rate,
1705
1803
  }
1804
+ | (extra_options or {})
1706
1805
  | kwargs,
1707
1806
  )
1708
1807
 
1709
1808
  return filter_node
1710
1809
 
1711
- def aintegral(self, *, enable: String = Default(None), **kwargs: Any) -> AudioStream:
1810
+ def aintegral(
1811
+ self, *, enable: String = Default(None), extra_options: dict[str, Any] = None, **kwargs: Any
1812
+ ) -> AudioStream:
1712
1813
  """
1713
1814
 
1714
1815
  Compute integral of input audio.
@@ -1729,11 +1830,14 @@ class AudioStream(FilterableStream):
1729
1830
  **{
1730
1831
  "enable": enable,
1731
1832
  }
1833
+ | (extra_options or {})
1732
1834
  | kwargs,
1733
1835
  )
1734
1836
  return filter_node.audio(0)
1735
1837
 
1736
- def alatency(self, *, enable: String = Default(None), **kwargs: Any) -> AudioStream:
1838
+ def alatency(
1839
+ self, *, enable: String = Default(None), extra_options: dict[str, Any] = None, **kwargs: Any
1840
+ ) -> AudioStream:
1737
1841
  """
1738
1842
 
1739
1843
  Report audio filtering latency.
@@ -1754,6 +1858,7 @@ class AudioStream(FilterableStream):
1754
1858
  **{
1755
1859
  "enable": enable,
1756
1860
  }
1861
+ | (extra_options or {})
1757
1862
  | kwargs,
1758
1863
  )
1759
1864
  return filter_node.audio(0)
@@ -1771,6 +1876,7 @@ class AudioStream(FilterableStream):
1771
1876
  level: Boolean = Default(True),
1772
1877
  latency: Boolean = Default(False),
1773
1878
  enable: String = Default(None),
1879
+ extra_options: dict[str, Any] = None,
1774
1880
  **kwargs: Any,
1775
1881
  ) -> AudioStream:
1776
1882
  """
@@ -1811,6 +1917,7 @@ class AudioStream(FilterableStream):
1811
1917
  "latency": latency,
1812
1918
  "enable": enable,
1813
1919
  }
1920
+ | (extra_options or {})
1814
1921
  | kwargs,
1815
1922
  )
1816
1923
  return filter_node.audio(0)
@@ -1828,6 +1935,7 @@ class AudioStream(FilterableStream):
1828
1935
  transform: Int | Literal["di", "dii", "tdi", "tdii", "latt", "svf", "zdf"] | Default = Default("di"),
1829
1936
  precision: Int | Literal["auto", "s16", "s32", "f32", "f64"] | Default = Default("auto"),
1830
1937
  enable: String = Default(None),
1938
+ extra_options: dict[str, Any] = None,
1831
1939
  **kwargs: Any,
1832
1940
  ) -> AudioStream:
1833
1941
  """
@@ -1868,12 +1976,20 @@ class AudioStream(FilterableStream):
1868
1976
  "precision": precision,
1869
1977
  "enable": enable,
1870
1978
  }
1979
+ | (extra_options or {})
1871
1980
  | kwargs,
1872
1981
  )
1873
1982
  return filter_node.audio(0)
1874
1983
 
1875
1984
  def aloop(
1876
- self, *, loop: Int = Default(0), size: Int64 = Default(0), start: Int64 = Default(0), **kwargs: Any
1985
+ self,
1986
+ *,
1987
+ loop: Int = Default(0),
1988
+ size: Int64 = Default(0),
1989
+ start: Int64 = Default(0),
1990
+ time: Duration = Default("INT64_MAX"),
1991
+ extra_options: dict[str, Any] = None,
1992
+ **kwargs: Any,
1877
1993
  ) -> AudioStream:
1878
1994
  """
1879
1995
 
@@ -1882,7 +1998,8 @@ class AudioStream(FilterableStream):
1882
1998
  Args:
1883
1999
  loop: number of loops (from -1 to INT_MAX) (default 0)
1884
2000
  size: max number of samples to loop (from 0 to INT_MAX) (default 0)
1885
- start: set the loop start sample (from 0 to I64_MAX) (default 0)
2001
+ start: set the loop start sample (from -1 to I64_MAX) (default 0)
2002
+ time: set the loop start time (default INT64_MAX)
1886
2003
 
1887
2004
  Returns:
1888
2005
  default: the audio stream
@@ -1898,7 +2015,9 @@ class AudioStream(FilterableStream):
1898
2015
  "loop": loop,
1899
2016
  "size": size,
1900
2017
  "start": start,
2018
+ "time": time,
1901
2019
  }
2020
+ | (extra_options or {})
1902
2021
  | kwargs,
1903
2022
  )
1904
2023
  return filter_node.audio(0)
@@ -1916,6 +2035,7 @@ class AudioStream(FilterableStream):
1916
2035
  file: String = Default(None),
1917
2036
  direct: Boolean = Default(False),
1918
2037
  enable: String = Default(None),
2038
+ extra_options: dict[str, Any] = None,
1919
2039
  **kwargs: Any,
1920
2040
  ) -> AudioStream:
1921
2041
  """
@@ -1952,11 +2072,12 @@ class AudioStream(FilterableStream):
1952
2072
  "direct": direct,
1953
2073
  "enable": enable,
1954
2074
  }
2075
+ | (extra_options or {})
1955
2076
  | kwargs,
1956
2077
  )
1957
2078
  return filter_node.audio(0)
1958
2079
 
1959
- def amultiply(self, _multiply1: AudioStream, **kwargs: Any) -> AudioStream:
2080
+ def amultiply(self, _multiply1: AudioStream, extra_options: dict[str, Any] = None, **kwargs: Any) -> AudioStream:
1960
2081
  """
1961
2082
 
1962
2083
  Multiply two audio streams.
@@ -1972,7 +2093,7 @@ class AudioStream(FilterableStream):
1972
2093
  FFMpegFilterDef(name="amultiply", typings_input=("audio", "audio"), typings_output=("audio",)),
1973
2094
  self,
1974
2095
  _multiply1,
1975
- **{} | kwargs,
2096
+ **{} | (extra_options or {}) | kwargs,
1976
2097
  )
1977
2098
  return filter_node.audio(0)
1978
2099
 
@@ -1986,6 +2107,7 @@ class AudioStream(FilterableStream):
1986
2107
  fscale: Int | Literal["lin", "log"] | Default = Default("log"),
1987
2108
  colors: String = Default("red|green|blue|yellow|orange|lime|pink|magenta|brown"),
1988
2109
  enable: String = Default(None),
2110
+ extra_options: dict[str, Any] = None,
1989
2111
  **kwargs: Any,
1990
2112
  ) -> FilterNode:
1991
2113
  """
@@ -2025,6 +2147,7 @@ class AudioStream(FilterableStream):
2025
2147
  "colors": colors,
2026
2148
  "enable": enable,
2027
2149
  }
2150
+ | (extra_options or {})
2028
2151
  | kwargs,
2029
2152
  )
2030
2153
 
@@ -2039,6 +2162,7 @@ class AudioStream(FilterableStream):
2039
2162
  output: Int | Literal["i", "o", "n"] | Default = Default("o"),
2040
2163
  smooth: Float = Default(11.0),
2041
2164
  enable: String = Default(None),
2165
+ extra_options: dict[str, Any] = None,
2042
2166
  **kwargs: Any,
2043
2167
  ) -> AudioStream:
2044
2168
  """
@@ -2071,6 +2195,7 @@ class AudioStream(FilterableStream):
2071
2195
  "smooth": smooth,
2072
2196
  "enable": enable,
2073
2197
  }
2198
+ | (extra_options or {})
2074
2199
  | kwargs,
2075
2200
  )
2076
2201
  return filter_node.audio(0)
@@ -2083,8 +2208,9 @@ class AudioStream(FilterableStream):
2083
2208
  mu: Float = Default(0.75),
2084
2209
  eps: Float = Default(1.0),
2085
2210
  leakage: Float = Default(0.0),
2086
- out_mode: Int | Literal["i", "d", "o", "n"] | Default = Default("o"),
2211
+ out_mode: Int | Literal["i", "d", "o", "n", "e"] | Default = Default("o"),
2087
2212
  enable: String = Default(None),
2213
+ extra_options: dict[str, Any] = None,
2088
2214
  **kwargs: Any,
2089
2215
  ) -> AudioStream:
2090
2216
  """
@@ -2096,7 +2222,7 @@ class AudioStream(FilterableStream):
2096
2222
  mu: set the filter mu (from 0 to 2) (default 0.75)
2097
2223
  eps: set the filter eps (from 0 to 1) (default 1)
2098
2224
  leakage: set the filter leakage (from 0 to 1) (default 0)
2099
- out_mode: set output mode (from 0 to 3) (default o)
2225
+ out_mode: set output mode (from 0 to 4) (default o)
2100
2226
  enable: timeline editing
2101
2227
 
2102
2228
  Returns:
@@ -2118,6 +2244,7 @@ class AudioStream(FilterableStream):
2118
2244
  "out_mode": out_mode,
2119
2245
  "enable": enable,
2120
2246
  }
2247
+ | (extra_options or {})
2121
2248
  | kwargs,
2122
2249
  )
2123
2250
  return filter_node.audio(0)
@@ -2130,8 +2257,9 @@ class AudioStream(FilterableStream):
2130
2257
  mu: Float = Default(0.75),
2131
2258
  eps: Float = Default(1.0),
2132
2259
  leakage: Float = Default(0.0),
2133
- out_mode: Int | Literal["i", "d", "o", "n"] | Default = Default("o"),
2260
+ out_mode: Int | Literal["i", "d", "o", "n", "e"] | Default = Default("o"),
2134
2261
  enable: String = Default(None),
2262
+ extra_options: dict[str, Any] = None,
2135
2263
  **kwargs: Any,
2136
2264
  ) -> AudioStream:
2137
2265
  """
@@ -2143,7 +2271,7 @@ class AudioStream(FilterableStream):
2143
2271
  mu: set the filter mu (from 0 to 2) (default 0.75)
2144
2272
  eps: set the filter eps (from 0 to 1) (default 1)
2145
2273
  leakage: set the filter leakage (from 0 to 1) (default 0)
2146
- out_mode: set output mode (from 0 to 3) (default o)
2274
+ out_mode: set output mode (from 0 to 4) (default o)
2147
2275
  enable: timeline editing
2148
2276
 
2149
2277
  Returns:
@@ -2165,11 +2293,12 @@ class AudioStream(FilterableStream):
2165
2293
  "out_mode": out_mode,
2166
2294
  "enable": enable,
2167
2295
  }
2296
+ | (extra_options or {})
2168
2297
  | kwargs,
2169
2298
  )
2170
2299
  return filter_node.audio(0)
2171
2300
 
2172
- def anull(self, **kwargs: Any) -> AudioStream:
2301
+ def anull(self, extra_options: dict[str, Any] = None, **kwargs: Any) -> AudioStream:
2173
2302
  """
2174
2303
 
2175
2304
  Pass the source unchanged to the output.
@@ -2182,7 +2311,9 @@ class AudioStream(FilterableStream):
2182
2311
 
2183
2312
  """
2184
2313
  filter_node = filter_node_factory(
2185
- FFMpegFilterDef(name="anull", typings_input=("audio",), typings_output=("audio",)), self, **{} | kwargs
2314
+ FFMpegFilterDef(name="anull", typings_input=("audio",), typings_output=("audio",)),
2315
+ self,
2316
+ **{} | (extra_options or {}) | kwargs,
2186
2317
  )
2187
2318
  return filter_node.audio(0)
2188
2319
 
@@ -2195,6 +2326,7 @@ class AudioStream(FilterableStream):
2195
2326
  pad_dur: Duration = Default(-1e-06),
2196
2327
  whole_dur: Duration = Default(-1e-06),
2197
2328
  enable: String = Default(None),
2329
+ extra_options: dict[str, Any] = None,
2198
2330
  **kwargs: Any,
2199
2331
  ) -> AudioStream:
2200
2332
  """
@@ -2227,6 +2359,7 @@ class AudioStream(FilterableStream):
2227
2359
  "whole_dur": whole_dur,
2228
2360
  "enable": enable,
2229
2361
  }
2362
+ | (extra_options or {})
2230
2363
  | kwargs,
2231
2364
  )
2232
2365
  return filter_node.audio(0)
@@ -2237,6 +2370,7 @@ class AudioStream(FilterableStream):
2237
2370
  mode: Int | Literal["none", "ro", "rw", "toggle", "random"] | Default = Default("none"),
2238
2371
  seed: Int64 = Default(-1),
2239
2372
  enable: String = Default(None),
2373
+ extra_options: dict[str, Any] = None,
2240
2374
  **kwargs: Any,
2241
2375
  ) -> AudioStream:
2242
2376
  """
@@ -2263,6 +2397,7 @@ class AudioStream(FilterableStream):
2263
2397
  "seed": seed,
2264
2398
  "enable": enable,
2265
2399
  }
2400
+ | (extra_options or {})
2266
2401
  | kwargs,
2267
2402
  )
2268
2403
  return filter_node.audio(0)
@@ -2281,6 +2416,7 @@ class AudioStream(FilterableStream):
2281
2416
  tolerance: Float = Default(0.0),
2282
2417
  angle: Float = Default(170.0),
2283
2418
  duration: Duration = Default(2.0),
2419
+ extra_options: dict[str, Any] = None,
2284
2420
  **kwargs: Any,
2285
2421
  ) -> FilterNode:
2286
2422
  """
@@ -2328,6 +2464,7 @@ class AudioStream(FilterableStream):
2328
2464
  "angle": angle,
2329
2465
  "duration": duration,
2330
2466
  }
2467
+ | (extra_options or {})
2331
2468
  | kwargs,
2332
2469
  )
2333
2470
 
@@ -2342,6 +2479,7 @@ class AudioStream(FilterableStream):
2342
2479
  decay: Double = Default(0.4),
2343
2480
  speed: Double = Default(0.5),
2344
2481
  type: Int | Literal["triangular", "t", "sinusoidal", "s"] | Default = Default("triangular"),
2482
+ extra_options: dict[str, Any] = None,
2345
2483
  **kwargs: Any,
2346
2484
  ) -> AudioStream:
2347
2485
  """
@@ -2374,6 +2512,7 @@ class AudioStream(FilterableStream):
2374
2512
  "speed": speed,
2375
2513
  "type": type,
2376
2514
  }
2515
+ | (extra_options or {})
2377
2516
  | kwargs,
2378
2517
  )
2379
2518
  return filter_node.audio(0)
@@ -2385,6 +2524,7 @@ class AudioStream(FilterableStream):
2385
2524
  level: Double = Default(1.0),
2386
2525
  order: Int = Default(8),
2387
2526
  enable: String = Default(None),
2527
+ extra_options: dict[str, Any] = None,
2388
2528
  **kwargs: Any,
2389
2529
  ) -> AudioStream:
2390
2530
  """
@@ -2413,6 +2553,41 @@ class AudioStream(FilterableStream):
2413
2553
  "order": order,
2414
2554
  "enable": enable,
2415
2555
  }
2556
+ | (extra_options or {})
2557
+ | kwargs,
2558
+ )
2559
+ return filter_node.audio(0)
2560
+
2561
+ def apsnr(
2562
+ self,
2563
+ _input1: AudioStream,
2564
+ *,
2565
+ enable: String = Default(None),
2566
+ extra_options: dict[str, Any] = None,
2567
+ **kwargs: Any,
2568
+ ) -> AudioStream:
2569
+ """
2570
+
2571
+ Measure Audio Peak Signal-to-Noise Ratio.
2572
+
2573
+ Args:
2574
+ enable: timeline editing
2575
+
2576
+ Returns:
2577
+ default: the audio stream
2578
+
2579
+ References:
2580
+ [FFmpeg Documentation](https://ffmpeg.org/ffmpeg-filters.html#apsnr)
2581
+
2582
+ """
2583
+ filter_node = filter_node_factory(
2584
+ FFMpegFilterDef(name="apsnr", typings_input=("audio", "audio"), typings_output=("audio",)),
2585
+ self,
2586
+ _input1,
2587
+ **{
2588
+ "enable": enable,
2589
+ }
2590
+ | (extra_options or {})
2416
2591
  | kwargs,
2417
2592
  )
2418
2593
  return filter_node.audio(0)
@@ -2428,6 +2603,7 @@ class AudioStream(FilterableStream):
2428
2603
  iterations: Int = Default(10),
2429
2604
  level: Boolean = Default(False),
2430
2605
  enable: String = Default(None),
2606
+ extra_options: dict[str, Any] = None,
2431
2607
  **kwargs: Any,
2432
2608
  ) -> AudioStream:
2433
2609
  """
@@ -2464,6 +2640,7 @@ class AudioStream(FilterableStream):
2464
2640
  "level": level,
2465
2641
  "enable": enable,
2466
2642
  }
2643
+ | (extra_options or {})
2467
2644
  | kwargs,
2468
2645
  )
2469
2646
  return filter_node.audio(0)
@@ -2482,6 +2659,7 @@ class AudioStream(FilterableStream):
2482
2659
  bpm: Double = Default(120.0),
2483
2660
  ms: Int = Default(500),
2484
2661
  hz: Double = Default(2.0),
2662
+ extra_options: dict[str, Any] = None,
2485
2663
  **kwargs: Any,
2486
2664
  ) -> AudioStream:
2487
2665
  """
@@ -2524,11 +2702,19 @@ class AudioStream(FilterableStream):
2524
2702
  "ms": ms,
2525
2703
  "hz": hz,
2526
2704
  }
2705
+ | (extra_options or {})
2527
2706
  | kwargs,
2528
2707
  )
2529
2708
  return filter_node.audio(0)
2530
2709
 
2531
- def arealtime(self, *, limit: Duration = Default(2.0), speed: Double = Default(1.0), **kwargs: Any) -> AudioStream:
2710
+ def arealtime(
2711
+ self,
2712
+ *,
2713
+ limit: Duration = Default(2.0),
2714
+ speed: Double = Default(1.0),
2715
+ extra_options: dict[str, Any] = None,
2716
+ **kwargs: Any,
2717
+ ) -> AudioStream:
2532
2718
  """
2533
2719
 
2534
2720
  Slow down filtering to match realtime.
@@ -2551,11 +2737,14 @@ class AudioStream(FilterableStream):
2551
2737
  "limit": limit,
2552
2738
  "speed": speed,
2553
2739
  }
2740
+ | (extra_options or {})
2554
2741
  | kwargs,
2555
2742
  )
2556
2743
  return filter_node.audio(0)
2557
2744
 
2558
- def aresample(self, *, sample_rate: Int = Default(0), **kwargs: Any) -> AudioStream:
2745
+ def aresample(
2746
+ self, *, sample_rate: Int = Default(0), extra_options: dict[str, Any] = None, **kwargs: Any
2747
+ ) -> AudioStream:
2559
2748
  """
2560
2749
 
2561
2750
  Resample audio data.
@@ -2576,11 +2765,12 @@ class AudioStream(FilterableStream):
2576
2765
  **{
2577
2766
  "sample_rate": sample_rate,
2578
2767
  }
2768
+ | (extra_options or {})
2579
2769
  | kwargs,
2580
2770
  )
2581
2771
  return filter_node.audio(0)
2582
2772
 
2583
- def areverse(self, **kwargs: Any) -> AudioStream:
2773
+ def areverse(self, extra_options: dict[str, Any] = None, **kwargs: Any) -> AudioStream:
2584
2774
  """
2585
2775
 
2586
2776
  Reverse an audio clip.
@@ -2593,12 +2783,66 @@ class AudioStream(FilterableStream):
2593
2783
 
2594
2784
  """
2595
2785
  filter_node = filter_node_factory(
2596
- FFMpegFilterDef(name="areverse", typings_input=("audio",), typings_output=("audio",)), self, **{} | kwargs
2786
+ FFMpegFilterDef(name="areverse", typings_input=("audio",), typings_output=("audio",)),
2787
+ self,
2788
+ **{} | (extra_options or {}) | kwargs,
2789
+ )
2790
+ return filter_node.audio(0)
2791
+
2792
+ def arls(
2793
+ self,
2794
+ _desired: AudioStream,
2795
+ *,
2796
+ order: Int = Default(16),
2797
+ _lambda: Float = Default(1.0),
2798
+ delta: Float = Default(2.0),
2799
+ out_mode: Int | Literal["i", "d", "o", "n", "e"] | Default = Default("o"),
2800
+ enable: String = Default(None),
2801
+ extra_options: dict[str, Any] = None,
2802
+ **kwargs: Any,
2803
+ ) -> AudioStream:
2804
+ """
2805
+
2806
+ Apply Recursive Least Squares algorithm to first audio stream.
2807
+
2808
+ Args:
2809
+ order: set the filter order (from 1 to 32767) (default 16)
2810
+ _lambda: set the filter lambda (from 0 to 1) (default 1)
2811
+ delta: set the filter delta (from 0 to 32767) (default 2)
2812
+ out_mode: set output mode (from 0 to 4) (default o)
2813
+ enable: timeline editing
2814
+
2815
+ Returns:
2816
+ default: the audio stream
2817
+
2818
+ References:
2819
+ [FFmpeg Documentation](https://ffmpeg.org/ffmpeg-filters.html#arls)
2820
+
2821
+ """
2822
+ filter_node = filter_node_factory(
2823
+ FFMpegFilterDef(name="arls", typings_input=("audio", "audio"), typings_output=("audio",)),
2824
+ self,
2825
+ _desired,
2826
+ **{
2827
+ "order": order,
2828
+ "lambda": _lambda,
2829
+ "delta": delta,
2830
+ "out_mode": out_mode,
2831
+ "enable": enable,
2832
+ }
2833
+ | (extra_options or {})
2834
+ | kwargs,
2597
2835
  )
2598
2836
  return filter_node.audio(0)
2599
2837
 
2600
2838
  def arnndn(
2601
- self, *, model: String = Default(None), mix: Float = Default(1.0), enable: String = Default(None), **kwargs: Any
2839
+ self,
2840
+ *,
2841
+ model: String = Default(None),
2842
+ mix: Float = Default(1.0),
2843
+ enable: String = Default(None),
2844
+ extra_options: dict[str, Any] = None,
2845
+ **kwargs: Any,
2602
2846
  ) -> AudioStream:
2603
2847
  """
2604
2848
 
@@ -2624,15 +2868,26 @@ class AudioStream(FilterableStream):
2624
2868
  "mix": mix,
2625
2869
  "enable": enable,
2626
2870
  }
2871
+ | (extra_options or {})
2627
2872
  | kwargs,
2628
2873
  )
2629
2874
  return filter_node.audio(0)
2630
2875
 
2631
- def asdr(self, _input1: AudioStream, **kwargs: Any) -> AudioStream:
2876
+ def asdr(
2877
+ self,
2878
+ _input1: AudioStream,
2879
+ *,
2880
+ enable: String = Default(None),
2881
+ extra_options: dict[str, Any] = None,
2882
+ **kwargs: Any,
2883
+ ) -> AudioStream:
2632
2884
  """
2633
2885
 
2634
2886
  Measure Audio Signal-to-Distortion Ratio.
2635
2887
 
2888
+ Args:
2889
+ enable: timeline editing
2890
+
2636
2891
  Returns:
2637
2892
  default: the audio stream
2638
2893
 
@@ -2644,12 +2899,21 @@ class AudioStream(FilterableStream):
2644
2899
  FFMpegFilterDef(name="asdr", typings_input=("audio", "audio"), typings_output=("audio",)),
2645
2900
  self,
2646
2901
  _input1,
2647
- **{} | kwargs,
2902
+ **{
2903
+ "enable": enable,
2904
+ }
2905
+ | (extra_options or {})
2906
+ | kwargs,
2648
2907
  )
2649
2908
  return filter_node.audio(0)
2650
2909
 
2651
2910
  def asegment(
2652
- self, *, timestamps: String = Default(None), samples: String = Default(None), **kwargs: Any
2911
+ self,
2912
+ *,
2913
+ timestamps: String = Default(None),
2914
+ samples: String = Default(None),
2915
+ extra_options: dict[str, Any] = None,
2916
+ **kwargs: Any,
2653
2917
  ) -> FilterNode:
2654
2918
  """
2655
2919
 
@@ -2678,12 +2942,20 @@ class AudioStream(FilterableStream):
2678
2942
  "timestamps": timestamps,
2679
2943
  "samples": samples,
2680
2944
  }
2945
+ | (extra_options or {})
2681
2946
  | kwargs,
2682
2947
  )
2683
2948
 
2684
2949
  return filter_node
2685
2950
 
2686
- def aselect(self, *, expr: String = Default("1"), outputs: Int = Default(1), **kwargs: Any) -> FilterNode:
2951
+ def aselect(
2952
+ self,
2953
+ *,
2954
+ expr: String = Default("1"),
2955
+ outputs: Int = Default(1),
2956
+ extra_options: dict[str, Any] = None,
2957
+ **kwargs: Any,
2958
+ ) -> FilterNode:
2687
2959
  """
2688
2960
 
2689
2961
  Select audio frames to pass in output.
@@ -2709,13 +2981,19 @@ class AudioStream(FilterableStream):
2709
2981
  "expr": expr,
2710
2982
  "outputs": outputs,
2711
2983
  }
2984
+ | (extra_options or {})
2712
2985
  | kwargs,
2713
2986
  )
2714
2987
 
2715
2988
  return filter_node
2716
2989
 
2717
2990
  def asendcmd(
2718
- self, *, commands: String = Default(None), filename: String = Default(None), **kwargs: Any
2991
+ self,
2992
+ *,
2993
+ commands: String = Default(None),
2994
+ filename: String = Default(None),
2995
+ extra_options: dict[str, Any] = None,
2996
+ **kwargs: Any,
2719
2997
  ) -> AudioStream:
2720
2998
  """
2721
2999
 
@@ -2739,12 +3017,19 @@ class AudioStream(FilterableStream):
2739
3017
  "commands": commands,
2740
3018
  "filename": filename,
2741
3019
  }
3020
+ | (extra_options or {})
2742
3021
  | kwargs,
2743
3022
  )
2744
3023
  return filter_node.audio(0)
2745
3024
 
2746
3025
  def asetnsamples(
2747
- self, *, nb_out_samples: Int = Default(1024), pad: Boolean = Default(True), **kwargs: Any
3026
+ self,
3027
+ *,
3028
+ nb_out_samples: Int = Default(1024),
3029
+ pad: Boolean = Default(True),
3030
+ enable: String = Default(None),
3031
+ extra_options: dict[str, Any] = None,
3032
+ **kwargs: Any,
2748
3033
  ) -> AudioStream:
2749
3034
  """
2750
3035
 
@@ -2753,6 +3038,7 @@ class AudioStream(FilterableStream):
2753
3038
  Args:
2754
3039
  nb_out_samples: set the number of per-frame output samples (from 1 to INT_MAX) (default 1024)
2755
3040
  pad: pad last frame with zeros (default true)
3041
+ enable: timeline editing
2756
3042
 
2757
3043
  Returns:
2758
3044
  default: the audio stream
@@ -2767,12 +3053,16 @@ class AudioStream(FilterableStream):
2767
3053
  **{
2768
3054
  "nb_out_samples": nb_out_samples,
2769
3055
  "pad": pad,
3056
+ "enable": enable,
2770
3057
  }
3058
+ | (extra_options or {})
2771
3059
  | kwargs,
2772
3060
  )
2773
3061
  return filter_node.audio(0)
2774
3062
 
2775
- def asetpts(self, *, expr: String = Default("PTS"), **kwargs: Any) -> AudioStream:
3063
+ def asetpts(
3064
+ self, *, expr: String = Default("PTS"), extra_options: dict[str, Any] = None, **kwargs: Any
3065
+ ) -> AudioStream:
2776
3066
  """
2777
3067
 
2778
3068
  Set PTS for the output audio frame.
@@ -2793,11 +3083,14 @@ class AudioStream(FilterableStream):
2793
3083
  **{
2794
3084
  "expr": expr,
2795
3085
  }
3086
+ | (extra_options or {})
2796
3087
  | kwargs,
2797
3088
  )
2798
3089
  return filter_node.audio(0)
2799
3090
 
2800
- def asetrate(self, *, sample_rate: Int = Default(44100), **kwargs: Any) -> AudioStream:
3091
+ def asetrate(
3092
+ self, *, sample_rate: Int = Default(44100), extra_options: dict[str, Any] = None, **kwargs: Any
3093
+ ) -> AudioStream:
2801
3094
  """
2802
3095
 
2803
3096
  Change the sample rate without altering the data.
@@ -2818,11 +3111,14 @@ class AudioStream(FilterableStream):
2818
3111
  **{
2819
3112
  "sample_rate": sample_rate,
2820
3113
  }
3114
+ | (extra_options or {})
2821
3115
  | kwargs,
2822
3116
  )
2823
3117
  return filter_node.audio(0)
2824
3118
 
2825
- def asettb(self, *, expr: String = Default("intb"), **kwargs: Any) -> AudioStream:
3119
+ def asettb(
3120
+ self, *, expr: String = Default("intb"), extra_options: dict[str, Any] = None, **kwargs: Any
3121
+ ) -> AudioStream:
2826
3122
  """
2827
3123
 
2828
3124
  Set timebase for the audio output link.
@@ -2843,11 +3139,12 @@ class AudioStream(FilterableStream):
2843
3139
  **{
2844
3140
  "expr": expr,
2845
3141
  }
3142
+ | (extra_options or {})
2846
3143
  | kwargs,
2847
3144
  )
2848
3145
  return filter_node.audio(0)
2849
3146
 
2850
- def ashowinfo(self, **kwargs: Any) -> AudioStream:
3147
+ def ashowinfo(self, extra_options: dict[str, Any] = None, **kwargs: Any) -> AudioStream:
2851
3148
  """
2852
3149
 
2853
3150
  Show textual information for each audio frame.
@@ -2860,7 +3157,9 @@ class AudioStream(FilterableStream):
2860
3157
 
2861
3158
  """
2862
3159
  filter_node = filter_node_factory(
2863
- FFMpegFilterDef(name="ashowinfo", typings_input=("audio",), typings_output=("audio",)), self, **{} | kwargs
3160
+ FFMpegFilterDef(name="ashowinfo", typings_input=("audio",), typings_output=("audio",)),
3161
+ self,
3162
+ **{} | (extra_options or {}) | kwargs,
2864
3163
  )
2865
3164
  return filter_node.audio(0)
2866
3165
 
@@ -2894,6 +3193,7 @@ class AudioStream(FilterableStream):
2894
3193
  ]
2895
3194
  | Default = Default(-1),
2896
3195
  enable: String = Default(None),
3196
+ extra_options: dict[str, Any] = None,
2897
3197
  **kwargs: Any,
2898
3198
  ) -> AudioStream:
2899
3199
  """
@@ -2920,6 +3220,41 @@ class AudioStream(FilterableStream):
2920
3220
  "type": type,
2921
3221
  "enable": enable,
2922
3222
  }
3223
+ | (extra_options or {})
3224
+ | kwargs,
3225
+ )
3226
+ return filter_node.audio(0)
3227
+
3228
+ def asisdr(
3229
+ self,
3230
+ _input1: AudioStream,
3231
+ *,
3232
+ enable: String = Default(None),
3233
+ extra_options: dict[str, Any] = None,
3234
+ **kwargs: Any,
3235
+ ) -> AudioStream:
3236
+ """
3237
+
3238
+ Measure Audio Scale-Invariant Signal-to-Distortion Ratio.
3239
+
3240
+ Args:
3241
+ enable: timeline editing
3242
+
3243
+ Returns:
3244
+ default: the audio stream
3245
+
3246
+ References:
3247
+ [FFmpeg Documentation](https://ffmpeg.org/ffmpeg-filters.html#asisdr)
3248
+
3249
+ """
3250
+ filter_node = filter_node_factory(
3251
+ FFMpegFilterDef(name="asisdr", typings_input=("audio", "audio"), typings_output=("audio",)),
3252
+ self,
3253
+ _input1,
3254
+ **{
3255
+ "enable": enable,
3256
+ }
3257
+ | (extra_options or {})
2923
3258
  | kwargs,
2924
3259
  )
2925
3260
  return filter_node.audio(0)
@@ -2935,6 +3270,7 @@ class AudioStream(FilterableStream):
2935
3270
  param: Double = Default(1.0),
2936
3271
  oversample: Int = Default(1),
2937
3272
  enable: String = Default(None),
3273
+ extra_options: dict[str, Any] = None,
2938
3274
  **kwargs: Any,
2939
3275
  ) -> AudioStream:
2940
3276
  """
@@ -2967,6 +3303,7 @@ class AudioStream(FilterableStream):
2967
3303
  "oversample": oversample,
2968
3304
  "enable": enable,
2969
3305
  }
3306
+ | (extra_options or {})
2970
3307
  | kwargs,
2971
3308
  )
2972
3309
  return filter_node.audio(0)
@@ -3023,6 +3360,7 @@ class AudioStream(FilterableStream):
3023
3360
  | Default = Default(
3024
3361
  "all+mean+variance+centroid+spread+skewness+kurtosis+entropy+flatness+crest+flux+slope+decrease+rolloff"
3025
3362
  ),
3363
+ extra_options: dict[str, Any] = None,
3026
3364
  **kwargs: Any,
3027
3365
  ) -> AudioStream:
3028
3366
  """
@@ -3051,11 +3389,12 @@ class AudioStream(FilterableStream):
3051
3389
  "overlap": overlap,
3052
3390
  "measure": measure,
3053
3391
  }
3392
+ | (extra_options or {})
3054
3393
  | kwargs,
3055
3394
  )
3056
3395
  return filter_node.audio(0)
3057
3396
 
3058
- def asplit(self, *, outputs: Int = Default(2), **kwargs: Any) -> FilterNode:
3397
+ def asplit(self, *, outputs: Int = Default(2), extra_options: dict[str, Any] = None, **kwargs: Any) -> FilterNode:
3059
3398
  """
3060
3399
 
3061
3400
  Pass on the audio input to N audio outputs.
@@ -3079,6 +3418,7 @@ class AudioStream(FilterableStream):
3079
3418
  **{
3080
3419
  "outputs": outputs,
3081
3420
  }
3421
+ | (extra_options or {})
3082
3422
  | kwargs,
3083
3423
  )
3084
3424
 
@@ -3119,9 +3459,10 @@ class AudioStream(FilterableStream):
3119
3459
  "RMS_trough",
3120
3460
  "Zero_crossings",
3121
3461
  "Zero_crossings_rate",
3462
+ "Abs_Peak_count",
3122
3463
  ]
3123
3464
  | Default = Default(
3124
- "all+Bit_depth+Crest_factor+DC_offset+Dynamic_range+Entropy+Flat_factor+Max_difference+Max_level+Mean_difference+Min_difference+Min_level+Noise_floor+Noise_floor_count+Number_of_Infs+Number_of_NaNs+Number_of_denormals+Number_of_samples+Peak_count+Peak_level+RMS_difference+RMS_level+RMS_peak+RMS_trough+Zero_crossings+Zero_crossings_rate"
3465
+ "all+Bit_depth+Crest_factor+DC_offset+Dynamic_range+Entropy+Flat_factor+Max_difference+Max_level+Mean_difference+Min_difference+Min_level+Noise_floor+Noise_floor_count+Number_of_Infs+Number_of_NaNs+Number_of_denormals+Number_of_samples+Peak_count+Peak_level+RMS_difference+RMS_level+RMS_peak+RMS_trough+Zero_crossings+Zero_crossings_rate+Abs_Peak_count"
3125
3466
  ),
3126
3467
  measure_overall: Flags
3127
3468
  | Literal[
@@ -3152,10 +3493,12 @@ class AudioStream(FilterableStream):
3152
3493
  "RMS_trough",
3153
3494
  "Zero_crossings",
3154
3495
  "Zero_crossings_rate",
3496
+ "Abs_Peak_count",
3155
3497
  ]
3156
3498
  | Default = Default(
3157
- "all+Bit_depth+Crest_factor+DC_offset+Dynamic_range+Entropy+Flat_factor+Max_difference+Max_level+Mean_difference+Min_difference+Min_level+Noise_floor+Noise_floor_count+Number_of_Infs+Number_of_NaNs+Number_of_denormals+Number_of_samples+Peak_count+Peak_level+RMS_difference+RMS_level+RMS_peak+RMS_trough+Zero_crossings+Zero_crossings_rate"
3499
+ "all+Bit_depth+Crest_factor+DC_offset+Dynamic_range+Entropy+Flat_factor+Max_difference+Max_level+Mean_difference+Min_difference+Min_level+Noise_floor+Noise_floor_count+Number_of_Infs+Number_of_NaNs+Number_of_denormals+Number_of_samples+Peak_count+Peak_level+RMS_difference+RMS_level+RMS_peak+RMS_trough+Zero_crossings+Zero_crossings_rate+Abs_Peak_count"
3158
3500
  ),
3501
+ extra_options: dict[str, Any] = None,
3159
3502
  **kwargs: Any,
3160
3503
  ) -> AudioStream:
3161
3504
  """
@@ -3166,8 +3509,8 @@ class AudioStream(FilterableStream):
3166
3509
  length: set the window length (from 0 to 10) (default 0.05)
3167
3510
  metadata: inject metadata in the filtergraph (default false)
3168
3511
  reset: Set the number of frames over which cumulative stats are calculated before being reset (from 0 to INT_MAX) (default 0)
3169
- measure_perchannel: Select the parameters which are measured per channel (default all+Bit_depth+Crest_factor+DC_offset+Dynamic_range+Entropy+Flat_factor+Max_difference+Max_level+Mean_difference+Min_difference+Min_level+Noise_floor+Noise_floor_count+Number_of_Infs+Number_of_NaNs+Number_of_denormals+Number_of_samples+Peak_count+Peak_level+RMS_difference+RMS_level+RMS_peak+RMS_trough+Zero_crossings+Zero_crossings_rate)
3170
- measure_overall: Select the parameters which are measured overall (default all+Bit_depth+Crest_factor+DC_offset+Dynamic_range+Entropy+Flat_factor+Max_difference+Max_level+Mean_difference+Min_difference+Min_level+Noise_floor+Noise_floor_count+Number_of_Infs+Number_of_NaNs+Number_of_denormals+Number_of_samples+Peak_count+Peak_level+RMS_difference+RMS_level+RMS_peak+RMS_trough+Zero_crossings+Zero_crossings_rate)
3512
+ measure_perchannel: Select the parameters which are measured per channel (default all+Bit_depth+Crest_factor+DC_offset+Dynamic_range+Entropy+Flat_factor+Max_difference+Max_level+Mean_difference+Min_difference+Min_level+Noise_floor+Noise_floor_count+Number_of_Infs+Number_of_NaNs+Number_of_denormals+Number_of_samples+Peak_count+Peak_level+RMS_difference+RMS_level+RMS_peak+RMS_trough+Zero_crossings+Zero_crossings_rate+Abs_Peak_count)
3513
+ measure_overall: Select the parameters which are measured overall (default all+Bit_depth+Crest_factor+DC_offset+Dynamic_range+Entropy+Flat_factor+Max_difference+Max_level+Mean_difference+Min_difference+Min_level+Noise_floor+Noise_floor_count+Number_of_Infs+Number_of_NaNs+Number_of_denormals+Number_of_samples+Peak_count+Peak_level+RMS_difference+RMS_level+RMS_peak+RMS_trough+Zero_crossings+Zero_crossings_rate+Abs_Peak_count)
3171
3514
 
3172
3515
  Returns:
3173
3516
  default: the audio stream
@@ -3186,6 +3529,7 @@ class AudioStream(FilterableStream):
3186
3529
  "measure_perchannel": measure_perchannel,
3187
3530
  "measure_overall": measure_overall,
3188
3531
  }
3532
+ | (extra_options or {})
3189
3533
  | kwargs,
3190
3534
  )
3191
3535
  return filter_node.audio(0)
@@ -3203,6 +3547,7 @@ class AudioStream(FilterableStream):
3203
3547
  delay: Double = Default(20.0),
3204
3548
  channels: String = Default("all"),
3205
3549
  enable: String = Default(None),
3550
+ extra_options: dict[str, Any] = None,
3206
3551
  **kwargs: Any,
3207
3552
  ) -> AudioStream:
3208
3553
  """
@@ -3243,6 +3588,7 @@ class AudioStream(FilterableStream):
3243
3588
  "channels": channels,
3244
3589
  "enable": enable,
3245
3590
  }
3591
+ | (extra_options or {})
3246
3592
  | kwargs,
3247
3593
  )
3248
3594
  return filter_node.audio(0)
@@ -3254,6 +3600,7 @@ class AudioStream(FilterableStream):
3254
3600
  order: Int = Default(10),
3255
3601
  level: Double = Default(1.0),
3256
3602
  enable: String = Default(None),
3603
+ extra_options: dict[str, Any] = None,
3257
3604
  **kwargs: Any,
3258
3605
  ) -> AudioStream:
3259
3606
  """
@@ -3282,6 +3629,7 @@ class AudioStream(FilterableStream):
3282
3629
  "level": level,
3283
3630
  "enable": enable,
3284
3631
  }
3632
+ | (extra_options or {})
3285
3633
  | kwargs,
3286
3634
  )
3287
3635
  return filter_node.audio(0)
@@ -3293,6 +3641,7 @@ class AudioStream(FilterableStream):
3293
3641
  order: Int = Default(10),
3294
3642
  level: Double = Default(1.0),
3295
3643
  enable: String = Default(None),
3644
+ extra_options: dict[str, Any] = None,
3296
3645
  **kwargs: Any,
3297
3646
  ) -> AudioStream:
3298
3647
  """
@@ -3321,6 +3670,7 @@ class AudioStream(FilterableStream):
3321
3670
  "level": level,
3322
3671
  "enable": enable,
3323
3672
  }
3673
+ | (extra_options or {})
3324
3674
  | kwargs,
3325
3675
  )
3326
3676
  return filter_node.audio(0)
@@ -3333,6 +3683,7 @@ class AudioStream(FilterableStream):
3333
3683
  qfactor: Double = Default(1.0),
3334
3684
  level: Double = Default(1.0),
3335
3685
  enable: String = Default(None),
3686
+ extra_options: dict[str, Any] = None,
3336
3687
  **kwargs: Any,
3337
3688
  ) -> AudioStream:
3338
3689
  """
@@ -3363,6 +3714,7 @@ class AudioStream(FilterableStream):
3363
3714
  "level": level,
3364
3715
  "enable": enable,
3365
3716
  }
3717
+ | (extra_options or {})
3366
3718
  | kwargs,
3367
3719
  )
3368
3720
  return filter_node.audio(0)
@@ -3375,6 +3727,7 @@ class AudioStream(FilterableStream):
3375
3727
  qfactor: Double = Default(1.0),
3376
3728
  level: Double = Default(1.0),
3377
3729
  enable: String = Default(None),
3730
+ extra_options: dict[str, Any] = None,
3378
3731
  **kwargs: Any,
3379
3732
  ) -> AudioStream:
3380
3733
  """
@@ -3405,11 +3758,14 @@ class AudioStream(FilterableStream):
3405
3758
  "level": level,
3406
3759
  "enable": enable,
3407
3760
  }
3761
+ | (extra_options or {})
3408
3762
  | kwargs,
3409
3763
  )
3410
3764
  return filter_node.audio(0)
3411
3765
 
3412
- def atempo(self, *, tempo: Double = Default(1.0), **kwargs: Any) -> AudioStream:
3766
+ def atempo(
3767
+ self, *, tempo: Double = Default(1.0), extra_options: dict[str, Any] = None, **kwargs: Any
3768
+ ) -> AudioStream:
3413
3769
  """
3414
3770
 
3415
3771
  Adjust audio tempo.
@@ -3430,6 +3786,7 @@ class AudioStream(FilterableStream):
3430
3786
  **{
3431
3787
  "tempo": tempo,
3432
3788
  }
3789
+ | (extra_options or {})
3433
3790
  | kwargs,
3434
3791
  )
3435
3792
  return filter_node.audio(0)
@@ -3443,6 +3800,7 @@ class AudioStream(FilterableStream):
3443
3800
  order: Int = Default(5),
3444
3801
  level: Double = Default(1.0),
3445
3802
  enable: String = Default(None),
3803
+ extra_options: dict[str, Any] = None,
3446
3804
  **kwargs: Any,
3447
3805
  ) -> AudioStream:
3448
3806
  """
@@ -3475,6 +3833,7 @@ class AudioStream(FilterableStream):
3475
3833
  "level": level,
3476
3834
  "enable": enable,
3477
3835
  }
3836
+ | (extra_options or {})
3478
3837
  | kwargs,
3479
3838
  )
3480
3839
  return filter_node.audio(0)
@@ -3489,6 +3848,7 @@ class AudioStream(FilterableStream):
3489
3848
  duration: Duration = Default(0.0),
3490
3849
  start_sample: Int64 = Default(-1),
3491
3850
  end_sample: Int64 = Default("I64_MAX"),
3851
+ extra_options: dict[str, Any] = None,
3492
3852
  **kwargs: Any,
3493
3853
  ) -> AudioStream:
3494
3854
  """
@@ -3523,6 +3883,7 @@ class AudioStream(FilterableStream):
3523
3883
  "start_sample": start_sample,
3524
3884
  "end_sample": end_sample,
3525
3885
  }
3886
+ | (extra_options or {})
3526
3887
  | kwargs,
3527
3888
  )
3528
3889
  return filter_node.audio(0)
@@ -3546,6 +3907,7 @@ class AudioStream(FilterableStream):
3546
3907
  scale: Int | Literal["lin", "sqrt", "cbrt", "log"] | Default = Default("lin"),
3547
3908
  swap: Boolean = Default(True),
3548
3909
  mirror: Int | Literal["none", "x", "y", "xy"] | Default = Default("none"),
3910
+ extra_options: dict[str, Any] = None,
3549
3911
  **kwargs: Any,
3550
3912
  ) -> VideoStream:
3551
3913
  """
@@ -3598,6 +3960,7 @@ class AudioStream(FilterableStream):
3598
3960
  "swap": swap,
3599
3961
  "mirror": mirror,
3600
3962
  }
3963
+ | (extra_options or {})
3601
3964
  | kwargs,
3602
3965
  )
3603
3966
  return filter_node.video(0)
@@ -3607,7 +3970,8 @@ class AudioStream(FilterableStream):
3607
3970
  _axcorrelate1: AudioStream,
3608
3971
  *,
3609
3972
  size: Int = Default(256),
3610
- algo: Int | Literal["slow", "fast"] | Default = Default("slow"),
3973
+ algo: Int | Literal["slow", "fast", "best"] | Default = Default("best"),
3974
+ extra_options: dict[str, Any] = None,
3611
3975
  **kwargs: Any,
3612
3976
  ) -> AudioStream:
3613
3977
  """
@@ -3615,8 +3979,8 @@ class AudioStream(FilterableStream):
3615
3979
  Cross-correlate two audio streams.
3616
3980
 
3617
3981
  Args:
3618
- size: set segment size (from 2 to 131072) (default 256)
3619
- algo: set algorithm (from 0 to 1) (default slow)
3982
+ size: set the segment size (from 2 to 131072) (default 256)
3983
+ algo: set the algorithm (from 0 to 2) (default best)
3620
3984
 
3621
3985
  Returns:
3622
3986
  default: the audio stream
@@ -3633,6 +3997,35 @@ class AudioStream(FilterableStream):
3633
3997
  "size": size,
3634
3998
  "algo": algo,
3635
3999
  }
4000
+ | (extra_options or {})
4001
+ | kwargs,
4002
+ )
4003
+ return filter_node.audio(0)
4004
+
4005
+ def azmq(
4006
+ self, *, bind_address: String = Default("tcp://*:5555"), extra_options: dict[str, Any] = None, **kwargs: Any
4007
+ ) -> AudioStream:
4008
+ """
4009
+
4010
+ Receive commands through ZMQ and broker them to filters.
4011
+
4012
+ Args:
4013
+ bind_address: set bind address (default "tcp://*:5555")
4014
+
4015
+ Returns:
4016
+ default: the audio stream
4017
+
4018
+ References:
4019
+ [FFmpeg Documentation](https://ffmpeg.org/ffmpeg-filters.html#zmq_002c-azmq)
4020
+
4021
+ """
4022
+ filter_node = filter_node_factory(
4023
+ FFMpegFilterDef(name="azmq", typings_input=("audio",), typings_output=("audio",)),
4024
+ self,
4025
+ **{
4026
+ "bind_address": bind_address,
4027
+ }
4028
+ | (extra_options or {})
3636
4029
  | kwargs,
3637
4030
  )
3638
4031
  return filter_node.audio(0)
@@ -3651,6 +4044,7 @@ class AudioStream(FilterableStream):
3651
4044
  precision: Int | Literal["auto", "s16", "s32", "f32", "f64"] | Default = Default("auto"),
3652
4045
  blocksize: Int = Default(0),
3653
4046
  enable: String = Default(None),
4047
+ extra_options: dict[str, Any] = None,
3654
4048
  **kwargs: Any,
3655
4049
  ) -> AudioStream:
3656
4050
  """
@@ -3693,6 +4087,7 @@ class AudioStream(FilterableStream):
3693
4087
  "blocksize": blocksize,
3694
4088
  "enable": enable,
3695
4089
  }
4090
+ | (extra_options or {})
3696
4091
  | kwargs,
3697
4092
  )
3698
4093
  return filter_node.audio(0)
@@ -3710,6 +4105,7 @@ class AudioStream(FilterableStream):
3710
4105
  precision: Int | Literal["auto", "s16", "s32", "f32", "f64"] | Default = Default("auto"),
3711
4106
  blocksize: Int = Default(0),
3712
4107
  enable: String = Default(None),
4108
+ extra_options: dict[str, Any] = None,
3713
4109
  **kwargs: Any,
3714
4110
  ) -> AudioStream:
3715
4111
  """
@@ -3750,6 +4146,7 @@ class AudioStream(FilterableStream):
3750
4146
  "blocksize": blocksize,
3751
4147
  "enable": enable,
3752
4148
  }
4149
+ | (extra_options or {})
3753
4150
  | kwargs,
3754
4151
  )
3755
4152
  return filter_node.audio(0)
@@ -3769,6 +4166,7 @@ class AudioStream(FilterableStream):
3769
4166
  precision: Int | Literal["auto", "s16", "s32", "f32", "f64"] | Default = Default("auto"),
3770
4167
  blocksize: Int = Default(0),
3771
4168
  enable: String = Default(None),
4169
+ extra_options: dict[str, Any] = None,
3772
4170
  **kwargs: Any,
3773
4171
  ) -> AudioStream:
3774
4172
  """
@@ -3813,6 +4211,7 @@ class AudioStream(FilterableStream):
3813
4211
  "blocksize": blocksize,
3814
4212
  "enable": enable,
3815
4213
  }
4214
+ | (extra_options or {})
3816
4215
  | kwargs,
3817
4216
  )
3818
4217
  return filter_node.audio(0)
@@ -3829,6 +4228,7 @@ class AudioStream(FilterableStream):
3829
4228
  precision: Int | Literal["auto", "s16", "s32", "f32", "f64"] | Default = Default("auto"),
3830
4229
  blocksize: Int = Default(0),
3831
4230
  enable: String = Default(None),
4231
+ extra_options: dict[str, Any] = None,
3832
4232
  **kwargs: Any,
3833
4233
  ) -> AudioStream:
3834
4234
  """
@@ -3867,12 +4267,18 @@ class AudioStream(FilterableStream):
3867
4267
  "blocksize": blocksize,
3868
4268
  "enable": enable,
3869
4269
  }
4270
+ | (extra_options or {})
3870
4271
  | kwargs,
3871
4272
  )
3872
4273
  return filter_node.audio(0)
3873
4274
 
3874
4275
  def channelmap(
3875
- self, *, map: String = Default(None), channel_layout: String = Default(None), **kwargs: Any
4276
+ self,
4277
+ *,
4278
+ map: String = Default(None),
4279
+ channel_layout: String = Default(None),
4280
+ extra_options: dict[str, Any] = None,
4281
+ **kwargs: Any,
3876
4282
  ) -> AudioStream:
3877
4283
  """
3878
4284
 
@@ -3896,12 +4302,18 @@ class AudioStream(FilterableStream):
3896
4302
  "map": map,
3897
4303
  "channel_layout": channel_layout,
3898
4304
  }
4305
+ | (extra_options or {})
3899
4306
  | kwargs,
3900
4307
  )
3901
4308
  return filter_node.audio(0)
3902
4309
 
3903
4310
  def channelsplit(
3904
- self, *, channel_layout: String = Default("stereo"), channels: String = Default("all"), **kwargs: Any
4311
+ self,
4312
+ *,
4313
+ channel_layout: String = Default("stereo"),
4314
+ channels: String = Default("all"),
4315
+ extra_options: dict[str, Any] = None,
4316
+ **kwargs: Any,
3905
4317
  ) -> FilterNode:
3906
4318
  """
3907
4319
 
@@ -3930,6 +4342,7 @@ class AudioStream(FilterableStream):
3930
4342
  "channel_layout": channel_layout,
3931
4343
  "channels": channels,
3932
4344
  }
4345
+ | (extra_options or {})
3933
4346
  | kwargs,
3934
4347
  )
3935
4348
 
@@ -3944,6 +4357,7 @@ class AudioStream(FilterableStream):
3944
4357
  decays: String = Default(None),
3945
4358
  speeds: String = Default(None),
3946
4359
  depths: String = Default(None),
4360
+ extra_options: dict[str, Any] = None,
3947
4361
  **kwargs: Any,
3948
4362
  ) -> AudioStream:
3949
4363
  """
@@ -3976,6 +4390,7 @@ class AudioStream(FilterableStream):
3976
4390
  "speeds": speeds,
3977
4391
  "depths": depths,
3978
4392
  }
4393
+ | (extra_options or {})
3979
4394
  | kwargs,
3980
4395
  )
3981
4396
  return filter_node.audio(0)
@@ -3990,6 +4405,7 @@ class AudioStream(FilterableStream):
3990
4405
  gain: Double = Default(0.0),
3991
4406
  volume: Double = Default(0.0),
3992
4407
  delay: Double = Default(0.0),
4408
+ extra_options: dict[str, Any] = None,
3993
4409
  **kwargs: Any,
3994
4410
  ) -> AudioStream:
3995
4411
  """
@@ -4024,6 +4440,7 @@ class AudioStream(FilterableStream):
4024
4440
  "volume": volume,
4025
4441
  "delay": delay,
4026
4442
  }
4443
+ | (extra_options or {})
4027
4444
  | kwargs,
4028
4445
  )
4029
4446
  return filter_node.audio(0)
@@ -4038,6 +4455,7 @@ class AudioStream(FilterableStream):
4038
4455
  wet: Double = Default(1.0),
4039
4456
  temp: Int = Default(20),
4040
4457
  enable: String = Default(None),
4458
+ extra_options: dict[str, Any] = None,
4041
4459
  **kwargs: Any,
4042
4460
  ) -> AudioStream:
4043
4461
  """
@@ -4072,6 +4490,7 @@ class AudioStream(FilterableStream):
4072
4490
  "temp": temp,
4073
4491
  "enable": enable,
4074
4492
  }
4493
+ | (extra_options or {})
4075
4494
  | kwargs,
4076
4495
  )
4077
4496
  return filter_node.audio(0)
@@ -4086,6 +4505,7 @@ class AudioStream(FilterableStream):
4086
4505
  level_out: Double = Default(1.0),
4087
4506
  block_size: Int = Default(0),
4088
4507
  enable: String = Default(None),
4508
+ extra_options: dict[str, Any] = None,
4089
4509
  **kwargs: Any,
4090
4510
  ) -> AudioStream:
4091
4511
  """
@@ -4120,12 +4540,19 @@ class AudioStream(FilterableStream):
4120
4540
  "block_size": block_size,
4121
4541
  "enable": enable,
4122
4542
  }
4543
+ | (extra_options or {})
4123
4544
  | kwargs,
4124
4545
  )
4125
4546
  return filter_node.audio(0)
4126
4547
 
4127
4548
  def crystalizer(
4128
- self, *, i: Float = Default(2.0), c: Boolean = Default(True), enable: String = Default(None), **kwargs: Any
4549
+ self,
4550
+ *,
4551
+ i: Float = Default(2.0),
4552
+ c: Boolean = Default(True),
4553
+ enable: String = Default(None),
4554
+ extra_options: dict[str, Any] = None,
4555
+ **kwargs: Any,
4129
4556
  ) -> AudioStream:
4130
4557
  """
4131
4558
 
@@ -4151,6 +4578,7 @@ class AudioStream(FilterableStream):
4151
4578
  "c": c,
4152
4579
  "enable": enable,
4153
4580
  }
4581
+ | (extra_options or {})
4154
4582
  | kwargs,
4155
4583
  )
4156
4584
  return filter_node.audio(0)
@@ -4161,6 +4589,7 @@ class AudioStream(FilterableStream):
4161
4589
  shift: Double = Default(0.0),
4162
4590
  limitergain: Double = Default(0.0),
4163
4591
  enable: String = Default(None),
4592
+ extra_options: dict[str, Any] = None,
4164
4593
  **kwargs: Any,
4165
4594
  ) -> AudioStream:
4166
4595
  """
@@ -4187,6 +4616,7 @@ class AudioStream(FilterableStream):
4187
4616
  "limitergain": limitergain,
4188
4617
  "enable": enable,
4189
4618
  }
4619
+ | (extra_options or {})
4190
4620
  | kwargs,
4191
4621
  )
4192
4622
  return filter_node.audio(0)
@@ -4199,6 +4629,7 @@ class AudioStream(FilterableStream):
4199
4629
  f: Double = Default(0.5),
4200
4630
  s: Int | Literal["i", "o", "e"] | Default = Default("o"),
4201
4631
  enable: String = Default(None),
4632
+ extra_options: dict[str, Any] = None,
4202
4633
  **kwargs: Any,
4203
4634
  ) -> AudioStream:
4204
4635
  """
@@ -4229,6 +4660,7 @@ class AudioStream(FilterableStream):
4229
4660
  "s": s,
4230
4661
  "enable": enable,
4231
4662
  }
4663
+ | (extra_options or {})
4232
4664
  | kwargs,
4233
4665
  )
4234
4666
  return filter_node.audio(0)
@@ -4240,6 +4672,7 @@ class AudioStream(FilterableStream):
4240
4672
  enhance: Double = Default(1.0),
4241
4673
  voice: Double = Default(2.0),
4242
4674
  enable: String = Default(None),
4675
+ extra_options: dict[str, Any] = None,
4243
4676
  **kwargs: Any,
4244
4677
  ) -> AudioStream:
4245
4678
  """
@@ -4268,11 +4701,14 @@ class AudioStream(FilterableStream):
4268
4701
  "voice": voice,
4269
4702
  "enable": enable,
4270
4703
  }
4704
+ | (extra_options or {})
4271
4705
  | kwargs,
4272
4706
  )
4273
4707
  return filter_node.audio(0)
4274
4708
 
4275
- def drmeter(self, *, length: Double = Default(3.0), **kwargs: Any) -> AudioStream:
4709
+ def drmeter(
4710
+ self, *, length: Double = Default(3.0), extra_options: dict[str, Any] = None, **kwargs: Any
4711
+ ) -> AudioStream:
4276
4712
  """
4277
4713
 
4278
4714
  Measure audio dynamic range.
@@ -4293,6 +4729,7 @@ class AudioStream(FilterableStream):
4293
4729
  **{
4294
4730
  "length": length,
4295
4731
  }
4732
+ | (extra_options or {})
4296
4733
  | kwargs,
4297
4734
  )
4298
4735
  return filter_node.audio(0)
@@ -4314,6 +4751,7 @@ class AudioStream(FilterableStream):
4314
4751
  overlap: Double = Default(0.0),
4315
4752
  curve: String = Default(None),
4316
4753
  enable: String = Default(None),
4754
+ extra_options: dict[str, Any] = None,
4317
4755
  **kwargs: Any,
4318
4756
  ) -> AudioStream:
4319
4757
  """
@@ -4362,11 +4800,12 @@ class AudioStream(FilterableStream):
4362
4800
  "curve": curve,
4363
4801
  "enable": enable,
4364
4802
  }
4803
+ | (extra_options or {})
4365
4804
  | kwargs,
4366
4805
  )
4367
4806
  return filter_node.audio(0)
4368
4807
 
4369
- def earwax(self, **kwargs: Any) -> AudioStream:
4808
+ def earwax(self, extra_options: dict[str, Any] = None, **kwargs: Any) -> AudioStream:
4370
4809
  """
4371
4810
 
4372
4811
  Widen the stereo image.
@@ -4379,7 +4818,9 @@ class AudioStream(FilterableStream):
4379
4818
 
4380
4819
  """
4381
4820
  filter_node = filter_node_factory(
4382
- FFMpegFilterDef(name="earwax", typings_input=("audio",), typings_output=("audio",)), self, **{} | kwargs
4821
+ FFMpegFilterDef(name="earwax", typings_input=("audio",), typings_output=("audio",)),
4822
+ self,
4823
+ **{} | (extra_options or {}) | kwargs,
4383
4824
  )
4384
4825
  return filter_node.audio(0)
4385
4826
 
@@ -4397,6 +4838,13 @@ class AudioStream(FilterableStream):
4397
4838
  target: Int = Default(-23),
4398
4839
  gauge: Int | Literal["momentary", "m", "shortterm", "s"] | Default = Default("momentary"),
4399
4840
  scale: Int | Literal["absolute", "LUFS", "relative", "LU"] | Default = Default("absolute"),
4841
+ integrated: Double = Default(0.0),
4842
+ range: Double = Default(0.0),
4843
+ lra_low: Double = Default(0.0),
4844
+ lra_high: Double = Default(0.0),
4845
+ sample_peak: Double = Default(0.0),
4846
+ true_peak: Double = Default(0.0),
4847
+ extra_options: dict[str, Any] = None,
4400
4848
  **kwargs: Any,
4401
4849
  ) -> FilterNode:
4402
4850
  """
@@ -4415,6 +4863,12 @@ class AudioStream(FilterableStream):
4415
4863
  target: set a specific target level in LUFS (-23 to 0) (from -23 to 0) (default -23)
4416
4864
  gauge: set gauge display type (from 0 to 1) (default momentary)
4417
4865
  scale: sets display method for the stats (from 0 to 1) (default absolute)
4866
+ integrated: integrated loudness (LUFS) (from -DBL_MAX to DBL_MAX) (default 0)
4867
+ range: loudness range (LU) (from -DBL_MAX to DBL_MAX) (default 0)
4868
+ lra_low: LRA low (LUFS) (from -DBL_MAX to DBL_MAX) (default 0)
4869
+ lra_high: LRA high (LUFS) (from -DBL_MAX to DBL_MAX) (default 0)
4870
+ sample_peak: sample peak (dBFS) (from -DBL_MAX to DBL_MAX) (default 0)
4871
+ true_peak: true peak (dBFS) (from -DBL_MAX to DBL_MAX) (default 0)
4418
4872
 
4419
4873
  Returns:
4420
4874
  filter_node: the filter node
@@ -4443,7 +4897,14 @@ class AudioStream(FilterableStream):
4443
4897
  "target": target,
4444
4898
  "gauge": gauge,
4445
4899
  "scale": scale,
4900
+ "integrated": integrated,
4901
+ "range": range,
4902
+ "lra_low": lra_low,
4903
+ "lra_high": lra_high,
4904
+ "sample_peak": sample_peak,
4905
+ "true_peak": true_peak,
4446
4906
  }
4907
+ | (extra_options or {})
4447
4908
  | kwargs,
4448
4909
  )
4449
4910
 
@@ -4463,6 +4924,7 @@ class AudioStream(FilterableStream):
4463
4924
  precision: Int | Literal["auto", "s16", "s32", "f32", "f64"] | Default = Default("auto"),
4464
4925
  blocksize: Int = Default(0),
4465
4926
  enable: String = Default(None),
4927
+ extra_options: dict[str, Any] = None,
4466
4928
  **kwargs: Any,
4467
4929
  ) -> AudioStream:
4468
4930
  """
@@ -4505,12 +4967,19 @@ class AudioStream(FilterableStream):
4505
4967
  "blocksize": blocksize,
4506
4968
  "enable": enable,
4507
4969
  }
4970
+ | (extra_options or {})
4508
4971
  | kwargs,
4509
4972
  )
4510
4973
  return filter_node.audio(0)
4511
4974
 
4512
4975
  def extrastereo(
4513
- self, *, m: Float = Default(2.5), c: Boolean = Default(True), enable: String = Default(None), **kwargs: Any
4976
+ self,
4977
+ *,
4978
+ m: Float = Default(2.5),
4979
+ c: Boolean = Default(True),
4980
+ enable: String = Default(None),
4981
+ extra_options: dict[str, Any] = None,
4982
+ **kwargs: Any,
4514
4983
  ) -> AudioStream:
4515
4984
  """
4516
4985
 
@@ -4536,6 +5005,7 @@ class AudioStream(FilterableStream):
4536
5005
  "c": c,
4537
5006
  "enable": enable,
4538
5007
  }
5008
+ | (extra_options or {})
4539
5009
  | kwargs,
4540
5010
  )
4541
5011
  return filter_node.audio(0)
@@ -4569,6 +5039,7 @@ class AudioStream(FilterableStream):
4569
5039
  dumpscale: Int | Literal["linlin", "linlog", "loglin", "loglog"] | Default = Default("linlog"),
4570
5040
  fft2: Boolean = Default(False),
4571
5041
  min_phase: Boolean = Default(False),
5042
+ extra_options: dict[str, Any] = None,
4572
5043
  **kwargs: Any,
4573
5044
  ) -> AudioStream:
4574
5045
  """
@@ -4615,6 +5086,7 @@ class AudioStream(FilterableStream):
4615
5086
  "fft2": fft2,
4616
5087
  "min_phase": min_phase,
4617
5088
  }
5089
+ | (extra_options or {})
4618
5090
  | kwargs,
4619
5091
  )
4620
5092
  return filter_node.audio(0)
@@ -4630,6 +5102,7 @@ class AudioStream(FilterableStream):
4630
5102
  shape: Int | Literal["triangular", "t", "sinusoidal", "s"] | Default = Default("sinusoidal"),
4631
5103
  phase: Double = Default(25.0),
4632
5104
  interp: Int | Literal["linear", "quadratic"] | Default = Default("linear"),
5105
+ extra_options: dict[str, Any] = None,
4633
5106
  **kwargs: Any,
4634
5107
  ) -> AudioStream:
4635
5108
  """
@@ -4666,6 +5139,7 @@ class AudioStream(FilterableStream):
4666
5139
  "phase": phase,
4667
5140
  "interp": interp,
4668
5141
  }
5142
+ | (extra_options or {})
4669
5143
  | kwargs,
4670
5144
  )
4671
5145
  return filter_node.audio(0)
@@ -4686,6 +5160,7 @@ class AudioStream(FilterableStream):
4686
5160
  right_balance: Double = Default(1.0),
4687
5161
  right_gain: Double = Default(1.0),
4688
5162
  right_phase: Boolean = Default(True),
5163
+ extra_options: dict[str, Any] = None,
4689
5164
  **kwargs: Any,
4690
5165
  ) -> AudioStream:
4691
5166
  """
@@ -4732,6 +5207,7 @@ class AudioStream(FilterableStream):
4732
5207
  "right_gain": right_gain,
4733
5208
  "right_phase": right_phase,
4734
5209
  }
5210
+ | (extra_options or {})
4735
5211
  | kwargs,
4736
5212
  )
4737
5213
  return filter_node.audio(0)
@@ -4745,6 +5221,7 @@ class AudioStream(FilterableStream):
4745
5221
  force_pe: Boolean = Default(False),
4746
5222
  analyze_mode: Int | Literal["off", "lle", "pe", "cdt", "tgm"] | Default = Default("off"),
4747
5223
  bits_per_sample: Int | Literal["16", "20", "24"] | Default = Default(16),
5224
+ extra_options: dict[str, Any] = None,
4748
5225
  **kwargs: Any,
4749
5226
  ) -> AudioStream:
4750
5227
  """
@@ -4777,6 +5254,7 @@ class AudioStream(FilterableStream):
4777
5254
  "analyze_mode": analyze_mode,
4778
5255
  "bits_per_sample": bits_per_sample,
4779
5256
  }
5257
+ | (extra_options or {})
4780
5258
  | kwargs,
4781
5259
  )
4782
5260
  return filter_node.audio(0)
@@ -4795,6 +5273,7 @@ class AudioStream(FilterableStream):
4795
5273
  precision: Int | Literal["auto", "s16", "s32", "f32", "f64"] | Default = Default("auto"),
4796
5274
  blocksize: Int = Default(0),
4797
5275
  enable: String = Default(None),
5276
+ extra_options: dict[str, Any] = None,
4798
5277
  **kwargs: Any,
4799
5278
  ) -> AudioStream:
4800
5279
  """
@@ -4837,6 +5316,7 @@ class AudioStream(FilterableStream):
4837
5316
  "blocksize": blocksize,
4838
5317
  "enable": enable,
4839
5318
  }
5319
+ | (extra_options or {})
4840
5320
  | kwargs,
4841
5321
  )
4842
5322
  return filter_node.audio(0)
@@ -4856,6 +5336,7 @@ class AudioStream(FilterableStream):
4856
5336
  precision: Int | Literal["auto", "s16", "s32", "f32", "f64"] | Default = Default("auto"),
4857
5337
  blocksize: Int = Default(0),
4858
5338
  enable: String = Default(None),
5339
+ extra_options: dict[str, Any] = None,
4859
5340
  **kwargs: Any,
4860
5341
  ) -> AudioStream:
4861
5342
  """
@@ -4900,6 +5381,7 @@ class AudioStream(FilterableStream):
4900
5381
  "blocksize": blocksize,
4901
5382
  "enable": enable,
4902
5383
  }
5384
+ | (extra_options or {})
4903
5385
  | kwargs,
4904
5386
  )
4905
5387
  return filter_node.audio(0)
@@ -4918,6 +5400,7 @@ class AudioStream(FilterableStream):
4918
5400
  linear: Boolean = Default(True),
4919
5401
  dual_mono: Boolean = Default(False),
4920
5402
  print_format: Int | Literal["none", "json", "summary"] | Default = Default("none"),
5403
+ extra_options: dict[str, Any] = None,
4921
5404
  **kwargs: Any,
4922
5405
  ) -> AudioStream:
4923
5406
  """
@@ -4960,6 +5443,7 @@ class AudioStream(FilterableStream):
4960
5443
  "dual_mono": dual_mono,
4961
5444
  "print_format": print_format,
4962
5445
  }
5446
+ | (extra_options or {})
4963
5447
  | kwargs,
4964
5448
  )
4965
5449
  return filter_node.audio(0)
@@ -4978,6 +5462,7 @@ class AudioStream(FilterableStream):
4978
5462
  precision: Int | Literal["auto", "s16", "s32", "f32", "f64"] | Default = Default("auto"),
4979
5463
  blocksize: Int = Default(0),
4980
5464
  enable: String = Default(None),
5465
+ extra_options: dict[str, Any] = None,
4981
5466
  **kwargs: Any,
4982
5467
  ) -> AudioStream:
4983
5468
  """
@@ -5020,6 +5505,7 @@ class AudioStream(FilterableStream):
5020
5505
  "blocksize": blocksize,
5021
5506
  "enable": enable,
5022
5507
  }
5508
+ | (extra_options or {})
5023
5509
  | kwargs,
5024
5510
  )
5025
5511
  return filter_node.audio(0)
@@ -5039,6 +5525,7 @@ class AudioStream(FilterableStream):
5039
5525
  precision: Int | Literal["auto", "s16", "s32", "f32", "f64"] | Default = Default("auto"),
5040
5526
  blocksize: Int = Default(0),
5041
5527
  enable: String = Default(None),
5528
+ extra_options: dict[str, Any] = None,
5042
5529
  **kwargs: Any,
5043
5530
  ) -> AudioStream:
5044
5531
  """
@@ -5083,6 +5570,7 @@ class AudioStream(FilterableStream):
5083
5570
  "blocksize": blocksize,
5084
5571
  "enable": enable,
5085
5572
  }
5573
+ | (extra_options or {})
5086
5574
  | kwargs,
5087
5575
  )
5088
5576
  return filter_node.audio(0)
@@ -5093,6 +5581,7 @@ class AudioStream(FilterableStream):
5093
5581
  args: String = Default(
5094
5582
  "0.005,0.1 6 -47/-40,-34/-34,-17/-33 100 | 0.003,0.05 6 -47/-40,-34/-34,-17/-33 400 | 0.000625,0.0125 6 -47/-40,-34/-34,-15/-33 1600 | 0.0001,0.025 6 -47/-40,-34/-34,-31/-31,-0/-30 6400 | 0,0.025 6 -38/-31,-28/-28,-0/-25 22000"
5095
5583
  ),
5584
+ extra_options: dict[str, Any] = None,
5096
5585
  **kwargs: Any,
5097
5586
  ) -> AudioStream:
5098
5587
  """
@@ -5115,11 +5604,12 @@ class AudioStream(FilterableStream):
5115
5604
  **{
5116
5605
  "args": args,
5117
5606
  }
5607
+ | (extra_options or {})
5118
5608
  | kwargs,
5119
5609
  )
5120
5610
  return filter_node.audio(0)
5121
5611
 
5122
- def pan(self, *, args: String = Default(None), **kwargs: Any) -> AudioStream:
5612
+ def pan(self, *, args: String = Default(None), extra_options: dict[str, Any] = None, **kwargs: Any) -> AudioStream:
5123
5613
  """
5124
5614
 
5125
5615
  Remix channels with coefficients (panning).
@@ -5140,15 +5630,27 @@ class AudioStream(FilterableStream):
5140
5630
  **{
5141
5631
  "args": args,
5142
5632
  }
5633
+ | (extra_options or {})
5143
5634
  | kwargs,
5144
5635
  )
5145
5636
  return filter_node.audio(0)
5146
5637
 
5147
- def replaygain(self, **kwargs: Any) -> AudioStream:
5638
+ def replaygain(
5639
+ self,
5640
+ *,
5641
+ track_gain: Float = Default(0.0),
5642
+ track_peak: Float = Default(0.0),
5643
+ extra_options: dict[str, Any] = None,
5644
+ **kwargs: Any,
5645
+ ) -> AudioStream:
5148
5646
  """
5149
5647
 
5150
5648
  ReplayGain scanner.
5151
5649
 
5650
+ Args:
5651
+ track_gain: track gain (dB) (from -FLT_MAX to FLT_MAX) (default 0)
5652
+ track_peak: track peak (from -FLT_MAX to FLT_MAX) (default 0)
5653
+
5152
5654
  Returns:
5153
5655
  default: the audio stream
5154
5656
 
@@ -5157,7 +5659,14 @@ class AudioStream(FilterableStream):
5157
5659
 
5158
5660
  """
5159
5661
  filter_node = filter_node_factory(
5160
- FFMpegFilterDef(name="replaygain", typings_input=("audio",), typings_output=("audio",)), self, **{} | kwargs
5662
+ FFMpegFilterDef(name="replaygain", typings_input=("audio",), typings_output=("audio",)),
5663
+ self,
5664
+ **{
5665
+ "track_gain": track_gain,
5666
+ "track_peak": track_peak,
5667
+ }
5668
+ | (extra_options or {})
5669
+ | kwargs,
5161
5670
  )
5162
5671
  return filter_node.audio(0)
5163
5672
 
@@ -5172,8 +5681,9 @@ class AudioStream(FilterableStream):
5172
5681
  window: Int | Literal["standard", "short", "long"] | Default = Default("standard"),
5173
5682
  smoothing: Int | Literal["off", "on"] | Default = Default("off"),
5174
5683
  formant: Int | Literal["shifted", "preserved"] | Default = Default("shifted"),
5175
- pitchq: Int | Literal["quality", "speed", "consistency"] | Default = Default("quality"),
5684
+ pitchq: Int | Literal["quality", "speed", "consistency"] | Default = Default("speed"),
5176
5685
  channels: Int | Literal["apart", "together"] | Default = Default("apart"),
5686
+ extra_options: dict[str, Any] = None,
5177
5687
  **kwargs: Any,
5178
5688
  ) -> AudioStream:
5179
5689
  """
@@ -5189,7 +5699,7 @@ class AudioStream(FilterableStream):
5189
5699
  window: set window (from 0 to INT_MAX) (default standard)
5190
5700
  smoothing: set smoothing (from 0 to INT_MAX) (default off)
5191
5701
  formant: set formant (from 0 to INT_MAX) (default shifted)
5192
- pitchq: set pitch quality (from 0 to INT_MAX) (default quality)
5702
+ pitchq: set pitch quality (from 0 to INT_MAX) (default speed)
5193
5703
  channels: set channels (from 0 to INT_MAX) (default apart)
5194
5704
 
5195
5705
  Returns:
@@ -5214,6 +5724,7 @@ class AudioStream(FilterableStream):
5214
5724
  "pitchq": pitchq,
5215
5725
  "channels": channels,
5216
5726
  }
5727
+ | (extra_options or {})
5217
5728
  | kwargs,
5218
5729
  )
5219
5730
  return filter_node.audio(0)
@@ -5249,6 +5760,7 @@ class AudioStream(FilterableStream):
5249
5760
  | Literal["unspecified", "bt709", "fcc", "bt470bg", "smpte170m", "smpte240m", "bt2020ncl"]
5250
5761
  | Default = Default("unspecified"),
5251
5762
  cscheme: String = Default("1|0.5|0|0|0.5|1"),
5763
+ extra_options: dict[str, Any] = None,
5252
5764
  **kwargs: Any,
5253
5765
  ) -> VideoStream:
5254
5766
  """
@@ -5321,6 +5833,7 @@ class AudioStream(FilterableStream):
5321
5833
  "csp": csp,
5322
5834
  "cscheme": cscheme,
5323
5835
  }
5836
+ | (extra_options or {})
5324
5837
  | kwargs,
5325
5838
  )
5326
5839
  return filter_node.video(0)
@@ -5330,15 +5843,23 @@ class AudioStream(FilterableStream):
5330
5843
  *,
5331
5844
  size: Image_size = Default("640x512"),
5332
5845
  rate: String = Default("25"),
5333
- scale: Int | Literal["linear", "log2", "bark", "mel", "erbs"] | Default = Default("linear"),
5846
+ scale: Int
5847
+ | Literal["linear", "log", "bark", "mel", "erbs", "sqrt", "cbrt", "qdrt"]
5848
+ | Default = Default("linear"),
5849
+ iscale: Int | Literal["linear", "log", "sqrt", "cbrt", "qdrt"] | Default = Default("log"),
5334
5850
  min: Float = Default(20.0),
5335
5851
  max: Float = Default(20000.0),
5852
+ imin: Float = Default(0.0),
5853
+ imax: Float = Default(1.0),
5336
5854
  logb: Float = Default(0.0001),
5337
5855
  deviation: Float = Default(1.0),
5338
5856
  pps: Int = Default(64),
5339
5857
  mode: Int | Literal["magnitude", "phase", "magphase", "channel", "stereo"] | Default = Default("magnitude"),
5340
5858
  slide: Int | Literal["replace", "scroll", "frame"] | Default = Default("replace"),
5341
5859
  direction: Int | Literal["lr", "rl", "ud", "du"] | Default = Default("lr"),
5860
+ bar: Float = Default(0.0),
5861
+ rotation: Float = Default(0.0),
5862
+ extra_options: dict[str, Any] = None,
5342
5863
  **kwargs: Any,
5343
5864
  ) -> VideoStream:
5344
5865
  """
@@ -5348,15 +5869,20 @@ class AudioStream(FilterableStream):
5348
5869
  Args:
5349
5870
  size: set video size (default "640x512")
5350
5871
  rate: set video rate (default "25")
5351
- scale: set frequency scale (from 0 to 4) (default linear)
5352
- min: set minimum frequency (from 1 to 2000) (default 20)
5353
- max: set maximum frequency (from 0 to 192000) (default 20000)
5872
+ scale: set frequency scale (from 0 to 7) (default linear)
5873
+ iscale: set intensity scale (from 0 to 4) (default log)
5874
+ min: set minimum frequency (from 1 to 192000) (default 20)
5875
+ max: set maximum frequency (from 1 to 192000) (default 20000)
5876
+ imin: set minimum intensity (from 0 to 1) (default 0)
5877
+ imax: set maximum intensity (from 0 to 1) (default 1)
5354
5878
  logb: set logarithmic basis (from 0 to 1) (default 0.0001)
5355
- deviation: set frequency deviation (from 0 to 10) (default 1)
5879
+ deviation: set frequency deviation (from 0 to 100) (default 1)
5356
5880
  pps: set pixels per second (from 1 to 1024) (default 64)
5357
5881
  mode: set output mode (from 0 to 4) (default magnitude)
5358
5882
  slide: set slide mode (from 0 to 2) (default replace)
5359
5883
  direction: set direction mode (from 0 to 3) (default lr)
5884
+ bar: set bar ratio (from 0 to 1) (default 0)
5885
+ rotation: set color rotation (from -1 to 1) (default 0)
5360
5886
 
5361
5887
  Returns:
5362
5888
  default: the video stream
@@ -5372,15 +5898,21 @@ class AudioStream(FilterableStream):
5372
5898
  "size": size,
5373
5899
  "rate": rate,
5374
5900
  "scale": scale,
5901
+ "iscale": iscale,
5375
5902
  "min": min,
5376
5903
  "max": max,
5904
+ "imin": imin,
5905
+ "imax": imax,
5377
5906
  "logb": logb,
5378
5907
  "deviation": deviation,
5379
5908
  "pps": pps,
5380
5909
  "mode": mode,
5381
5910
  "slide": slide,
5382
5911
  "direction": direction,
5912
+ "bar": bar,
5913
+ "rotation": rotation,
5383
5914
  }
5915
+ | (extra_options or {})
5384
5916
  | kwargs,
5385
5917
  )
5386
5918
  return filter_node.video(0)
@@ -5427,6 +5959,7 @@ class AudioStream(FilterableStream):
5427
5959
  minamp: Float = Default(1e-06),
5428
5960
  data: Int | Literal["magnitude", "phase", "delay"] | Default = Default("magnitude"),
5429
5961
  channels: String = Default("all"),
5962
+ extra_options: dict[str, Any] = None,
5430
5963
  **kwargs: Any,
5431
5964
  ) -> VideoStream:
5432
5965
  """
@@ -5475,6 +6008,7 @@ class AudioStream(FilterableStream):
5475
6008
  "data": data,
5476
6009
  "channels": channels,
5477
6010
  }
6011
+ | (extra_options or {})
5478
6012
  | kwargs,
5479
6013
  )
5480
6014
  return filter_node.video(0)
@@ -5511,6 +6045,7 @@ class AudioStream(FilterableStream):
5511
6045
  ]
5512
6046
  | Default = Default("hann"),
5513
6047
  rate: Video_rate = Default("25"),
6048
+ extra_options: dict[str, Any] = None,
5514
6049
  **kwargs: Any,
5515
6050
  ) -> VideoStream:
5516
6051
  """
@@ -5539,6 +6074,7 @@ class AudioStream(FilterableStream):
5539
6074
  "win_func": win_func,
5540
6075
  "rate": rate,
5541
6076
  }
6077
+ | (extra_options or {})
5542
6078
  | kwargs,
5543
6079
  )
5544
6080
  return filter_node.video(0)
@@ -5609,6 +6145,7 @@ class AudioStream(FilterableStream):
5609
6145
  drange: Float = Default(120.0),
5610
6146
  limit: Float = Default(0.0),
5611
6147
  opacity: Float = Default(1.0),
6148
+ extra_options: dict[str, Any] = None,
5612
6149
  **kwargs: Any,
5613
6150
  ) -> VideoStream:
5614
6151
  """
@@ -5669,6 +6206,7 @@ class AudioStream(FilterableStream):
5669
6206
  "limit": limit,
5670
6207
  "opacity": opacity,
5671
6208
  }
6209
+ | (extra_options or {})
5672
6210
  | kwargs,
5673
6211
  )
5674
6212
  return filter_node.video(0)
@@ -5735,6 +6273,7 @@ class AudioStream(FilterableStream):
5735
6273
  drange: Float = Default(120.0),
5736
6274
  limit: Float = Default(0.0),
5737
6275
  opacity: Float = Default(1.0),
6276
+ extra_options: dict[str, Any] = None,
5738
6277
  **kwargs: Any,
5739
6278
  ) -> VideoStream:
5740
6279
  """
@@ -5787,6 +6326,7 @@ class AudioStream(FilterableStream):
5787
6326
  "limit": limit,
5788
6327
  "opacity": opacity,
5789
6328
  }
6329
+ | (extra_options or {})
5790
6330
  | kwargs,
5791
6331
  )
5792
6332
  return filter_node.video(0)
@@ -5809,6 +6349,7 @@ class AudioStream(FilterableStream):
5809
6349
  p: Float = Default(0.0),
5810
6350
  m: Int | Literal["p", "r"] | Default = Default("p"),
5811
6351
  ds: Int | Literal["lin", "log"] | Default = Default("lin"),
6352
+ extra_options: dict[str, Any] = None,
5812
6353
  **kwargs: Any,
5813
6354
  ) -> VideoStream:
5814
6355
  """
@@ -5859,6 +6400,7 @@ class AudioStream(FilterableStream):
5859
6400
  "m": m,
5860
6401
  "ds": ds,
5861
6402
  }
6403
+ | (extra_options or {})
5862
6404
  | kwargs,
5863
6405
  )
5864
6406
  return filter_node.video(0)
@@ -5868,12 +6410,13 @@ class AudioStream(FilterableStream):
5868
6410
  *,
5869
6411
  size: Image_size = Default("600x240"),
5870
6412
  mode: Int | Literal["point", "line", "p2p", "cline"] | Default = Default("point"),
5871
- n: Int = Default(0),
6413
+ n: Rational = Default("0/1"),
5872
6414
  rate: Video_rate = Default("25"),
5873
6415
  split_channels: Boolean = Default(False),
5874
6416
  colors: String = Default("red|green|blue|yellow|orange|lime|pink|magenta|brown"),
5875
6417
  scale: Int | Literal["lin", "log", "sqrt", "cbrt"] | Default = Default("lin"),
5876
6418
  draw: Int | Literal["scale", "full"] | Default = Default("scale"),
6419
+ extra_options: dict[str, Any] = None,
5877
6420
  **kwargs: Any,
5878
6421
  ) -> VideoStream:
5879
6422
  """
@@ -5883,7 +6426,7 @@ class AudioStream(FilterableStream):
5883
6426
  Args:
5884
6427
  size: set video size (default "600x240")
5885
6428
  mode: select display mode (from 0 to 3) (default point)
5886
- n: set how many samples to show in the same point (from 0 to INT_MAX) (default 0)
6429
+ n: set how many samples to show in the same point (from 0 to INT_MAX) (default 0/1)
5887
6430
  rate: set video rate (default "25")
5888
6431
  split_channels: draw channels separately (default false)
5889
6432
  colors: set channels colors (default "red|green|blue|yellow|orange|lime|pink|magenta|brown")
@@ -5910,6 +6453,7 @@ class AudioStream(FilterableStream):
5910
6453
  "scale": scale,
5911
6454
  "draw": draw,
5912
6455
  }
6456
+ | (extra_options or {})
5913
6457
  | kwargs,
5914
6458
  )
5915
6459
  return filter_node.video(0)
@@ -5923,6 +6467,7 @@ class AudioStream(FilterableStream):
5923
6467
  scale: Int | Literal["lin", "log", "sqrt", "cbrt"] | Default = Default("lin"),
5924
6468
  draw: Int | Literal["scale", "full"] | Default = Default("scale"),
5925
6469
  filter: Int | Literal["average", "peak"] | Default = Default("average"),
6470
+ extra_options: dict[str, Any] = None,
5926
6471
  **kwargs: Any,
5927
6472
  ) -> VideoStream:
5928
6473
  """
@@ -5955,6 +6500,7 @@ class AudioStream(FilterableStream):
5955
6500
  "draw": draw,
5956
6501
  "filter": filter,
5957
6502
  }
6503
+ | (extra_options or {})
5958
6504
  | kwargs,
5959
6505
  )
5960
6506
  return filter_node.video(0)
@@ -5975,6 +6521,7 @@ class AudioStream(FilterableStream):
5975
6521
  detection: Int | Literal["peak", "rms"] | Default = Default("rms"),
5976
6522
  level_sc: Double = Default(1.0),
5977
6523
  mix: Double = Default(1.0),
6524
+ extra_options: dict[str, Any] = None,
5978
6525
  **kwargs: Any,
5979
6526
  ) -> AudioStream:
5980
6527
  """
@@ -6020,6 +6567,7 @@ class AudioStream(FilterableStream):
6020
6567
  "level_sc": level_sc,
6021
6568
  "mix": mix,
6022
6569
  }
6570
+ | (extra_options or {})
6023
6571
  | kwargs,
6024
6572
  )
6025
6573
  return filter_node.audio(0)
@@ -6041,6 +6589,7 @@ class AudioStream(FilterableStream):
6041
6589
  link: Int | Literal["average", "maximum"] | Default = Default("average"),
6042
6590
  level_sc: Double = Default(1.0),
6043
6591
  enable: String = Default(None),
6592
+ extra_options: dict[str, Any] = None,
6044
6593
  **kwargs: Any,
6045
6594
  ) -> AudioStream:
6046
6595
  """
@@ -6088,12 +6637,19 @@ class AudioStream(FilterableStream):
6088
6637
  "level_sc": level_sc,
6089
6638
  "enable": enable,
6090
6639
  }
6640
+ | (extra_options or {})
6091
6641
  | kwargs,
6092
6642
  )
6093
6643
  return filter_node.audio(0)
6094
6644
 
6095
6645
  def silencedetect(
6096
- self, *, n: Double = Default(0.001), d: Duration = Default(2.0), mono: Boolean = Default(False), **kwargs: Any
6646
+ self,
6647
+ *,
6648
+ n: Double = Default(0.001),
6649
+ d: Duration = Default(2.0),
6650
+ mono: Boolean = Default(False),
6651
+ extra_options: dict[str, Any] = None,
6652
+ **kwargs: Any,
6097
6653
  ) -> AudioStream:
6098
6654
  """
6099
6655
 
@@ -6119,6 +6675,7 @@ class AudioStream(FilterableStream):
6119
6675
  "d": d,
6120
6676
  "mono": mono,
6121
6677
  }
6678
+ | (extra_options or {})
6122
6679
  | kwargs,
6123
6680
  )
6124
6681
  return filter_node.audio(0)
@@ -6135,9 +6692,12 @@ class AudioStream(FilterableStream):
6135
6692
  stop_duration: Duration = Default(0.0),
6136
6693
  stop_threshold: Double = Default(0.0),
6137
6694
  stop_silence: Duration = Default(0.0),
6138
- stop_mode: Int | Literal["any", "all"] | Default = Default("any"),
6139
- detection: Int | Literal["peak", "rms"] | Default = Default("rms"),
6695
+ stop_mode: Int | Literal["any", "all"] | Default = Default("all"),
6696
+ detection: Int | Literal["avg", "rms", "peak", "median", "ptp", "dev"] | Default = Default("rms"),
6140
6697
  window: Duration = Default(0.02),
6698
+ timestamp: Int | Literal["write", "copy"] | Default = Default("write"),
6699
+ enable: String = Default(None),
6700
+ extra_options: dict[str, Any] = None,
6141
6701
  **kwargs: Any,
6142
6702
  ) -> AudioStream:
6143
6703
  """
@@ -6151,12 +6711,14 @@ class AudioStream(FilterableStream):
6151
6711
  start_silence: set start duration of silence part to keep (default 0)
6152
6712
  start_mode: set which channel will trigger trimming from start (from 0 to 1) (default any)
6153
6713
  stop_periods: set periods of silence parts to skip from end (from -9000 to 9000) (default 0)
6154
- stop_duration: set stop duration of non-silence part (default 0)
6714
+ stop_duration: set stop duration of silence part (default 0)
6155
6715
  stop_threshold: set threshold for stop silence detection (from 0 to DBL_MAX) (default 0)
6156
6716
  stop_silence: set stop duration of silence part to keep (default 0)
6157
- stop_mode: set which channel will trigger trimming from end (from 0 to 1) (default any)
6158
- detection: set how silence is detected (from 0 to 1) (default rms)
6717
+ stop_mode: set which channel will trigger trimming from end (from 0 to 1) (default all)
6718
+ detection: set how silence is detected (from 0 to 5) (default rms)
6159
6719
  window: set duration of window for silence detection (default 0.02)
6720
+ timestamp: set how every output frame timestamp is processed (from 0 to 1) (default write)
6721
+ enable: timeline editing
6160
6722
 
6161
6723
  Returns:
6162
6724
  default: the audio stream
@@ -6181,7 +6743,10 @@ class AudioStream(FilterableStream):
6181
6743
  "stop_mode": stop_mode,
6182
6744
  "detection": detection,
6183
6745
  "window": window,
6746
+ "timestamp": timestamp,
6747
+ "enable": enable,
6184
6748
  }
6749
+ | (extra_options or {})
6185
6750
  | kwargs,
6186
6751
  )
6187
6752
  return filter_node.audio(0)
@@ -6200,6 +6765,7 @@ class AudioStream(FilterableStream):
6200
6765
  link: Boolean = Default(False),
6201
6766
  rms: Double = Default(0.0),
6202
6767
  enable: String = Default(None),
6768
+ extra_options: dict[str, Any] = None,
6203
6769
  **kwargs: Any,
6204
6770
  ) -> AudioStream:
6205
6771
  """
@@ -6242,6 +6808,7 @@ class AudioStream(FilterableStream):
6242
6808
  "rms": rms,
6243
6809
  "enable": enable,
6244
6810
  }
6811
+ | (extra_options or {})
6245
6812
  | kwargs,
6246
6813
  )
6247
6814
  return filter_node.audio(0)
@@ -6272,6 +6839,7 @@ class AudioStream(FilterableStream):
6272
6839
  bmode_in: Int | Literal["balance", "amplitude", "power"] | Default = Default("balance"),
6273
6840
  bmode_out: Int | Literal["balance", "amplitude", "power"] | Default = Default("balance"),
6274
6841
  enable: String = Default(None),
6842
+ extra_options: dict[str, Any] = None,
6275
6843
  **kwargs: Any,
6276
6844
  ) -> AudioStream:
6277
6845
  """
@@ -6334,6 +6902,7 @@ class AudioStream(FilterableStream):
6334
6902
  "bmode_out": bmode_out,
6335
6903
  "enable": enable,
6336
6904
  }
6905
+ | (extra_options or {})
6337
6906
  | kwargs,
6338
6907
  )
6339
6908
  return filter_node.audio(0)
@@ -6346,6 +6915,7 @@ class AudioStream(FilterableStream):
6346
6915
  crossfeed: Float = Default(0.3),
6347
6916
  drymix: Float = Default(0.8),
6348
6917
  enable: String = Default(None),
6918
+ extra_options: dict[str, Any] = None,
6349
6919
  **kwargs: Any,
6350
6920
  ) -> AudioStream:
6351
6921
  """
@@ -6376,6 +6946,7 @@ class AudioStream(FilterableStream):
6376
6946
  "drymix": drymix,
6377
6947
  "enable": enable,
6378
6948
  }
6949
+ | (extra_options or {})
6379
6950
  | kwargs,
6380
6951
  )
6381
6952
  return filter_node.audio(0)
@@ -6401,6 +6972,7 @@ class AudioStream(FilterableStream):
6401
6972
  _16b: Float = Default(1.0),
6402
6973
  _17b: Float = Default(1.0),
6403
6974
  _18b: Float = Default(1.0),
6975
+ extra_options: dict[str, Any] = None,
6404
6976
  **kwargs: Any,
6405
6977
  ) -> AudioStream:
6406
6978
  """
@@ -6457,6 +7029,7 @@ class AudioStream(FilterableStream):
6457
7029
  "17b": _17b,
6458
7030
  "18b": _18b,
6459
7031
  }
7032
+ | (extra_options or {})
6460
7033
  | kwargs,
6461
7034
  )
6462
7035
  return filter_node.audio(0)
@@ -6539,6 +7112,7 @@ class AudioStream(FilterableStream):
6539
7112
  ]
6540
7113
  | Default = Default("hann"),
6541
7114
  overlap: Float = Default(0.5),
7115
+ extra_options: dict[str, Any] = None,
6542
7116
  **kwargs: Any,
6543
7117
  ) -> AudioStream:
6544
7118
  """
@@ -6659,6 +7233,7 @@ class AudioStream(FilterableStream):
6659
7233
  "win_func": win_func,
6660
7234
  "overlap": overlap,
6661
7235
  }
7236
+ | (extra_options or {})
6662
7237
  | kwargs,
6663
7238
  )
6664
7239
  return filter_node.audio(0)
@@ -6678,6 +7253,7 @@ class AudioStream(FilterableStream):
6678
7253
  precision: Int | Literal["auto", "s16", "s32", "f32", "f64"] | Default = Default("auto"),
6679
7254
  blocksize: Int = Default(0),
6680
7255
  enable: String = Default(None),
7256
+ extra_options: dict[str, Any] = None,
6681
7257
  **kwargs: Any,
6682
7258
  ) -> AudioStream:
6683
7259
  """
@@ -6722,6 +7298,7 @@ class AudioStream(FilterableStream):
6722
7298
  "blocksize": blocksize,
6723
7299
  "enable": enable,
6724
7300
  }
7301
+ | (extra_options or {})
6725
7302
  | kwargs,
6726
7303
  )
6727
7304
  return filter_node.audio(0)
@@ -6741,6 +7318,7 @@ class AudioStream(FilterableStream):
6741
7318
  precision: Int | Literal["auto", "s16", "s32", "f32", "f64"] | Default = Default("auto"),
6742
7319
  blocksize: Int = Default(0),
6743
7320
  enable: String = Default(None),
7321
+ extra_options: dict[str, Any] = None,
6744
7322
  **kwargs: Any,
6745
7323
  ) -> AudioStream:
6746
7324
  """
@@ -6785,12 +7363,19 @@ class AudioStream(FilterableStream):
6785
7363
  "blocksize": blocksize,
6786
7364
  "enable": enable,
6787
7365
  }
7366
+ | (extra_options or {})
6788
7367
  | kwargs,
6789
7368
  )
6790
7369
  return filter_node.audio(0)
6791
7370
 
6792
7371
  def tremolo(
6793
- self, *, f: Double = Default(5.0), d: Double = Default(0.5), enable: String = Default(None), **kwargs: Any
7372
+ self,
7373
+ *,
7374
+ f: Double = Default(5.0),
7375
+ d: Double = Default(0.5),
7376
+ enable: String = Default(None),
7377
+ extra_options: dict[str, Any] = None,
7378
+ **kwargs: Any,
6794
7379
  ) -> AudioStream:
6795
7380
  """
6796
7381
 
@@ -6816,12 +7401,19 @@ class AudioStream(FilterableStream):
6816
7401
  "d": d,
6817
7402
  "enable": enable,
6818
7403
  }
7404
+ | (extra_options or {})
6819
7405
  | kwargs,
6820
7406
  )
6821
7407
  return filter_node.audio(0)
6822
7408
 
6823
7409
  def vibrato(
6824
- self, *, f: Double = Default(5.0), d: Double = Default(0.5), enable: String = Default(None), **kwargs: Any
7410
+ self,
7411
+ *,
7412
+ f: Double = Default(5.0),
7413
+ d: Double = Default(0.5),
7414
+ enable: String = Default(None),
7415
+ extra_options: dict[str, Any] = None,
7416
+ **kwargs: Any,
6825
7417
  ) -> AudioStream:
6826
7418
  """
6827
7419
 
@@ -6847,6 +7439,7 @@ class AudioStream(FilterableStream):
6847
7439
  "d": d,
6848
7440
  "enable": enable,
6849
7441
  }
7442
+ | (extra_options or {})
6850
7443
  | kwargs,
6851
7444
  )
6852
7445
  return filter_node.audio(0)
@@ -6857,6 +7450,7 @@ class AudioStream(FilterableStream):
6857
7450
  cutoff: Double = Default(250.0),
6858
7451
  strength: Double = Default(3.0),
6859
7452
  enable: String = Default(None),
7453
+ extra_options: dict[str, Any] = None,
6860
7454
  **kwargs: Any,
6861
7455
  ) -> AudioStream:
6862
7456
  """
@@ -6883,6 +7477,7 @@ class AudioStream(FilterableStream):
6883
7477
  "strength": strength,
6884
7478
  "enable": enable,
6885
7479
  }
7480
+ | (extra_options or {})
6886
7481
  | kwargs,
6887
7482
  )
6888
7483
  return filter_node.audio(0)
@@ -6897,6 +7492,7 @@ class AudioStream(FilterableStream):
6897
7492
  replaygain_preamp: Double = Default(0.0),
6898
7493
  replaygain_noclip: Boolean = Default(True),
6899
7494
  enable: String = Default(None),
7495
+ extra_options: dict[str, Any] = None,
6900
7496
  **kwargs: Any,
6901
7497
  ) -> AudioStream:
6902
7498
  """
@@ -6931,11 +7527,12 @@ class AudioStream(FilterableStream):
6931
7527
  "replaygain_noclip": replaygain_noclip,
6932
7528
  "enable": enable,
6933
7529
  }
7530
+ | (extra_options or {})
6934
7531
  | kwargs,
6935
7532
  )
6936
7533
  return filter_node.audio(0)
6937
7534
 
6938
- def volumedetect(self, **kwargs: Any) -> AudioStream:
7535
+ def volumedetect(self, extra_options: dict[str, Any] = None, **kwargs: Any) -> AudioStream:
6939
7536
  """
6940
7537
 
6941
7538
  Detect audio volume.
@@ -6950,6 +7547,6 @@ class AudioStream(FilterableStream):
6950
7547
  filter_node = filter_node_factory(
6951
7548
  FFMpegFilterDef(name="volumedetect", typings_input=("audio",), typings_output=("audio",)),
6952
7549
  self,
6953
- **{} | kwargs,
7550
+ **{} | (extra_options or {}) | kwargs,
6954
7551
  )
6955
7552
  return filter_node.audio(0)