typed-ffmpeg-compatible 2.6.0__py3-none-any.whl → 2.6.2__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- typed_ffmpeg/base.py +24 -5
- typed_ffmpeg/common/schema.py +25 -9
- typed_ffmpeg/common/serialize.py +9 -4
- typed_ffmpeg/dag/__init__.py +8 -1
- typed_ffmpeg/dag/context.py +7 -2
- typed_ffmpeg/dag/factory.py +29 -9
- typed_ffmpeg/dag/global_runnable/global_args.py +1 -2
- typed_ffmpeg/dag/global_runnable/runnable.py +9 -3
- typed_ffmpeg/dag/io/_input.py +3 -1
- typed_ffmpeg/dag/io/_output.py +3 -1
- typed_ffmpeg/dag/io/output_args.py +7 -4
- typed_ffmpeg/dag/nodes.py +55 -26
- typed_ffmpeg/dag/schema.py +3 -3
- typed_ffmpeg/dag/validate.py +26 -8
- typed_ffmpeg/exceptions.py +1 -1
- typed_ffmpeg/filters.py +304 -72
- typed_ffmpeg/info.py +9 -3
- typed_ffmpeg/probe.py +9 -2
- typed_ffmpeg/schema.py +0 -1
- typed_ffmpeg/streams/audio.py +697 -214
- typed_ffmpeg/streams/video.py +1400 -401
- typed_ffmpeg/utils/escaping.py +6 -5
- typed_ffmpeg/utils/run.py +1 -1
- typed_ffmpeg/utils/snapshot.py +6 -1
- typed_ffmpeg/utils/view.py +7 -2
- {typed_ffmpeg_compatible-2.6.0.dist-info → typed_ffmpeg_compatible-2.6.2.dist-info}/METADATA +1 -1
- typed_ffmpeg_compatible-2.6.2.dist-info/RECORD +46 -0
- typed_ffmpeg_compatible-2.6.0.dist-info/RECORD +0 -46
- {typed_ffmpeg_compatible-2.6.0.dist-info → typed_ffmpeg_compatible-2.6.2.dist-info}/LICENSE +0 -0
- {typed_ffmpeg_compatible-2.6.0.dist-info → typed_ffmpeg_compatible-2.6.2.dist-info}/WHEEL +0 -0
- {typed_ffmpeg_compatible-2.6.0.dist-info → typed_ffmpeg_compatible-2.6.2.dist-info}/entry_points.txt +0 -0
typed_ffmpeg/info.py
CHANGED
@@ -56,7 +56,9 @@ def get_codecs() -> tuple[Codec, ...]:
|
|
56
56
|
|
57
57
|
retcode = p.poll()
|
58
58
|
if p.returncode != 0:
|
59
|
-
raise FFMpegExecuteError(
|
59
|
+
raise FFMpegExecuteError(
|
60
|
+
retcode=retcode, cmd=command_line(args), stdout=out, stderr=err
|
61
|
+
)
|
60
62
|
|
61
63
|
codecs = out.decode("utf-8")
|
62
64
|
codecs_lines = codecs.strip().split("\n")
|
@@ -141,7 +143,9 @@ def get_decoders() -> tuple[Coder, ...]:
|
|
141
143
|
|
142
144
|
retcode = p.poll()
|
143
145
|
if p.returncode != 0:
|
144
|
-
raise FFMpegExecuteError(
|
146
|
+
raise FFMpegExecuteError(
|
147
|
+
retcode=retcode, cmd=command_line(args), stdout=out, stderr=err
|
148
|
+
)
|
145
149
|
|
146
150
|
decoders = out.decode("utf-8")
|
147
151
|
return get_coders(decoders)
|
@@ -155,7 +159,9 @@ def get_encoders() -> tuple[Coder, ...]:
|
|
155
159
|
|
156
160
|
retcode = p.poll()
|
157
161
|
if p.returncode != 0:
|
158
|
-
raise FFMpegExecuteError(
|
162
|
+
raise FFMpegExecuteError(
|
163
|
+
retcode=retcode, cmd=command_line(args), stdout=out, stderr=err
|
164
|
+
)
|
159
165
|
|
160
166
|
encoders = out.decode("utf-8")
|
161
167
|
return get_coders(encoders)
|
typed_ffmpeg/probe.py
CHANGED
@@ -11,7 +11,12 @@ from .utils.run import command_line
|
|
11
11
|
logger = logging.getLogger(__name__)
|
12
12
|
|
13
13
|
|
14
|
-
def probe(
|
14
|
+
def probe(
|
15
|
+
filename: str | Path,
|
16
|
+
cmd: str = "ffprobe",
|
17
|
+
timeout: int | None = None,
|
18
|
+
**kwargs: Any,
|
19
|
+
) -> dict[str, Any]:
|
15
20
|
"""
|
16
21
|
Run ffprobe on the given file and return a JSON representation of the output
|
17
22
|
|
@@ -38,6 +43,8 @@ def probe(filename: str | Path, cmd: str = "ffprobe", timeout: int | None = None
|
|
38
43
|
|
39
44
|
retcode = p.poll()
|
40
45
|
if p.returncode != 0:
|
41
|
-
raise FFMpegExecuteError(
|
46
|
+
raise FFMpegExecuteError(
|
47
|
+
retcode=retcode, cmd=command_line(args), stdout=out, stderr=err
|
48
|
+
)
|
42
49
|
|
43
50
|
return json.loads(out.decode("utf-8"))
|