torchcodec 0.7.0__cp312-cp312-win_amd64.whl → 0.8.1__cp312-cp312-win_amd64.whl

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.

Potentially problematic release.


This version of torchcodec might be problematic. Click here for more details.

Files changed (66) hide show
  1. torchcodec/_core/AVIOTensorContext.cpp +23 -16
  2. torchcodec/_core/AVIOTensorContext.h +2 -1
  3. torchcodec/_core/BetaCudaDeviceInterface.cpp +718 -0
  4. torchcodec/_core/BetaCudaDeviceInterface.h +193 -0
  5. torchcodec/_core/CMakeLists.txt +18 -3
  6. torchcodec/_core/CUDACommon.cpp +330 -0
  7. torchcodec/_core/CUDACommon.h +51 -0
  8. torchcodec/_core/Cache.h +6 -20
  9. torchcodec/_core/CpuDeviceInterface.cpp +195 -108
  10. torchcodec/_core/CpuDeviceInterface.h +84 -19
  11. torchcodec/_core/CudaDeviceInterface.cpp +227 -376
  12. torchcodec/_core/CudaDeviceInterface.h +38 -6
  13. torchcodec/_core/DeviceInterface.cpp +57 -19
  14. torchcodec/_core/DeviceInterface.h +97 -16
  15. torchcodec/_core/Encoder.cpp +346 -9
  16. torchcodec/_core/Encoder.h +62 -1
  17. torchcodec/_core/FFMPEGCommon.cpp +190 -3
  18. torchcodec/_core/FFMPEGCommon.h +27 -1
  19. torchcodec/_core/FilterGraph.cpp +30 -22
  20. torchcodec/_core/FilterGraph.h +15 -1
  21. torchcodec/_core/Frame.cpp +22 -7
  22. torchcodec/_core/Frame.h +15 -61
  23. torchcodec/_core/Metadata.h +2 -2
  24. torchcodec/_core/NVCUVIDRuntimeLoader.cpp +320 -0
  25. torchcodec/_core/NVCUVIDRuntimeLoader.h +14 -0
  26. torchcodec/_core/NVDECCache.cpp +60 -0
  27. torchcodec/_core/NVDECCache.h +102 -0
  28. torchcodec/_core/SingleStreamDecoder.cpp +196 -201
  29. torchcodec/_core/SingleStreamDecoder.h +42 -15
  30. torchcodec/_core/StreamOptions.h +16 -6
  31. torchcodec/_core/Transform.cpp +87 -0
  32. torchcodec/_core/Transform.h +84 -0
  33. torchcodec/_core/__init__.py +4 -0
  34. torchcodec/_core/custom_ops.cpp +257 -32
  35. torchcodec/_core/fetch_and_expose_non_gpl_ffmpeg_libs.cmake +61 -1
  36. torchcodec/_core/nvcuvid_include/cuviddec.h +1374 -0
  37. torchcodec/_core/nvcuvid_include/nvcuvid.h +610 -0
  38. torchcodec/_core/ops.py +147 -44
  39. torchcodec/_core/pybind_ops.cpp +22 -59
  40. torchcodec/_samplers/video_clip_sampler.py +7 -19
  41. torchcodec/decoders/__init__.py +1 -0
  42. torchcodec/decoders/_decoder_utils.py +61 -1
  43. torchcodec/decoders/_video_decoder.py +46 -20
  44. torchcodec/libtorchcodec_core4.dll +0 -0
  45. torchcodec/libtorchcodec_core5.dll +0 -0
  46. torchcodec/libtorchcodec_core6.dll +0 -0
  47. torchcodec/libtorchcodec_core7.dll +0 -0
  48. torchcodec/libtorchcodec_core8.dll +0 -0
  49. torchcodec/libtorchcodec_custom_ops4.dll +0 -0
  50. torchcodec/libtorchcodec_custom_ops5.dll +0 -0
  51. torchcodec/libtorchcodec_custom_ops6.dll +0 -0
  52. torchcodec/libtorchcodec_custom_ops7.dll +0 -0
  53. torchcodec/libtorchcodec_custom_ops8.dll +0 -0
  54. torchcodec/libtorchcodec_pybind_ops4.pyd +0 -0
  55. torchcodec/libtorchcodec_pybind_ops5.pyd +0 -0
  56. torchcodec/libtorchcodec_pybind_ops6.pyd +0 -0
  57. torchcodec/libtorchcodec_pybind_ops7.pyd +0 -0
  58. torchcodec/libtorchcodec_pybind_ops8.pyd +0 -0
  59. torchcodec/samplers/_time_based.py +8 -0
  60. torchcodec/version.py +1 -1
  61. {torchcodec-0.7.0.dist-info → torchcodec-0.8.1.dist-info}/METADATA +29 -16
  62. torchcodec-0.8.1.dist-info/RECORD +82 -0
  63. {torchcodec-0.7.0.dist-info → torchcodec-0.8.1.dist-info}/WHEEL +1 -1
  64. torchcodec-0.7.0.dist-info/RECORD +0 -67
  65. {torchcodec-0.7.0.dist-info → torchcodec-0.8.1.dist-info}/licenses/LICENSE +0 -0
  66. {torchcodec-0.7.0.dist-info → torchcodec-0.8.1.dist-info}/top_level.txt +0 -0
@@ -15,6 +15,7 @@ from torch import device as torch_device, Tensor
15
15
 
16
16
  from torchcodec import _core as core, Frame, FrameBatch
17
17
  from torchcodec.decoders._decoder_utils import (
18
+ _get_cuda_backend,
18
19
  create_decoder,
19
20
  ERROR_REPORTING_INSTRUCTIONS,
20
21
  )
