typed-ffmpeg-compatible 2.7.2__tar.gz → 2.7.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/PKG-INFO +1 -1
  2. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/pyproject.toml +1 -1
  3. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/__init__.py +2 -1
  4. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/.gitignore +3 -0
  5. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/acrossover.json +6 -0
  6. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/afir.json +9 -0
  7. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/aiir.json +6 -0
  8. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/ainterleave.json +9 -0
  9. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/amerge.json +9 -0
  10. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/amix.json +9 -0
  11. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/amovie.json +6 -0
  12. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/anequalizer.json +6 -0
  13. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/aphasemeter.json +6 -0
  14. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/asegment.json +6 -0
  15. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/aselect.json +6 -0
  16. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/asplit.json +6 -0
  17. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/astreamselect.json +9 -0
  18. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/bm3d.json +6 -0
  19. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/channelsplit.json +6 -0
  20. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/concat.json +9 -0
  21. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/decimate.json +6 -0
  22. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/ebur128.json +6 -0
  23. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/extractplanes.json +6 -0
  24. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/fieldmatch.json +6 -0
  25. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/guided.json +6 -0
  26. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/headphone.json +6 -0
  27. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/hstack.json +9 -0
  28. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/interleave.json +9 -0
  29. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/join.json +9 -0
  30. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/libplacebo.json +9 -0
  31. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/limitdiff.json +6 -0
  32. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/mergeplanes.json +6 -0
  33. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/mix.json +9 -0
  34. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/movie.json +6 -0
  35. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/premultiply.json +6 -0
  36. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/segment.json +6 -0
  37. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/select.json +6 -0
  38. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/signature.json +9 -0
  39. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/split.json +6 -0
  40. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/streamselect.json +9 -0
  41. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/unpremultiply.json +6 -0
  42. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/vstack.json +9 -0
  43. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/xmedian.json +9 -0
  44. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/FFMpegFilterManuallyDefined/xstack.json +9 -0
  45. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/list/filters.json +90747 -0
  46. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache/list/options.json +1694 -0
  47. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/common/cache.py +66 -0
  48. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/common/schema.py +9 -5
  49. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/common/serialize.py +12 -8
  50. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/compile/compile_cli.py +415 -0
  51. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/compile/compile_json.py +38 -0
  52. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/compile/compile_python.py +325 -0
  53. {typed_ffmpeg_compatible-2.7.2/src/typed_ffmpeg/dag → typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/compile}/context.py +26 -45
  54. {typed_ffmpeg_compatible-2.7.2/src/typed_ffmpeg/dag → typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/compile}/validate.py +2 -2
  55. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/dag/factory.py +25 -4
  56. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/dag/global_runnable/runnable.py +6 -6
  57. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/dag/nodes.py +2 -230
  58. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/dag/schema.py +2 -18
  59. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/streams/av.py +55 -0
  60. typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/utils/lazy_eval/__init__.py +0 -0
  61. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/utils/view.py +1 -1
  62. typed_ffmpeg_compatible-2.7.2/src/typed_ffmpeg/dag/compile.py +0 -86
  63. typed_ffmpeg_compatible-2.7.2/src/typed_ffmpeg/streams/av.py +0 -22
  64. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/LICENSE +0 -0
  65. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/README.md +0 -0
  66. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/base.py +0 -0
  67. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/common/__init__.py +0 -0
  68. {typed_ffmpeg_compatible-2.7.2/src/typed_ffmpeg/dag/global_runnable → typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/compile}/__init__.py +0 -0
  69. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/dag/__init__.py +0 -0
  70. {typed_ffmpeg_compatible-2.7.2/src/typed_ffmpeg/dag/io → typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/dag/global_runnable}/__init__.py +0 -0
  71. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/dag/global_runnable/global_args.py +0 -0
  72. {typed_ffmpeg_compatible-2.7.2/src/typed_ffmpeg/utils → typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/dag/io}/__init__.py +0 -0
  73. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/dag/io/_input.py +0 -0
  74. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/dag/io/_output.py +0 -0
  75. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/dag/io/output_args.py +0 -0
  76. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/dag/utils.py +0 -0
  77. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/exceptions.py +0 -0
  78. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/filters.py +0 -0
  79. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/info.py +0 -0
  80. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/probe.py +0 -0
  81. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/py.typed +0 -0
  82. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/schema.py +0 -0
  83. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/sources.py +0 -0
  84. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/streams/__init__.py +0 -0
  85. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/streams/audio.py +0 -0
  86. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/streams/channel_layout.py +0 -0
  87. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/streams/video.py +0 -0
  88. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/types.py +0 -0
  89. {typed_ffmpeg_compatible-2.7.2/src/typed_ffmpeg/utils/lazy_eval → typed_ffmpeg_compatible-2.7.4/src/typed_ffmpeg/utils}/__init__.py +0 -0
  90. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/utils/escaping.py +0 -0
  91. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/utils/forzendict.py +0 -0
  92. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/utils/lazy_eval/operator.py +0 -0
  93. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/utils/lazy_eval/schema.py +0 -0
  94. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/utils/run.py +0 -0
  95. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/utils/snapshot.py +0 -0
  96. {typed_ffmpeg_compatible-2.7.2 → typed_ffmpeg_compatible-2.7.4}/src/typed_ffmpeg/utils/typing.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: typed-ffmpeg-compatible
