caffeinism-utils 0.0.183__tar.gz → 0.0.185__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.
- {caffeinism_utils-0.0.183 → caffeinism_utils-0.0.185}/PKG-INFO +1 -1
- {caffeinism_utils-0.0.183 → caffeinism_utils-0.0.185}/pyproject.toml +1 -1
- {caffeinism_utils-0.0.183 → caffeinism_utils-0.0.185}/src/caffeinism_utils/av/io.py +25 -2
- {caffeinism_utils-0.0.183 → caffeinism_utils-0.0.185}/README.md +0 -0
- {caffeinism_utils-0.0.183 → caffeinism_utils-0.0.185}/src/caffeinism_utils/__init__.py +0 -0
- {caffeinism_utils-0.0.183 → caffeinism_utils-0.0.185}/src/caffeinism_utils/aiteration.py +0 -0
- {caffeinism_utils-0.0.183 → caffeinism_utils-0.0.185}/src/caffeinism_utils/asyncio.py +0 -0
- {caffeinism_utils-0.0.183 → caffeinism_utils-0.0.185}/src/caffeinism_utils/av/__init__.py +0 -0
- {caffeinism_utils-0.0.183 → caffeinism_utils-0.0.185}/src/caffeinism_utils/av/codecs.py +0 -0
- {caffeinism_utils-0.0.183 → caffeinism_utils-0.0.185}/src/caffeinism_utils/av/filters.py +0 -0
- {caffeinism_utils-0.0.183 → caffeinism_utils-0.0.185}/src/caffeinism_utils/av/utils.py +0 -0
- {caffeinism_utils-0.0.183 → caffeinism_utils-0.0.185}/src/caffeinism_utils/http.py +0 -0
- {caffeinism_utils-0.0.183 → caffeinism_utils-0.0.185}/src/caffeinism_utils/io.py +0 -0
- {caffeinism_utils-0.0.183 → caffeinism_utils-0.0.185}/src/caffeinism_utils/iteration.py +0 -0
- {caffeinism_utils-0.0.183 → caffeinism_utils-0.0.185}/src/caffeinism_utils/prefetch.py +0 -0
- {caffeinism_utils-0.0.183 → caffeinism_utils-0.0.185}/src/caffeinism_utils/utils.py +0 -0
- {caffeinism_utils-0.0.183 → caffeinism_utils-0.0.185}/src/caffeinism_utils/zip.py +0 -0
|
@@ -9,6 +9,7 @@ from types import TracebackType
|
|
|
9
9
|
from typing import Generator, Iterable
|
|
10
10
|
|
|
11
11
|
import av
|
|
12
|
+
import av.codec.hwaccel
|
|
12
13
|
import av.container
|
|
13
14
|
import av.frame
|
|
14
15
|
import av.stream
|
|
@@ -156,17 +157,21 @@ class BasePyAVReader(PyAVInterface):
|
|
|
156
157
|
self,
|
|
157
158
|
path,
|
|
158
159
|
*,
|
|
160
|
+
codec_name: str | None = None,
|
|
159
161
|
format: str,
|
|
160
162
|
buffer_size: int,
|
|
161
163
|
filter: tuple[type[av.frame.Frame]],
|
|
164
|
+
hwaccel: av.codec.hwaccel.HWAccel | None = None,
|
|
162
165
|
options={},
|
|
163
166
|
):
|
|
164
167
|
super().__init__()
|
|
165
168
|
self._container = None
|
|
166
169
|
self._path = path
|
|
170
|
+
self._codec_name = codec_name
|
|
167
171
|
self._format = format
|
|
168
172
|
self._buffer_size = buffer_size
|
|
169
173
|
self._filter = filter
|
|
174
|
+
self._hwaccel = hwaccel
|
|
170
175
|
self._options = options
|
|
171
176
|
|
|
172
177
|
self._codec_contexts = {}
|
|
@@ -182,6 +187,7 @@ class BasePyAVReader(PyAVInterface):
|
|
|
182
187
|
"r",
|
|
183
188
|
format=self._format,
|
|
184
189
|
buffer_size=self._buffer_size,
|
|
190
|
+
hwaccel=self._hwaccel,
|
|
185
191
|
options=self._options,
|
|
186
192
|
)
|
|
187
193
|
|
|
@@ -189,7 +195,16 @@ class BasePyAVReader(PyAVInterface):
|
|
|
189
195
|
if av.VideoFrame in self._filter:
|
|
190
196
|
self._streams = container.streams.video
|
|
191
197
|
for stream in self._streams:
|
|
192
|
-
if
|
|
198
|
+
if (
|
|
199
|
+
self._codec_name is not None
|
|
200
|
+
and stream.codec_context.name != self._codec_name
|
|
201
|
+
):
|
|
202
|
+
codec = av.codec.Codec(self._codec_name, "r")
|
|
203
|
+
self._codec_contexts[stream] = codec.create()
|
|
204
|
+
elif self._hwaccel is None and stream.codec_context.name in (
|
|
205
|
+
"vp8",
|
|
206
|
+
"vp9",
|
|
207
|
+
):
|
|
193
208
|
if stream.codec_context.name == "vp8":
|
|
194
209
|
codec_name = "libvpx"
|
|
195
210
|
elif stream.codec_context.name == "vp9":
|
|
@@ -225,13 +240,21 @@ class PyAVReader(BasePyAVReader):
|
|
|
225
240
|
start=0,
|
|
226
241
|
end=(2 << 62) - 1,
|
|
227
242
|
*,
|
|
243
|
+
codec_name: str | None = None,
|
|
244
|
+
hwaccel: av.codec.hwaccel.HWAccel | None = None,
|
|
228
245
|
format=None,
|
|
229
246
|
buffer_size=32768,
|
|
230
247
|
filter=(av.VideoFrame, av.AudioFrame),
|
|
231
248
|
options={},
|
|
232
249
|
):
|
|
233
250
|
super().__init__(
|
|
234
|
-
path,
|
|
251
|
+
path,
|
|
252
|
+
codec_name=codec_name,
|
|
253
|
+
hwaccel=hwaccel,
|
|
254
|
+
format=format,
|
|
255
|
+
buffer_size=buffer_size,
|
|
256
|
+
filter=filter,
|
|
257
|
+
options=options,
|
|
235
258
|
)
|
|
236
259
|
self.start = start
|
|
237
260
|
self.end = end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|