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.
Files changed (22) hide show
  1. {numpyimage-3.8.1 → numpyimage-3.8.2}/PKG-INFO +1 -1
  2. {numpyimage-3.8.1 → numpyimage-3.8.2}/npimage/vidio.py +15 -1
  3. {numpyimage-3.8.1 → numpyimage-3.8.2}/numpyimage.egg-info/PKG-INFO +1 -1
  4. {numpyimage-3.8.1 → numpyimage-3.8.2}/pyproject.toml +1 -1
  5. {numpyimage-3.8.1 → numpyimage-3.8.2}/LICENSE +0 -0
  6. {numpyimage-3.8.1 → numpyimage-3.8.2}/README.md +0 -0
  7. {numpyimage-3.8.1 → numpyimage-3.8.2}/npimage/__init__.py +0 -0
  8. {numpyimage-3.8.1 → numpyimage-3.8.2}/npimage/align.py +0 -0
  9. {numpyimage-3.8.1 → numpyimage-3.8.2}/npimage/graphics.py +0 -0
  10. {numpyimage-3.8.1 → numpyimage-3.8.2}/npimage/imageio.py +0 -0
  11. {numpyimage-3.8.1 → numpyimage-3.8.2}/npimage/nrrd_utils.py +0 -0
  12. {numpyimage-3.8.1 → numpyimage-3.8.2}/npimage/operations.py +0 -0
  13. {numpyimage-3.8.1 → numpyimage-3.8.2}/npimage/utils.py +0 -0
  14. {numpyimage-3.8.1 → numpyimage-3.8.2}/numpyimage.egg-info/SOURCES.txt +0 -0
  15. {numpyimage-3.8.1 → numpyimage-3.8.2}/numpyimage.egg-info/dependency_links.txt +0 -0
  16. {numpyimage-3.8.1 → numpyimage-3.8.2}/numpyimage.egg-info/requires.txt +0 -0
  17. {numpyimage-3.8.1 → numpyimage-3.8.2}/numpyimage.egg-info/top_level.txt +0 -0
  18. {numpyimage-3.8.1 → numpyimage-3.8.2}/setup.cfg +0 -0
  19. {numpyimage-3.8.1 → numpyimage-3.8.2}/tests/test_heic.py +0 -0
  20. {numpyimage-3.8.1 → numpyimage-3.8.2}/tests/test_pbm.py +0 -0
  21. {numpyimage-3.8.1 → numpyimage-3.8.2}/tests/test_video_streamer.py +0 -0
  22. {numpyimage-3.8.1 → numpyimage-3.8.2}/tests/test_video_writers.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: numpyimage
3
- Version: 3.8.1
3
+ Version: 3.8.2
4
4
  Summary: Load, save, & manipulate image files as numpy arrays
5
5
  Author-email: Jasper Phelps <jasper.s.phelps@gmail.com>
6
6
  License: MIT License
@@ -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):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: numpyimage
3
- Version: 3.8.1
3
+ Version: 3.8.2
4
4
  Summary: Load, save, & manipulate image files as numpy arrays
5
5
  Author-email: Jasper Phelps <jasper.s.phelps@gmail.com>
6
6
  License: MIT License
@@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta'
4
4
 
5
5
  [project]
6
6
  name = 'numpyimage'
7
- version = '3.8.1'
7
+ version = '3.8.2'
8
8
  description = 'Load, save, & manipulate image files as numpy arrays'
9
9
  readme.file = 'README.md'
10
10
  readme.content-type = 'text/markdown'
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes