numpyimage 3.8.1__tar.gz → 3.8.2__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.
- {numpyimage-3.8.1 → numpyimage-3.8.2}/PKG-INFO +1 -1
- {numpyimage-3.8.1 → numpyimage-3.8.2}/npimage/vidio.py +15 -1
- {numpyimage-3.8.1 → numpyimage-3.8.2}/numpyimage.egg-info/PKG-INFO +1 -1
- {numpyimage-3.8.1 → numpyimage-3.8.2}/pyproject.toml +1 -1
- {numpyimage-3.8.1 → numpyimage-3.8.2}/LICENSE +0 -0
- {numpyimage-3.8.1 → numpyimage-3.8.2}/README.md +0 -0
- {numpyimage-3.8.1 → numpyimage-3.8.2}/npimage/__init__.py +0 -0
- {numpyimage-3.8.1 → numpyimage-3.8.2}/npimage/align.py +0 -0
- {numpyimage-3.8.1 → numpyimage-3.8.2}/npimage/graphics.py +0 -0
- {numpyimage-3.8.1 → numpyimage-3.8.2}/npimage/imageio.py +0 -0
- {numpyimage-3.8.1 → numpyimage-3.8.2}/npimage/nrrd_utils.py +0 -0
- {numpyimage-3.8.1 → numpyimage-3.8.2}/npimage/operations.py +0 -0
- {numpyimage-3.8.1 → numpyimage-3.8.2}/npimage/utils.py +0 -0
- {numpyimage-3.8.1 → numpyimage-3.8.2}/numpyimage.egg-info/SOURCES.txt +0 -0
- {numpyimage-3.8.1 → numpyimage-3.8.2}/numpyimage.egg-info/dependency_links.txt +0 -0
- {numpyimage-3.8.1 → numpyimage-3.8.2}/numpyimage.egg-info/requires.txt +0 -0
- {numpyimage-3.8.1 → numpyimage-3.8.2}/numpyimage.egg-info/top_level.txt +0 -0
- {numpyimage-3.8.1 → numpyimage-3.8.2}/setup.cfg +0 -0
- {numpyimage-3.8.1 → numpyimage-3.8.2}/tests/test_heic.py +0 -0
- {numpyimage-3.8.1 → numpyimage-3.8.2}/tests/test_pbm.py +0 -0
- {numpyimage-3.8.1 → numpyimage-3.8.2}/tests/test_video_streamer.py +0 -0
- {numpyimage-3.8.1 → numpyimage-3.8.2}/tests/test_video_writers.py +0 -0
|
@@ -925,6 +925,8 @@ class FFmpegVideoWriter:
|
|
|
925
925
|
# Initialize process state
|
|
926
926
|
self._process = None
|
|
927
927
|
self._stdin = None
|
|
928
|
+
self._stderr_thread = None
|
|
929
|
+
self._stderr_buffer = b''
|
|
928
930
|
self._closed = False
|
|
929
931
|
self._width = None
|
|
930
932
|
self._height = None
|
|
@@ -994,6 +996,15 @@ class FFmpegVideoWriter:
|
|
|
994
996
|
)
|
|
995
997
|
self._stdin = self._process.stdin
|
|
996
998
|
|
|
999
|
+
# Drain ffmpeg's stderr in a background thread so a verbose or
|
|
1000
|
+
# erroring ffmpeg can't fill the pipe buffer (~64 KB on Linux, smaller
|
|
1001
|
+
# on Windows) and deadlock our writes to stdin.
|
|
1002
|
+
def _drain_stderr():
|
|
1003
|
+
self._stderr_buffer = self._process.stderr.read()
|
|
1004
|
+
self._stderr_thread = threading.Thread(target=_drain_stderr,
|
|
1005
|
+
daemon=True)
|
|
1006
|
+
self._stderr_thread.start()
|
|
1007
|
+
|
|
997
1008
|
def write(self, frame):
|
|
998
1009
|
"""Write a frame to the video file"""
|
|
999
1010
|
if self._closed:
|
|
@@ -1054,8 +1065,10 @@ class FFmpegVideoWriter:
|
|
|
1054
1065
|
|
|
1055
1066
|
# Wait for FFmpeg to finish
|
|
1056
1067
|
if self._process:
|
|
1057
|
-
stderr_data = self._process.stderr.read()
|
|
1058
1068
|
return_code = self._process.wait()
|
|
1069
|
+
if self._stderr_thread is not None:
|
|
1070
|
+
self._stderr_thread.join()
|
|
1071
|
+
stderr_data = self._stderr_buffer
|
|
1059
1072
|
|
|
1060
1073
|
# Check for errors
|
|
1061
1074
|
if return_code != 0:
|
|
@@ -1065,6 +1078,7 @@ class FFmpegVideoWriter:
|
|
|
1065
1078
|
# Clean up process references
|
|
1066
1079
|
self._process = None
|
|
1067
1080
|
self._stdin = None
|
|
1081
|
+
self._stderr_thread = None
|
|
1068
1082
|
self._closed = True
|
|
1069
1083
|
|
|
1070
1084
|
def __enter__(self):
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|