@@ -55,6 +56,8 @@ class VideoDecoder:
55
56
  Passing 0 lets FFmpeg decide on the number of threads.
56
57
  Default: 1.
57
58
  device (str or torch.device, optional): The device to use for decoding. Default: "cpu".
59
+ If you pass a CUDA device, we recommend trying the "beta" CUDA
60
+ backend which is faster! See :func:`~torchcodec.decoders.set_cuda_backend`.
58
61
  seek_mode (str, optional): Determines if frame access will be "exact" or
59
62
  "approximate". Exact guarantees that requesting frame i will always
60
63
  return frame i, but doing so requires an initial :term:`scan` of the
@@ -63,6 +66,27 @@ class VideoDecoder:
63
66
  probably is. Default: "exact".
64
67
  Read more about this parameter in:
65
68
  :ref:`sphx_glr_generated_examples_decoding_approximate_mode.py`
69
+ custom_frame_mappings (str, bytes, or file-like object, optional):
70
+ Mapping of frames to their metadata, typically generated via ffprobe.
71
+ This enables accurate frame seeking without requiring a full video scan.
72
+ Do not set seek_mode when custom_frame_mappings is provided.
73
+ Expected JSON format:
74
+
75
+ .. code-block:: json
76
+
77
+ {
78
+ "frames": [
79
+ {
80
+ "pts": 0,
81
+ "duration": 1001,
82
+ "key_frame": 1
83
+ }
84
+ ]
85
+ }
86
+
87
+ Alternative field names "pkt_pts" and "pkt_duration" are also supported.
88
+ Read more about this parameter in:
89
+ :ref:`sphx_glr_generated_examples_decoding_custom_frame_mappings.py`
66
90
 
67
91
  Attributes:
68
92
  metadata (VideoStreamMetadata): Metadata of the video stream.
@@ -80,6 +104,9 @@ class VideoDecoder:
80
104
  num_ffmpeg_threads: int = 1,
81
105
  device: Optional[Union[str, torch_device]] = "cpu",
82
106
  seek_mode: Literal["exact", "approximate"] = "exact",
107
+ custom_frame_mappings: Optional[
108
+ Union[str, bytes, io.RawIOBase, io.BufferedReader]
109
+ ] = None,
83
110
  ):
84
111
  torch._C._log_api_usage_once("torchcodec.decoders.VideoDecoder")
85
112
  allowed_seek_modes = ("exact", "approximate")
@@ -89,7 +116,6 @@ class VideoDecoder:
89
116
  f"Supported values are {', '.join(allowed_seek_modes)}."
90
117
  )
91
118
 
92
- custom_frame_mappings = None
93
119
  # Validate seek_mode and custom_frame_mappings are not mismatched
94
120
  if custom_frame_mappings is not None and seek_mode == "approximate":
95
121
  raise ValueError(
@@ -120,12 +146,15 @@ class VideoDecoder:
120
146
  if isinstance(device, torch_device):
121
147
  device = str(device)
122
148
 
149
+ device_variant = _get_cuda_backend()
150
+
123
151
  core.add_video_stream(
124
152
  self._decoder,
125
153
  stream_index=stream_index,
126
154
  dimension_order=dimension_order,
127
155
  num_threads=num_ffmpeg_threads,
128
156
  device=device,
157
+ device_variant=device_variant,
129
158
  custom_frame_mappings=custom_frame_mappings_data,
130
159
  )
131
160
 
@@ -217,24 +246,20 @@ class VideoDecoder:
217
246
  duration_seconds=duration_seconds.item(),
218
247
  )
219
248
 
220
- def get_frames_at(self, indices: list[int]) -> FrameBatch:
249
+ def get_frames_at(self, indices: Union[torch.Tensor, list[int]]) -> FrameBatch:
221
250
  """Return frames at the given indices.
222
251
 
223
252
  Args:
224
- indices (list of int): The indices of the frames to retrieve.
253
+ indices (torch.Tensor or list of int): The indices of the frames to retrieve.
225
254
 
226
255
  Returns:
227
256
  FrameBatch: The frames at the given indices.
228
257
  """
229
- if isinstance(indices, torch.Tensor):
230
- # TODO we should avoid converting tensors to lists and just let the
231
- # core ops and C++ code natively accept tensors. See
232
- # https://github.com/pytorch/torchcodec/issues/879
233
- indices = indices.to(torch.int).tolist()
234
258
 
235
259
  data, pts_seconds, duration_seconds = core.get_frames_at_indices(
236
260
  self._decoder, frame_indices=indices
237
261
  )
262
+
238
263
  return FrameBatch(
239
264
  data=data,
240
265
  pts_seconds=pts_seconds,
@@ -298,20 +323,17 @@ class VideoDecoder:
298
323
  duration_seconds=duration_seconds.item(),
299
324
  )
300
325
 
301
- def get_frames_played_at(self, seconds: list[float]) -> FrameBatch:
326
+ def get_frames_played_at(
327
+ self, seconds: Union[torch.Tensor, list[float]]
328
+ ) -> FrameBatch:
302
329
  """Return frames played at the given timestamps in seconds.
303
330
 
304
331
  Args:
305
- seconds (list of float): The timestamps in seconds when the frames are played.
332
+ seconds (torch.Tensor or list of float): The timestamps in seconds when the frames are played.
306
333
 
307
334
  Returns:
308
335
  FrameBatch: The frames that are played at ``seconds``.
309
336
  """
310
- if isinstance(seconds, torch.Tensor):
311
- # TODO we should avoid converting tensors to lists and just let the
312
- # core ops and C++ code natively accept tensors. See
313
- # https://github.com/pytorch/torchcodec/issues/879
314
- seconds = seconds.to(torch.float).tolist()
315
337
 
