typed-ffmpeg-compatible 3.5.1__py3-none-any.whl → 3.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. typed_ffmpeg/__init__.py +4 -1
  2. typed_ffmpeg/_version.py +2 -2
  3. typed_ffmpeg/base.py +4 -1
  4. typed_ffmpeg/codecs/__init__.py +2 -0
  5. typed_ffmpeg/codecs/decoders.py +1852 -1853
  6. typed_ffmpeg/codecs/encoders.py +2001 -1782
  7. typed_ffmpeg/codecs/schema.py +6 -12
  8. typed_ffmpeg/common/__init__.py +1 -0
  9. typed_ffmpeg/common/cache.py +9 -6
  10. typed_ffmpeg/common/schema.py +11 -0
  11. typed_ffmpeg/common/serialize.py +13 -7
  12. typed_ffmpeg/compile/__init__.py +1 -0
  13. typed_ffmpeg/compile/compile_cli.py +55 -8
  14. typed_ffmpeg/compile/compile_json.py +4 -0
  15. typed_ffmpeg/compile/compile_python.py +15 -0
  16. typed_ffmpeg/compile/context.py +15 -4
  17. typed_ffmpeg/compile/validate.py +9 -8
  18. typed_ffmpeg/dag/factory.py +2 -0
  19. typed_ffmpeg/dag/global_runnable/__init__.py +1 -0
  20. typed_ffmpeg/dag/global_runnable/global_args.py +2 -2
  21. typed_ffmpeg/dag/global_runnable/runnable.py +51 -11
  22. typed_ffmpeg/dag/io/__init__.py +1 -0
  23. typed_ffmpeg/dag/io/_input.py +20 -5
  24. typed_ffmpeg/dag/io/_output.py +24 -9
  25. typed_ffmpeg/dag/io/output_args.py +21 -7
  26. typed_ffmpeg/dag/nodes.py +20 -0
  27. typed_ffmpeg/dag/schema.py +19 -6
  28. typed_ffmpeg/dag/utils.py +2 -2
  29. typed_ffmpeg/exceptions.py +2 -1
  30. typed_ffmpeg/expressions.py +884 -0
  31. typed_ffmpeg/ffprobe/__init__.py +1 -0
  32. typed_ffmpeg/ffprobe/parse.py +7 -1
  33. typed_ffmpeg/ffprobe/probe.py +3 -1
  34. typed_ffmpeg/ffprobe/schema.py +83 -1
  35. typed_ffmpeg/ffprobe/xml2json.py +8 -2
  36. typed_ffmpeg/filters.py +540 -631
  37. typed_ffmpeg/formats/__init__.py +2 -0
  38. typed_ffmpeg/formats/demuxers.py +1869 -1921
  39. typed_ffmpeg/formats/muxers.py +1382 -1107
  40. typed_ffmpeg/formats/schema.py +6 -12
  41. typed_ffmpeg/info.py +8 -0
  42. typed_ffmpeg/options/__init__.py +15 -0
  43. typed_ffmpeg/options/codec.py +711 -0
  44. typed_ffmpeg/options/format.py +196 -0
  45. typed_ffmpeg/options/framesync.py +43 -0
  46. typed_ffmpeg/options/timeline.py +22 -0
  47. typed_ffmpeg/schema.py +15 -0
  48. typed_ffmpeg/sources.py +392 -381
  49. typed_ffmpeg/streams/__init__.py +2 -0
  50. typed_ffmpeg/streams/audio.py +1071 -882
  51. typed_ffmpeg/streams/av.py +9 -3
  52. typed_ffmpeg/streams/subtitle.py +3 -3
  53. typed_ffmpeg/streams/video.py +1873 -1725
  54. typed_ffmpeg/types.py +3 -2
  55. typed_ffmpeg/utils/__init__.py +1 -0
  56. typed_ffmpeg/utils/escaping.py +8 -4
  57. typed_ffmpeg/utils/frozendict.py +31 -1
  58. typed_ffmpeg/utils/lazy_eval/__init__.py +1 -0
  59. typed_ffmpeg/utils/lazy_eval/operator.py +75 -27
  60. typed_ffmpeg/utils/lazy_eval/schema.py +176 -4
  61. typed_ffmpeg/utils/run.py +2 -0
  62. typed_ffmpeg/utils/snapshot.py +3 -2
  63. typed_ffmpeg/utils/typing.py +2 -1
  64. typed_ffmpeg/utils/view.py +2 -1
  65. {typed_ffmpeg_compatible-3.5.1.dist-info → typed_ffmpeg_compatible-3.6.dist-info}/METADATA +1 -1
  66. typed_ffmpeg_compatible-3.6.dist-info/RECORD +73 -0
  67. typed_ffmpeg_compatible-3.5.1.dist-info/RECORD +0 -67
  68. {typed_ffmpeg_compatible-3.5.1.dist-info → typed_ffmpeg_compatible-3.6.dist-info}/WHEEL +0 -0
  69. {typed_ffmpeg_compatible-3.5.1.dist-info → typed_ffmpeg_compatible-3.6.dist-info}/entry_points.txt +0 -0
  70. {typed_ffmpeg_compatible-3.5.1.dist-info → typed_ffmpeg_compatible-3.6.dist-info}/licenses/LICENSE +0 -0
  71. {typed_ffmpeg_compatible-3.5.1.dist-info → typed_ffmpeg_compatible-3.6.dist-info}/top_level.txt +0 -0
