Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
175 commits
Select commit Hold shift + click to select a range
4945a87
Drop src/torchcodec/_core/ when including headers from _core (#1002)
dvrogozh Oct 30, 2025
f991110
Remove old method declarations (#1011)
NicolasHug Oct 30, 2025
169484d
Generalize DeviceInterface to include audio decoding (#1010)
mollyxu Oct 31, 2025
c552b60
Add encoders to top-level import list (#1019)
scotts Nov 4, 2025
afd5aba
Proper resize tests; remove swscale resize (#1013)
scotts Nov 5, 2025
7d27c15
Remove unnecessary copy of preAllocatedOutputTensor (#1026)
mollyxu Nov 6, 2025
8e615e3
Remove unnecessary include (#1015)
NicolasHug Nov 7, 2025
b597922
Suport device=None (#1025)
mollyxu Nov 7, 2025
dc87228
Expose TorchCodecConfig.cmake (#938)
dvrogozh Nov 10, 2025
45647a1
Add pixel_format to VideoEncoder API (#1027)
Dan-Flores Nov 10, 2025
289ff5d
refactor metadata fallback logic (#1021)
mollyxu Nov 10, 2025
982102b
Simplify seek skipping logic (#1039)
NicolasHug Nov 12, 2025
b35005d
Avoid seeking checks when decoding frames sequentially (#1028)
NicolasHug Nov 12, 2025
c69739f
Add crf to VideoEncoder API (#1031)
Dan-Flores Nov 13, 2025
af6a008
Attempt at fixing contiguity test failures (#1048)
NicolasHug Nov 13, 2025
e170212
Add preset to VideoEncoder API (#1042)
Dan-Flores Nov 13, 2025
ab4cf29
Relax tolerances for FFmpeg v4.1 and earlier (#1045)
scotts Nov 13, 2025
0535b00
Decoder-native resize public implementation (#1003)
scotts Nov 14, 2025
09e0e49
Set LD_LIBRARY_PATH for linux_cuda_wheel workflow (#1034)
atalman Nov 14, 2025
79e633c
Add codec selection to VideoEncoder API (#1038)
Dan-Flores Nov 14, 2025
1093339
Fix docs job (#1052)
NicolasHug Nov 14, 2025
c69064f
Add codec options to VideoEncoder API (#1050)
Dan-Flores Nov 14, 2025
17164fd
Update documentation links to meta-pytorch (#1055)
svekars Nov 17, 2025
22bcf4d
Ensure SingleStreamDecoder is robust against numFrames = 0
mollyxu Nov 17, 2025
b0097cc
Improve VideoEncoder test against FFmpeg CLI (#1058)
Dan-Flores Nov 18, 2025
1ea235a
Use std::move to reduce copies in VideoEncoder (#1056)
Dan-Flores Nov 18, 2025
04b02b9
Refactor order of getting metadata and adding a stream (#1060)
scotts Nov 19, 2025
408b373
Fallback to container duration in approximate mode (#989)
mollyxu Nov 19, 2025
cac99ae
Accept float frame_rate in VideoEncoder (#1061)
Dan-Flores Nov 20, 2025
559b27e
Add video encoding tutorial doc (#1063)
Dan-Flores Nov 20, 2025
45ab588
[codemod][lowrisk] Remove unused exception parameter from multifeed/l…
r-barnes Nov 21, 2025
5cf6945
Handle Metadata.h lints by initializing streamIndex, mediaType (#1067)
Dan-Flores Nov 21, 2025
e202226
Update docs to indicate support for FFmpeg 8 on all platforms (#1004)
Dan-Flores Nov 21, 2025
219cc02
Remove tests from collection (#1068)
mollyxu Nov 24, 2025
2c07f58
Skip torch.compile tests on python 3.14 (#1073)
Dan-Flores Nov 25, 2025
392bab3
Add comment and TODO to `canWeSkipSeeking()` (#1041)
NicolasHug Nov 28, 2025
235e16e
Add sitemap config (#1079)
NicolasHug Dec 1, 2025
e091f57
More nuanced approximate mode tutorial recommendations (#1078)
NicolasHug Dec 1, 2025
2311422
Rename `getKeyFrameIndexForPts` into `getKeyFrameIdentifier` (#1076)
NicolasHug Dec 1, 2025
cb82662
Build FFmpeg on aarch64 (#1082)
NicolasHug Dec 2, 2025
f2c8c69
Explicitly import importlib.util to resolve mypy error (#1086)
Dan-Flores Dec 3, 2025
7dbbf83
Add GPU aarch64 wheels (#1092)
NicolasHug Dec 3, 2025
38fa96c
Implement RandomCrop transform (#1070)
scotts Dec 3, 2025
1b13e58
Refactor decoder transforms (#1081)
scotts Dec 4, 2025
7bc569a
Implement CenterCrop (#1094)
scotts Dec 4, 2025
c3356e5
Update version.txt to 0.10.0a0 (#1096)
Dan-Flores Dec 4, 2025
4e412b7
Refactor _make_transform_specs() location (#1097)
scotts Dec 4, 2025
a6cd9c0
Update Python type annotations to modern syntax and types (#1100)
scotts Dec 5, 2025
d76b289
Update index.rst to mention encoding support (#1101)
NicolasHug Dec 5, 2025
fb97dbd
Add pyupgrade to pre-commit hooks (#1104)
NicolasHug Dec 5, 2025
b765629
Fix format in VideoEncoder tutorial (#1099)
Dan-Flores Dec 5, 2025
8453a0a
Resolve lint in Transform.h (#1106)
Dan-Flores Dec 8, 2025
64373bf
Enable CUDA device for video encoder (#1008)
Dan-Flores Dec 9, 2025
957a150
Skip compile tests (#1113)
NicolasHug Dec 9, 2025
a2f1e4e
Fix load_torchcodec_shared_libraries on Windows (#1109)
aboood40091 Dec 9, 2025
2c2a138
Add CPU tests for aarch64 GPU wheels (#1083)
NicolasHug Dec 10, 2025
877eb0c
Fix windows dll context manager (#1120)
NicolasHug Dec 10, 2025
0574243
Fix transform benchmarks (#1118)
scotts Dec 10, 2025
cbe186f
Expose cpu_fallback in VideoDecoder API (#1093)
mollyxu Dec 10, 2025
5c2106f
Add pytest skip to test_contiguity (#1121)
Dan-Flores Dec 10, 2025
7581c01
Skip av1_nvenc test if in github ci (#1105)
Dan-Flores Dec 10, 2025
f6a8161
Add performance tips tutorial (#1065)
mollyxu Dec 10, 2025
ee8ce04
Update README for Windows FFmpeg installation (#1122)
NicolasHug Dec 11, 2025
6300361
Automatically select nightly or test channel when installing torch (#…
NicolasHug Dec 12, 2025
1e171fa
Find default hardware encoder in VideoEncoder (#1124)
Dan-Flores Dec 12, 2025
8392b26
Refactor CI jobs (#1129)
NicolasHug Dec 16, 2025
44ff337
Resolve lints in CudaDeviceInterface.cpp (#1137)
Dan-Flores Dec 16, 2025
f827b0e
Enhance error handling in load_torchcodec_shared_libraries by capturi…
suo Dec 17, 2025
18a6364
Add UniqueAVDictionary class (#1136)
Dan-Flores Dec 17, 2025
622cbb1
Give context on exception tracebacks (#1141)
mollyxu Dec 17, 2025
201d1ff
Transforms tutorial (#1123)
scotts Dec 18, 2025
50686bb
Benchmark swscale for resize transforms (#1130)
mollyxu Dec 18, 2025
f91d24a
Refactor logic to close AVIOContext (#1144)
Dan-Flores Jan 6, 2026
2b43b2a
Fix skipif marker handling (#1155)
mollyxu Jan 9, 2026
304da2e
Added static cast to resolve lint (#1157)
mollyxu Jan 9, 2026
4eb36b4
Add color handling to VideoEncoder GPU (#1125)
Dan-Flores Jan 9, 2026
bc2ca14
Benchmark encoding against ffmpeg cli (#1074)
Dan-Flores Jan 9, 2026
19cadd9
Remove remaining tests from collection (#1142)
mollyxu Jan 12, 2026
e88bee9
Use validateInt64ToInt to resolve lint (#1165)
Dan-Flores Jan 13, 2026
5d5f464
Add CUDA encoding section to VideoEncoder tutorial (#1169)
Dan-Flores Jan 15, 2026
935000d
Fix Homebrew FFmpeg discovery on macOS (#1152)
mscheltienne Jan 20, 2026
ed44f0a
test: add cppapi test to give TorchCodecConfig.cmake a try (#1087)
dvrogozh Jan 20, 2026
0cb8fba
Clarify that `num_ffmpeg_threads` is only for CPU (#1174)
NicolasHug Jan 20, 2026
48844c8
Add cmake option to disable setting rpath for homebrew ffmpeg (#1175)
Dan-Flores Jan 20, 2026
e983098
Prioritize remaining TODO-VideoEncoder (#1172)
Dan-Flores Jan 21, 2026
e330e6b
Fix formatting in performance tips tutorial (#1179)
Dan-Flores Jan 21, 2026
de7d148
Update version.txt to 0.11.0a0 (#1183)
Dan-Flores Jan 22, 2026
7cde820
Make ffmpeg directory path absolute (#1184)
fenom Jan 23, 2026
66917f5
Add comments to FFmpeg HomeBrew build logic (#1177)
NicolasHug Jan 23, 2026
9cd6c51
Use `TORCH_CHECK*` instead of C++'s `throw` (#1185)
NicolasHug Jan 23, 2026
38d286e
Use torch::Tensor instead of at::Tensor (#1186)
NicolasHug Jan 23, 2026
db0a147
Add FPS to `get_frames_played_in_range()` (#1148)
mollyxu Jan 23, 2026
e2ae694
Enable decoding audio with >8 channels (#1166)
Dan-Flores Jan 23, 2026
dea4e93
Fix resource generation script (#1197)
NicolasHug Jan 26, 2026
5467f8c
CI jobs cleanups (#1187)
NicolasHug Jan 26, 2026
300d4ea
Use FFmpeg 6 only for reference resource CI job (#1198)
NicolasHug Jan 26, 2026
e93fc31
Update some GitHub Actions steps version (#1150)
NicolasHug Jan 26, 2026
78c676b
Skip 24 channel test on some FFmpeg versions (#1201)
Dan-Flores Jan 27, 2026
a9e1ae3
Linter fixes (#1202)
Dan-Flores Jan 28, 2026
d88a2c4
Small update to transforms tutorial (#1204)
NicolasHug Jan 28, 2026
85d1dad
Update aarch64 workflow to set cuda version in matrix (#1205)
Dan-Flores Jan 28, 2026
4d39c48
Add job to upload-docs to main (#1208)
Dan-Flores Jan 29, 2026
7365129
Add doc-preview step (#1207)
Dan-Flores Jan 30, 2026
a54cfaf
Support for FreeBSD (#1193)
yurivict Feb 2, 2026
54f6c85
Switch to fmt:string for precision (#1203)
mollyxu Feb 2, 2026
377c638
Update performance tips tutorials with decoder native transforms (#1199)
mollyxu Feb 2, 2026
06d4538
Robust ffmpeg major version getter (#1211)
Dan-Flores Feb 3, 2026
65ed0d5
Combine encoding into DeviceInterface (#1213)
Dan-Flores Feb 4, 2026
ff3c294
Rotation metadata support (#1173)
mollyxu Feb 5, 2026
8248f19
Fix frame indexing for videos with non-zero start time in approximate…
eugenn Feb 6, 2026
5336313
Update metadata logic in approximate mode (#1220)
mollyxu Feb 9, 2026
c5a06bf
[video][cuda][beta] decoder caps cache (#1227)
vkhalidov Feb 10, 2026
99e0f4b
Use `STD_TORCH_CHECK` (#1225)
NicolasHug Feb 11, 2026
5800d58
[video][cuda][beta] decoder cache with multimap (#1232)
vkhalidov Feb 11, 2026
dcac4d0
Resolve lint (#1236)
Dan-Flores Feb 11, 2026
6f10da0
Use `torch::stable::Device` (#1231)
NicolasHug Feb 12, 2026
49c889c
Move shared_libraries loading to internally_replaced_utils (#1237)
Dan-Flores Feb 13, 2026
2d1b5c6
Use CUDA and stable APIs instead of at::cuda (#1238)
NicolasHug Feb 13, 2026
cc15044
Support rotation on beta cuda (#1235)
mollyxu Feb 13, 2026
4cf1333
Add XPU to the list of recognizable devices (#1248)
dvrogozh Feb 18, 2026
6b683e8
Refactor swscale into new class + rename filtergraph and swscale cons…
mollyxu Feb 18, 2026
be871e8
Find muxer options in VideoEncoder to test fragmented mp4 (#1216)
Dan-Flores Feb 18, 2026
5d20647
Use `torch::stable::Tensor` everywhere except in `custom_ops.cpp` (#1…
NicolasHug Feb 19, 2026
40eae03
Make custom_ops ABI stable (#1252)
NicolasHug Feb 20, 2026
7258379
[video][cuda] NVDECCache eviction policy, static implementation (#1243)
vkhalidov Feb 23, 2026
f76e663
Beta CUDA interface minor cleanups (#1255)
NicolasHug Feb 23, 2026
068e58a
Consolidate AudioDecoder creation with python wrapper (#1249)
zy1git Feb 24, 2026
8a45d7c
Set num_ffmpeg_threads to 1 on AudioDecoder (#1254)
mollyxu Feb 24, 2026
794ee7d
Expose pixel format on VideoStreamMetadata (#1261)
mollyxu Feb 25, 2026
1a7450d
Fix BT.709 full range CUDA color conversion on CUDA 12 (#1265)
NicolasHug Feb 25, 2026
173fe70
Restore +cpu to CPU wheels (#1269)
Dan-Flores Mar 3, 2026
3d6046a
Consolidate VideoDecoder creation with python wrapper (#1250)
zy1git Mar 4, 2026
98b6726
Add bt2020 color conversion support on Beta Cuda (#1267)
mollyxu Mar 4, 2026
900979e
Detect missing index in mkv + approximate seek mode (#1259)
Dan-Flores Mar 4, 2026
89ada0a
[video] make NVDec cache size adjustable (#1246)
vkhalidov Mar 6, 2026
b66b35f
Fix bt601 color conversion on cuda (#1270)
mollyxu Mar 9, 2026
c679f12
Update CONTRIBUTING.md for building docs on a remote server such as G…
zy1git Mar 10, 2026
13ffad0
Address internal lints (#1282)
NicolasHug Mar 10, 2026
21c6a8a
Minor doc improvements (#1276)
NicolasHug Mar 11, 2026
a37ccef
[8/12] Upgrade torchcodec build configs to C++20
r-barnes Mar 11, 2026
4612dfa
Expose HDR Color metadata (#1271)
mollyxu Mar 11, 2026
d5855c0
Address internal lint (#1283)
mollyxu Mar 11, 2026
637bbac
Update doc build runner (#1286)
NicolasHug Mar 12, 2026
a8a257a
Migrate torchcodec docs to sphinx theme2 (#1275)
mollyxu Mar 12, 2026
1bd21f4
Use float64 instead of float32 in time-based samplers (#1294)
NicolasHug Mar 18, 2026
641a29e
Fix SwScale error with non-32 aligned input (#1295)
mavenlin Mar 19, 2026
1ccd410
WavDecoder parses WAV headers (#1281)
Dan-Flores Mar 19, 2026
7139228
Clarify comment about blocking behavior of cuvidDecodePicture (#1300)
NicolasHug Mar 20, 2026
ac1c3e5
Improve example gallery thumbnails (#1287)
NicolasHug Mar 20, 2026
6096fbb
WavDecoder metadata (#1293)
Dan-Flores Mar 23, 2026
dce6398
Remove low-level decoding functions from _core exports (#1290)
zy1git Mar 24, 2026
8bbaf59
[merge after 0.11] README indicates default wheel matches torch (#1301)
Dan-Flores Mar 24, 2026
d66806c
After release 0.11, update version.txt and compatibility table (#1306)
Dan-Flores Mar 24, 2026
52b2de5
Remove linux foundation header from docs (#1308)
mollyxu Mar 25, 2026
75e8dcd
Install test torch on CI when pushing version tag (#1310)
Dan-Flores Mar 25, 2026
910005c
Streaming encoder ops to open and close (#1272)
Dan-Flores Mar 25, 2026
0e4e739
Fix noisy JSONDecodeError in CI (#1315)
Dan-Flores Mar 31, 2026
2504a13
Enable minimal video encoding in MultiStreamEncoder (#1316)
Dan-Flores Mar 31, 2026
f5dae91
Streaming encoder supports videoStreamOptions on CPU (#1317)
Dan-Flores Apr 1, 2026
f9bc968
Publish ARM wheels to GitHub
youge325 Apr 10, 2026
17cdfff
fix
youge325 Apr 10, 2026
27b73c4
try to use pytorch image
youge325 Apr 10, 2026
c9cbfb3
try to fix network problem
youge325 Apr 10, 2026
516c690
update ffmpeg and wheel build workflow with upstream main branch
youge325 Apr 11, 2026
b9052e7
run full tests
youge325 Apr 11, 2026
cb68f64
Revert "run full tests"
youge325 Apr 11, 2026
1d3ea2f
add multi-python multi-ffmpeg build workflow
youge325 Apr 11, 2026
3cb2a0f
try to use actions/cache@v4
youge325 Apr 11, 2026
35f7341
no need to build wheel for arm ourselves
youge325 Apr 11, 2026
b6de0fe
use faster runner
youge325 Apr 11, 2026
89eae28
use public runner
youge325 Apr 11, 2026
56feb21
merge two workflow files into one
youge325 Apr 11, 2026
b16140c
Merge remote-tracking branch 'upstream/main' into paddle_arm
youge325 Apr 11, 2026
c4efcdb
delete unused linux_cuda_aarch64_wheel.yaml workflow
youge325 Apr 11, 2026
3f914b2
fix CI build
youge325 Apr 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .github/workflows/build_ffmpeg.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,33 @@ jobs:
mkdir -p "${artifact_dir}"
mv ffmpeg.tar.gz "${artifact_dir}/${FFMPEG_VERSION}.tar.gz"

LGPL-Linux-aarch64:
strategy:
fail-fast: false
matrix:
ffmpeg-version: ["4.4.4", "5.1.4", "6.1.1", "7.0.1", "8.0"]
uses: pytorch/test-infra/.github/workflows/linux_job_v2.yml@main
permissions:
id-token: write
contents: read
with:
job-name: Build
upload-artifact: ffmpeg-lgpl-linux_aarch64-${{ matrix.ffmpeg-version }}
repository: meta-pytorch/torchcodec
runner: linux.arm64.2xlarge
docker-image: pytorch/manylinux2_28_aarch64-builder:cpu-aarch64
script: |
export FFMPEG_VERSION="${{ matrix.ffmpeg-version }}"
export FFMPEG_ROOT="${PWD}/ffmpeg"

packaging/build_ffmpeg.sh

tar -cf ffmpeg.tar.gz ffmpeg/include ffmpeg/lib

artifact_dir="${RUNNER_ARTIFACT_DIR}/$(date +%Y-%m-%d)/linux_aarch64"
mkdir -p "${artifact_dir}"
mv ffmpeg.tar.gz "${artifact_dir}/${FFMPEG_VERSION}.tar.gz"

LGPL-macOS:
strategy:
fail-fast: false
Expand Down
5 changes: 2 additions & 3 deletions .github/workflows/cpp_tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
ffmpeg-version-for-tests: ['4.4.2', '5.1.2', '6.1.1', '7.0.1']
steps:
- name: Check out repo
uses: actions/checkout@v3
uses: actions/checkout@v6
- name: Setup conda env
uses: conda-incubator/setup-miniconda@v3
with:
Expand All @@ -37,8 +37,7 @@ jobs:
- name: Update pip
run: python -m pip install --upgrade pip
- name: Install torch dependencies
run: |
python -m pip install --pre torch --index-url https://download.pytorch.org/whl/nightly/cpu
run: bash packaging/install_pytorch.sh cpu "torch"
- name: Install ffmpeg, pkg-config and pybind11
run: |
conda install "ffmpeg=${{ matrix.ffmpeg-version-for-tests }}" pkg-config pybind11 -c conda-forge
Expand Down
116 changes: 0 additions & 116 deletions .github/workflows/docs.yaml

This file was deleted.

14 changes: 7 additions & 7 deletions .github/workflows/lint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@ jobs:
python-version: ['3.12']
steps:
- name: Check out repo
uses: actions/checkout@v3
uses: actions/checkout@v6
- name: Setup conda env
uses: conda-incubator/setup-miniconda@v2
uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
miniconda-version: "latest"
miniforge-version: latest
activate-environment: test
python-version: ${{ matrix.python-version }}
- name: Update pip
Expand All @@ -50,19 +50,19 @@ jobs:
python-version: ['3.12']
steps:
- name: Check out repo
uses: actions/checkout@v3
uses: actions/checkout@v6
- name: Setup conda env
uses: conda-incubator/setup-miniconda@v2
uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
miniconda-version: "latest"
miniforge-version: latest
activate-environment: test
python-version: ${{ matrix.python-version }}
- name: Update pip
run: python -m pip install --upgrade pip
- name: Install dependencies and FFmpeg
run: |
python -m pip install --pre torch --index-url https://download.pytorch.org/whl/nightly/cpu
bash packaging/install_pytorch.sh cpu "torch torchvision"
conda install "ffmpeg=7.0.1" pkg-config pybind11 -c conda-forge
ffmpeg -version
- name: Build and install torchcodec
Expand Down
Loading
Loading