nvidia-codec 0.0.18__tar.gz → 0.0.19__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 (35) hide show
  1. {nvidia_codec-0.0.18/src/nvidia_codec.egg-info → nvidia_codec-0.0.19}/PKG-INFO +1 -1
  2. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/setup.cfg +1 -1
  3. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/utils/decode.py +11 -8
  4. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19/src/nvidia_codec.egg-info}/PKG-INFO +1 -1
  5. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/LICENSE +0 -0
  6. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/README.md +0 -0
  7. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/pyproject.toml +0 -0
  8. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/__init__.py +0 -0
  9. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/common.py +0 -0
  10. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/core/__init__.py +0 -0
  11. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/core/common.py +0 -0
  12. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/core/cuda.py +0 -0
  13. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/core/cuviddec.py +0 -0
  14. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/core/decode.py +0 -0
  15. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/core/nvcuvid.py +0 -0
  16. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/ffmpeg/__init__.py +0 -0
  17. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/ffmpeg/adapt.py +0 -0
  18. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/ffmpeg/common.py +0 -0
  19. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/ffmpeg/include/__init__.py +0 -0
  20. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/ffmpeg/include/libavcodec.py +0 -0
  21. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/ffmpeg/include/libavformat.py +0 -0
  22. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/ffmpeg/include/libavutil.py +0 -0
  23. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/ffmpeg/libavcodec.py +0 -0
  24. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/ffmpeg/libavformat.py +0 -0
  25. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/ffmpeg/libavutil.py +0 -0
  26. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/ffmpeg/test.py +0 -0
  27. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/utils/__init__.py +0 -0
  28. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/utils/color.py +0 -0
  29. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/utils/compat.py +0 -0
  30. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/utils/demux.py +0 -0
  31. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec/utils/player.py +0 -0
  32. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec.egg-info/SOURCES.txt +0 -0
  33. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec.egg-info/dependency_links.txt +0 -0
  34. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec.egg-info/requires.txt +0 -0
  35. {nvidia_codec-0.0.18 → nvidia_codec-0.0.19}/src/nvidia_codec.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nvidia-codec
3
- Version: 0.0.18
3
+ Version: 0.0.19
4
4
  Summary: Pythonic interface to Nvidia Codec
5
5
  Home-page: https://github.com/riaqn/python-nvidia-codec
6
6
  Author: Zesen Qian
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = nvidia-codec
3
- version = 0.0.18
3
+ version = 0.0.19
4
4
  author = Zesen Qian
5
5
  author_email = nvidia-codec@riaqn.org
6
6
  description = Pythonic interface to Nvidia Codec
@@ -88,15 +88,16 @@ class Decoder(BaseDecoder):
88
88
  - Surface semaphore for cuvidMapVideoFrame64 (OwnedSurface manages)
89
89
 
90
90
  Args:
91
- extra_pictures: Callable(min_pics) -> int, returns the number of extra
92
- picture slots beyond codec minimum. Higher values allow better
93
- pipelining between decode and consumer threads. Default: 2.
91
+ num_pictures: Callable(min_pics) -> int, returns the total number of
92
+ picture slots (must be >= min_pics and <= 32). Higher values allow
93
+ better pipelining between decode and consumer threads.
94
+ Default: lambda min_pics: min_pics * 2 (double the minimum).
94
95
  """
95
96
 
96
97
  def __init__(
97
98
  self,
98
99
  track,
99
- extra_pictures=lambda min_pics: min_pics,
100
+ num_pictures=lambda min_pics: min_pics + 4,
100
101
  target_size=None,
101
102
  cropping=None,
102
103
  target_rect=None,
@@ -121,7 +122,7 @@ class Decoder(BaseDecoder):
121
122
  self.bsf = BSFContext(f, track.stream.codecpar.contents, track.stream.time_base)
122
123
 
123
124
  def decide(p):
124
- num_pics = p["min_num_pictures"] + extra_pictures(p["min_num_pictures"])
125
+ num_pics = num_pictures(p["min_num_pictures"])
125
126
  self._slot_locks = [threading.Lock() for _ in range(num_pics)]
126
127
  self._surface_sem = threading.Semaphore(1)
127
128
  self._recent = collections.deque(maxlen=num_pics)
@@ -305,10 +306,14 @@ class Decoder(BaseDecoder):
305
306
  self._seek_to_keyframe(kts)
306
307
  self._pump(lambda: result[0] is not None, _post)
307
308
  if result[0] is None:
309
+ if kts is None:
310
+ raise NoFrameError("no frame at start of video")
308
311
  pic_q.put(((kts, NoFrameError(f"no frame at keyframe {kts}")), kts))
309
312
  except Exception as e:
310
313
  if isinstance(e, ShutDown):
311
314
  raise e from None
315
+ if kts is None:
316
+ raise
312
317
  pic_q.put(((kts, e), kts))
313
318
  return result[0]
314
319
 
@@ -373,9 +378,7 @@ class Decoder(BaseDecoder):
373
378
  while True:
374
379
  current_pts = self._screenshot_keyframe(pic_q, kts)
375
380
  if current_pts is None:
376
- # the keyframe failed
377
- assert kts is not None, "The first frame has failed without kts, can't continue."
378
- # use the kts as pts so we can continue the following frames
381
+ # the keyframe failed (kts is never None here — first frame raises directly)
379
382
  current_pts = kts
380
383
  else:
381
384
  if kts is None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nvidia-codec
3
- Version: 0.0.18
3
+ Version: 0.0.19
4
4
  Summary: Pythonic interface to Nvidia Codec
5
5
  Home-page: https://github.com/riaqn/python-nvidia-codec
6
6
  Author: Zesen Qian
File without changes
File without changes