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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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)