torchcodec 0.10.0__cp312-cp312-manylinux_2_28_x86_64.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.
Files changed (88) hide show
  1. torchcodec/__init__.py +27 -0
  2. torchcodec/_core/AVIOContextHolder.cpp +60 -0
  3. torchcodec/_core/AVIOContextHolder.h +64 -0
  4. torchcodec/_core/AVIOFileLikeContext.cpp +98 -0
  5. torchcodec/_core/AVIOFileLikeContext.h +55 -0
  6. torchcodec/_core/AVIOTensorContext.cpp +130 -0
  7. torchcodec/_core/AVIOTensorContext.h +44 -0
  8. torchcodec/_core/BetaCudaDeviceInterface.cpp +849 -0
  9. torchcodec/_core/BetaCudaDeviceInterface.h +196 -0
  10. torchcodec/_core/CMakeLists.txt +295 -0
  11. torchcodec/_core/CUDACommon.cpp +330 -0
  12. torchcodec/_core/CUDACommon.h +51 -0
  13. torchcodec/_core/Cache.h +124 -0
  14. torchcodec/_core/CpuDeviceInterface.cpp +509 -0
  15. torchcodec/_core/CpuDeviceInterface.h +141 -0
  16. torchcodec/_core/CudaDeviceInterface.cpp +602 -0
  17. torchcodec/_core/CudaDeviceInterface.h +79 -0
  18. torchcodec/_core/DeviceInterface.cpp +117 -0
  19. torchcodec/_core/DeviceInterface.h +191 -0
  20. torchcodec/_core/Encoder.cpp +1054 -0
  21. torchcodec/_core/Encoder.h +192 -0
  22. torchcodec/_core/FFMPEGCommon.cpp +684 -0
  23. torchcodec/_core/FFMPEGCommon.h +314 -0
  24. torchcodec/_core/FilterGraph.cpp +159 -0
  25. torchcodec/_core/FilterGraph.h +59 -0
  26. torchcodec/_core/Frame.cpp +47 -0
  27. torchcodec/_core/Frame.h +72 -0
  28. torchcodec/_core/Metadata.cpp +124 -0
  29. torchcodec/_core/Metadata.h +92 -0
  30. torchcodec/_core/NVCUVIDRuntimeLoader.cpp +320 -0
  31. torchcodec/_core/NVCUVIDRuntimeLoader.h +14 -0
  32. torchcodec/_core/NVDECCache.cpp +60 -0
  33. torchcodec/_core/NVDECCache.h +102 -0
  34. torchcodec/_core/SingleStreamDecoder.cpp +1586 -0
  35. torchcodec/_core/SingleStreamDecoder.h +391 -0
  36. torchcodec/_core/StreamOptions.h +70 -0
  37. torchcodec/_core/Transform.cpp +128 -0
  38. torchcodec/_core/Transform.h +86 -0
  39. torchcodec/_core/ValidationUtils.cpp +35 -0
  40. torchcodec/_core/ValidationUtils.h +21 -0
  41. torchcodec/_core/__init__.py +46 -0
  42. torchcodec/_core/_metadata.py +262 -0
  43. torchcodec/_core/custom_ops.cpp +1090 -0
  44. torchcodec/_core/fetch_and_expose_non_gpl_ffmpeg_libs.cmake +169 -0
  45. torchcodec/_core/nvcuvid_include/cuviddec.h +1374 -0
  46. torchcodec/_core/nvcuvid_include/nvcuvid.h +610 -0
  47. torchcodec/_core/ops.py +605 -0
  48. torchcodec/_core/pybind_ops.cpp +50 -0
  49. torchcodec/_frame.py +146 -0
  50. torchcodec/_internally_replaced_utils.py +68 -0
  51. torchcodec/_samplers/__init__.py +7 -0
  52. torchcodec/_samplers/video_clip_sampler.py +419 -0
  53. torchcodec/decoders/__init__.py +12 -0
  54. torchcodec/decoders/_audio_decoder.py +185 -0
  55. torchcodec/decoders/_decoder_utils.py +113 -0
  56. torchcodec/decoders/_video_decoder.py +601 -0
  57. torchcodec/encoders/__init__.py +2 -0
  58. torchcodec/encoders/_audio_encoder.py +149 -0
  59. torchcodec/encoders/_video_encoder.py +196 -0
  60. torchcodec/libtorchcodec_core4.so +0 -0
  61. torchcodec/libtorchcodec_core5.so +0 -0
  62. torchcodec/libtorchcodec_core6.so +0 -0
  63. torchcodec/libtorchcodec_core7.so +0 -0
  64. torchcodec/libtorchcodec_core8.so +0 -0
  65. torchcodec/libtorchcodec_custom_ops4.so +0 -0
  66. torchcodec/libtorchcodec_custom_ops5.so +0 -0
  67. torchcodec/libtorchcodec_custom_ops6.so +0 -0
  68. torchcodec/libtorchcodec_custom_ops7.so +0 -0
  69. torchcodec/libtorchcodec_custom_ops8.so +0 -0
  70. torchcodec/libtorchcodec_pybind_ops4.so +0 -0
  71. torchcodec/libtorchcodec_pybind_ops5.so +0 -0
  72. torchcodec/libtorchcodec_pybind_ops6.so +0 -0
  73. torchcodec/libtorchcodec_pybind_ops7.so +0 -0
  74. torchcodec/libtorchcodec_pybind_ops8.so +0 -0
  75. torchcodec/samplers/__init__.py +2 -0
  76. torchcodec/samplers/_common.py +84 -0
  77. torchcodec/samplers/_index_based.py +287 -0
  78. torchcodec/samplers/_time_based.py +358 -0
  79. torchcodec/share/cmake/TorchCodec/TorchCodecConfig.cmake +76 -0
  80. torchcodec/share/cmake/TorchCodec/ffmpeg_versions.cmake +122 -0
  81. torchcodec/transforms/__init__.py +12 -0
  82. torchcodec/transforms/_decoder_transforms.py +375 -0
  83. torchcodec/version.py +2 -0
  84. torchcodec-0.10.0.dist-info/METADATA +286 -0
  85. torchcodec-0.10.0.dist-info/RECORD +88 -0
  86. torchcodec-0.10.0.dist-info/WHEEL +5 -0
  87. torchcodec-0.10.0.dist-info/licenses/LICENSE +28 -0
  88. torchcodec-0.10.0.dist-info/top_level.txt +2 -0