316
338
  data, pts_seconds, duration_seconds = core.get_frames_by_pts(
317
339
  self._decoder, timestamps=seconds
@@ -454,11 +476,15 @@ def _read_custom_frame_mappings(
454
476
  "Invalid custom frame mappings. The 'pts'/'pkt_pts', 'duration'/'pkt_duration', and 'key_frame' keys are required in the frame metadata."
455
477
  )
456
478
 
457
- frame_data = [
458
- (float(frame[pts_key]), frame["key_frame"], float(frame[duration_key]))
459
- for frame in input_data["frames"]
460
- ]
461
- all_frames, is_key_frame, duration = map(torch.tensor, zip(*frame_data))
479
+ all_frames = torch.tensor(
480
+ [int(frame[pts_key]) for frame in input_data["frames"]], dtype=torch.int64
481
+ )
482
+ is_key_frame = torch.tensor(
483
+ [int(frame["key_frame"]) for frame in input_data["frames"]], dtype=torch.bool
484
+ )
485
+ duration = torch.tensor(
486
+ [int(frame[duration_key]) for frame in input_data["frames"]], dtype=torch.int64
487
+ )
462
488
  if not (len(all_frames) == len(is_key_frame) == len(duration)):
463
489
  raise ValueError("Mismatched lengths in frame index data")
464
490
  return all_frames, is_key_frame, duration
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -201,6 +201,14 @@ def _generic_time_based_sampler(
201
201
  sampling_range_end, # excluded
202
202
  seconds_between_clip_starts,
203
203
  )
204
+ # As mentioned in the docs, torch.arange may return values
205
+ # equal to or above `end` because of floating precision errors.
206
+ # Here, we manually ensure all values are strictly lower than `sample_range_end`
207
+ if clip_start_seconds[-1] >= sampling_range_end:
208
+ clip_start_seconds = clip_start_seconds[
209
+ clip_start_seconds < sampling_range_end
210
+ ]
211
+
204
212
  num_clips = len(clip_start_seconds)
205
213
 
206
214
  all_clips_timestamps = _build_all_clips_timestamps(
torchcodec/version.py CHANGED
@@ -1,2 +1,2 @@
1
1
  # Note that this file is generated during install.
2
- __version__ = '0.7.0'
2
+ __version__ = '0.8.1'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: torchcodec
3
- Version: 0.7.0
3
+ Version: 0.8.1
4
4
  Summary: A video decoder for PyTorch
5
5
  Author-email: PyTorch Team <packages@pytorch.org>
6
6
  Project-URL: GitHub, https://github.com/pytorch/torchcodec
@@ -123,8 +123,8 @@ ffmpeg -f lavfi -i \
123
123
  `torch` and `torchcodec`.
124
124
 
125
125
  2. Install FFmpeg, if it's not already installed. Linux distributions usually
126
- come with FFmpeg pre-installed. TorchCodec supports all major FFmpeg versions
127
- in [4, 7].
126
+ come with FFmpeg pre-installed. TorchCodec supports major FFmpeg versions
127
+ in [4, 7] on all platforms, and FFmpeg version 8 is supported on Mac and Linux.
128
128
 
129
129
  If FFmpeg is not already installed, or you need a more recent version, an
130
130
  easy way to install it is to use `conda`:
@@ -147,6 +147,8 @@ The following table indicates the compatibility between versions of
147
147
  | `torchcodec` | `torch` | Python |
148
148
  | ------------------ | ------------------ | ------------------- |
149
149
  | `main` / `nightly` | `main` / `nightly` | `>=3.10`, `<=3.13` |
150
+ | `0.8` | `2.9` | `>=3.10`, `<=3.13` |
151
+ | `0.7` | `2.8` | `>=3.9`, `<=3.13` |
150
152
  | `0.6` | `2.8` | `>=3.9`, `<=3.13` |
151
153
  | `0.5` | `2.7` | `>=3.9`, `<=3.13` |
152
154
  | `0.4` | `2.7` | `>=3.9`, `<=3.13` |
@@ -161,13 +163,9 @@ First, make sure you have a GPU that has NVDEC hardware that can decode the
161
163
  format you want. Refer to Nvidia's GPU support matrix for more details
162
164
  [here](https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new).
163
165
 
164
- 1. Install Pytorch corresponding to your CUDA Toolkit using the
165
- [official instructions](https://pytorch.org/get-started/locally/). You'll
166
- need the `libnpp` and `libnvrtc` CUDA libraries, which are usually part of
167
- the CUDA Toolkit.
168
-
169
- 2. Install or compile FFmpeg with NVDEC support.
170
- TorchCodec with CUDA should work with FFmpeg versions in [4, 7].
166
+ 1. Install FFmpeg with NVDEC support.
167
+ TorchCodec with CUDA should work with FFmpeg versions in [4, 7] on all platforms,
168
+ and FFmpeg version 8 is supported on Linux.
171
169
 
172
170
  If FFmpeg is not already installed, or you need a more recent version, an
173
171
  easy way to install it is to use `conda`:
@@ -178,10 +176,6 @@ format you want. Refer to Nvidia's GPU support matrix for more details
178
176
  conda install "ffmpeg<8" -c conda-forge
179
177
  ```
180
178
 
181
- If you are building FFmpeg from source you can follow Nvidia's guide to
182
- configuring and installing FFmpeg with NVDEC support
183
- [here](https://docs.nvidia.com/video-technologies/video-codec-sdk/12.0/ffmpeg-with-nvidia-gpu/index.html).
184
-
185
179
  After installing FFmpeg make sure it has NVDEC support when you list the supported
186
180
  decoders:
187
181
 
@@ -197,8 +191,18 @@ format you want. Refer to Nvidia's GPU support matrix for more details
197
191
  ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i test/resources/nasa_13013.mp4 -f null -
198
192
  ```
199
193
 
200
- 3. Install TorchCodec by passing in an `--index-url` parameter that corresponds
201
- to your CUDA Toolkit version, example:
194
+ #### Linux
195
+
196
+ 2. Install Pytorch corresponding to your CUDA Toolkit using the
197
+ [official instructions](https://pytorch.org/get-started/locally/). You'll
198
+ need the `libnpp` and `libnvrtc` CUDA libraries, which are usually part of
199
+ the CUDA Toolkit.
200
+
201
+
202
+ 3. Install TorchCodec
203
+
204
+ Pass in an `--index-url` parameter that corresponds to your CUDA Toolkit
205
+ version, for example:
202
206
 
203
207
  ```bash
204
208
  # This corresponds to CUDA Toolkit version 12.6. It should be the same one
@@ -209,6 +213,15 @@ format you want. Refer to Nvidia's GPU support matrix for more details
209
213
  Note that without passing in the `--index-url` parameter, `pip` installs
210
214
  the CPU-only version of TorchCodec.
211
215
 
216
+ #### Windows
217
+
218
+ 2. On Windows (experimental support), you'll need to rely on `conda` to install
219
+ both pytorch and TorchCodec:
220
+
221
+ ```bash
222
+ conda install -c conda-forge "torchcodec=*=*cuda*"
223
+ ```
224
+
212
225
  ## Benchmark Results
213
226
 
214
227
  The following was generated by running [our benchmark script](./benchmarks/decoders/generate_readme_data.py) on a lightly loaded 22-core machine with an Nvidia A100 with
@@ -0,0 +1,82 @@
1
+ torchcodec/__init__.py,sha256=F9OpGp7psa4OKvSqaIsCL1FPGtBgqNyAd5Jn0_qUn9s,595
2
+ torchcodec/_frame.py,sha256=_LIIorsNn0nbcInGC9Mwh3Dwc3AuPDhxK4YIBFsfOww,5350
3
+ torchcodec/_internally_replaced_utils.py,sha256=5uYbY1l23FcfWSmLuwZb7j8mWXtMTTp--6sl9LQH28E,2422
4
+ torchcodec/libtorchcodec_core4.dll,sha256=PlG-uqv3lhgFbUp_rl923hpnOPw3xFIAg4QZ-UqxEMg,349184
5
+ torchcodec/libtorchcodec_core5.dll,sha256=v58cP03p8sPrA6i4gVnSPRWFGpkuh5e12eKqfeVknGE,349696
6
+ torchcodec/libtorchcodec_core6.dll,sha256=awpd45k3s2syOgWTS3o2Pkmp5wpAmCTx2eyZFSAXcFE,349696
7
+ torchcodec/libtorchcodec_core7.dll,sha256=wU_brBHv9PdTSK2wXNNkmWgR5rm3CamkYuua01X_zrk,349696
8
+ torchcodec/libtorchcodec_core8.dll,sha256=dMKOdQDhTVjbrnOkDXPVdVH-s2u_3MkVvI5--n2D8OE,350208
9
+ torchcodec/libtorchcodec_custom_ops4.dll,sha256=_2eWv1Bj902yjmJ8CT5J3PoFFtPyTKH4NJmRtIR5isY,623616
10
+ torchcodec/libtorchcodec_custom_ops5.dll,sha256=xDekrrccA03bZjXvitC8RzA69rOgrdIwrcF_8-ntySE,623616
11
+ torchcodec/libtorchcodec_custom_ops6.dll,sha256=X4jnc5Xi05e-CYfOymakZXRBsohMsUwixQap71KcflY,623616
12
+ torchcodec/libtorchcodec_custom_ops7.dll,sha256=cMZPXjRZIFv93t81_g7MCALGaY1tDmgDEpgr8So9soQ,623616
13
+ torchcodec/libtorchcodec_custom_ops8.dll,sha256=YdvcnbeExtck2TOyu57a3Ndy1SVyBMPq2LBmlQLJV3A,623616
14
+ torchcodec/libtorchcodec_pybind_ops4.pyd,sha256=Phqe4pWC66D3pSnjssMyUn6QEgwroQRiEkTDWHWA1WY,207872
15
+ torchcodec/libtorchcodec_pybind_ops5.pyd,sha256=7YhNzptzNg7wVwRXfZHcfr1MrtHDhYfGX2Ux5l_6cio,207872
16
+ torchcodec/libtorchcodec_pybind_ops6.pyd,sha256=my97qT57PC9tXBGifNNJl1ByB7S5eXmue3pIA0SnEzE,207872
17
+ torchcodec/libtorchcodec_pybind_ops7.pyd,sha256=3HKERJ9LM7JrNbeMXXddKlycYNss3DGnndWSR0dVguo,207872
18
+ torchcodec/libtorchcodec_pybind_ops8.pyd,sha256=QPwFNTcjjZxZ8GxZU5FzWtWkH6zWSax4T97Pz0sA9qU,207872
19
+ torchcodec/version.py,sha256=LmZD0tBGznDm3FOv2sw71abX1JHFUljgfEe0r-NZeV0,75
20
+ torchcodec/_core/AVIOContextHolder.cpp,sha256=ucOD1bGORgSzZfL5TxJtUVH2GAtXGVDylzWpvbJ2qJY,1628
21
+ torchcodec/_core/AVIOContextHolder.h,sha256=iYRap1vDdvK_4wylu3Ds9Dkn1k_vAdkbVJDlVni9uNY,2697
22
+ torchcodec/_core/AVIOFileLikeContext.cpp,sha256=bCMpEXhQPLWULWJRIPpNqzlio2eLE_EI7UoPuUgw70g,3450
23
+ torchcodec/_core/AVIOFileLikeContext.h,sha256=oJM9q9X3i1leplaBsU1vMW0gMt1a-xANHhgk5FID3zA,2130
24
+ torchcodec/_core/AVIOTensorContext.cpp,sha256=jkfrlaOYqEXyQzUL-49N9xGZvyvlxBne53hKwkM2eYQ,4339
25
+ torchcodec/_core/AVIOTensorContext.h,sha256=Z6CrXeWvaAtzPqiv4XZ1f-Xo_SqzxZuu-EArfCZ0Muc,1130
26
+ torchcodec/_core/BetaCudaDeviceInterface.cpp,sha256=kDv-8WtSERT3D2xSRmZ0b_u9c-t8SNQx6acG2yCfWww,27433
27
+ torchcodec/_core/BetaCudaDeviceInterface.h,sha256=MhsCyLqbsD7ktI8ynKu2F99dZoxbRbsS_1vVIoFgIjI,8291
28
+ torchcodec/_core/CMakeLists.txt,sha256=QD40ucnyiGXmcudL7CM3JzjdIf-1kayQt0p6-f0CGnE,11241
29
+ torchcodec/_core/CUDACommon.cpp,sha256=zwU1EWMIJhML4HJdbXupgr52aru5b7Cvb4Y4oROev74,13669
30
+ torchcodec/_core/CUDACommon.h,sha256=CuKWQU99I2mFxQoWryRG_WJI0yOv3zCM9m2dZ9jtmxk,1601
31
+ torchcodec/_core/Cache.h,sha256=5H85W_X_dfcacjDFjqgB9TyEbVqJL5fsLI57dPGpBdg,4342
32
+ torchcodec/_core/CpuDeviceInterface.cpp,sha256=HdjezZ-2_DWYtCJyfwWSok2-QsGyMQN0TAKNKt6lYDU,13496
33
+ torchcodec/_core/CpuDeviceInterface.h,sha256=ODqIXddW5ynAl4PL_Q0-vHE-BBNcAIrw4ZzNei3Qkqw,5128
34
+ torchcodec/_core/CudaDeviceInterface.cpp,sha256=sQJrCynbO6KXQGhnz_S-dCIfi9J_xRpcQDEnBNfXJJY,14014
35
+ torchcodec/_core/CudaDeviceInterface.h,sha256=6bUMuSpu1nQwsVpYrihIapxhMSWyJ05wbt5gA8n6TnE,2326
36
+ torchcodec/_core/DeviceInterface.cpp,sha256=6Is9D-K8G5qQUJnZPIuYF4Tynn4TltSRTKi8uxHGfpg,3335
37
+ torchcodec/_core/DeviceInterface.h,sha256=oSHigqvKz_9Ld9RqncsUt9JZMDT7ThZXf83m06PWOqE,5081
38
+ torchcodec/_core/Encoder.cpp,sha256=W_HfIOR-8Op5mw3FiqICbxayXe6-0ytz1aQp9wNupYU,30155
39
+ torchcodec/_core/Encoder.h,sha256=xC_kCQe-ryamhOOREwVUzwhKXqcK_9KfxhahmZWrzdI,8237
40
+ torchcodec/_core/FFMPEGCommon.cpp,sha256=MLFTShI9M51l6NlZzzLYv2mfMjW_7lVcQC0b8EScX38,19668
41
+ torchcodec/_core/FFMPEGCommon.h,sha256=Qbpl3JhXUQM6yd3uRHkeQlPDQXJfVPKcLyvjiP57gvM,8594
42
+ torchcodec/_core/FilterGraph.cpp,sha256=zr0v_WkwbzvBBfdTqAFTumQlX5sM7TGPAeM9AjUcyXc,5192
43
+ torchcodec/_core/FilterGraph.h,sha256=l8FfApNcRwN-cl-LepfXvK6DqLNCij_p9BfwhKT-l_Q,1693
44
+ torchcodec/_core/Frame.cpp,sha256=k2thv-jm9rjUmCmlDSEi18GI5OA9-crWXxQKIQdO380,1800
45
+ torchcodec/_core/Frame.h,sha256=qjpUb6d65oRwbGsAncTb6ROaNL5WqI8rY7JAj3YP7wQ,2309
46
+ torchcodec/_core/Metadata.h,sha256=cUTRJAgwUyXH5JjvCRl9tB0na7_2kJvydfkAKT4QZN8,2580
47
+ torchcodec/_core/NVCUVIDRuntimeLoader.cpp,sha256=wbHzp3qZCiQfqtitKvkAyzc-cM__74trmXvFG_A62O4,12734
48
+ torchcodec/_core/NVCUVIDRuntimeLoader.h,sha256=_CV2W0-g0usJeRZHbw27IqJ8uG9nDAt26u2gE9CcSlM,378
49
+ torchcodec/_core/NVDECCache.cpp,sha256=zyhHF4H5DLdQZdnu4SC_kTQ57Hb-WG8XVd9QO__vK9Y,1482
50
+ torchcodec/_core/NVDECCache.h,sha256=NPWsHu-XO6gCN8KRu4iV67e8TJEMZRZtmBHIeWC7FU8,3212
51
+ torchcodec/_core/SingleStreamDecoder.cpp,sha256=udIUNtqNWe9h57B_VoEOCeQHztOLMfx2YClrCcIqdfk,67012
52
+ torchcodec/_core/SingleStreamDecoder.h,sha256=yhS6wkWyYvWdR0l-ep96ThTdnM4uy26P107DeYNUwvg,16804
53
+ torchcodec/_core/StreamOptions.h,sha256=sBvoczOYKMpZzO9x4uNWXC6186yKD59w_QS0klbkF2s,1943
54
+ torchcodec/_core/Transform.cpp,sha256=KYKpB1XpZOwy6cy4TCG9i0UszU_bS3CR42LP6rZ_hi4,2682
55
+ torchcodec/_core/Transform.h,sha256=oM-e8E5grzEfdCK8UWYJ8pEXCpwuE_rcYdgG7rGPtLM,2762
56
+ torchcodec/_core/ValidationUtils.cpp,sha256=PkBTLv_38eYG9ZUVbGijHSug3YewtD2FNiftfZ3q8S8,994
57
+ torchcodec/_core/ValidationUtils.h,sha256=XWSUL441nPNYRGCnnpul0iuWtUNgZXC_fcsxeb-oB6E,579
58
+ torchcodec/_core/__init__.py,sha256=R54c11OAZlputhXhWsDxBD6dsp0bko38a94_a6VgR68,1185
59
+ torchcodec/_core/_metadata.py,sha256=LWlCQmJwJ66TjK_4bwtMARzSDVlid62dpsOVpDHk8NQ,13117
60
+ torchcodec/_core/custom_ops.cpp,sha256=Bc1gPQesEuSeM2qfhZR5IYGGSgyfExJzPDMqU8PcOsE,38476
61
+ torchcodec/_core/fetch_and_expose_non_gpl_ffmpeg_libs.cmake,sha256=q6KCuRVW3R1zZls-lIFAgATntCnKspc9pbfLbifZBvU,8324
62
+ torchcodec/_core/ops.py,sha256=vvdwQ3yZWT9Gu-ytT0XbETpCP5W8iFYxiZg-q2aFnmc,19615
63
+ torchcodec/_core/pybind_ops.cpp,sha256=RyDIZOFPjFxONg1MsO1tyn8Mp4N-J6R-td8-XCIWpmY,2066
64
+ torchcodec/_core/nvcuvid_include/cuviddec.h,sha256=tSf1ap09onfbt6bZ5mkib6pBMc-MfviZW5RxeI8_-Fk,63992
65
+ torchcodec/_core/nvcuvid_include/nvcuvid.h,sha256=Kw7TUxeelTXP5PTJbR8Gjo_B1h-rjI1BiWknoMVebGE,29342
66
+ torchcodec/_samplers/__init__.py,sha256=qWg69NiVSnMcYi68RTVFGvvp9bh1jkNha5u7q3VMRLw,258
67
+ torchcodec/_samplers/video_clip_sampler.py,sha256=1tyYp75oW7g_JZWbKT08viqMv2wn8RKZBG8v1YOu0P8,18172
68
+ torchcodec/decoders/__init__.py,sha256=nR-ewJrecOi2C-eiB2i_vuoMPY9IhbHLyo1A6sq2Ww0,468
69
+ torchcodec/decoders/_audio_decoder.py,sha256=dWbtH7OLIgcbiFQIvP9qpATvIC7XeS67P9uGM4dmsRE,7580
70
+ torchcodec/decoders/_decoder_utils.py,sha256=lV9_S3k7pp-Se7m_dqqFZzxPr-a4zOsUdwVDXh7buj4,4377
71
+ torchcodec/decoders/_video_decoder.py,sha256=2bvazig_zeXFC9jW7W37oQlGnUzGdPcZJdGudDIxitA,19880
72
+ torchcodec/encoders/__init__.py,sha256=Jw7dTzlTbzTaD_ZMrgSxUWEMs7Pn0cyxKm-_beuBIGo,50
73
+ torchcodec/encoders/_audio_encoder.py,sha256=VMZs6VTQDIMcsBxWtQEUpwq_ruILrrvNVktkswajaiM,6312
74
+ torchcodec/samplers/__init__.py,sha256=pijGrxa71UjRYHh1sRqLzwpsVXYAmHe24kMbC-rZW_M,159
75
+ torchcodec/samplers/_common.py,sha256=okgK1nVKA6mE9Li1Jex1GbzN7m26S3LtaREeF1AX-dA,2823
76
+ torchcodec/samplers/_index_based.py,sha256=8iwlYZrqTdP7CnnBbwd3PsJhQNkF-YHH802AHAEoG-g,11695
77
+ torchcodec/samplers/_time_based.py,sha256=wjFNo0gkgBKIslGWGYgUWDwGVJBg9L7EiM32fA3kCOc,15068
78
+ torchcodec-0.8.1.dist-info/licenses/LICENSE,sha256=ry9-8rOEo-Fe1s7VhuGoMWcBx72CjMauQWTw26jlrI8,1502
79
+ torchcodec-0.8.1.dist-info/METADATA,sha256=yEPtv8EtW6PvwsHFjYsRmnZDH7rC9WGBx3WyJLknUWU,9914
80
+ torchcodec-0.8.1.dist-info/WHEEL,sha256=8UP9x9puWI0P1V_d7K2oMTBqfeLNm21CTzZ_Ptr0NXU,101
81
+ torchcodec-0.8.1.dist-info/top_level.txt,sha256=S1IZq2_jNQE_RDGwxNunVF8S1RCMXmWdAAQjLXBdu2g,21
82
+ torchcodec-0.8.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (78.1.1)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp312-cp312-win_amd64
5
5
 
@@ -1,67 +0,0 @@
1
- torchcodec/__init__.py,sha256=F9OpGp7psa4OKvSqaIsCL1FPGtBgqNyAd5Jn0_qUn9s,595
2
- torchcodec/_frame.py,sha256=_LIIorsNn0nbcInGC9Mwh3Dwc3AuPDhxK4YIBFsfOww,5350
3
- torchcodec/_internally_replaced_utils.py,sha256=5uYbY1l23FcfWSmLuwZb7j8mWXtMTTp--6sl9LQH28E,2422
4
- torchcodec/libtorchcodec_core4.dll,sha256=3WMljSowSVthe01F5waFwZ8deTyjFM62NoEgTeE8qdM,310784
5
- torchcodec/libtorchcodec_core5.dll,sha256=1EUPhfya2VEPZetvjw5E6opWXrYTKCD8jfjAML89OsQ,310784
6
- torchcodec/libtorchcodec_core6.dll,sha256=KkOb6qRWnXjIrK6nLh4DmRlkZwLydUFgeHqQ2Tgtf7M,310784
7
- torchcodec/libtorchcodec_core7.dll,sha256=FzPxBacElNxP6bE1iCs-KX0UNqKhw5FaIVG1PXdPQOI,310784
8
- torchcodec/libtorchcodec_custom_ops4.dll,sha256=JgXxvyqp2wKDLume_GhXwDfKojJ5k8oyBmAos5ip1mA,564736
9
- torchcodec/libtorchcodec_custom_ops5.dll,sha256=bXpwmZV4hnCkQzBt5NAeTTQDfIS4CYxYggT806uCR4Q,564736
10
- torchcodec/libtorchcodec_custom_ops6.dll,sha256=W7j9w6vdTLwkWDW9o5trtWfoh_Ie8Oo4aIkQ87Wl8E8,564736
11
- torchcodec/libtorchcodec_custom_ops7.dll,sha256=1jkxhUPzbKYEOfaxUmrWLFx725YYgjeWNnRei94eS4E,564736
12
- torchcodec/libtorchcodec_pybind_ops4.pyd,sha256=m9sIk5B8FH_6bJ0okPD3Uxglf3kjOEs2wL28ufuA2C8,204800
13
- torchcodec/libtorchcodec_pybind_ops5.pyd,sha256=3Jra5yAZQyBDDoI7k_lwc2ic6CCQ2T_X2c6jPyWjecc,204800
14
- torchcodec/libtorchcodec_pybind_ops6.pyd,sha256=oIs5KA5iKUTTcgClnezr3nfyPvdMBV8zb2OmklPcVu0,204800
15
- torchcodec/libtorchcodec_pybind_ops7.pyd,sha256=QQWZUF-JFuA_QY0Hy3MAyh5VeFo_Xf5obeVDEpeHbxE,204800
16
- torchcodec/version.py,sha256=vUzeNMn0u4ZIrdugClyruOvja4DvMzg12beg1CQBNpI,75
17
- torchcodec/_core/AVIOContextHolder.cpp,sha256=ucOD1bGORgSzZfL5TxJtUVH2GAtXGVDylzWpvbJ2qJY,1628
18
- torchcodec/_core/AVIOContextHolder.h,sha256=iYRap1vDdvK_4wylu3Ds9Dkn1k_vAdkbVJDlVni9uNY,2697
19
- torchcodec/_core/AVIOFileLikeContext.cpp,sha256=bCMpEXhQPLWULWJRIPpNqzlio2eLE_EI7UoPuUgw70g,3450
20
- torchcodec/_core/AVIOFileLikeContext.h,sha256=oJM9q9X3i1leplaBsU1vMW0gMt1a-xANHhgk5FID3zA,2130
21
- torchcodec/_core/AVIOTensorContext.cpp,sha256=bNE33CeYuTsXbaZRo0Izs1pLJOQlYPtlX_ofgeBH9hM,4018
22
- torchcodec/_core/AVIOTensorContext.h,sha256=kYO93vn1hVINRHRoP2BWzEKUoPl1WeI62cgz5y0T6OA,1106
23
- torchcodec/_core/CMakeLists.txt,sha256=BOXfMdQxmo0WXIgFCXFYCnmYvrN7kYg2unGpAQvT7z0,10522
24
- torchcodec/_core/Cache.h,sha256=TG3kE1i86edBR9LXsEl4nToMOOi8wPJXFJYkTbBiJdk,5210
25
- torchcodec/_core/CpuDeviceInterface.cpp,sha256=I6aOFFaO_4hQc7EhjLAGQRWVyESUwc-J1armWlP11AU,10404
26
- torchcodec/_core/CpuDeviceInterface.h,sha256=9GVKS5D7Zz7ijJKzzHFwBJAi4h-VZFeHBkVa1miPlGM,2149
27
- torchcodec/_core/CudaDeviceInterface.cpp,sha256=mQvEeMI4EEzh0jDhMrEcKhUE2WLCpWGSVqZVH9awl4E,21782
28
- torchcodec/_core/CudaDeviceInterface.h,sha256=jtUC8la5pbBPnCoy6koOOVR9BDdWWQiPfb00bFbxQW0,1064
29
- torchcodec/_core/DeviceInterface.cpp,sha256=9tk2i_gwyxMWloQRB79qFaqbmntifU1en1Q-w9ltX3E,2310
30
- torchcodec/_core/DeviceInterface.h,sha256=6IEa_lO3f5VW8i4gAZWn4Jm3_TggqqzNQA3ha3sxrDU,2078
31
- torchcodec/_core/Encoder.cpp,sha256=VeWPOzzaD5Zlso1G7hc8AlqlS3khRsRoATgWPBElSQA,18555
32
- torchcodec/_core/Encoder.h,sha256=Sd0Oz48THSzJfS3xetglB4fKjuqdOXWqvzI3h1U0HKI,6494
33
- torchcodec/_core/FFMPEGCommon.cpp,sha256=W0ZLP-JjWs25fmAY1lTW64nfcOZvMqZ9LkUvGOXBv84,13526
34
- torchcodec/_core/FFMPEGCommon.h,sha256=6jyWfUmz9jA9ysqehLdKLp5p5sXAtWOuNlafI9EFXqI,7525
35
- torchcodec/_core/FilterGraph.cpp,sha256=khohAN1w4oWFlYsQTAqgBDtiwf6ygrI36jtdKACjue8,4857
36
- torchcodec/_core/FilterGraph.h,sha256=BIqHSpjyM99MtnULHh79HRuFgc8cHXouLWcioyknaI0,1223
37
- torchcodec/_core/Frame.cpp,sha256=xuPRBVL6yTAQqls-3xZ-YzjQXR0Z67Vnq3EQ-9okGF4,1130
38
- torchcodec/_core/Frame.h,sha256=TKlYFdObFBO0YK5sWs1KziovDwgnCaQixm71qB0MpEg,5022
39
- torchcodec/_core/Metadata.h,sha256=SFNyD4ey2rHmxbrjebHa6PUA-BoiytYrgi5nafNWlyI,2588
40
- torchcodec/_core/SingleStreamDecoder.cpp,sha256=BqSXEy0_LECdtegKFa-W8Qz_CnavSUOt9en-pl8C1eQ,66958
41
- torchcodec/_core/SingleStreamDecoder.h,sha256=Jn0i8mKppGd0y99e6Am2k5OeN2iqaWJD6-BvvEb-ub0,15594
42
- torchcodec/_core/StreamOptions.h,sha256=Xo0TTIQZy5bk5UBZ3NLQeCxoOiDLJGm-BM2NiU_CMeY,1638
43
- torchcodec/_core/ValidationUtils.cpp,sha256=PkBTLv_38eYG9ZUVbGijHSug3YewtD2FNiftfZ3q8S8,994
44
- torchcodec/_core/ValidationUtils.h,sha256=XWSUL441nPNYRGCnnpul0iuWtUNgZXC_fcsxeb-oB6E,579
45
- torchcodec/_core/__init__.py,sha256=pMKoJaSVKfOcUBM6UezF_GN0q2gUTaxQkDtFElDM_Qk,1070
46
- torchcodec/_core/_metadata.py,sha256=LWlCQmJwJ66TjK_4bwtMARzSDVlid62dpsOVpDHk8NQ,13117
47
- torchcodec/_core/custom_ops.cpp,sha256=4TpEaaVChJdbsyQN-hzCvsz8wr3o09VgYkwv2ZKO2ww,30231
48
- torchcodec/_core/fetch_and_expose_non_gpl_ffmpeg_libs.cmake,sha256=rrXg44VfrlOJBnHBxx5odozGE9W70EFC-JM-X4iTYQ4,6900
49
- torchcodec/_core/ops.py,sha256=9b56ImvKCwOjMKQRh6wrf7MgvsFhbnKDCkAoKFCqHTE,16623
50
- torchcodec/_core/pybind_ops.cpp,sha256=1D8siVAiQUqWyl-I785BBeZMQs3YGSbf6R07ZrMrpPg,3092
51
- torchcodec/_samplers/__init__.py,sha256=qWg69NiVSnMcYi68RTVFGvvp9bh1jkNha5u7q3VMRLw,258
52
- torchcodec/_samplers/video_clip_sampler.py,sha256=ChIbqJ461_8aZ37_hzkXDrweibjnQHpvYunv5GWdfFo,18975
53
- torchcodec/decoders/__init__.py,sha256=GeONirXzwswy5iJK61Yuj6oyfZ7GsEJp8EP1tACSWuE,414
54
- torchcodec/decoders/_audio_decoder.py,sha256=dWbtH7OLIgcbiFQIvP9qpATvIC7XeS67P9uGM4dmsRE,7580
55
- torchcodec/decoders/_decoder_utils.py,sha256=yM7izTYP72iY6mr3P30sAvd2wKZlWo-eopy3KVaZy8A,2089
56
- torchcodec/decoders/_video_decoder.py,sha256=jH4KzwkYNIBk0G0k-GlgdYBz_laVojf8VgC8TOlGZxU,19012
57
- torchcodec/encoders/__init__.py,sha256=Jw7dTzlTbzTaD_ZMrgSxUWEMs7Pn0cyxKm-_beuBIGo,50
58
- torchcodec/encoders/_audio_encoder.py,sha256=VMZs6VTQDIMcsBxWtQEUpwq_ruILrrvNVktkswajaiM,6312
59
- torchcodec/samplers/__init__.py,sha256=pijGrxa71UjRYHh1sRqLzwpsVXYAmHe24kMbC-rZW_M,159
60
- torchcodec/samplers/_common.py,sha256=okgK1nVKA6mE9Li1Jex1GbzN7m26S3LtaREeF1AX-dA,2823
61
- torchcodec/samplers/_index_based.py,sha256=8iwlYZrqTdP7CnnBbwd3PsJhQNkF-YHH802AHAEoG-g,11695
62
- torchcodec/samplers/_time_based.py,sha256=xMltTGyaSxyba44Q5CJvFD2nyYIZKul-1sV6D2p-p1w,14651
63
- torchcodec-0.7.0.dist-info/licenses/LICENSE,sha256=ry9-8rOEo-Fe1s7VhuGoMWcBx72CjMauQWTw26jlrI8,1502
64
- torchcodec-0.7.0.dist-info/METADATA,sha256=Mlio9SootCV0TIuRvRKcfKkXWUEc6px3pUlhO1T0nrQ,9677
65
- torchcodec-0.7.0.dist-info/WHEEL,sha256=KI7LHhz6dTtDDO7VYe8QnwL5I_g0fgqsSHIhDBBaEVw,101
66
- torchcodec-0.7.0.dist-info/top_level.txt,sha256=S1IZq2_jNQE_RDGwxNunVF8S1RCMXmWdAAQjLXBdu2g,21
67
- torchcodec-0.7.0.dist-info/RECORD,,