@@ -1,17 +1,11 @@
1
- from dataclasses import dataclass
1
+ """FFmpeg format schema definitions."""
2
2
 
3
- from ..common.serialize import Serializable
4
- from ..utils.frozendict import FrozenDict
3
+ from ..schema import FFMpegOptionGroup
5
4
 
6
5
 
7
- @dataclass(frozen=True, kw_only=True)
8
- class FFMpegFormatOption(Serializable):
9
- kwargs: FrozenDict[str, str | int | float | bool] = FrozenDict({})
6
+ class FFMpegMuxerOption(FFMpegOptionGroup):
7
+ """FFmpeg muxer option group."""
10
8
 
11
9
 
12
- @dataclass(frozen=True, kw_only=True)
13
- class FFMpegMuxerOption(FFMpegFormatOption): ...
14
-
15
-
16
- @dataclass(frozen=True, kw_only=True)
17
- class FFMpegDemuxerOption(FFMpegFormatOption): ...
10
+ class FFMpegDemuxerOption(FFMpegOptionGroup):
11
+ """FFmpeg demuxer option group."""
typed_ffmpeg/info.py CHANGED
@@ -49,6 +49,7 @@ class Codec:
49
49
  name: The codec identifier used in FFmpeg commands
50
50
  flags: Bitmap of capabilities supported by the codec
51
51
  description: Human-readable description of the codec
52
+
52
53
  """
53
54
 
54
55
  name: str
@@ -68,6 +69,7 @@ def parse_codec_flags(flags: str) -> CodecFlags:
68
69
 
69
70
  Returns:
70
71
  A CodecFlags bitmap with the appropriate flags set
72
+
71
73
  """
72
74
  flags_enum = CodecFlags(0)
73
75
  if flags[0] == "V":
@@ -101,6 +103,7 @@ def get_codecs() -> tuple[Codec, ...]:
101
103
 
102
104
  Raises:
103
105
  FFMpegExecuteError: If the ffmpeg command fails
106
+
104
107
  """
105
108
  args = ["ffmpeg", "-hide_banner", "-codecs"]
106
109
  logger.info("Running ffmpeg command: %s", command_line(args))
@@ -161,6 +164,7 @@ def parse_coder_flags(flags: str) -> CoderFlags:
161
164
 
162
165
  Returns:
163
166
  A CoderFlags bitmap with the appropriate flags set
167
+
164
168
  """
165
169
  flags_enum = CoderFlags(0)
166
170
  if flags[0] == "V":
@@ -195,6 +199,7 @@ class Coder:
195
199
  name: The coder identifier used in FFmpeg commands
196
200
  flags: Bitmap of capabilities supported by the coder
197
201
  description: Human-readable description of the coder
202
+
198
203
  """
199
204
 
200
205
  name: str
@@ -214,6 +219,7 @@ def get_coders(codes: str) -> tuple[Coder, ...]:
214
219
 
215
220
  Returns:
216
221
  A tuple of Coder objects representing the available encoders/decoders
222
+
217
223
  """
218
224
  codecs_lines = codes.strip().split("\n")
219
225
  # Skip header lines until we find the separator
@@ -244,6 +250,7 @@ def get_decoders() -> tuple[Coder, ...]:
244
250
 
245
251
  Raises:
246
252
  FFMpegExecuteError: If the ffmpeg command fails
253
+
247
254
  """
248
255
  args = ["ffmpeg", "-hide_banner", "-decoders"]
249
256
  logger.info("Running ffmpeg command: %s", command_line(args))
@@ -272,6 +279,7 @@ def get_encoders() -> tuple[Coder, ...]:
272
279
 
273
280
  Raises:
274
281
  FFMpegExecuteError: If the ffmpeg command fails
282
+
275
283
  """
276
284
  args = ["ffmpeg", "-hide_banner", "-encoders"]
277
285
  logger.info("Running ffmpeg command: %s", command_line(args))
@@ -0,0 +1,15 @@
1
+ """FFmpeg options."""
2
+
3
+ from .codec import decoder_codec_context, encoder_codec_context
4
+ from .format import decoder_format_context, encoder_format_context
5
+ from .framesync import framesync
6
+ from .timeline import timeline
7
+
8
+ __all__ = [
9
+ "framesync",
10
+ "timeline",
11
+ "encoder_format_context",
12
+ "decoder_format_context",
13
+ "encoder_codec_context",
14
+ "decoder_codec_context",
15
+ ]