@@ -0,0 +1,286 @@
1
+ Metadata-Version: 2.4
2
+ Name: torchcodec
3
+ Version: 0.10.0
4
+ Summary: A video decoder for PyTorch
5
+ Author-email: PyTorch Team <packages@pytorch.org>
6
+ License: BSD 3-Clause License
7
+
8
+ Copyright 2024 Meta
9
+
10
+ Redistribution and use in source and binary forms, with or without modification,
11
+ are permitted provided that the following conditions are met:
12
+
13
+ 1. Redistributions of source code must retain the above copyright notice,this list
14
+ of conditions and the following disclaimer.
15
+
16
+ 2. Redistributions in binary form must reproduce the above copyright notice, this
17
+ list of conditions and the following disclaimer in the documentation
18
+ and/or other materials provided with the distribution.
19
+
20
+ 3. Neither the name of the copyright holder nor the names of its contributors may
21
+ be used to endorse or promote products derived from this software without specific
22
+ prior written permission.
23
+
24
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY
25
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
26
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
27
+ SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
28
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
29
+ TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
30
+ BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32
+ ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
33
+ DAMAGE.
34
+
35
+ Project-URL: GitHub, https://github.com/pytorch/torchcodec
36
+ Project-URL: Documentation, https://pytorch.org/torchcodec/stable/index.html
37
+ Requires-Python: >=3.10
38
+ Description-Content-Type: text/markdown
39
+ License-File: LICENSE
40
+ Provides-Extra: dev
41
+ Requires-Dist: numpy; extra == "dev"
42
+ Requires-Dist: pytest; extra == "dev"
43
+ Requires-Dist: pillow; extra == "dev"
44
+ Dynamic: license-file
45
+
46
+ [**Installation**](#installing-torchcodec) | [**Simple Example**](#using-torchcodec) | [**Detailed Example**](https://meta-pytorch.org/torchcodec/stable/generated_examples/) | [**Documentation**](https://meta-pytorch.org/torchcodec) | [**Contributing**](CONTRIBUTING.md) | [**License**](#license)
47
+
48
+ # TorchCodec
49
+
50
+ TorchCodec is a Python library for decoding video and audio data into PyTorch
51
+ tensors, on CPU and CUDA GPU. It also supports video and audio encoding on CPU!
52
+ It aims to be fast, easy to use, and well integrated
53
+ into the PyTorch ecosystem. If you want to use PyTorch to train ML models on
54
+ videos and audio, TorchCodec is how you turn these into data.
55
+
56
+ We achieve these capabilities through:
57
+
58
+ * Pythonic APIs that mirror Python and PyTorch conventions.
59
+ * Relying on [FFmpeg](https://www.ffmpeg.org/) to do the decoding and encoding.
60
+ TorchCodec uses the version of FFmpeg you already have installed. FFmpeg is a
61
+ mature library with broad coverage available on most systems. It is, however,
62
+ not easy to use. TorchCodec abstracts FFmpeg's complexity to ensure it is used
63
+ correctly and efficiently.
64
+ * Returning data as PyTorch tensors, ready to be fed into PyTorch transforms
65
+ or used directly to train models.
66
+
67
+ ## Using TorchCodec
68
+
69
+ Here's a condensed summary of what you can do with TorchCodec. For more detailed
70
+ examples, [check out our
71
+ documentation](https://meta-pytorch.org/torchcodec/stable/generated_examples/)!
72
+
73
+ #### Decoding
74
+
75
+ ```python
76
+ from torchcodec.decoders import VideoDecoder
77
+
78
+ device = "cpu" # or e.g. "cuda" !
79
+ decoder = VideoDecoder("path/to/video.mp4", device=device)
80
+
81
+ decoder.metadata
82
+ # VideoStreamMetadata:
83
+ # num_frames: 250
84
+ # duration_seconds: 10.0
85
+ # bit_rate: 31315.0
86
+ # codec: h264
87
+ # average_fps: 25.0
88
+ # ... (truncated output)
89
+
90
+ # Simple Indexing API
91
+ decoder[0] # uint8 tensor of shape [C, H, W]
92
+ decoder[0 : -1 : 20] # uint8 stacked tensor of shape [N, C, H, W]
93
+
94
+ # Indexing, with PTS and duration info:
95
+ decoder.get_frames_at(indices=[2, 100])
96
+ # FrameBatch:
97
+ # data (shape): torch.Size([2, 3, 270, 480])
98
+ # pts_seconds: tensor([0.0667, 3.3367], dtype=torch.float64)
99
+ # duration_seconds: tensor([0.0334, 0.0334], dtype=torch.float64)
100
+
101
+ # Time-based indexing with PTS and duration info
102
+ decoder.get_frames_played_at(seconds=[0.5, 10.4])
103
+ # FrameBatch:
104
+ # data (shape): torch.Size([2, 3, 270, 480])
105
+ # pts_seconds: tensor([ 0.4671, 10.3770], dtype=torch.float64)
106
+ # duration_seconds: tensor([0.0334, 0.0334], dtype=torch.float64)
107
+ ```
108
+
109
+ #### Clip sampling
110
+
111
+ ```python
112
+
113
+ from torchcodec.samplers import clips_at_regular_timestamps
114
+
115
+ clips_at_regular_timestamps(
116
+ decoder,
117
+ seconds_between_clip_starts=1.5,
118
+ num_frames_per_clip=4,
119
+ seconds_between_frames=0.1
120
+ )
121
+ # FrameBatch:
122
+ # data (shape): torch.Size([9, 4, 3, 270, 480])
123
+ # pts_seconds: tensor([[ 0.0000, 0.0667, 0.1668, 0.2669],
124
+ # [ 1.4681, 1.5682, 1.6683, 1.7684],
125
+ # [ 2.9696, 3.0697, 3.1698, 3.2699],
126
+ # ... (truncated), dtype=torch.float64)
127
+ # duration_seconds: tensor([[0.0334, 0.0334, 0.0334, 0.0334],
128
+ # [0.0334, 0.0334, 0.0334, 0.0334],
129
+ # [0.0334, 0.0334, 0.0334, 0.0334],
130
+ # ... (truncated), dtype=torch.float64)
131
+ ```
132
+
133
+ You can use the following snippet to generate a video with FFmpeg and tryout
134
+ TorchCodec:
135
+
136
+ ```bash
137
+ fontfile=/usr/share/fonts/dejavu-sans-mono-fonts/DejaVuSansMono-Bold.ttf
138
+ output_video_file=/tmp/output_video.mp4
139
+
140
+ ffmpeg -f lavfi -i \
141
+ color=size=640x400:duration=10:rate=25:color=blue \
142
+ -vf "drawtext=fontfile=${fontfile}:fontsize=30:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2:text='Frame %{frame_num}'" \
143
+ ${output_video_file}
144
+ ```
145
+
146
+ ## Installing TorchCodec
147
+ ### Installing CPU-only TorchCodec
148
+
149
+ 1. Install the latest stable version of PyTorch following the
150
+ [official instructions](https://pytorch.org/get-started/locally/). For other
151
+ versions, refer to the table below for compatibility between versions of
152
+ `torch` and `torchcodec`.
153
+
154
+ 2. Install FFmpeg, if it's not already installed. TorchCodec supports supports
155
+ all major FFmpeg versions in [4, 8].
156
+ Linux distributions usually come with FFmpeg pre-installed. You'll need
157
+ FFmpeg that comes with separate shared libraries. This is especially relevant
158
+ for Windows users: these are usually called the "shared" releases.
159
+
160
+ If FFmpeg is not already installed, or you need a more recent version, an
161
+ easy way to install it is to use `conda`:
162
+
163
+ ```bash
164
+ conda install "ffmpeg"
165
+ # or
166
+ conda install "ffmpeg" -c conda-forge
167
+ ```
168
+
169
+ 3. Install TorchCodec:
170
+
171
+ ```bash
172
+ pip install torchcodec
173
+ ```
174
+
175
+ The following table indicates the compatibility between versions of
176
+ `torchcodec`, `torch` and Python.
177
+
178
+ | `torchcodec` | `torch` | Python |
179
+ | ------------------ | ------------------ | ------------------- |
180
+ | `main` / `nightly` | `main` / `nightly` | `>=3.10`, `<=3.14` |
181
+ | `0.9` | `2.9` | `>=3.10`, `<=3.14` |
182
+ | `0.8` | `2.9` | `>=3.10`, `<=3.13` |
183
+ | `0.7` | `2.8` | `>=3.9`, `<=3.13` |
184
+ | `0.6` | `2.8` | `>=3.9`, `<=3.13` |
185
+ | `0.5` | `2.7` | `>=3.9`, `<=3.13` |
186
+ | `0.4` | `2.7` | `>=3.9`, `<=3.13` |
187
+ | `0.3` | `2.7` | `>=3.9`, `<=3.13` |
188
+ | `0.2` | `2.6` | `>=3.9`, `<=3.13` |
189
+ | `0.1` | `2.5` | `>=3.9`, `<=3.12` |
190
+ | `0.0.3` | `2.4` | `>=3.8`, `<=3.12` |
191
+
192
+ ### Installing CUDA-enabled TorchCodec
193
+
194
+ First, make sure you have a GPU that has NVDEC hardware that can decode the
195
+ format you want. Refer to Nvidia's GPU support matrix for more details
196
+ [here](https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new).
197
+
198
+ 1. Install FFmpeg with NVDEC support.
199
+ TorchCodec with CUDA should work with FFmpeg versions in [4, 8].
200
+
201
+ If FFmpeg is not already installed, or you need a more recent version, an
202
+ easy way to install it is to use `conda`:
203
+
204
+ ```bash
205
+ conda install "ffmpeg"
206
+ # or
207
+ conda install "ffmpeg" -c conda-forge
208
+ ```
209
+
210
+ After installing FFmpeg make sure it has NVDEC support when you list the supported
211
+ decoders:
212
+
213
+ ```bash
214
+ ffmpeg -decoders | grep -i nvidia
215
+ # This should show a line like this:
216
+ # V..... h264_cuvid Nvidia CUVID H264 decoder (codec h264)
217
+ ```
218
+
219
+ To check that FFmpeg libraries work with NVDEC correctly you can decode a sample video:
220
+
221
+ ```bash
222
+ ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i test/resources/nasa_13013.mp4 -f null -
223
+ ```
224
+
225
+ #### Linux
226
+
227
+ 2. Install Pytorch corresponding to your CUDA Toolkit using the
228
+ [official instructions](https://pytorch.org/get-started/locally/). You'll
229
+ need the `libnpp` and `libnvrtc` CUDA libraries, which are usually part of
230
+ the CUDA Toolkit.
231
+
232
+
233
+ 3. Install TorchCodec
234
+
235
+ Pass in an `--index-url` parameter that corresponds to your CUDA Toolkit
236
+ version, for example:
237
+
238
+ ```bash
239
+ # This corresponds to CUDA Toolkit version 12.6. It should be the same one
240
+ # you used when you installed PyTorch (If you installed PyTorch with pip).
241
+ pip install torchcodec --index-url=https://download.pytorch.org/whl/cu126
242
+ ```
243
+
244
+ Note that without passing in the `--index-url` parameter, `pip` installs
245
+ the CPU-only version of TorchCodec.
246
+
247
+ #### Windows
248
+
249
+ 2. On Windows (experimental support), you'll need to rely on `conda` to install
250
+ both pytorch and TorchCodec:
251
+
252
+ ```bash
253
+ conda install -c conda-forge "torchcodec=*=*cuda*"
254
+ ```
255
+
256
+ ## Benchmark Results
257
+
258
+ 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
259
+ 5 [NVDEC decoders](https://docs.nvidia.com/video-technologies/video-codec-sdk/12.1/nvdec-application-note/index.html#).
260
+
261
+ ![benchmark_results](./benchmarks/decoders/benchmark_readme_chart.png)
262
+
263
+ The top row is a [Mandelbrot](https://ffmpeg.org/ffmpeg-filters.html#mandelbrot) video
264
+ generated from FFmpeg that has a resolution of 1280x720 at 60 fps and is 120 seconds long.
265
+ The bottom row is [promotional video from NASA](https://download.pytorch.org/torchaudio/tutorial-assets/stream-api/NASAs_Most_Scientifically_Complex_Space_Observatory_Requires_Precision-MP4_small.mp4)
266
+ that has a resolution of 960x540 at 29.7 fps and is 206 seconds long. Both videos were
267
+ encoded with libx264 and yuv420p pixel format. All decoders, except for TorchVision, used FFmpeg 6.1.2. TorchVision used FFmpeg 4.2.2.
268
+
269
+ For TorchCodec, the "approx" label means that it was using [approximate mode](https://meta-pytorch.org/torchcodec/stable/generated_examples/decoding/approximate_mode.html)
270
+ for seeking.
271
+
272
+ ## Contributing
273
+
274
+ We welcome contributions to TorchCodec! Please see our [contributing
275
+ guide](CONTRIBUTING.md) for more details.
276
+
277
+ ## License
278
+
279
+ TorchCodec is released under the [BSD 3 license](./LICENSE).
280
+
281
+ However, TorchCodec may be used with code not written by Meta which may be
282
+ distributed under different licenses.
283
+
284
+ For example, if you build TorchCodec with ENABLE_CUDA=1 or use the CUDA-enabled
285
+ release of torchcodec, please review CUDA's license here:
286
+ [Nvidia licenses](https://docs.nvidia.com/cuda/eula/index.html).
@@ -0,0 +1,88 @@
1
+ "torchcodec/__init__.py",sha256=hKsz0hByM91jbmUK3VhZg_f9K9fTO4-g7pxhvO-fjAE,1123
2
+ "torchcodec/_frame.py",sha256=xmn3-NTDk2md6CEImkaiez3komfER_EmcTncmfScqXs,5196
3
+ "torchcodec/_internally_replaced_utils.py",sha256=iwdsmOK0X7CCI1Z2C5mwO4q7N4B08oLTginTYHJZkhI,2377
4
+ "torchcodec/libtorchcodec_core4.so",sha256=ZW2Dpp_1_dGeE--MQT6R-0Ss8mr4z9ysZbeUx3ULVgk,420608
5
+ "torchcodec/libtorchcodec_core5.so",sha256=K65LD-g4C3G1KABhPycXOFjc7bwC7fN0JY-QlAALxcc,420736
6
+ "torchcodec/libtorchcodec_core6.so",sha256=5AT71HR5Zf4ugvhAIy1ZfbSqRtRehFzg-qKVs6qqfQM,420736
7
+ "torchcodec/libtorchcodec_core7.so",sha256=OsnFWPWlTws71_UNL3Ee7IOnrLoISId_qY1D_ajEdOo,420752
8
+ "torchcodec/libtorchcodec_core8.so",sha256=LU46QZa_w3Uz1QME59eJiHzQ-EfcdeEoU8sWBuITk9A,420680
9
+ "torchcodec/libtorchcodec_custom_ops4.so",sha256=KVVC93mI2RulR9iIPzIHYQt3DrgHKLeiG3lVXGxUrV8,458152
10
+ "torchcodec/libtorchcodec_custom_ops5.so",sha256=1SOuBXnD_mPtyfBlkGPOpSgHKTctsREy1GY1bcTddl8,458152
11
+ "torchcodec/libtorchcodec_custom_ops6.so",sha256=4sNtMeyg73H1t2s-DYSg19AV6TMrVVIP0AvwwEoBzFM,458152
12
+ "torchcodec/libtorchcodec_custom_ops7.so",sha256=_UBigdvFs34pc-TnnMTRhTgnp_An22CB7YK-uC5q4H8,458152
13
+ "torchcodec/libtorchcodec_custom_ops8.so",sha256=L73hwTbn0SYZHW-gXkLW77hYw0z-TeqS5_ynDm2HPj8,458152
14
+ "torchcodec/libtorchcodec_pybind_ops4.so",sha256=V0w_u7w4G40cQykLHsaeP_IQbLM5L-wveLRwW0WWG8U,204176
15
+ "torchcodec/libtorchcodec_pybind_ops5.so",sha256=0AsHlnsEVDdfc7u-3j8jbO_OLoxByoxCfBZjE6CDehA,204176
16
+ "torchcodec/libtorchcodec_pybind_ops6.so",sha256=f5rikyy4QxeXQ9vo4X0TP1uav092OjQ-P2wG0R248kY,204176
17
+ "torchcodec/libtorchcodec_pybind_ops7.so",sha256=fjVtzmA3xO7ypU-VwJ17vkGv7uQoTG3nxjF0R-Ypkek,204176
18
+ "torchcodec/libtorchcodec_pybind_ops8.so",sha256=3BvZy7wFrTJhVTM0Op7eMVbOeLs7WtoDz6Xil1AUDNM,204176
19
+ "torchcodec/version.py",sha256=DOxgrrICCQWzAWNNQRFDJcPAGXHALspcqivZTtTNsWU,74
20
+ "torchcodec/_core/AVIOContextHolder.cpp",sha256=YbY8476y0SmXa5ennn4UtFfIBrRW8GAB_JXdtORDS04,1547
21
+ "torchcodec/_core/AVIOContextHolder.h",sha256=7Kz7zxdf6T3ojkTr4P_asvO39A78nF5wmaoUss19bYU,2612
22
+ "torchcodec/_core/AVIOFileLikeContext.cpp",sha256=Va6ungIPDXzh7qQnnAkqmJCVtbGIvs8S2DETC_fFUjQ,3331
23
+ "torchcodec/_core/AVIOFileLikeContext.h",sha256=WWs06nmOzvKjynNloUzG6mZum_OcZBJpLs4BEsMiXSk,2054
24
+ "torchcodec/_core/AVIOTensorContext.cpp",sha256=rJEAg8vP34YbXih0zCrqpqu9P4dC_Li2Di1iAcrOU3Q,4188
25
+ "torchcodec/_core/AVIOTensorContext.h",sha256=pSENXC4QK6IrJVpdfQ09nKvDmBguaq1uzfeB5EyaNCs,1065
26
+ "torchcodec/_core/BetaCudaDeviceInterface.cpp",sha256=8bzPJ38zhZvu4XS9NCKuOGi62zTclwjLPQ7drflYz_U,30951
27
+ "torchcodec/_core/BetaCudaDeviceInterface.h",sha256=NPyykoAQHmYF1dlwXn23Ep_fFo-NNdMquMmzPbC58EQ,8067
28
+ "torchcodec/_core/CMakeLists.txt",sha256=09N2w7_SwxaDFDn0VfnHsFqACbYR6j-YONbZyeDGYWY,10845
29
+ "torchcodec/_core/CUDACommon.cpp",sha256=Y8-bTVYqW_4QguieL1q3klpxPNQPeVjKx7Bqb3d9go4,13297
30
+ "torchcodec/_core/CUDACommon.h",sha256=OF7vYz4eNKwcrPErkOAs0fhu6Lpdy-nnGsVhNcSWA-g,1508
31
+ "torchcodec/_core/Cache.h",sha256=fmmvKIoYQt63A_9N9CrIxs5kWXx4CLYIRNbBkKwaygo,4218
32
+ "torchcodec/_core/CpuDeviceInterface.cpp",sha256=yWbVK7wIXIEFbmLPZ3-NyvRf8vIZLp5tLtHOX2b0L84,19130
33
+ "torchcodec/_core/CpuDeviceInterface.h",sha256=uQIQv7paosewue4-a-Oy7gUH-4ZQ-xxp-zCKLaVH18g,5436
34
+ "torchcodec/_core/CudaDeviceInterface.cpp",sha256=WWIQydnJ400Tog8aOzN4sgt7bV14_JukpeEfAhy0-Dg,22458
35
+ "torchcodec/_core/CudaDeviceInterface.h",sha256=e8WNoXcD5QvjRM8ap-XJg-HwKTkVDwutAO_wNTSN9h4,2489
36
+ "torchcodec/_core/DeviceInterface.cpp",sha256=3YH_PTK7Y3K173Pz0OjUKDfHSRZjf1yQmM3ZWF6w_3Y,3197
37
+ "torchcodec/_core/DeviceInterface.h",sha256=YKj4YeHJ7R1dGzuz8i-GeHTyzsY_0cMPumvu3csxGks,6667
38
+ "torchcodec/_core/Encoder.cpp",sha256=Z3kqdNOBmwlyrr6DoK95eHNzYTbsc_biKWcPhmSCld0,36606
39
+ "torchcodec/_core/Encoder.h",sha256=lsVmxCGXAUIvYn-dgXsgeSJY8Ud8cHKqeXw4Hu8X8Xk,8183
40
+ "torchcodec/_core/FFMPEGCommon.cpp",sha256=Fm3Iaa0dp6D1mSXIMr6ek4gTQ0yvCpi49j1TS1EYS9c,21168
41
+ "torchcodec/_core/FFMPEGCommon.h",sha256=F0-g8seiLmyTC_DZf8rlY-cQ0mczvFPy5krJlusFz1k,10331
42
+ "torchcodec/_core/FilterGraph.cpp",sha256=itRjBmTGPrdrMlQdPJALxLEbEEqou0LJoB4HzKS40gk,5608
43
+ "torchcodec/_core/FilterGraph.h",sha256=RdmyF8zGRAJ6xhzd8rqY0Cz_ky4RVWCgg-ICG9d4A78,1592
44
+ "torchcodec/_core/Frame.cpp",sha256=ogLwxqC9X8wBslfaT54MHDym-CmnCR3NzccaHYcQKQA,1732
45
+ "torchcodec/_core/Frame.h",sha256=A-7EWzgecgsns0DY_qAMjUdPiIlvNZItpYsPJSJvNDk,2174
46
+ "torchcodec/_core/Metadata.cpp",sha256=kSp5wP24abm_0TZkNrZzoYKY3Gr2YeK6L10rSbAOvsw,4208
47
+ "torchcodec/_core/Metadata.h",sha256=DbSZEV47ACyccGdGjycOfpgxf3RdocU-CAB1YKe-l2E,3080
48
+ "torchcodec/_core/NVCUVIDRuntimeLoader.cpp",sha256=0heklFQRZ2fok0aHctN2DMkeTiYwwpf8-bj_pdYZwM0,12351
49
+ "torchcodec/_core/NVCUVIDRuntimeLoader.h",sha256=U7AlKG8pinvEOoIlCQ0n4Z0D0GvEbuQTUpCsbLjsaKk,364
50
+ "torchcodec/_core/NVDECCache.cpp",sha256=nUzcItgkCAg7kn5EsinWPyOfrCwCjDyUes-sAa_0O34,1359
51
+ "torchcodec/_core/NVDECCache.h",sha256=oZGDq84sUVq9M4heCPEXdlgrUnN6sxjmA0Odo80dFhM,3047
52
+ "torchcodec/_core/SingleStreamDecoder.cpp",sha256=58IcRWpqvxykgx2T-vREvI7FCbEQ7ub_MAQHeJgrWus,62000
53
+ "torchcodec/_core/SingleStreamDecoder.h",sha256=FASBjrdb5qg8v3rt_F9vMWqrJGcYcnRWkjBjMUh8eQ4,15655
54
+ "torchcodec/_core/StreamOptions.h",sha256=Ueepw4uH4WLvLD_-89Z6LPHkS64chRgBiJjKi7-I2u8,2214
55
+ "torchcodec/_core/Transform.cpp",sha256=nxwvKgXBSXpqGxtfvEqILTCBtfgYVsv4VwPWkJhG2XY,3781
56
+ "torchcodec/_core/Transform.h",sha256=Hox_S0Mcerzy1ic2ogEPqVvdot1SoDe9PZrAAjVRgO0,2754
57
+ "torchcodec/_core/ValidationUtils.cpp",sha256=8y0OrprxQ_8S_NVlu2_qMHh7tJtq1cIz1u3f_9VLAYo,938
58
+ "torchcodec/_core/ValidationUtils.h",sha256=VCa_NmuAtAmt6RRrWMqtp7kgVKewirqluU27ab6mpjQ,558
59
+ "torchcodec/_core/__init__.py",sha256=GCyDdinHpet-cnvsyKjQIFVf43rN6TquxELVAk-SHFI,1190
60
+ "torchcodec/_core/_metadata.py",sha256=Sk1OhTaawQMOfwezPI1QMq73JgHT6mmpUoDvdwKvTi8,10730
61
+ "torchcodec/_core/custom_ops.cpp",sha256=MeYtDkMKCUFHXmmi81mZbl_dTQUS_SbeUk6YeENf0EA,43472
62
+ "torchcodec/_core/fetch_and_expose_non_gpl_ffmpeg_libs.cmake",sha256=rHKXnyDlbCOQgpIFE_hiM3Hov1zrT9v6qkIkUtUtUiw,4337
63
+ "torchcodec/_core/ops.py",sha256=TXz9LNb3mlvQRbjPNiqayYxC8YiZG0LPs7jIutEGWI0,20944
64
+ "torchcodec/_core/pybind_ops.cpp",sha256=aFg77DEI4ZaPQ5hkkhgaHejHHgHd0cG8dkyAXGAXqLc,1995
65
+ "torchcodec/_core/nvcuvid_include/cuviddec.h",sha256=1PxnIX9bRPAyIWr1EAnw15wtyOyZF4TufTXTzLDkg0A,62618
66
+ "torchcodec/_core/nvcuvid_include/nvcuvid.h",sha256=0kZw976ixfmIQUbm_jJ8DAj89kYLA0bkKO4h2-zFmVU,28732
67
+ "torchcodec/_samplers/__init__.py",sha256=xzB58OnRldLSEw3kHWxmcMiCCH1AoXk2xhGF9e3jIcs,251
68
+ "torchcodec/_samplers/video_clip_sampler.py",sha256=cLXUKmL5HVFnx39Cdkaog9K2NycCeD5SNVQHSeHxt8U,17716
69
+ "torchcodec/decoders/__init__.py",sha256=FtNVq4URYyGaHPo0vgAVCtZUlwLBTjpxcTlWccMS2n8,475
70
+ "torchcodec/decoders/_audio_decoder.py",sha256=ty2xThbT5O14Uob8pHvwIvCPlxLDiNDSVbC2zchId7c,7668
71
+ "torchcodec/decoders/_decoder_utils.py",sha256=mcRCJDLkOXCSlyjvp02QJ3DIoSEOQwl3hwErUqq4ipY,4266
72
+ "torchcodec/decoders/_video_decoder.py",sha256=RppUYvKP_Ad94CUIMR_Cnf6LBDbNcMbbBMrVEyPyoR4,24510
73
+ "torchcodec/encoders/__init__.py",sha256=R4inzyY654onRvoBw-pvaHHQP5juptv1uTU_2b373eU,98
74
+ "torchcodec/encoders/_audio_encoder.py",sha256=JH7P3PGSBesVGKBlZGDaoZIMksX9uZKbLc0Q1Ix5tRU,6094
75
+ "torchcodec/encoders/_video_encoder.py",sha256=cW0AWCM2kYKn76wyQiDUylCmEAe_HCDb_i7CnH-KAls,9157
76
+ "torchcodec/samplers/__init__.py",sha256=0u3lshujFqWThgaUHYx1nSCIB0nZNPicOZqa8EQ5WjQ,157
77
+ "torchcodec/samplers/_common.py",sha256=QwjFhoRODrG5eVwSOYNtidB2CfwB-E31ixH4xSN7KvU,2735
78
+ "torchcodec/samplers/_index_based.py",sha256=gV5dJSxb3ahbewVnFP0wDGKNi6yXh-R_6CcNXKNliPI,11389
79
+ "torchcodec/samplers/_time_based.py",sha256=VPS5OtvesjrWIBGtAbRF_wOa6YM-12N0AC4J6Ztn6ws,14667
80
+ "torchcodec/share/cmake/TorchCodec/TorchCodecConfig.cmake",sha256=vOOrqLFWYrP2wTogLHXTtbtui0zxTE7M9cat1kVVf6E,2826
81
+ "torchcodec/share/cmake/TorchCodec/ffmpeg_versions.cmake",sha256=gLO3Qz_3CjA5D-f62J84nzoLIIAe173HTSE5RWm01Q0,6179
82
+ "torchcodec/transforms/__init__.py",sha256=tknrWn0hr_b7RhSW3WmDobem6uUbJRo6wKN45pljmO0,320
83
+ "torchcodec/transforms/_decoder_transforms.py",sha256=mQPy9pBMjv0jQZK_zad1d9UPvgG9iqG4YGQ7qYLnDFo,15141
84
+ "torchcodec-0.10.0.dist-info/licenses/LICENSE",sha256=jveMLW54exA6BUjnO6LP5ovEabWw5vXn22SfExL08qY,1474
85
+ "torchcodec-0.10.0.dist-info/METADATA",sha256=3sIOj9EVi6ZDw_MSz18PBUXU6P8Sxq2RDksT5etzF1A,11481
86
+ "torchcodec-0.10.0.dist-info/WHEEL",sha256=VXvNKn6nFeCM45GEUrNLJOO_J_e-cNJphGt9rWFxyE0,113
87
+ "torchcodec-0.10.0.dist-info/top_level.txt",sha256=S1IZq2_jNQE_RDGwxNunVF8S1RCMXmWdAAQjLXBdu2g,21
88
+ "torchcodec-0.10.0.dist-info/RECORD",,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp312-cp312-manylinux_2_28_x86_64
5
+
@@ -0,0 +1,28 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright 2024 Meta
4
+
5
+ Redistribution and use in source and binary forms, with or without modification,
6
+ are permitted provided that the following conditions are met:
7
+
8
+ 1. Redistributions of source code must retain the above copyright notice,this list
9
+ of conditions and the following disclaimer.
10
+
11
+ 2. Redistributions in binary form must reproduce the above copyright notice, this
12
+ list of conditions and the following disclaimer in the documentation
13
+ and/or other materials provided with the distribution.
14
+
15
+ 3. Neither the name of the copyright holder nor the names of its contributors may
16
+ be used to endorse or promote products derived from this software without specific
17
+ prior written permission.
18
+
19
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY
20
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
22
+ SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
23
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
24
+ TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
25
+ BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
27
+ ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
28
+ DAMAGE.
@@ -0,0 +1,2 @@
1
+ FAKE_NAME
2
+ torchcodec