3
- Version: 2.7.2
3
+ Version: 2.7.4
4
4
  Summary: Modern Python FFmpeg wrappers offer comprehensive support for complex filters, complete with detailed typing and documentation.
5
5
  Home-page: https://livingbio.github.io/typed-ffmpeg/
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "typed-ffmpeg-compatible"
3
- version = "2.7.2"
3
+ version = "2.7.4"
4
4
  description = "Modern Python FFmpeg wrappers offer comprehensive support for complex filters, complete with detailed typing and documentation."
5
5
  authors = ["lucemia <lucemia@gmail.com>"]
6
6
  readme = "README.md"
@@ -22,7 +22,7 @@ Example:
22
22
  ```
23
23
  """
24
24
 
25
- from . import dag, filters, sources
25
+ from . import compile, dag, filters, sources
26
26
  from .base import afilter, filter_multi_output, input, merge_outputs, output, vfilter
27
27
  from .dag import Stream
28
28
  from .exceptions import FFMpegExecuteError, FFMpegTypeError, FFMpegValueError
@@ -41,6 +41,7 @@ __all__ = [
41
41
  "FFMpegValueError",
42
42
  "Stream",
43
43
  "probe",
44
+ "compile",
44
45
  "AudioStream",
45
46
  "VideoStream",
46
47
  "AVStream",
@@ -0,0 +1,3 @@
1
+ docs/
2
+ FFMpegFilter/
3
+ FilterDocument/
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": null,
4
+ "formula_typings_output": "[StreamType.audio] * len(re.split(r'[ |]+', str(split)))",
5
+ "name": "acrossover"
6
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.audio] * int(nbirs)",
4
+ "formula_typings_output": null,
5
+ "name": "afir",
6
+ "pre": {
7
+ "nbirs": "len(streams)"
8
+ }
9
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": null,
4
+ "formula_typings_output": "[StreamType.audio] + [StreamType.video] if response else []",
5
+ "name": "aiir"
6
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.audio] * int(nb_inputs)",
4
+ "formula_typings_output": null,
5
+ "name": "ainterleave",
6
+ "pre": {
7
+ "nb_inputs": "len(streams)"
8
+ }
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.audio] * int(inputs)",
4
+ "formula_typings_output": null,
5
+ "name": "amerge",
6
+ "pre": {
7
+ "inputs": "len(streams)"
8
+ }
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.audio] * int(inputs)",
4
+ "formula_typings_output": null,
5
+ "name": "amix",
6
+ "pre": {
7
+ "inputs": "len(streams)"
8
+ }
9
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.audio] * len(streams.split('+'))",
4
+ "formula_typings_output": "[StreamType.audio] * len(streams.split('+'))",
5
+ "name": "amovie"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": null,
4
+ "formula_typings_output": "[StreamType.audio] + [StreamType.video] if curves else []",
5
+ "name": "anequalizer"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": null,
4
+ "formula_typings_output": "[StreamType.audio] + ([StreamType.video] if video else [])",
5
+ "name": "aphasemeter"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": null,
4
+ "formula_typings_output": "[StreamType.audio] * len(str(timestamps or samples).split('|'))",
5
+ "name": "asegment"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": null,
4
+ "formula_typings_output": "[StreamType.audio] * int(outputs)",
5
+ "name": "aselect"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": null,
4
+ "formula_typings_output": "[StreamType.audio] * int(outputs)",
5
+ "name": "asplit"
6
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.audio] * int(inputs)",
4
+ "formula_typings_output": "[StreamType.audio] * len(re.findall(r'\\d+', str(map)))",
5
+ "name": "astreamselect",
6
+ "pre": {
7
+ "inputs": "len(streams)"
8
+ }
9
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.video] + [StreamType.video] if ref else []",
4
+ "formula_typings_output": null,
5
+ "name": "bm3d"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": null,
4
+ "formula_typings_output": "[StreamType.audio] * CHANNEL_LAYOUT[str(channel_layout)]",
5
+ "name": "channelsplit"
6
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "([StreamType.video]*int(v) + [StreamType.audio]*int(a))*int(n)",
4
+ "formula_typings_output": "[StreamType.video]*int(v) + [StreamType.audio]*int(a)",
5
+ "name": "concat",
6
+ "pre": {
7
+ "n": "len(streams) // (int(v) + int(a))"
8
+ }
9
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.video] + ([StreamType.video] if ppsrc else [])",
4
+ "formula_typings_output": null,
5
+ "name": "decimate"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": null,
4
+ "formula_typings_output": "[StreamType.video] if video else [] + [StreamType.audio]",
5
+ "name": "ebur128"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": null,
4
+ "formula_typings_output": "[StreamType.video] * len(planes.split('+'))",
5
+ "name": "extractplanes"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.video] + [StreamType.video] if ppsrc else []",
4
+ "formula_typings_output": null,
5
+ "name": "fieldmatch"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.video] + [StreamType.video] if guidance else []",
4
+ "formula_typings_output": null,
5
+ "name": "guided"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.audio] + [StreamType.audio] * (len(str(map).split('|')) - 1) if int(hrir) == 1 else []",
4
+ "formula_typings_output": null,
5
+ "name": "headphone"
6
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.video] * int(inputs)",
4
+ "formula_typings_output": null,
5
+ "name": "hstack",
6
+ "pre": {
7
+ "inputs": "len(streams)"
8
+ }
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.video] * int(nb_inputs)",
4
+ "formula_typings_output": null,
5
+ "name": "interleave",
6
+ "pre": {
7
+ "nb_inputs": "len(streams)"
8
+ }
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.audio] * int(inputs)",
4
+ "formula_typings_output": null,
5
+ "name": "join",
6
+ "pre": {
7
+ "inputs": "len(streams)"
8
+ }
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.video] * int(inputs)",
4
+ "formula_typings_output": null,
5
+ "name": "libplacebo",
6
+ "pre": {
7
+ "inputs": "len(streams)"
8
+ }
9
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.video, StreamType.video] + ([StreamType.video] if reference else [])",
4
+ "formula_typings_output": null,
5
+ "name": "limitdiff"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.video] * int(max(hex(int(mapping))[2::2]))",
4
+ "formula_typings_output": null,
5
+ "name": "mergeplanes"
6
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.video] * int(inputs)",
4
+ "formula_typings_output": null,
5
+ "name": "mix",
6
+ "pre": {
7
+ "inputs": "len(streams)"
8
+ }
9
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.video] * len(streams.split('+'))",
4
+ "formula_typings_output": "[StreamType.video] * len(streams.split('+'))",
5
+ "name": "movie"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.video] + [StreamType.video] if inplace else []",
4
+ "formula_typings_output": null,
5
+ "name": "premultiply"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": null,
4
+ "formula_typings_output": "[StreamType.video] * len((str(timestamps or frames)).split('|'))",
5
+ "name": "segment"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": null,
4
+ "formula_typings_output": "[StreamType.video] * int(outputs)",
5
+ "name": "select"
6
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.video] * int(nb_inputs)",
4
+ "formula_typings_output": null,
5
+ "name": "signature",
6
+ "pre": {
7
+ "nb_inputs": "len(streams)"
8
+ }
9
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": null,
4
+ "formula_typings_output": "[StreamType.video] * int(outputs)",
5
+ "name": "split"
6
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.video] * int(inputs)",
4
+ "formula_typings_output": "[StreamType.video] * len(re.findall(r'\\d+', str(map)))",
5
+ "name": "streamselect",
6
+ "pre": {
7
+ "inputs": "len(streams)"
8
+ }
9
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.video] + ([StreamType.video] if inplace else [])",
4
+ "formula_typings_output": null,
5
+ "name": "unpremultiply"
6
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.video] * int(inputs)",
4
+ "formula_typings_output": null,
5
+ "name": "vstack",
6
+ "pre": {
7
+ "inputs": "len(streams)"
8
+ }
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.video] * int(inputs)",
4
+ "formula_typings_output": null,
5
+ "name": "xmedian",
6
+ "pre": {
7
+ "inputs": "len(streams)"
8
+ }
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "__class__": "FFMpegFilterManuallyDefined",
3
+ "formula_typings_input": "[StreamType.video] * int(inputs)",
4
+ "formula_typings_output": null,
5
+ "name": "xstack",
6
+ "pre": {
7
+ "inputs": "len(streams)"
8
+ }
9
+ }