structuredAttrs is enabled Sourcing python-remove-tests-dir-hook Sourcing python-catch-conflicts-hook.sh Sourcing python-remove-bin-bytecode-hook.sh Sourcing pypa-build-hook Using pypaBuildPhase Sourcing python-runtime-deps-check-hook Using pythonRuntimeDepsCheckHook Sourcing pypa-install-hook Using pypaInstallPhase Sourcing python-imports-check-hook.sh Using pythonImportsCheckPhase Sourcing python-metadata-check-hook.sh Using pythonMetadataCheckPhase Sourcing python-namespaces-hook Sourcing python-catch-conflicts-hook.sh Sourcing pytest-check-hook Using pytestCheckPhase Running phase: unpackPhase unpacking source archive /nix/store/n7njkx6j67kka2y2vr3kfvp7hiyyzgkq-source source root is source setting SOURCE_DATE_EPOCH to timestamp 315619200 of file "source/version.txt" Running phase: patchPhase Running phase: updateAutotoolsGnuConfigScriptsPhase Running phase: configurePhase no configure script, doing nothing Running phase: buildPhase Executing pypaBuildPhase Creating a wheel... pypa build flags: --no-isolation --outdir dist/ --wheel * Getting build dependencies for wheel... * Building wheel... INFO: Didn't find sha. Is this a git repo? *** scikit-build-core 1.0.2 using CMake 4.4.3 (wheel) *** Configuring CMake... loading initial cache file build/cp314-cp314-linux_x86_64/CMakeInit.txt -- The C compiler identification is GNU 16.2.0 -- The CXX compiler identification is GNU 16.2.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /nix/store/j1938gsbvbhkyz4kbmvjk56r479mkw3s-gcc-wrapper-16.2.0/bin/gcc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /nix/store/j1938gsbvbhkyz4kbmvjk56r479mkw3s-gcc-wrapper-16.2.0/bin/g++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Performing Test HAS_FLTO_AUTO -- Performing Test HAS_FLTO_AUTO - Success -- Found pybind11: /nix/store/i1ficgpvdjavry5zclri74ifwr0nl894-python3.14-pybind11-3.0.4/include (found version "3.0.4") CMake Warning at /nix/store/xmhr1kkysfz898zsk5pxj2qmw75bq1dj-python3.14-torch-2.13.0-dev/share/cmake/Torch/TorchConfig.cmake:22 (message): library kineto not found. Call Stack (most recent call first): /nix/store/xmhr1kkysfz898zsk5pxj2qmw75bq1dj-python3.14-torch-2.13.0-dev/share/cmake/Torch/TorchConfig.cmake:119 (append_torchlib_if_found) src/torchcodec/_core/CMakeLists.txt:21 (find_package) -- Found Torch: /nix/store/4i7r1f8ndzrjy9dwrbj1qq4xnli9l62d-python3.14-torch-2.13.0-lib/lib/libtorch.so -- Found Python3: /nix/store/lb41b0anx1f98y9y5s9mdv97gjgsq740-python3-3.14.7/bin/python3.14 (found version "3.14.7") found components: Development Interpreter Development.Module Development.Embed -- Found JPEG: /nix/store/dkmjavf5yaj6hdcf2ggc6hsj1lp7lwsx-libjpeg-turbo-3.1.4.1/lib/libjpeg.so (found version "62") -- libjpeg found: building torchcodec with JPEG image decoding support. -- Found ZLIB: /nix/store/wgw25d181h0qks7qsfp1bh7c5nd3f0s7-zlib-1.3.2/lib/libz.so (found version "1.3.2") -- Found PNG: /nix/store/qc7wwg64ggan8nzgrlal5dy16gyx6c1l-libpng-apng-1.6.58/lib/libpng.so (found version "1.6.58") -- libpng found: building torchcodec with PNG image decoding support. -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success -- Found Threads: TRUE -- libwebp found: building torchcodec with WebP image decoding support. -- Adding libavif (decode-only, from S3) as the `avif` target -- Building torchcodec with AVIF image decoding support (libavif from S3). -- Building torchcodec with GIF image decoding support (vendored giflib). -- libheif found: building torchcodec with HEIC image decoding support. -- Building and dynamically linking libtorchcodec against the installed FFmpeg libraries. This require pkg-config to be installed. If you have installed FFmpeg from conda, make sure pkg-config is installed from conda as well. -- Found PkgConfig: /nix/store/b9izmrfjp0qnnyahdwwrzdwi87s1h179-pkg-config-wrapper-0.29.2/bin/pkg-config (found version "0.29.2") -- Checking for modules 'libavdevice;libavfilter;libavformat;libavcodec;libavutil;libswresample;libswscale' -- Found libavdevice, version 63.1.101 -- Found libavfilter, version 12.1.101 -- Found libavformat, version 63.1.101 -- Found libavcodec, version 63.1.101 -- Found libavutil, version 61.1.101 -- Found libswresample, version 7.1.101 -- Found libswscale, version 10.1.101 Adding torchcodec::ffmpeg9 target -- Configuring done (5.7s) -- Generating done (0.0s) -- Build files have been written to: /build/source/build/cp314-cp314-linux_x86_64 *** Building project with Ninja... [46/46] Linking CXX shared library src/torchcodec/_core/libtorchcodec_custom_ops9.so *** Installing project into wheel... -- Install configuration: "Release" -- Installing: /build/tmpobkkjkk6/wheel/platlib/torchcodec/libtorchcodec_image.so -- Set non-toolchain portion of runtime path of "/build/tmpobkkjkk6/wheel/platlib/torchcodec/libtorchcodec_image.so" to "" -- Installing: /build/tmpobkkjkk6/wheel/platlib/torchcodec/libtorchcodec_pybind_ops.so -- Installing: /build/tmpobkkjkk6/wheel/platlib/torchcodec/libtorchcodec_heic.so -- Installing: /build/tmpobkkjkk6/wheel/platlib/torchcodec/libtorchcodec_core9.so -- Installing: /build/tmpobkkjkk6/wheel/platlib/torchcodec/libtorchcodec_custom_ops9.so -- Set non-toolchain portion of runtime path of "/build/tmpobkkjkk6/wheel/platlib/torchcodec/libtorchcodec_custom_ops9.so" to "" *** Making wheel... *** Created torchcodec-0.16.0-cp314-cp314-linux_x86_64.whl Successfully built torchcodec-0.16.0-cp314-cp314-linux_x86_64.whl Finished creating a wheel... Finished executing pypaBuildPhase Running phase: pythonRuntimeDepsCheckHook Executing pythonRuntimeDepsCheck Checking runtime dependencies for torchcodec-0.16.0-cp314-cp314-linux_x86_64.whl Finished executing pythonRuntimeDepsCheck Running phase: installPhase Executing pypaInstallPhase Successfully installed torchcodec-0.16.0-cp314-cp314-linux_x86_64.whl Finished executing pypaInstallPhase Running phase: pythonOutputDistPhase Executing pythonOutputDistPhase Finished executing pythonOutputDistPhase Running phase: fixupPhase shrinking RPATHs of ELF executables and libraries in /nix/store/44gz6j0hqgc1jcsgb5pjhhilshb7kkms-python3.14-torchcodec-0.16.0-dist checking for references to /build/ in /nix/store/44gz6j0hqgc1jcsgb5pjhhilshb7kkms-python3.14-torchcodec-0.16.0-dist... patching script interpreter paths in /nix/store/44gz6j0hqgc1jcsgb5pjhhilshb7kkms-python3.14-torchcodec-0.16.0-dist shrinking RPATHs of ELF executables and libraries in /nix/store/1pv4k9xfh1vvhhwi8fhnz4f3im1gbrqs-python3.14-torchcodec-0.16.0 shrinking /nix/store/1pv4k9xfh1vvhhwi8fhnz4f3im1gbrqs-python3.14-torchcodec-0.16.0/lib/python3.14/site-packages/torchcodec/libtorchcodec_heic.so shrinking /nix/store/1pv4k9xfh1vvhhwi8fhnz4f3im1gbrqs-python3.14-torchcodec-0.16.0/lib/python3.14/site-packages/torchcodec/libtorchcodec_core9.so shrinking /nix/store/1pv4k9xfh1vvhhwi8fhnz4f3im1gbrqs-python3.14-torchcodec-0.16.0/lib/python3.14/site-packages/torchcodec/libtorchcodec_image.so shrinking /nix/store/1pv4k9xfh1vvhhwi8fhnz4f3im1gbrqs-python3.14-torchcodec-0.16.0/lib/python3.14/site-packages/torchcodec/libtorchcodec_custom_ops9.so shrinking /nix/store/1pv4k9xfh1vvhhwi8fhnz4f3im1gbrqs-python3.14-torchcodec-0.16.0/lib/python3.14/site-packages/torchcodec/libtorchcodec_pybind_ops.so checking for references to /build/ in /nix/store/1pv4k9xfh1vvhhwi8fhnz4f3im1gbrqs-python3.14-torchcodec-0.16.0... patching script interpreter paths in /nix/store/1pv4k9xfh1vvhhwi8fhnz4f3im1gbrqs-python3.14-torchcodec-0.16.0 stripping (with command strip and flags -S -p) in /nix/store/1pv4k9xfh1vvhhwi8fhnz4f3im1gbrqs-python3.14-torchcodec-0.16.0/lib Executing pythonRemoveTestsDir Finished executing pythonRemoveTestsDir Running phase: installCheckPhase no Makefile or custom installCheckPhase, doing nothing Running phase: pythonCatchConflictsPhase Running phase: pythonRemoveBinBytecodePhase Running phase: pythonImportsCheckPhase Executing pythonImportsCheckPhase Check whether the following modules can be imported: torchcodec Running phase: pythonMetadataCheckPhase Executing pythonMetadataCheckPhase Running phase: pytestCheckPhase Executing pytestCheckPhase pytest flags: -m pytest --ignore-glob=test/plugin/test_plugins.py ============================= test session starts ============================== platform linux -- Python 3.14.7, pytest-9.1.1, pluggy-1.6.0 -- /nix/store/lb41b0anx1f98y9y5s9mdv97gjgsq740-python3-3.14.7/bin/python3.14 cachedir: .pytest_cache rootdir: /build/source configfile: pyproject.toml testpaths: test collected 2681 items / 1 deselected / 2680 selected test/smoke_test.py::TestVideoDecoder::test_basics[cpu] PASSED [ 0%] test/smoke_test.py::TestVideoDecoder::test_basics[cuda] SKIPPED (CUD...) [ 0%] test/smoke_test.py::TestVideoDecoder::test_get_frame_at[cpu] PASSED [ 0%] test/smoke_test.py::TestVideoDecoder::test_get_frame_at[cuda] SKIPPED [ 0%] test/smoke_test.py::TestVideoDecoder::test_get_frames_in_range[cpu] PASSED [ 0%] test/smoke_test.py::TestVideoDecoder::test_get_frames_in_range[cuda] SKIPPED [ 0%] test/smoke_test.py::TestVideoDecoder::test_get_frame_played_at[cpu] PASSED [ 0%] test/smoke_test.py::TestVideoDecoder::test_get_frame_played_at[cuda] SKIPPED [ 0%] test/smoke_test.py::TestVideoDecoder::test_getitem[cpu] PASSED [ 0%] test/smoke_test.py::TestVideoDecoder::test_getitem[cuda] SKIPPED (CU...) [ 0%] test/smoke_test.py::TestVideoDecoder::test_get_all_frames[cpu] PASSED [ 0%] test/smoke_test.py::TestVideoDecoder::test_get_all_frames[cuda] SKIPPED [ 0%] test/smoke_test.py::TestVideoDecoder::test_iteration[cpu] PASSED [ 0%] test/smoke_test.py::TestVideoDecoder::test_iteration[cuda] SKIPPED (...) [ 0%] test/smoke_test.py::TestAudioDecoder::test_basics PASSED [ 0%] test/smoke_test.py::TestAudioDecoder::test_get_all_samples PASSED [ 0%] test/smoke_test.py::TestAudioDecoder::test_get_samples_played_in_range PASSED [ 0%] test/smoke_test.py::TestAudioDecoder::test_resample_on_decode PASSED [ 0%] test/smoke_test.py::TestImageDecoder::test_decode_jpeg PASSED [ 0%] test/smoke_test.py::TestImageDecoder::test_decode_jpeg_cuda SKIPPED [ 0%] test/smoke_test.py::TestImageDecoder::test_decode_png PASSED [ 0%] test/smoke_test.py::TestImageDecoder::test_decode_webp PASSED [ 0%] test/smoke_test.py::TestImageDecoder::test_decode_gif PASSED [ 0%] test/smoke_test.py::TestImageDecoder::test_decode_avif PASSED [ 0%] test/smoke_test.py::TestImageDecoder::test_decode_heic PASSED [ 0%] test/smoke_test.py::TestImageEncoder::test_encode_to_file[png] PASSED [ 0%] test/smoke_test.py::TestImageEncoder::test_encode_to_file[jpeg] PASSED [ 1%] test/smoke_test.py::TestImageEncoder::test_encode_to_file[jpeg_cuda] SKIPPED [ 1%] test/smoke_test.py::TestImageEncoder::test_encode_to_file_like[png] PASSED [ 1%] test/smoke_test.py::TestImageEncoder::test_encode_to_file_like[jpeg] PASSED [ 1%] test/smoke_test.py::TestImageEncoder::test_encode_to_file_like[jpeg_cuda] SKIPPED [ 1%] test/smoke_test.py::TestVideoEncoder::test_to_file PASSED [ 1%] test/smoke_test.py::TestVideoEncoder::test_to_tensor PASSED [ 1%] test/smoke_test.py::TestVideoEncoder::test_roundtrip_lossless PASSED [ 1%] test/smoke_test.py::TestAudioEncoder::test_to_file_wav PASSED [ 1%] test/smoke_test.py::TestAudioEncoder::test_to_tensor PASSED [ 1%] test/smoke_test.py::TestAudioEncoder::test_mono_1d_input PASSED [ 1%] test/smoke_test.py::TestAudioEncoder::test_resample_on_encode PASSED [ 1%] test/smoke_test.py::TestEncoder::test_video_and_audio_chunked PASSED [ 1%] test/smoke_test.py::TestEncoder::test_cuda_encoding SKIPPED (CUDA no...) [ 1%] test/test_decoders.py::TestDecoder::test_create[str-VideoDecoder-asset0] PASSED [ 1%] test/test_decoders.py::TestDecoder::test_create[str-AudioDecoder-asset1] PASSED [ 1%] test/test_decoders.py::TestDecoder::test_create[str-AudioDecoder-asset2] PASSED [ 1%] test/test_decoders.py::TestDecoder::test_create[path-VideoDecoder-asset0] PASSED [ 1%] test/test_decoders.py::TestDecoder::test_create[path-AudioDecoder-asset1] PASSED [ 1%] test/test_decoders.py::TestDecoder::test_create[path-AudioDecoder-asset2] PASSED [ 1%] test/test_decoders.py::TestDecoder::test_create[file_like_rawio-VideoDecoder-asset0] PASSED [ 1%] test/test_decoders.py::TestDecoder::test_create[file_like_rawio-AudioDecoder-asset1] PASSED [ 1%] test/test_decoders.py::TestDecoder::test_create[file_like_rawio-AudioDecoder-asset2] PASSED [ 1%] test/test_decoders.py::TestDecoder::test_create[file_like_bufferedio-VideoDecoder-asset0] PASSED [ 1%] test/test_decoders.py::TestDecoder::test_create[file_like_bufferedio-AudioDecoder-asset1] PASSED [ 1%] test/test_decoders.py::TestDecoder::test_create[file_like_bufferedio-AudioDecoder-asset2] PASSED [ 1%] test/test_decoders.py::TestDecoder::test_create[file_like_custom-VideoDecoder-asset0] PASSED [ 1%] test/test_decoders.py::TestDecoder::test_create[file_like_custom-AudioDecoder-asset1] PASSED [ 2%] test/test_decoders.py::TestDecoder::test_create[file_like_custom-AudioDecoder-asset2] PASSED [ 2%] test/test_decoders.py::TestDecoder::test_create[bytes-VideoDecoder-asset0] PASSED [ 2%] test/test_decoders.py::TestDecoder::test_create[bytes-AudioDecoder-asset1] PASSED [ 2%] test/test_decoders.py::TestDecoder::test_create[bytes-AudioDecoder-asset2] PASSED [ 2%] test/test_decoders.py::TestDecoder::test_create[tensor-VideoDecoder-asset0] PASSED [ 2%] test/test_decoders.py::TestDecoder::test_create[tensor-AudioDecoder-asset1] PASSED [ 2%] test/test_decoders.py::TestDecoder::test_create[tensor-AudioDecoder-asset2] PASSED [ 2%] test/test_decoders.py::TestDecoder::test_create_fails[VideoDecoder] PASSED [ 2%] test/test_decoders.py::TestDecoder::test_create_fails[AudioDecoder] PASSED [ 2%] test/test_decoders.py::TestVideoDecoder::test_metadata[exact] PASSED [ 2%] test/test_decoders.py::TestVideoDecoder::test_metadata[approximate] PASSED [ 2%] test/test_decoders.py::TestVideoDecoder::test_create_bytes_ownership PASSED [ 2%] test/test_decoders.py::TestVideoDecoder::test_create_fails PASSED [ 2%] test/test_decoders.py::TestVideoDecoder::test_getitem_int[exact-cpu-1] PASSED [ 2%] test/test_decoders.py::TestVideoDecoder::test_getitem_int[exact-cpu-4] PASSED [ 2%] test/test_decoders.py::TestVideoDecoder::test_getitem_int[exact-cuda-1] SKIPPED [ 2%] test/test_decoders.py::TestVideoDecoder::test_getitem_int[exact-cuda-4] SKIPPED [ 2%] test/test_decoders.py::TestVideoDecoder::test_getitem_int[exact-cuda:ffmpeg-1] SKIPPED [ 2%] test/test_decoders.py::TestVideoDecoder::test_getitem_int[exact-cuda:ffmpeg-4] SKIPPED [ 2%] test/test_decoders.py::TestVideoDecoder::test_getitem_int[approximate-cpu-1] PASSED [ 2%] test/test_decoders.py::TestVideoDecoder::test_getitem_int[approximate-cpu-4] PASSED [ 2%] test/test_decoders.py::TestVideoDecoder::test_getitem_int[approximate-cuda-1] SKIPPED [ 2%] test/test_decoders.py::TestVideoDecoder::test_getitem_int[approximate-cuda-4] SKIPPED [ 2%] test/test_decoders.py::TestVideoDecoder::test_getitem_int[approximate-cuda:ffmpeg-1] SKIPPED [ 2%] test/test_decoders.py::TestVideoDecoder::test_getitem_int[approximate-cuda:ffmpeg-4] SKIPPED [ 2%] test/test_decoders.py::TestVideoDecoder::test_getitem_numpy_int PASSED [ 2%] test/test_decoders.py::TestVideoDecoder::test_getitem_slice[exact-cpu] PASSED [ 3%] test/test_decoders.py::TestVideoDecoder::test_getitem_slice[exact-cuda] SKIPPED [ 3%] test/test_decoders.py::TestVideoDecoder::test_getitem_slice[exact-cuda:ffmpeg] SKIPPED [ 3%] test/test_decoders.py::TestVideoDecoder::test_getitem_slice[approximate-cpu] PASSED [ 3%] test/test_decoders.py::TestVideoDecoder::test_getitem_slice[approximate-cuda] SKIPPED [ 3%] test/test_decoders.py::TestVideoDecoder::test_getitem_slice[approximate-cuda:ffmpeg] SKIPPED [ 3%] test/test_decoders.py::TestVideoDecoder::test_device_instance PASSED [ 3%] test/test_decoders.py::TestVideoDecoder::test_device_none_default_device[cpu] PASSED [ 3%] test/test_decoders.py::TestVideoDecoder::test_device_none_default_device[cuda] SKIPPED [ 3%] test/test_decoders.py::TestVideoDecoder::test_getitem_fails[exact-cpu] PASSED [ 3%] test/test_decoders.py::TestVideoDecoder::test_getitem_fails[exact-cuda] SKIPPED [ 3%] test/test_decoders.py::TestVideoDecoder::test_getitem_fails[exact-cuda:ffmpeg] SKIPPED [ 3%] test/test_decoders.py::TestVideoDecoder::test_getitem_fails[approximate-cpu] PASSED [ 3%] test/test_decoders.py::TestVideoDecoder::test_getitem_fails[approximate-cuda] SKIPPED [ 3%] test/test_decoders.py::TestVideoDecoder::test_getitem_fails[approximate-cuda:ffmpeg] SKIPPED [ 3%] test/test_decoders.py::TestVideoDecoder::test_iteration[exact-cpu] PASSED [ 3%] test/test_decoders.py::TestVideoDecoder::test_iteration[exact-cuda] SKIPPED [ 3%] test/test_decoders.py::TestVideoDecoder::test_iteration[exact-cuda:ffmpeg] SKIPPED [ 3%] test/test_decoders.py::TestVideoDecoder::test_iteration[approximate-cpu] PASSED [ 3%] test/test_decoders.py::TestVideoDecoder::test_iteration[approximate-cuda] SKIPPED [ 3%] test/test_decoders.py::TestVideoDecoder::test_iteration[approximate-cuda:ffmpeg] SKIPPED [ 3%] test/test_decoders.py::TestVideoDecoder::test_get_frame_at[exact-cpu] PASSED [ 3%] test/test_decoders.py::TestVideoDecoder::test_get_frame_at[exact-cuda] SKIPPED [ 3%] test/test_decoders.py::TestVideoDecoder::test_get_frame_at[exact-cuda:ffmpeg] SKIPPED [ 3%] test/test_decoders.py::TestVideoDecoder::test_get_frame_at[approximate-cpu] PASSED [ 3%] test/test_decoders.py::TestVideoDecoder::test_get_frame_at[approximate-cuda] SKIPPED [ 3%] test/test_decoders.py::TestVideoDecoder::test_get_frame_at[approximate-cuda:ffmpeg] SKIPPED [ 3%] test/test_decoders.py::TestVideoDecoder::test_get_frame_at_tuple_unpacking[cpu] PASSED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frame_at_tuple_unpacking[cuda] SKIPPED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frame_at_tuple_unpacking[cuda:ffmpeg] SKIPPED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frame_at_fails[exact-cpu] PASSED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frame_at_fails[exact-cuda] SKIPPED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frame_at_fails[exact-cuda:ffmpeg] SKIPPED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frame_at_fails[approximate-cpu] PASSED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frame_at_fails[approximate-cuda] SKIPPED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frame_at_fails[approximate-cuda:ffmpeg] SKIPPED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frames_at[exact-cpu] PASSED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frames_at[exact-cuda] SKIPPED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frames_at[exact-cuda:ffmpeg] SKIPPED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frames_at[approximate-cpu] PASSED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frames_at[approximate-cuda] SKIPPED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frames_at[approximate-cuda:ffmpeg] SKIPPED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frames_at_fails[exact-cpu] PASSED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frames_at_fails[exact-cuda] SKIPPED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frames_at_fails[exact-cuda:ffmpeg] SKIPPED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frames_at_fails[approximate-cpu] PASSED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frames_at_fails[approximate-cuda] SKIPPED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frames_at_fails[approximate-cuda:ffmpeg] SKIPPED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frame_at_av1[cpu] PASSED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frame_at_av1[cuda] SKIPPED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frame_at_av1[cuda:ffmpeg] SKIPPED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frame_played_at[exact-cpu] PASSED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frame_played_at[exact-cuda] SKIPPED [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frame_played_at[exact-cuda:ffmpeg] SKIPPED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frame_played_at[approximate-cpu] PASSED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frame_played_at[approximate-cuda] SKIPPED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frame_played_at[approximate-cuda:ffmpeg] SKIPPED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frame_played_at_h265 PASSED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frames_at_backward_seek_after_eof[exact-cpu] PASSED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frames_at_backward_seek_after_eof[exact-cuda] SKIPPED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frames_at_backward_seek_after_eof[exact-cuda:ffmpeg] SKIPPED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frames_at_backward_seek_after_eof[approximate-cpu] PASSED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frames_at_backward_seek_after_eof[approximate-cuda] SKIPPED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frames_at_backward_seek_after_eof[approximate-cuda:ffmpeg] SKIPPED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frame_played_at_fails[exact-cpu] PASSED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frame_played_at_fails[exact-cuda] SKIPPED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frame_played_at_fails[exact-cuda:ffmpeg] SKIPPED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frame_played_at_fails[approximate-cpu] PASSED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frame_played_at_fails[approximate-cuda] SKIPPED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frame_played_at_fails[approximate-cuda:ffmpeg] SKIPPED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_at[list-exact-cpu] PASSED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_at[list-exact-cuda] SKIPPED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_at[list-exact-cuda:ffmpeg] SKIPPED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_at[list-approximate-cpu] PASSED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_at[list-approximate-cuda] SKIPPED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_at[list-approximate-cuda:ffmpeg] SKIPPED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_at[tensor-exact-cpu] PASSED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_at[tensor-exact-cuda] SKIPPED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_at[tensor-exact-cuda:ffmpeg] SKIPPED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_at[tensor-approximate-cpu] PASSED [ 5%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_at[tensor-approximate-cuda] SKIPPED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_at[tensor-approximate-cuda:ffmpeg] SKIPPED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_at_fails[exact-cpu] PASSED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_at_fails[exact-cuda] SKIPPED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_at_fails[exact-cuda:ffmpeg] SKIPPED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_at_fails[approximate-cpu] PASSED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_at_fails[approximate-cuda] SKIPPED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_at_fails[approximate-cuda:ffmpeg] SKIPPED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range[exact-0-cpu] PASSED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range[exact-0-cuda] SKIPPED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range[exact-0-cuda:ffmpeg] SKIPPED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range[exact-3-cpu] PASSED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range[exact-3-cuda] SKIPPED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range[exact-3-cuda:ffmpeg] SKIPPED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range[exact-None-cpu] PASSED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range[exact-None-cuda] SKIPPED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range[exact-None-cuda:ffmpeg] SKIPPED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range[approximate-0-cpu] PASSED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range[approximate-0-cuda] SKIPPED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range[approximate-0-cuda:ffmpeg] SKIPPED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range[approximate-3-cpu] PASSED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range[approximate-3-cuda] SKIPPED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range[approximate-3-cuda:ffmpeg] SKIPPED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range[approximate-None-cpu] PASSED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range[approximate-None-cuda] SKIPPED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range[approximate-None-cuda:ffmpeg] SKIPPED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range_slice_indices_syntax[exact-cpu] PASSED [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range_slice_indices_syntax[exact-cuda] SKIPPED [ 7%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range_slice_indices_syntax[exact-cuda:ffmpeg] SKIPPED [ 7%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range_slice_indices_syntax[approximate-cpu] PASSED [ 7%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range_slice_indices_syntax[approximate-cuda] SKIPPED [ 7%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range_slice_indices_syntax[approximate-cuda:ffmpeg] SKIPPED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cpu-0-NCHW] PASSED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cpu-0-NHWC] PASSED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cpu-1-NCHW] PASSED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cpu-1-NHWC] PASSED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cpu-2-NCHW] PASSED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cpu-2-NHWC] PASSED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cpu-3-NCHW] PASSED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cpu-3-NHWC] PASSED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cpu-4-NCHW] PASSED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cpu-4-NHWC] PASSED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cpu-5-NCHW] PASSED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cpu-5-NHWC] PASSED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cpu-6-NCHW] PASSED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cpu-6-NHWC] PASSED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda-0-NCHW] SKIPPED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda-0-NHWC] SKIPPED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda-1-NCHW] SKIPPED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda-1-NHWC] SKIPPED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda-2-NCHW] SKIPPED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda-2-NHWC] SKIPPED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda-3-NCHW] SKIPPED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda-3-NHWC] SKIPPED [ 7%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda-4-NCHW] SKIPPED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda-4-NHWC] SKIPPED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda-5-NCHW] SKIPPED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda-5-NHWC] SKIPPED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda-6-NCHW] SKIPPED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda-6-NHWC] SKIPPED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda:ffmpeg-0-NCHW] SKIPPED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda:ffmpeg-0-NHWC] SKIPPED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda:ffmpeg-1-NCHW] SKIPPED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda:ffmpeg-1-NHWC] SKIPPED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda:ffmpeg-2-NCHW] SKIPPED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda:ffmpeg-2-NHWC] SKIPPED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda:ffmpeg-3-NCHW] SKIPPED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda:ffmpeg-3-NHWC] SKIPPED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda:ffmpeg-4-NCHW] SKIPPED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda:ffmpeg-4-NHWC] SKIPPED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda:ffmpeg-5-NCHW] SKIPPED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda:ffmpeg-5-NHWC] SKIPPED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda:ffmpeg-6-NCHW] SKIPPED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda:ffmpeg-6-NHWC] SKIPPED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cpu-0-NCHW] PASSED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cpu-0-NHWC] PASSED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cpu-1-NCHW] PASSED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cpu-1-NHWC] PASSED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cpu-2-NCHW] PASSED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cpu-2-NHWC] PASSED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cpu-3-NCHW] PASSED [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cpu-3-NHWC] PASSED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cpu-4-NCHW] PASSED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cpu-4-NHWC] PASSED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cpu-5-NCHW] PASSED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cpu-5-NHWC] PASSED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cpu-6-NCHW] PASSED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cpu-6-NHWC] PASSED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda-0-NCHW] SKIPPED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda-0-NHWC] SKIPPED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda-1-NCHW] SKIPPED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda-1-NHWC] SKIPPED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda-2-NCHW] SKIPPED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda-2-NHWC] SKIPPED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda-3-NCHW] SKIPPED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda-3-NHWC] SKIPPED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda-4-NCHW] SKIPPED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda-4-NHWC] SKIPPED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda-5-NCHW] SKIPPED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda-5-NHWC] SKIPPED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda-6-NCHW] SKIPPED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda-6-NHWC] SKIPPED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda:ffmpeg-0-NCHW] SKIPPED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda:ffmpeg-0-NHWC] SKIPPED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda:ffmpeg-1-NCHW] SKIPPED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda:ffmpeg-1-NHWC] SKIPPED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda:ffmpeg-2-NCHW] SKIPPED [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda:ffmpeg-2-NHWC] SKIPPED [ 10%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda:ffmpeg-3-NCHW] SKIPPED [ 10%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda:ffmpeg-3-NHWC] SKIPPED [ 10%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda:ffmpeg-4-NCHW] SKIPPED [ 10%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda:ffmpeg-4-NHWC] SKIPPED [ 10%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda:ffmpeg-5-NCHW] SKIPPED [ 10%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda:ffmpeg-5-NHWC] SKIPPED [ 10%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda:ffmpeg-6-NCHW] SKIPPED [ 10%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cuda:ffmpeg-6-NHWC] SKIPPED [ 10%] test/test_decoders.py::TestVideoDecoder::test_dimension_order_fails PASSED [ 10%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range[exact-cpu-0] PASSED [ 10%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range[exact-cpu-3] PASSED [ 10%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range[exact-cpu-None] PASSED [ 10%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range[exact-cuda-0] SKIPPED [ 10%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range[exact-cuda-3] SKIPPED [ 10%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range[exact-cuda-None] SKIPPED [ 10%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range[exact-cuda:ffmpeg-0] SKIPPED [ 10%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range[exact-cuda:ffmpeg-3] SKIPPED [ 10%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range[exact-cuda:ffmpeg-None] SKIPPED [ 10%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range[approximate-cpu-0] PASSED [ 10%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range[approximate-cpu-3] PASSED [ 10%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range[approximate-cpu-None] PASSED [ 10%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range[approximate-cuda-0] SKIPPED [ 10%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range[approximate-cuda-3] SKIPPED [ 10%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range[approximate-cuda-None] SKIPPED [ 10%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range[approximate-cuda:ffmpeg-0] SKIPPED [ 10%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range[approximate-cuda:ffmpeg-3] SKIPPED [ 10%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range[approximate-cuda:ffmpeg-None] SKIPPED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range_fails[exact-cpu] PASSED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range_fails[exact-cuda] SKIPPED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range_fails[exact-cuda:ffmpeg] SKIPPED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range_fails[approximate-cpu] PASSED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range_fails[approximate-cuda] SKIPPED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_by_pts_in_range_fails[approximate-cuda:ffmpeg] SKIPPED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_with_fps[exact-cpu] PASSED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_with_fps[exact-cuda] SKIPPED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_with_fps[exact-cuda:ffmpeg] SKIPPED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_with_fps[approximate-cpu] PASSED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_with_fps[approximate-cuda] SKIPPED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_with_fps[approximate-cuda:ffmpeg] SKIPPED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_with_fps_fails[exact-cpu] PASSED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_with_fps_fails[exact-cuda] SKIPPED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_with_fps_fails[exact-cuda:ffmpeg] SKIPPED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_with_fps_fails[approximate-cpu] PASSED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_with_fps_fails[approximate-cuda] SKIPPED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_with_fps_fails[approximate-cuda:ffmpeg] SKIPPED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_fps_matches_torchvision[False-5.0] PASSED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_fps_matches_torchvision[False-15.0] PASSED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_fps_matches_torchvision[False-24.0] PASSED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_fps_matches_torchvision[False-29.97] PASSED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_fps_matches_torchvision[False-30.1] PASSED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_fps_matches_torchvision[False-60.0] PASSED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_fps_matches_torchvision[True-5.0] PASSED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_fps_matches_torchvision[True-15.0] PASSED [ 11%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_fps_matches_torchvision[True-24.0] PASSED [ 12%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_fps_matches_torchvision[True-29.97] PASSED [ 12%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_fps_matches_torchvision[True-30.1] PASSED [ 12%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_fps_matches_torchvision[True-60.0] PASSED [ 12%] test/test_decoders.py::TestVideoDecoder::test_get_all_frames[exact-cpu] PASSED [ 12%] test/test_decoders.py::TestVideoDecoder::test_get_all_frames[exact-cuda] SKIPPED [ 12%] test/test_decoders.py::TestVideoDecoder::test_get_all_frames[exact-cuda:ffmpeg] SKIPPED [ 12%] test/test_decoders.py::TestVideoDecoder::test_get_all_frames[approximate-cpu] PASSED [ 12%] test/test_decoders.py::TestVideoDecoder::test_get_all_frames[approximate-cuda] SKIPPED [ 12%] test/test_decoders.py::TestVideoDecoder::test_get_all_frames[approximate-cuda:ffmpeg] SKIPPED [ 12%] test/test_decoders.py::TestVideoDecoder::test_non_zero_start_pts[exact] PASSED [ 12%] test/test_decoders.py::TestVideoDecoder::test_non_zero_start_pts[approximate] PASSED [ 12%] test/test_decoders.py::TestVideoDecoder::test_get_key_frame_indices[cpu] PASSED [ 12%] test/test_decoders.py::TestVideoDecoder::test_get_key_frame_indices[cuda] SKIPPED [ 12%] test/test_decoders.py::TestVideoDecoder::test_get_key_frame_indices[cuda:ffmpeg] SKIPPED [ 12%] test/test_decoders.py::TestVideoDecoder::test_discard_first_keyframe[cpu] PASSED [ 12%] test/test_decoders.py::TestVideoDecoder::test_discard_first_keyframe[cuda] SKIPPED [ 12%] test/test_decoders.py::TestVideoDecoder::test_compile[cpu] SKIPPED (...) [ 12%] test/test_decoders.py::TestVideoDecoder::test_compile[cuda] SKIPPED [ 12%] test/test_decoders.py::TestVideoDecoder::test_compile[cuda:ffmpeg] SKIPPED [ 12%] test/test_decoders.py::TestVideoDecoder::test_pts_to_dts_fallback[exact] SKIPPED [ 12%] test/test_decoders.py::TestVideoDecoder::test_pts_to_dts_fallback[approximate] SKIPPED [ 12%] test/test_decoders.py::TestVideoDecoder::test_full_and_studio_range_bt709_video[asset0] SKIPPED [ 12%] test/test_decoders.py::TestVideoDecoder::test_full_and_studio_range_bt709_video[asset1] SKIPPED [ 12%] test/test_decoders.py::TestVideoDecoder::test_bt2020_10bit_video SKIPPED [ 12%] test/test_decoders.py::TestVideoDecoder::test_bt601_colorspace[asset0] SKIPPED [ 12%] test/test_decoders.py::TestVideoDecoder::test_bt601_colorspace[asset1] SKIPPED [ 12%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_444[output_dtype0-cuda-asset0] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_444[output_dtype0-cuda-asset1] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_444[output_dtype0-cuda-asset2] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_444[output_dtype0-cuda:ffmpeg-asset0] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_444[output_dtype0-cuda:ffmpeg-asset1] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_444[output_dtype0-cuda:ffmpeg-asset2] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_444[output_dtype1-cuda-asset0] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_444[output_dtype1-cuda-asset1] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_444[output_dtype1-cuda-asset2] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_444[output_dtype1-cuda:ffmpeg-asset0] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_444[output_dtype1-cuda:ffmpeg-asset1] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_444[output_dtype1-cuda:ffmpeg-asset2] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_vp9[output_dtype0-asset0] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_vp9[output_dtype0-asset1] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_vp9[output_dtype0-asset2] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_vp9[output_dtype0-asset3] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_vp9[output_dtype0-asset4] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_vp9[output_dtype0-asset5] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_vp9[output_dtype1-asset0] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_vp9[output_dtype1-asset1] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_vp9[output_dtype1-asset2] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_vp9[output_dtype1-asset3] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_vp9[output_dtype1-asset4] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_odd_sized_videos_vp9[output_dtype1-asset5] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_10bit_gpu_fallsback_to_cpu SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_json_and_bytes[method0-0-cpu] PASSED [ 13%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_json_and_bytes[method0-0-cuda] SKIPPED [ 13%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_json_and_bytes[method0-0-cuda:ffmpeg] SKIPPED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_json_and_bytes[method0-3-cpu] PASSED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_json_and_bytes[method0-3-cuda] SKIPPED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_json_and_bytes[method0-3-cuda:ffmpeg] SKIPPED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_json_and_bytes[method1-0-cpu] PASSED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_json_and_bytes[method1-0-cuda] SKIPPED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_json_and_bytes[method1-0-cuda:ffmpeg] SKIPPED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_json_and_bytes[method1-3-cpu] PASSED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_json_and_bytes[method1-3-cuda] SKIPPED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_json_and_bytes[method1-3-cuda:ffmpeg] SKIPPED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_init_fails[valid_content_approximate-cpu] PASSED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_init_fails[valid_content_approximate-cuda] SKIPPED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_init_fails[valid_content_approximate-cuda:ffmpeg] SKIPPED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_init_fails[{}-The input is empty or missing the required 'frames' key.-cpu] PASSED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_init_fails[{}-The input is empty or missing the required 'frames' key.-cuda] SKIPPED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_init_fails[{}-The input is empty or missing the required 'frames' key.-cuda:ffmpeg] SKIPPED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_init_fails[{"valid": "json"}-The input is empty or missing the required 'frames' key.-cpu] PASSED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_init_fails[{"valid": "json"}-The input is empty or missing the required 'frames' key.-cuda] SKIPPED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_init_fails[{"valid": "json"}-The input is empty or missing the required 'frames' key.-cuda:ffmpeg] SKIPPED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_init_fails[{"frames": [{"missing": "keys"}]}-keys are required in the frame metadata.-cpu] PASSED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_init_fails[{"frames": [{"missing": "keys"}]}-keys are required in the frame metadata.-cuda] SKIPPED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_init_fails[{"frames": [{"missing": "keys"}]}-keys are required in the frame metadata.-cuda:ffmpeg] SKIPPED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_init_fails_invalid_json[cpu] PASSED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_init_fails_invalid_json[cuda] SKIPPED [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_init_fails_invalid_json[cuda:ffmpeg] SKIPPED [ 14%] test/test_decoders.py::TestVideoDecoder::test_get_frames_at_tensor_indices PASSED [ 14%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[exact-True-asset0] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[exact-True-asset1] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[exact-True-asset2] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[exact-True-asset3] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[exact-True-asset4] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[exact-True-asset5] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[exact-True-asset6] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[exact-True-asset7] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[exact-False-asset0] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[exact-False-asset1] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[exact-False-asset2] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[exact-False-asset3] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[exact-False-asset4] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[exact-False-asset5] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[exact-False-asset6] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[exact-False-asset7] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[approximate-True-asset0] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[approximate-True-asset1] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[approximate-True-asset2] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[approximate-True-asset3] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[approximate-True-asset4] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[approximate-True-asset5] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[approximate-True-asset6] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[approximate-True-asset7] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[approximate-False-asset0] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[approximate-False-asset1] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[approximate-False-asset2] SKIPPED [ 15%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[approximate-False-asset3] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[approximate-False-asset4] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[approximate-False-asset5] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[approximate-False-asset6] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_at[approximate-False-asset7] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[exact-True-asset0] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[exact-True-asset1] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[exact-True-asset2] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[exact-True-asset3] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[exact-True-asset4] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[exact-True-asset5] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[exact-True-asset6] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[exact-True-asset7] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[exact-False-asset0] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[exact-False-asset1] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[exact-False-asset2] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[exact-False-asset3] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[exact-False-asset4] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[exact-False-asset5] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[exact-False-asset6] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[exact-False-asset7] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[approximate-True-asset0] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[approximate-True-asset1] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[approximate-True-asset2] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[approximate-True-asset3] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[approximate-True-asset4] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[approximate-True-asset5] SKIPPED [ 16%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[approximate-True-asset6] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[approximate-True-asset7] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[approximate-False-asset0] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[approximate-False-asset1] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[approximate-False-asset2] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[approximate-False-asset3] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[approximate-False-asset4] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[approximate-False-asset5] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[approximate-False-asset6] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[approximate-False-asset7] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_played_at[exact-asset0] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_played_at[exact-asset1] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_played_at[exact-asset2] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_played_at[exact-asset3] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_played_at[exact-asset4] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_played_at[exact-asset5] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_played_at[exact-asset6] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_played_at[exact-asset7] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_played_at[approximate-asset0] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_played_at[approximate-asset1] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_played_at[approximate-asset2] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_played_at[approximate-asset3] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_played_at[approximate-asset4] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_played_at[approximate-asset5] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_played_at[approximate-asset6] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frame_played_at[approximate-asset7] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_played_at[exact-asset0] SKIPPED [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_played_at[exact-asset1] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_played_at[exact-asset2] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_played_at[exact-asset3] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_played_at[exact-asset4] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_played_at[exact-asset5] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_played_at[exact-asset6] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_played_at[exact-asset7] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_played_at[approximate-asset0] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_played_at[approximate-asset1] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_played_at[approximate-asset2] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_played_at[approximate-asset3] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_played_at[approximate-asset4] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_played_at[approximate-asset5] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_played_at[approximate-asset6] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_played_at[approximate-asset7] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_backwards[exact-asset0] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_backwards[exact-asset1] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_backwards[exact-asset2] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_backwards[exact-asset3] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_backwards[exact-asset4] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_backwards[exact-asset5] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_backwards[exact-asset6] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_backwards[exact-asset7] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_backwards[approximate-asset0] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_backwards[approximate-asset1] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_backwards[approximate-asset2] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_backwards[approximate-asset3] SKIPPED [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_backwards[approximate-asset4] SKIPPED [ 19%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_backwards[approximate-asset5] SKIPPED [ 19%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_backwards[approximate-asset6] SKIPPED [ 19%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_backwards[approximate-asset7] SKIPPED [ 19%] test/test_decoders.py::TestVideoDecoder::test_cuda_mpeg4_mp4_first_frame[exact] SKIPPED [ 19%] test/test_decoders.py::TestVideoDecoder::test_cuda_mpeg4_mp4_first_frame[approximate] SKIPPED [ 19%] test/test_decoders.py::TestVideoDecoder::test_cuda_open_gop_late_idr[exact-./youtube-1HYJQESw3hs.mp4] SKIPPED [ 19%] test/test_decoders.py::TestVideoDecoder::test_cuda_open_gop_late_idr[exact-./youtube-c_B4XII1L6A.mp4] SKIPPED [ 19%] test/test_decoders.py::TestVideoDecoder::test_cuda_open_gop_late_idr[approximate-./youtube-1HYJQESw3hs.mp4] SKIPPED [ 19%] test/test_decoders.py::TestVideoDecoder::test_cuda_open_gop_late_idr[approximate-./youtube-c_B4XII1L6A.mp4] SKIPPED [ 19%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_cpu_fallback SKIPPED [ 19%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cpu_fallback_yuv444 SKIPPED [ 19%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_error SKIPPED [ 19%] test/test_decoders.py::TestVideoDecoder::test_set_cuda_backend SKIPPED [ 19%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cache_capacity PASSED [ 19%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cache_capacity_eviction SKIPPED [ 19%] test/test_decoders.py::TestVideoDecoder::test_cpu_fallback_no_fallback_on_cpu_device PASSED [ 19%] test/test_decoders.py::TestVideoDecoder::test_rotation_applied_to_frames[cpu-NCHW] PASSED [ 19%] test/test_decoders.py::TestVideoDecoder::test_rotation_applied_to_frames[cpu-NHWC] PASSED [ 19%] test/test_decoders.py::TestVideoDecoder::test_rotation_applied_to_frames[cuda-NCHW] SKIPPED [ 19%] test/test_decoders.py::TestVideoDecoder::test_rotation_applied_to_frames[cuda-NHWC] SKIPPED [ 19%] test/test_decoders.py::TestVideoDecoder::test_rotation_with_transform[Resize-100-150] PASSED [ 19%] test/test_decoders.py::TestVideoDecoder::test_rotation_with_transform[Resize-150-100] PASSED [ 19%] test/test_decoders.py::TestVideoDecoder::test_rotation_with_transform[Resize-100-100] PASSED [ 19%] test/test_decoders.py::TestVideoDecoder::test_rotation_with_transform[CenterCrop-100-150] PASSED [ 19%] test/test_decoders.py::TestVideoDecoder::test_rotation_with_transform[CenterCrop-150-100] PASSED [ 19%] test/test_decoders.py::TestVideoDecoder::test_rotation_with_transform[CenterCrop-100-100] PASSED [ 20%] test/test_decoders.py::TestVideoDecoder::test_rotation_with_transform[RandomCrop-100-150] PASSED [ 20%] test/test_decoders.py::TestVideoDecoder::test_rotation_with_transform[RandomCrop-150-100] PASSED [ 20%] test/test_decoders.py::TestVideoDecoder::test_rotation_with_transform[RandomCrop-100-100] PASSED [ 20%] test/test_decoders.py::TestVideoDecoder::test_rotation_with_transform_pipeline PASSED [ 20%] test/test_decoders.py::TestVideoDecoder::test_cpu_fallback_h265_video[cuda] SKIPPED [ 20%] test/test_decoders.py::TestVideoDecoder::test_cpu_fallback_h265_video[cuda:ffmpeg] SKIPPED [ 20%] test/test_decoders.py::TestVideoDecoder::test_cpu_fallback_no_fallback_on_supported_video[cuda] SKIPPED [ 20%] test/test_decoders.py::TestVideoDecoder::test_cpu_fallback_no_fallback_on_supported_video[cuda:ffmpeg] SKIPPED [ 20%] test/test_decoders.py::TestVideoDecoder::test_beta_backend_still_supported_for_bc SKIPPED [ 20%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_uint8[output_dtype0-asset0-cpu] PASSED [ 20%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_uint8[output_dtype0-asset0-cuda] SKIPPED [ 20%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_uint8[output_dtype0-asset1-cpu] PASSED [ 20%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_uint8[output_dtype0-asset1-cuda] SKIPPED [ 20%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_uint8[output_dtype0-asset2-cpu] PASSED [ 20%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_uint8[output_dtype0-asset2-cuda] SKIPPED [ 20%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_uint8[output_dtype0-asset3-cpu] PASSED [ 20%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_uint8[output_dtype0-asset3-cuda] SKIPPED [ 20%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_uint8[default-asset0-cpu] PASSED [ 20%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_uint8[default-asset0-cuda] SKIPPED [ 20%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_uint8[default-asset1-cpu] PASSED [ 20%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_uint8[default-asset1-cuda] SKIPPED [ 20%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_uint8[default-asset2-cpu] PASSED [ 20%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_uint8[default-asset2-cuda] SKIPPED [ 20%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_uint8[default-asset3-cpu] PASSED [ 20%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_uint8[default-asset3-cuda] SKIPPED [ 20%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32[asset0-cpu] PASSED [ 20%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32[asset0-cuda] SKIPPED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32[asset1-cpu] PASSED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32[asset1-cuda] SKIPPED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32[asset2-cpu] PASSED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32[asset2-cuda] SKIPPED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32[asset3-cpu] PASSED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32[asset3-cuda] SKIPPED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_auto[asset0-False-cpu] PASSED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_auto[asset0-False-cuda] SKIPPED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_auto[asset1-True-cpu] PASSED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_auto[asset1-True-cuda] SKIPPED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_auto[asset2-True-cpu] PASSED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_auto[asset2-True-cuda] SKIPPED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_auto[asset3-True-cpu] PASSED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_auto[asset3-True-cuda] SKIPPED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32_batch_apis[asset0-cpu] PASSED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32_batch_apis[asset0-cuda] SKIPPED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32_batch_apis[asset1-cpu] PASSED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32_batch_apis[asset1-cuda] SKIPPED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32_batch_apis[asset2-cpu] PASSED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32_batch_apis[asset2-cuda] SKIPPED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32_batch_apis[asset3-cpu] PASSED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32_batch_apis[asset3-cuda] SKIPPED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32_pts_apis[asset0-cpu] PASSED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32_pts_apis[asset0-cuda] SKIPPED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32_pts_apis[asset1-cpu] PASSED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32_pts_apis[asset1-cuda] SKIPPED [ 21%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32_pts_apis[asset2-cpu] PASSED [ 22%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32_pts_apis[asset2-cuda] SKIPPED [ 22%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32_pts_apis[asset3-cpu] PASSED [ 22%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32_pts_apis[asset3-cuda] SKIPPED [ 22%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_invalid[bad_dtype0] PASSED [ 22%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_invalid[bad_dtype1] PASSED [ 22%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_invalid[not_a_dtype] PASSED [ 22%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_not_uint8_ffmpeg_cuda_backend[output_dtype0] SKIPPED [ 22%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_not_uint8_ffmpeg_cuda_backend[auto] SKIPPED [ 22%] test/test_decoders.py::TestVideoDecoder::test_output_dtype_float32_cpu_fallback SKIPPED [ 22%] test/test_decoders.py::TestAudioDecoder::test_metadata[asset0] PASSED [ 22%] test/test_decoders.py::TestAudioDecoder::test_metadata[asset1] PASSED [ 22%] test/test_decoders.py::TestAudioDecoder::test_metadata[asset2] PASSED [ 22%] test/test_decoders.py::TestAudioDecoder::test_metadata[asset3] PASSED [ 22%] test/test_decoders.py::TestAudioDecoder::test_error[asset0] PASSED [ 22%] test/test_decoders.py::TestAudioDecoder::test_error[asset1] PASSED [ 22%] test/test_decoders.py::TestAudioDecoder::test_negative_start[asset0] PASSED [ 22%] test/test_decoders.py::TestAudioDecoder::test_negative_start[asset1] PASSED [ 22%] test/test_decoders.py::TestAudioDecoder::test_fresh_decoder_seek PASSED [ 22%] test/test_decoders.py::TestAudioDecoder::test_get_all_samples_with_range[None-asset0] PASSED [ 22%] test/test_decoders.py::TestAudioDecoder::test_get_all_samples_with_range[None-asset1] PASSED [ 22%] test/test_decoders.py::TestAudioDecoder::test_get_all_samples_with_range[duration-asset0] PASSED [ 22%] test/test_decoders.py::TestAudioDecoder::test_get_all_samples_with_range[duration-asset1] PASSED [ 22%] test/test_decoders.py::TestAudioDecoder::test_get_all_samples_with_range[99999999-asset0] PASSED [ 22%] test/test_decoders.py::TestAudioDecoder::test_get_all_samples_with_range[99999999-asset1] PASSED [ 22%] test/test_decoders.py::TestAudioDecoder::test_get_all_samples[asset0] PASSED [ 22%] test/test_decoders.py::TestAudioDecoder::test_get_all_samples[asset1] PASSED [ 22%] test/test_decoders.py::TestAudioDecoder::test_get_all_samples[asset2] PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_decode_from_tensor_odd_sized_wav PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_seek_mpeg_program_stream[1] PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_seek_mpeg_program_stream[2] PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_seek_mpeg_program_stream[2.5] PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_seek_mpeg_program_stream[3] PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_corrupt_data_raises PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_at_frame_boundaries[asset0] PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_at_frame_boundaries[asset1] PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_not_at_frame_boundaries[asset0] PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_not_at_frame_boundaries[asset1] PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_start_equals_stop[asset0] PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_start_equals_stop[asset1] PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_frame_start_is_not_zero PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_single_channel PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_format_conversion PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_sample_rate_conversion[0-None] PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_sample_rate_conversion[0-4] PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_sample_rate_conversion[0-3] PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_sample_rate_conversion[2-None] PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_sample_rate_conversion[2-3] PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_sample_rate_conversion_stereo PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_downsample_empty_frame PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[8000-0.3333333333333333-asset0] PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[8000-0.3333333333333333-asset1] PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[8000-0.3333333333333333-asset2] PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[8000-0.3333333333333333-asset3] PASSED [ 23%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[8000-0.3333333333333333-asset4] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[8000-0.3333333333333333-asset5] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[8000-0.3333333333333333-asset6] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[8000-0.7-asset0] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[8000-0.7-asset1] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[8000-0.7-asset2] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[8000-0.7-asset3] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[8000-0.7-asset4] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[8000-0.7-asset5] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[8000-0.7-asset6] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[8000-0.3-asset0] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[8000-0.3-asset1] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[8000-0.3-asset2] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[8000-0.3-asset3] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[8000-0.3-asset4] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[8000-0.3-asset5] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[8000-0.3-asset6] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-1.0-asset0] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-1.0-asset1] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-1.0-asset2] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-1.0-asset3] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-1.0-asset4] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-1.0-asset5] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-1.0-asset6] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-1.2-asset0] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-1.2-asset1] PASSED [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-1.2-asset2] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-1.2-asset3] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-1.2-asset4] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-1.2-asset5] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-1.2-asset6] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-0.3333333333333333-asset0] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-0.3333333333333333-asset1] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-0.3333333333333333-asset2] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-0.3333333333333333-asset3] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-0.3333333333333333-asset4] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-0.3333333333333333-asset5] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-0.3333333333333333-asset6] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-0.3-asset0] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-0.3-asset1] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-0.3-asset2] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-0.3-asset3] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-0.3-asset4] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-0.3-asset5] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16000-0.3-asset6] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16001-1.0-asset0] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16001-1.0-asset1] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16001-1.0-asset2] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16001-1.0-asset3] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16001-1.0-asset4] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16001-1.0-asset5] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16001-1.0-asset6] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16001-0.3333333333333333-asset0] PASSED [ 25%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16001-0.3333333333333333-asset1] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16001-0.3333333333333333-asset2] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16001-0.3333333333333333-asset3] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16001-0.3333333333333333-asset4] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16001-0.3333333333333333-asset5] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[16001-0.3333333333333333-asset6] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[22050-0.7-asset0] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[22050-0.7-asset1] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[22050-0.7-asset2] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[22050-0.7-asset3] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[22050-0.7-asset4] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[22050-0.7-asset5] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[22050-0.7-asset6] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[48000-1.2-asset0] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[48000-1.2-asset1] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[48000-1.2-asset2] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[48000-1.2-asset3] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[48000-1.2-asset4] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[48000-1.2-asset5] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[48000-1.2-asset6] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full_postroll[1.45-8000] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full_postroll[1.45-16000] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full_postroll[1.91-8000] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full_postroll[1.91-16000] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full_postroll[2.1-8000] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full_postroll[2.1-16000] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_chunk_boundary_half_sample[6000] PASSED [ 26%] test/test_decoders.py::TestAudioDecoder::test_chunk_boundary_half_sample[20000] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_chunk_boundary_half_sample[30000] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_decode_s16_ffmpeg4 PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_samples_duration[None-asset0] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_samples_duration[None-asset1] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_samples_duration[8000-asset0] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_samples_duration[8000-asset1] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_samples_duration[16000-asset0] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_samples_duration[16000-asset1] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_samples_duration[441000-asset0] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_samples_duration[441000-asset1] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_num_channels[1-None-asset0] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_num_channels[1-None-asset1] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_num_channels[1-16000-asset0] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_num_channels[1-16000-asset1] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_num_channels[2-None-asset0] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_num_channels[2-None-asset1] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_num_channels[2-16000-asset0] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_num_channels[2-16000-asset1] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_num_channels[8-None-asset0] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_num_channels[8-None-asset1] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_num_channels[8-16000-asset0] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_num_channels[8-16000-asset1] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_num_channels[16-None-asset0] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_num_channels[16-None-asset1] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_num_channels[16-16000-asset0] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_num_channels[16-16000-asset1] PASSED [ 27%] test/test_decoders.py::TestAudioDecoder::test_num_channels[24-None-asset0] PASSED [ 28%] test/test_decoders.py::TestAudioDecoder::test_num_channels[24-None-asset1] PASSED [ 28%] test/test_decoders.py::TestAudioDecoder::test_num_channels[24-16000-asset0] PASSED [ 28%] test/test_decoders.py::TestAudioDecoder::test_num_channels[24-16000-asset1] PASSED [ 28%] test/test_decoders.py::TestAudioDecoder::test_num_channels[None-None-asset0] PASSED [ 28%] test/test_decoders.py::TestAudioDecoder::test_num_channels[None-None-asset1] PASSED [ 28%] test/test_decoders.py::TestAudioDecoder::test_num_channels[None-16000-asset0] PASSED [ 28%] test/test_decoders.py::TestAudioDecoder::test_num_channels[None-16000-asset1] PASSED [ 28%] test/test_decoders.py::TestAudioDecoder::test_num_channels_errors[asset0] PASSED [ 28%] test/test_decoders.py::TestAudioDecoder::test_num_channels_errors[asset1] PASSED [ 28%] test/test_decoders.py::TestWavDecoder::test_non_wav_file_raises_error PASSED [ 28%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset0-0.0-1.0] PASSED [ 28%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset0-0.2-0.6] PASSED [ 28%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset0-1.0-1.0] PASSED [ 28%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset0-0.0-None] PASSED [ 28%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset0--1.0-1.0] PASSED [ 28%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset0--1.0-None] PASSED [ 28%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset0-None-None] PASSED [ 28%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset1-0.0-1.0] PASSED [ 28%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset1-0.2-0.6] PASSED [ 28%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset1-1.0-1.0] PASSED [ 28%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset1-0.0-None] PASSED [ 28%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset1--1.0-1.0] PASSED [ 28%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset1--1.0-None] PASSED [ 28%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset1-None-None] PASSED [ 28%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset2-0.0-1.0] PASSED [ 28%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset2-0.2-0.6] PASSED [ 28%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset2-1.0-1.0] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset2-0.0-None] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset2--1.0-1.0] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset2--1.0-None] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset2-None-None] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset3-0.0-1.0] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset3-0.2-0.6] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset3-1.0-1.0] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset3-0.0-None] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset3--1.0-1.0] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset3--1.0-None] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset3-None-None] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset4-0.0-1.0] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset4-0.2-0.6] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset4-1.0-1.0] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset4-0.0-None] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset4--1.0-1.0] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset4--1.0-None] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset4-None-None] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset5-0.0-1.0] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset5-0.2-0.6] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset5-1.0-1.0] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset5-0.0-None] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset5--1.0-1.0] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset5--1.0-None] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset5-None-None] PASSED [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset6-0.0-1.0] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset6-0.2-0.6] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset6-1.0-1.0] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset6-0.0-None] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset6--1.0-1.0] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset6--1.0-None] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset6-None-None] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset0-0.0-1.0] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset0-0.2-0.6] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset0-1.0-1.0] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset0-0.0-None] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset0--1.0-1.0] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset0--1.0-None] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset0-None-None] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset1-0.0-1.0] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset1-0.2-0.6] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset1-1.0-1.0] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset1-0.0-None] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset1--1.0-1.0] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset1--1.0-None] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset1-None-None] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset2-0.0-1.0] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset2-0.2-0.6] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset2-1.0-1.0] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset2-0.0-None] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset2--1.0-1.0] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset2--1.0-None] PASSED [ 30%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset2-None-None] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset3-0.0-1.0] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset3-0.2-0.6] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset3-1.0-1.0] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset3-0.0-None] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset3--1.0-1.0] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset3--1.0-None] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset3-None-None] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset4-0.0-1.0] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset4-0.2-0.6] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset4-1.0-1.0] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset4-0.0-None] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset4--1.0-1.0] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset4--1.0-None] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset4-None-None] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset5-0.0-1.0] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset5-0.2-0.6] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset5-1.0-1.0] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset5-0.0-None] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset5--1.0-1.0] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset5--1.0-None] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset5-None-None] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset6-0.0-1.0] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset6-0.2-0.6] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset6-1.0-1.0] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset6-0.0-None] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset6--1.0-1.0] PASSED [ 31%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset6--1.0-None] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[str-asset6-None-None] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset0-0.0-1.0] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset0-0.2-0.6] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset0-1.0-1.0] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset0-0.0-None] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset0--1.0-1.0] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset0--1.0-None] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset0-None-None] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset1-0.0-1.0] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset1-0.2-0.6] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset1-1.0-1.0] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset1-0.0-None] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset1--1.0-1.0] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset1--1.0-None] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset1-None-None] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset2-0.0-1.0] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset2-0.2-0.6] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset2-1.0-1.0] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset2-0.0-None] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset2--1.0-1.0] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset2--1.0-None] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset2-None-None] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset3-0.0-1.0] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset3-0.2-0.6] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset3-1.0-1.0] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset3-0.0-None] PASSED [ 32%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset3--1.0-1.0] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset3--1.0-None] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset3-None-None] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset4-0.0-1.0] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset4-0.2-0.6] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset4-1.0-1.0] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset4-0.0-None] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset4--1.0-1.0] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset4--1.0-None] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset4-None-None] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset5-0.0-1.0] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset5-0.2-0.6] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset5-1.0-1.0] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset5-0.0-None] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset5--1.0-1.0] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset5--1.0-None] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset5-None-None] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset6-0.0-1.0] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset6-0.2-0.6] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset6-1.0-1.0] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset6-0.0-None] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset6--1.0-1.0] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset6--1.0-None] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[bytes-asset6-None-None] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset0-0.0-1.0] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset0-0.2-0.6] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset0-1.0-1.0] PASSED [ 33%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset0-0.0-None] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset0--1.0-1.0] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset0--1.0-None] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset0-None-None] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset1-0.0-1.0] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset1-0.2-0.6] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset1-1.0-1.0] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset1-0.0-None] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset1--1.0-1.0] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset1--1.0-None] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset1-None-None] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset2-0.0-1.0] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset2-0.2-0.6] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset2-1.0-1.0] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset2-0.0-None] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset2--1.0-1.0] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset2--1.0-None] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset2-None-None] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset3-0.0-1.0] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset3-0.2-0.6] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset3-1.0-1.0] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset3-0.0-None] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset3--1.0-1.0] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset3--1.0-None] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset3-None-None] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset4-0.0-1.0] PASSED [ 34%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset4-0.2-0.6] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset4-1.0-1.0] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset4-0.0-None] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset4--1.0-1.0] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset4--1.0-None] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset4-None-None] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset5-0.0-1.0] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset5-0.2-0.6] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset5-1.0-1.0] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset5-0.0-None] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset5--1.0-1.0] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset5--1.0-None] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset5-None-None] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset6-0.0-1.0] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset6-0.2-0.6] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset6-1.0-1.0] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset6-0.0-None] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset6--1.0-1.0] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset6--1.0-None] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[tensor-asset6-None-None] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset0-0.0-1.0] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset0-0.2-0.6] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset0-1.0-1.0] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset0-0.0-None] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset0--1.0-1.0] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset0--1.0-None] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset0-None-None] PASSED [ 35%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset1-0.0-1.0] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset1-0.2-0.6] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset1-1.0-1.0] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset1-0.0-None] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset1--1.0-1.0] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset1--1.0-None] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset1-None-None] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset2-0.0-1.0] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset2-0.2-0.6] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset2-1.0-1.0] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset2-0.0-None] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset2--1.0-1.0] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset2--1.0-None] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset2-None-None] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset3-0.0-1.0] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset3-0.2-0.6] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset3-1.0-1.0] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset3-0.0-None] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset3--1.0-1.0] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset3--1.0-None] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset3-None-None] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset4-0.0-1.0] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset4-0.2-0.6] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset4-1.0-1.0] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset4-0.0-None] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset4--1.0-1.0] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset4--1.0-None] PASSED [ 36%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset4-None-None] PASSED [ 37%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset5-0.0-1.0] PASSED [ 37%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset5-0.2-0.6] PASSED [ 37%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset5-1.0-1.0] PASSED [ 37%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset5-0.0-None] PASSED [ 37%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset5--1.0-1.0] PASSED [ 37%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset5--1.0-None] PASSED [ 37%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset5-None-None] PASSED [ 37%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset6-0.0-1.0] PASSED [ 37%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset6-0.2-0.6] PASSED [ 37%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset6-1.0-1.0] PASSED [ 37%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset6-0.0-None] PASSED [ 37%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset6--1.0-1.0] PASSED [ 37%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset6--1.0-None] PASSED [ 37%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[file_like-asset6-None-None] PASSED [ 37%] test/test_decoders.py::TestWavDecoder::test_get_samples_played_in_range_errors PASSED [ 37%] test/test_decoders.py::TestWavDecoder::test_start_equals_stop_returns_empty PASSED [ 37%] test/test_decoders.py::TestWavDecoder::test_multiple_calls_with_backward_seeks PASSED [ 37%] test/test_decoders.py::TestBlocks::test_block_output_types[cpu] PASSED [ 37%] test/test_decoders.py::TestBlocks::test_block_output_types[cuda] SKIPPED [ 37%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-sequential-video0] PASSED [ 37%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-sequential-video1] PASSED [ 37%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-sequential-video2] PASSED [ 37%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-sequential-video3] PASSED [ 37%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-sequential-video4] PASSED [ 37%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-sequential-video5] PASSED [ 37%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-sequential-video6] PASSED [ 37%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-sequential-video7] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-sequential-video8] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-sequential-video9] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-sequential-video10] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-sequential-video11] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-sequential-video12] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-sequential-video13] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_frames-video0] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_frames-video1] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_frames-video2] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_frames-video3] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_frames-video4] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_frames-video5] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_frames-video6] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_frames-video7] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_frames-video8] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_frames-video9] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_frames-video10] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_frames-video11] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_frames-video12] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_frames-video13] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets-video0] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets-video1] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets-video2] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets-video3] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets-video4] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets-video5] PASSED [ 38%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets-video6] PASSED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets-video7] PASSED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets-video8] PASSED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets-video9] PASSED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets-video10] PASSED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets-video11] PASSED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets-video12] PASSED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets-video13] PASSED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets_and_frames-video0] PASSED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets_and_frames-video1] PASSED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets_and_frames-video2] PASSED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets_and_frames-video3] PASSED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets_and_frames-video4] PASSED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets_and_frames-video5] PASSED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets_and_frames-video6] PASSED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets_and_frames-video7] PASSED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets_and_frames-video8] PASSED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets_and_frames-video9] PASSED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets_and_frames-video10] PASSED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets_and_frames-video11] PASSED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets_and_frames-video12] PASSED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets_and_frames-video13] PASSED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-sequential-video0] SKIPPED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-sequential-video1] SKIPPED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-sequential-video2] SKIPPED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-sequential-video3] SKIPPED [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-sequential-video4] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-sequential-video5] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-sequential-video6] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-sequential-video7] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-sequential-video8] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-sequential-video9] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-sequential-video10] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-sequential-video11] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-sequential-video12] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-sequential-video13] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_frames-video0] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_frames-video1] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_frames-video2] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_frames-video3] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_frames-video4] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_frames-video5] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_frames-video6] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_frames-video7] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_frames-video8] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_frames-video9] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_frames-video10] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_frames-video11] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_frames-video12] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_frames-video13] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets-video0] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets-video1] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets-video2] SKIPPED [ 40%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets-video3] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets-video4] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets-video5] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets-video6] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets-video7] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets-video8] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets-video9] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets-video10] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets-video11] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets-video12] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets-video13] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets_and_frames-video0] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets_and_frames-video1] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets_and_frames-video2] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets_and_frames-video3] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets_and_frames-video4] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets_and_frames-video5] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets_and_frames-video6] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets_and_frames-video7] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets_and_frames-video8] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets_and_frames-video9] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets_and_frames-video10] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets_and_frames-video11] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets_and_frames-video12] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cuda-prefetch_packets_and_frames-video13] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_color_converter_reused_across_videos[cpu] PASSED [ 41%] test/test_decoders.py::TestBlocks::test_color_converter_reused_across_videos[cuda] SKIPPED [ 41%] test/test_decoders.py::TestBlocks::test_set_cuda_backend_is_a_noop[cpu] PASSED [ 42%] test/test_decoders.py::TestBlocks::test_set_cuda_backend_is_a_noop[cuda] SKIPPED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_structure[cpu-video0] PASSED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_structure[cpu-video1] PASSED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_structure[cpu-video2] PASSED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_structure[cpu-video3] PASSED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_structure[cpu-video4] PASSED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_structure[cuda-video0] SKIPPED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_structure[cuda-video1] SKIPPED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_structure[cuda-video2] SKIPPED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_structure[cuda-video3] SKIPPED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_structure[cuda-video4] SKIPPED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_mutation_visible_in_color_convert[cpu] PASSED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_mutation_visible_in_color_convert[cuda] SKIPPED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_is_a_view[cpu] PASSED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_is_a_view[cuda] SKIPPED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_planes_outlive_frame[cpu-video0] PASSED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_planes_outlive_frame[cpu-video1] PASSED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_planes_outlive_frame[cpu-video2] PASSED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_planes_outlive_frame[cpu-video3] PASSED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_planes_outlive_frame[cpu-video4] PASSED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_planes_outlive_frame[cuda-video0] SKIPPED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_planes_outlive_frame[cuda-video1] SKIPPED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_planes_outlive_frame[cuda-video2] SKIPPED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_planes_outlive_frame[cuda-video3] SKIPPED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_planes_outlive_frame[cuda-video4] SKIPPED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_neutral_chroma_is_grayscale[cpu-video0] PASSED [ 42%] test/test_decoders.py::TestBlocks::test_materialize_neutral_chroma_is_grayscale[cpu-video1] PASSED [ 43%] test/test_decoders.py::TestBlocks::test_materialize_neutral_chroma_is_grayscale[cuda-video0] SKIPPED [ 43%] test/test_decoders.py::TestBlocks::test_materialize_neutral_chroma_is_grayscale[cuda-video1] SKIPPED [ 43%] test/test_decoders.py::TestBlocks::test_materialize_cpu_fallback_stays_on_cpu[video0] SKIPPED [ 43%] test/test_decoders.py::TestBlocks::test_materialize_cpu_fallback_stays_on_cpu[video1] SKIPPED [ 43%] test/test_decoders.py::TestImageDecoder::test_torchscript[jpeg] PASSED [ 43%] test/test_decoders.py::TestImageDecoder::test_torchscript[png] PASSED [ 43%] test/test_decoders.py::TestImageDecoder::test_torchscript[webp] PASSED [ 43%] test/test_decoders.py::TestImageDecoder::test_torchscript[gif] PASSED [ 43%] test/test_decoders.py::TestImageDecoder::test_torchscript[avif] PASSED [ 43%] test/test_decoders.py::TestImageDecoder::test_default_mode_is_rgb[jpeg] PASSED [ 43%] test/test_decoders.py::TestImageDecoder::test_default_mode_is_rgb[jpeg_cuda] SKIPPED [ 43%] test/test_decoders.py::TestImageDecoder::test_default_mode_is_rgb[png] PASSED [ 43%] test/test_decoders.py::TestImageDecoder::test_default_mode_is_rgb[webp] PASSED [ 43%] test/test_decoders.py::TestImageDecoder::test_default_mode_is_rgb[gif] PASSED [ 43%] test/test_decoders.py::TestImageDecoder::test_default_mode_is_rgb[avif] PASSED [ 43%] test/test_decoders.py::TestImageDecoder::test_default_mode_is_rgb[heic] PASSED [ 43%] test/test_decoders.py::TestImageDecoder::test_source_kinds[jpeg-str] PASSED [ 43%] test/test_decoders.py::TestImageDecoder::test_source_kinds[jpeg-bytes] PASSED [ 43%] test/test_decoders.py::TestImageDecoder::test_source_kinds[jpeg-tensor] PASSED [ 43%] test/test_decoders.py::TestImageDecoder::test_source_kinds[jpeg_cuda-str] SKIPPED [ 43%] test/test_decoders.py::TestImageDecoder::test_source_kinds[jpeg_cuda-bytes] SKIPPED [ 43%] test/test_decoders.py::TestImageDecoder::test_source_kinds[jpeg_cuda-tensor] SKIPPED [ 43%] test/test_decoders.py::TestImageDecoder::test_source_kinds[png-str] PASSED [ 43%] test/test_decoders.py::TestImageDecoder::test_source_kinds[png-bytes] PASSED [ 43%] test/test_decoders.py::TestImageDecoder::test_source_kinds[png-tensor] PASSED [ 43%] test/test_decoders.py::TestImageDecoder::test_source_kinds[webp-str] PASSED [ 43%] test/test_decoders.py::TestImageDecoder::test_source_kinds[webp-bytes] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_source_kinds[webp-tensor] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_source_kinds[gif-str] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_source_kinds[gif-bytes] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_source_kinds[gif-tensor] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_source_kinds[avif-str] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_source_kinds[avif-bytes] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_source_kinds[avif-tensor] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_source_kinds[heic-str] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_source_kinds[heic-bytes] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_source_kinds[heic-tensor] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_bad_source_type_raises[jpeg] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_bad_source_type_raises[png] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_bad_source_type_raises[webp] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_bad_source_type_raises[gif] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_bad_source_type_raises[avif] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_bad_source_type_raises[heic] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_decode_image[jpeg-UNCHANGED-path] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_decode_image[jpeg-UNCHANGED-str] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_decode_image[jpeg-UNCHANGED-bytes] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_decode_image[jpeg-UNCHANGED-tensor] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_decode_image[jpeg-RGB-path] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_decode_image[jpeg-RGB-str] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_decode_image[jpeg-RGB-bytes] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_decode_image[jpeg-RGB-tensor] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_decode_image[jpeg-GRAY_ALPHA-path] PASSED [ 44%] test/test_decoders.py::TestImageDecoder::test_decode_image[jpeg-GRAY_ALPHA-str] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[jpeg-GRAY_ALPHA-bytes] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[jpeg-GRAY_ALPHA-tensor] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[png-UNCHANGED-path] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[png-UNCHANGED-str] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[png-UNCHANGED-bytes] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[png-UNCHANGED-tensor] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[png-RGB-path] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[png-RGB-str] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[png-RGB-bytes] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[png-RGB-tensor] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[png-GRAY_ALPHA-path] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[png-GRAY_ALPHA-str] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[png-GRAY_ALPHA-bytes] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[png-GRAY_ALPHA-tensor] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[webp-UNCHANGED-path] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[webp-UNCHANGED-str] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[webp-UNCHANGED-bytes] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[webp-UNCHANGED-tensor] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[webp-RGB-path] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[webp-RGB-str] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[webp-RGB-bytes] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[webp-RGB-tensor] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[webp-GRAY_ALPHA-path] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[webp-GRAY_ALPHA-str] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[webp-GRAY_ALPHA-bytes] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[webp-GRAY_ALPHA-tensor] PASSED [ 45%] test/test_decoders.py::TestImageDecoder::test_decode_image[gif-UNCHANGED-path] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[gif-UNCHANGED-str] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[gif-UNCHANGED-bytes] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[gif-UNCHANGED-tensor] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[gif-RGB-path] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[gif-RGB-str] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[gif-RGB-bytes] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[gif-RGB-tensor] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[gif-GRAY_ALPHA-path] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[gif-GRAY_ALPHA-str] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[gif-GRAY_ALPHA-bytes] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[gif-GRAY_ALPHA-tensor] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[avif-UNCHANGED-path] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[avif-UNCHANGED-str] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[avif-UNCHANGED-bytes] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[avif-UNCHANGED-tensor] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[avif-RGB-path] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[avif-RGB-str] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[avif-RGB-bytes] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[avif-RGB-tensor] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[avif-GRAY_ALPHA-path] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[avif-GRAY_ALPHA-str] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[avif-GRAY_ALPHA-bytes] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[avif-GRAY_ALPHA-tensor] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[heic-UNCHANGED-path] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[heic-UNCHANGED-str] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[heic-UNCHANGED-bytes] PASSED [ 46%] test/test_decoders.py::TestImageDecoder::test_decode_image[heic-UNCHANGED-tensor] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image[heic-RGB-path] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image[heic-RGB-str] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image[heic-RGB-bytes] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image[heic-RGB-tensor] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image[heic-GRAY_ALPHA-path] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image[heic-GRAY_ALPHA-str] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image[heic-GRAY_ALPHA-bytes] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image[heic-GRAY_ALPHA-tensor] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image_output_dtype[jpeg-output_dtype0] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image_output_dtype[jpeg-output_dtype1] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image_output_dtype[jpeg-auto] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image_output_dtype[png-output_dtype0] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image_output_dtype[png-output_dtype1] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image_output_dtype[png-auto] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image_output_dtype[webp-output_dtype0] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image_output_dtype[webp-output_dtype1] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image_output_dtype[webp-auto] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image_output_dtype[gif-output_dtype0] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image_output_dtype[gif-output_dtype1] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image_output_dtype[gif-auto] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image_output_dtype[avif-output_dtype0] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image_output_dtype[avif-output_dtype1] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image_output_dtype[avif-auto] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image_output_dtype[heic-output_dtype0] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image_output_dtype[heic-output_dtype1] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image_output_dtype[heic-auto] PASSED [ 47%] test/test_decoders.py::TestImageDecoder::test_decode_image_unrecognized_format_raises PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_decode_image_rgba_alias[RGBA] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_decode_image_rgba_alias[ImageReadMode.RGB_ALPHA] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[UNCHANGED-None-None-jpeg0] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[UNCHANGED-None-None-jpeg1] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[UNCHANGED-None-None-jpeg2] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[UNCHANGED-None-None-png0] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[UNCHANGED-None-None-png1] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[UNCHANGED-None-None-png2] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[UNCHANGED-None-None-png3] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[UNCHANGED-None-None-png4] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[UNCHANGED-None-None-webp0] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[UNCHANGED-None-None-webp1] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[UNCHANGED-None-None-gif0] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[UNCHANGED-None-None-gif1] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[UNCHANGED-None-None-gif2] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[UNCHANGED-None-None-avif] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY-L-1-jpeg0] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY-L-1-jpeg1] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY-L-1-jpeg2] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY-L-1-png0] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY-L-1-png1] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY-L-1-png2] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY-L-1-png3] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY-L-1-png4] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY-L-1-webp0] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY-L-1-webp1] PASSED [ 48%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY-L-1-gif0] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY-L-1-gif1] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY-L-1-gif2] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY-L-1-avif] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY_ALPHA-LA-2-jpeg0] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY_ALPHA-LA-2-jpeg1] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY_ALPHA-LA-2-jpeg2] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY_ALPHA-LA-2-png0] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY_ALPHA-LA-2-png1] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY_ALPHA-LA-2-png2] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY_ALPHA-LA-2-png3] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY_ALPHA-LA-2-png4] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY_ALPHA-LA-2-webp0] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY_ALPHA-LA-2-webp1] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY_ALPHA-LA-2-gif0] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY_ALPHA-LA-2-gif1] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY_ALPHA-LA-2-gif2] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[GRAY_ALPHA-LA-2-avif] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB-RGB-3-jpeg0] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB-RGB-3-jpeg1] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB-RGB-3-jpeg2] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB-RGB-3-png0] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB-RGB-3-png1] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB-RGB-3-png2] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB-RGB-3-png3] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB-RGB-3-png4] PASSED [ 49%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB-RGB-3-webp0] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB-RGB-3-webp1] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB-RGB-3-gif0] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB-RGB-3-gif1] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB-RGB-3-gif2] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB-RGB-3-avif] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB_ALPHA-RGBA-4-jpeg0] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB_ALPHA-RGBA-4-jpeg1] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB_ALPHA-RGBA-4-jpeg2] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB_ALPHA-RGBA-4-png0] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB_ALPHA-RGBA-4-png1] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB_ALPHA-RGBA-4-png2] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB_ALPHA-RGBA-4-png3] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB_ALPHA-RGBA-4-png4] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB_ALPHA-RGBA-4-webp0] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB_ALPHA-RGBA-4-webp1] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB_ALPHA-RGBA-4-gif0] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB_ALPHA-RGBA-4-gif1] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB_ALPHA-RGBA-4-gif2] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_all_source_to_all_output_modes[RGB_ALPHA-RGBA-4-avif] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[UNCHANGED-jpeg] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[UNCHANGED-jpeg_cuda] SKIPPED [ 50%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[UNCHANGED-png] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[UNCHANGED-webp] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[UNCHANGED-gif] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[UNCHANGED-avif] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[UNCHANGED-heic] PASSED [ 50%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[GRAY-jpeg] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[GRAY-jpeg_cuda] SKIPPED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[GRAY-png] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[GRAY-webp] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[GRAY-gif] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[GRAY-avif] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[GRAY-heic] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[GRAY_ALPHA-jpeg] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[GRAY_ALPHA-jpeg_cuda] SKIPPED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[GRAY_ALPHA-png] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[GRAY_ALPHA-webp] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[GRAY_ALPHA-gif] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[GRAY_ALPHA-avif] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[GRAY_ALPHA-heic] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[RGB-jpeg] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[RGB-jpeg_cuda] SKIPPED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[RGB-png] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[RGB-webp] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[RGB-gif] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[RGB-avif] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[RGB-heic] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[RGB_ALPHA-jpeg] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[RGB_ALPHA-jpeg_cuda] SKIPPED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[RGB_ALPHA-png] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[RGB_ALPHA-webp] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[RGB_ALPHA-gif] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[RGB_ALPHA-avif] PASSED [ 51%] test/test_decoders.py::TestImageDecoder::test_output_dtype_8bit_source[RGB_ALPHA-heic] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_output_dtype_invalid[bad_dtype0-jpeg] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_output_dtype_invalid[bad_dtype0-png] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_output_dtype_invalid[bad_dtype0-webp] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_output_dtype_invalid[bad_dtype0-gif] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_output_dtype_invalid[bad_dtype0-avif] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_output_dtype_invalid[bad_dtype0-heic] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_output_dtype_invalid[bad_dtype1-jpeg] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_output_dtype_invalid[bad_dtype1-png] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_output_dtype_invalid[bad_dtype1-webp] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_output_dtype_invalid[bad_dtype1-gif] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_output_dtype_invalid[bad_dtype1-avif] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_output_dtype_invalid[bad_dtype1-heic] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_output_dtype_invalid[uint8-jpeg] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_output_dtype_invalid[uint8-png] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_output_dtype_invalid[uint8-webp] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_output_dtype_invalid[uint8-gif] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_output_dtype_invalid[uint8-avif] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_output_dtype_invalid[uint8-heic] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[0-jpeg] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[0-png] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[0-webp] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[0-avif] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[1-jpeg] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[1-png] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[1-webp] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[1-avif] PASSED [ 52%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[2-jpeg] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[2-png] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[2-webp] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[2-avif] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[3-jpeg] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[3-png] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[3-webp] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[3-avif] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[4-jpeg] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[4-png] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[4-webp] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[4-avif] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[5-jpeg] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[5-png] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[5-webp] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[5-avif] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[6-jpeg] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[6-png] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[6-webp] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[6-avif] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[7-jpeg] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[7-png] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[7-webp] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[7-avif] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[8-jpeg] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[8-png] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[8-webp] PASSED [ 53%] test/test_decoders.py::TestImageDecoder::test_exif_orientation[8-avif] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_invalid_exif[65533-jpeg] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_invalid_exif[65533-png] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_invalid_exif[65533-webp] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_invalid_exif[1-jpeg] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_invalid_exif[1-png] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_invalid_exif[1-webp] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_invalid_exif[7-jpeg] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_invalid_exif[7-png] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_invalid_exif[7-webp] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_invalid_exif[10-jpeg] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_invalid_exif[10-png] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_invalid_exif[10-webp] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_invalid_exif[23-jpeg] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_invalid_exif[23-png] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_invalid_exif[23-webp] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_invalid_exif[33-jpeg] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_invalid_exif[33-png] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_invalid_exif[33-webp] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_heic_orientation[asset0-6] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_heic_orientation[asset1-2] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_not_an_image_raises[jpeg] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_not_an_image_raises[png] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_not_an_image_raises[webp] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_not_an_image_raises[gif] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_not_an_image_raises[avif] PASSED [ 54%] test/test_decoders.py::TestImageDecoder::test_truncated_raises[2-jpeg] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_truncated_raises[2-png] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_truncated_raises[2-webp] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_truncated_raises[2-gif] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_truncated_raises[2-avif] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_truncated_raises[3-jpeg] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_truncated_raises[3-png] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_truncated_raises[3-webp] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_truncated_raises[3-gif] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_truncated_raises[3-avif] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_truncated_raises[4-jpeg] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_truncated_raises[4-png] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_truncated_raises[4-webp] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_truncated_raises[4-gif] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_truncated_raises[4-avif] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_bad_encoded_data_raises[-1-dimensional-jpeg] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_bad_encoded_data_raises[-1-dimensional-png] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_bad_encoded_data_raises[-1-dimensional-webp] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_bad_encoded_data_raises[-1-dimensional-gif] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_bad_encoded_data_raises[-1-dimensional-avif] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_bad_encoded_data_raises[-uint8-jpeg] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_bad_encoded_data_raises[-uint8-png] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_bad_encoded_data_raises[-uint8-webp] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_bad_encoded_data_raises[-uint8-gif] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_bad_encoded_data_raises[-uint8-avif] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_bad_encoded_data_raises[-non-empty-jpeg] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_bad_encoded_data_raises[-non-empty-png] PASSED [ 55%] test/test_decoders.py::TestImageDecoder::test_bad_encoded_data_raises[-non-empty-webp] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_bad_encoded_data_raises[-non-empty-gif] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_bad_encoded_data_raises[-non-empty-avif] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_non_contiguous_encoded_data[jpeg] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_non_contiguous_encoded_data[jpeg_cuda] SKIPPED [ 56%] test/test_decoders.py::TestImageDecoder::test_non_contiguous_encoded_data[png] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_non_contiguous_encoded_data[webp] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_non_contiguous_encoded_data[gif] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_non_contiguous_encoded_data[avif] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_non_contiguous_encoded_data[heic] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_mode_str_and_enum PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_jpeg_against_pil[UNCHANGED-None-asset0] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_jpeg_against_pil[UNCHANGED-None-asset1] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_jpeg_against_pil[UNCHANGED-None-asset2] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_jpeg_against_pil[GRAY-L-asset0] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_jpeg_against_pil[GRAY-L-asset1] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_jpeg_against_pil[GRAY-L-asset2] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_jpeg_against_pil[GRAY_ALPHA-LA-asset0] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_jpeg_against_pil[GRAY_ALPHA-LA-asset1] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_jpeg_against_pil[GRAY_ALPHA-LA-asset2] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_jpeg_against_pil[RGB-RGB-asset0] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_jpeg_against_pil[RGB-RGB-asset1] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_jpeg_against_pil[RGB-RGB-asset2] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_jpeg_against_pil[RGB_ALPHA-RGBA-asset0] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_jpeg_against_pil[RGB_ALPHA-RGBA-asset1] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_jpeg_against_pil[RGB_ALPHA-RGBA-asset2] PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_jpeg_batch_cpu PASSED [ 56%] test/test_decoders.py::TestImageDecoder::test_bad_huffman_decodes PASSED [ 57%] test/test_decoders.py::TestImageDecoder::test_corrupt_jpeg_raises PASSED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_exif_orientation[0] SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_exif_orientation[1] SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_exif_orientation[2] SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_exif_orientation[3] SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_exif_orientation[4] SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_exif_orientation[5] SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_exif_orientation[6] SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_exif_orientation[7] SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_exif_orientation[8] SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_matches_cpu[UNCHANGED-asset0] SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_matches_cpu[UNCHANGED-asset1] SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_matches_cpu[RGB-asset0] SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_matches_cpu[RGB-asset1] SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_matches_cpu[GRAY-asset0] SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_matches_cpu[GRAY-asset1] SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_matches_cpu[RGB_ALPHA-asset0] SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_matches_cpu[RGB_ALPHA-asset1] SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_matches_cpu[GRAY_ALPHA-asset0] SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_matches_cpu[GRAY_ALPHA-asset1] SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_batch[UNCHANGED] SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_batch[GRAY] SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_batch[RGB] SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_single_vs_list_return_type SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_errors SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_cuda_jpeg_multithreaded SKIPPED [ 57%] test/test_decoders.py::TestImageDecoder::test_png_against_pil[UNCHANGED-None-asset0] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_png_against_pil[UNCHANGED-None-asset1] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_png_against_pil[UNCHANGED-None-asset2] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_png_against_pil[UNCHANGED-None-asset3] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_png_against_pil[GRAY-L-asset0] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_png_against_pil[GRAY-L-asset1] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_png_against_pil[GRAY-L-asset2] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_png_against_pil[GRAY-L-asset3] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_png_against_pil[GRAY_ALPHA-LA-asset0] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_png_against_pil[GRAY_ALPHA-LA-asset1] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_png_against_pil[GRAY_ALPHA-LA-asset2] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_png_against_pil[GRAY_ALPHA-LA-asset3] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_png_against_pil[RGB-RGB-asset0] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_png_against_pil[RGB-RGB-asset1] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_png_against_pil[RGB-RGB-asset2] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_png_against_pil[RGB-RGB-asset3] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_png_against_pil[RGB_ALPHA-RGBA-asset0] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_png_against_pil[RGB_ALPHA-RGBA-asset1] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_png_against_pil[RGB_ALPHA-RGBA-asset2] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_png_against_pil[RGB_ALPHA-RGBA-asset3] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_output_dtype_16bit_png[UNCHANGED-asset0] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_output_dtype_16bit_png[UNCHANGED-asset1] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_output_dtype_16bit_png[GRAY-asset0] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_output_dtype_16bit_png[GRAY-asset1] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_output_dtype_16bit_png[GRAY_ALPHA-asset0] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_output_dtype_16bit_png[GRAY_ALPHA-asset1] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_output_dtype_16bit_png[RGB-asset0] PASSED [ 58%] test/test_decoders.py::TestImageDecoder::test_output_dtype_16bit_png[RGB-asset1] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_output_dtype_16bit_png[RGB_ALPHA-asset0] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_output_dtype_16bit_png[RGB_ALPHA-asset1] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_png_trns_transparency[GRAY_ALPHA-LA-rgb] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_png_trns_transparency[GRAY_ALPHA-LA-gray] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_png_trns_transparency[GRAY_ALPHA-LA-palette] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_png_trns_transparency[RGB_ALPHA-RGBA-rgb] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_png_trns_transparency[RGB_ALPHA-RGBA-gray] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_png_trns_transparency[RGB_ALPHA-RGBA-palette] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_1bit_png[shape0] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_1bit_png[shape1] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_1bit_png[shape2] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_interlaced_png[UNCHANGED-None] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_interlaced_png[RGB-RGB] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_corrupt_png_raises PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_corrupt_png_out_of_bound_read_raises[asset0] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_corrupt_png_out_of_bound_read_raises[asset1] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_webp_against_pil[UNCHANGED-None-asset0] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_webp_against_pil[UNCHANGED-None-asset1] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_webp_against_pil[GRAY-L-asset0] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_webp_against_pil[GRAY-L-asset1] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_webp_against_pil[GRAY_ALPHA-LA-asset0] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_webp_against_pil[GRAY_ALPHA-LA-asset1] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_webp_against_pil[RGB-RGB-asset0] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_webp_against_pil[RGB-RGB-asset1] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_webp_against_pil[RGB_ALPHA-RGBA-asset0] PASSED [ 59%] test/test_decoders.py::TestImageDecoder::test_webp_against_pil[RGB_ALPHA-RGBA-asset1] PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_animated_webp[UNCHANGED-None] PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_animated_webp[GRAY-L] PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_animated_webp[GRAY_ALPHA-LA] PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_animated_webp[RGB-RGB] PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_animated_webp[RGB_ALPHA-RGBA] PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_animated_webp_transparency PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_gif_against_pil[UNCHANGED-None] PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_gif_against_pil[GRAY-L] PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_gif_against_pil[GRAY_ALPHA-LA] PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_gif_against_pil[RGB-RGB] PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_gif_against_pil[RGB_ALPHA-RGBA] PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_animated_gif PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_gif_disposal_methods[1] PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_gif_disposal_methods[2] PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_gif_disposal_methods[3] PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_gif_transparency PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_gif_first_frame_larger_than_canvas PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_avif_against_pil[UNCHANGED-None-asset0] PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_avif_against_pil[UNCHANGED-None-asset1] PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_avif_against_pil[GRAY-L-asset0] PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_avif_against_pil[GRAY-L-asset1] SKIPPED [ 60%] test/test_decoders.py::TestImageDecoder::test_avif_against_pil[GRAY_ALPHA-LA-asset0] PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_avif_against_pil[GRAY_ALPHA-LA-asset1] PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_avif_against_pil[RGB-RGB-asset0] PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_avif_against_pil[RGB-RGB-asset1] SKIPPED [ 60%] test/test_decoders.py::TestImageDecoder::test_avif_against_pil[RGB_ALPHA-RGBA-asset0] PASSED [ 60%] test/test_decoders.py::TestImageDecoder::test_avif_against_pil[RGB_ALPHA-RGBA-asset1] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_output_dtype_high_bit_depth_avif[UNCHANGED-asset0] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_output_dtype_high_bit_depth_avif[UNCHANGED-asset1] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_output_dtype_high_bit_depth_avif[GRAY-asset0] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_output_dtype_high_bit_depth_avif[GRAY-asset1] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_output_dtype_high_bit_depth_avif[GRAY_ALPHA-asset0] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_output_dtype_high_bit_depth_avif[GRAY_ALPHA-asset1] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_output_dtype_high_bit_depth_avif[RGB-asset0] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_output_dtype_high_bit_depth_avif[RGB-asset1] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_output_dtype_high_bit_depth_avif[RGB_ALPHA-asset0] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_output_dtype_high_bit_depth_avif[RGB_ALPHA-asset1] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_avif_num_threads PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_animated_avif[UNCHANGED-None] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_animated_avif[GRAY-L] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_animated_avif[GRAY_ALPHA-LA] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_animated_avif[RGB-RGB] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_animated_avif[RGB_ALPHA-RGBA] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_heic_against_png[UNCHANGED-heic_asset0-png_asset0] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_heic_against_png[UNCHANGED-heic_asset1-png_asset1] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_heic_against_png[GRAY-heic_asset0-png_asset0] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_heic_against_png[GRAY-heic_asset1-png_asset1] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_heic_against_png[GRAY_ALPHA-heic_asset0-png_asset0] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_heic_against_png[GRAY_ALPHA-heic_asset1-png_asset1] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_heic_against_png[RGB-heic_asset0-png_asset0] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_heic_against_png[RGB-heic_asset1-png_asset1] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_heic_against_png[RGB_ALPHA-heic_asset0-png_asset0] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_heic_against_png[RGB_ALPHA-heic_asset1-png_asset1] PASSED [ 61%] test/test_decoders.py::TestImageDecoder::test_output_dtype_high_bit_depth_heic[UNCHANGED] PASSED [ 62%] test/test_decoders.py::TestImageDecoder::test_output_dtype_high_bit_depth_heic[GRAY] PASSED [ 62%] test/test_decoders.py::TestImageDecoder::test_output_dtype_high_bit_depth_heic[GRAY_ALPHA] PASSED [ 62%] test/test_decoders.py::TestImageDecoder::test_output_dtype_high_bit_depth_heic[RGB] PASSED [ 62%] test/test_decoders.py::TestImageDecoder::test_output_dtype_high_bit_depth_heic[RGB_ALPHA] PASSED [ 62%] test/test_decoders.py::TestImageDecoder::test_animated_heic[UNCHANGED-RGB] PASSED [ 62%] test/test_decoders.py::TestImageDecoder::test_animated_heic[GRAY-L] PASSED [ 62%] test/test_decoders.py::TestImageDecoder::test_animated_heic[GRAY_ALPHA-LA] PASSED [ 62%] test/test_decoders.py::TestImageDecoder::test_animated_heic[RGB-RGB] PASSED [ 62%] test/test_decoders.py::TestImageDecoder::test_animated_heic[RGB_ALPHA-RGBA] PASSED [ 62%] test/test_decoders.py::TestImageDecoder::test_heic_missing_libheif_raises_import_error PASSED [ 62%] test/test_encoders.py::TestAudioEncoder::test_bad_input PASSED [ 62%] test/test_encoders.py::TestAudioEncoder::test_equivalence_with_encoder PASSED [ 62%] test/test_encoders.py::TestAudioEncoder::test_to_tensor_no_warning PASSED [ 62%] test/test_encoders.py::TestVideoEncoder::test_bad_input PASSED [ 62%] test/test_encoders.py::TestVideoEncoder::test_equivalence_with_encoder PASSED [ 62%] test/test_encoders.py::TestVideoEncoder::test_to_tensor_no_warning PASSED [ 62%] test/test_encoders.py::TestEncoder::test_double_close[to_file] PASSED [ 62%] test/test_encoders.py::TestEncoder::test_double_close[to_file_like] PASSED [ 62%] test/test_encoders.py::TestEncoder::test_context_manager[to_file] PASSED [ 62%] test/test_encoders.py::TestEncoder::test_context_manager[to_file_like] PASSED [ 62%] test/test_encoders.py::TestEncoder::test_add_video_and_encode_frames[cpu-to_file-mp4] PASSED [ 62%] test/test_encoders.py::TestEncoder::test_add_video_and_encode_frames[cpu-to_file-mov] PASSED [ 62%] test/test_encoders.py::TestEncoder::test_add_video_and_encode_frames[cpu-to_file-mkv] PASSED [ 62%] test/test_encoders.py::TestEncoder::test_add_video_and_encode_frames[cpu-to_file_like-mp4] PASSED [ 62%] test/test_encoders.py::TestEncoder::test_add_video_and_encode_frames[cpu-to_file_like-mov] PASSED [ 62%] test/test_encoders.py::TestEncoder::test_add_video_and_encode_frames[cpu-to_file_like-mkv] PASSED [ 62%] test/test_encoders.py::TestEncoder::test_add_video_and_encode_frames[cuda-to_file-mp4] SKIPPED [ 63%] test/test_encoders.py::TestEncoder::test_add_video_and_encode_frames[cuda-to_file-mov] SKIPPED [ 63%] test/test_encoders.py::TestEncoder::test_add_video_and_encode_frames[cuda-to_file-mkv] SKIPPED [ 63%] test/test_encoders.py::TestEncoder::test_add_video_and_encode_frames[cuda-to_file_like-mp4] SKIPPED [ 63%] test/test_encoders.py::TestEncoder::test_add_video_and_encode_frames[cuda-to_file_like-mov] SKIPPED [ 63%] test/test_encoders.py::TestEncoder::test_add_video_and_encode_frames[cuda-to_file_like-mkv] SKIPPED [ 63%] test/test_encoders.py::TestEncoder::test_open_invalid_path PASSED [ 63%] test/test_encoders.py::TestEncoder::test_open_invalid_format[to_file] PASSED [ 63%] test/test_encoders.py::TestEncoder::test_open_invalid_format[to_file_like] PASSED [ 63%] test/test_encoders.py::TestEncoder::test_fragmented_mp4[cpu-to_file-mp4] PASSED [ 63%] test/test_encoders.py::TestEncoder::test_fragmented_mp4[cpu-to_file-mov] PASSED [ 63%] test/test_encoders.py::TestEncoder::test_fragmented_mp4[cpu-to_file_like-mp4] PASSED [ 63%] test/test_encoders.py::TestEncoder::test_fragmented_mp4[cpu-to_file_like-mov] PASSED [ 63%] test/test_encoders.py::TestEncoder::test_fragmented_mp4[cuda-to_file-mp4] SKIPPED [ 63%] test/test_encoders.py::TestEncoder::test_fragmented_mp4[cuda-to_file-mov] SKIPPED [ 63%] test/test_encoders.py::TestEncoder::test_fragmented_mp4[cuda-to_file_like-mp4] SKIPPED [ 63%] test/test_encoders.py::TestEncoder::test_fragmented_mp4[cuda-to_file_like-mov] SKIPPED [ 63%] test/test_encoders.py::TestEncoder::test_write_frames_mismatched_dimensions_errors[cpu-to_file] PASSED [ 63%] test/test_encoders.py::TestEncoder::test_write_frames_mismatched_dimensions_errors[cpu-to_file_like] PASSED [ 63%] test/test_encoders.py::TestEncoder::test_write_frames_mismatched_dimensions_errors[cuda-to_file] SKIPPED [ 63%] test/test_encoders.py::TestEncoder::test_write_frames_mismatched_dimensions_errors[cuda-to_file_like] SKIPPED [ 63%] test/test_encoders.py::TestEncoder::test_write_frames_different_devices_errors[to_file] SKIPPED [ 63%] test/test_encoders.py::TestEncoder::test_write_frames_different_devices_errors[to_file_like] SKIPPED [ 63%] test/test_encoders.py::TestEncoder::test_device_None_respects_default_device[to_file] SKIPPED [ 63%] test/test_encoders.py::TestEncoder::test_device_None_respects_default_device[to_file_like] SKIPPED [ 63%] test/test_encoders.py::TestEncoder::test_device_torch_device_object[to_file] PASSED [ 63%] test/test_encoders.py::TestEncoder::test_device_torch_device_object[to_file_like] PASSED [ 63%] test/test_encoders.py::TestEncoder::test_device_cuda_0_string[to_file] SKIPPED [ 64%] test/test_encoders.py::TestEncoder::test_device_cuda_0_string[to_file_like] SKIPPED [ 64%] test/test_encoders.py::TestEncoder::test_write_samples_on_cuda_errors[to_file] SKIPPED [ 64%] test/test_encoders.py::TestEncoder::test_write_samples_on_cuda_errors[to_file_like] SKIPPED [ 64%] test/test_encoders.py::TestEncoder::test_write_frames_without_open_errors[cpu-to_file] PASSED [ 64%] test/test_encoders.py::TestEncoder::test_write_frames_without_open_errors[cpu-to_file_like] PASSED [ 64%] test/test_encoders.py::TestEncoder::test_write_frames_without_open_errors[cuda-to_file] SKIPPED [ 64%] test/test_encoders.py::TestEncoder::test_write_frames_without_open_errors[cuda-to_file_like] SKIPPED [ 64%] test/test_encoders.py::TestEncoder::test_write_samples_without_open_errors[to_file] PASSED [ 64%] test/test_encoders.py::TestEncoder::test_write_samples_without_open_errors[to_file_like] PASSED [ 64%] test/test_encoders.py::TestEncoder::test_write_samples_mismatched_channels_errors[to_file] PASSED [ 64%] test/test_encoders.py::TestEncoder::test_write_samples_mismatched_channels_errors[to_file_like] PASSED [ 64%] test/test_encoders.py::TestEncoder::test_open_without_stream_errors[to_file] PASSED [ 64%] test/test_encoders.py::TestEncoder::test_open_without_stream_errors[to_file_like] PASSED [ 64%] test/test_encoders.py::TestEncoder::test_open_twice_errors[to_file] PASSED [ 64%] test/test_encoders.py::TestEncoder::test_open_twice_errors[to_file_like] PASSED [ 64%] test/test_encoders.py::TestEncoder::test_open_after_close_errors[to_file] PASSED [ 64%] test/test_encoders.py::TestEncoder::test_open_after_close_errors[to_file_like] PASSED [ 64%] test/test_encoders.py::TestEncoder::test_write_frames_after_close_errors[to_file] PASSED [ 64%] test/test_encoders.py::TestEncoder::test_write_frames_after_close_errors[to_file_like] PASSED [ 64%] test/test_encoders.py::TestEncoder::test_write_samples_after_close_errors[to_file] PASSED [ 64%] test/test_encoders.py::TestEncoder::test_write_samples_after_close_errors[to_file_like] PASSED [ 64%] test/test_encoders.py::TestEncoder::test_add_audio_invalid_bit_rate_errors[to_file] PASSED [ 64%] test/test_encoders.py::TestEncoder::test_add_audio_invalid_bit_rate_errors[to_file_like] PASSED [ 64%] test/test_encoders.py::TestEncoder::test_add_audio_and_encode_samples[to_file] PASSED [ 64%] test/test_encoders.py::TestEncoder::test_add_audio_and_encode_samples[to_file_like] PASSED [ 64%] test/test_encoders.py::TestEncoder::test_add_audio_and_video_and_encode[to_file-mp4] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_add_audio_and_video_and_encode[to_file-mkv] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_add_audio_and_video_and_encode[to_file-mov] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_add_audio_and_video_and_encode[to_file_like-mp4] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_add_audio_and_video_and_encode[to_file_like-mkv] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_add_audio_and_video_and_encode[to_file_like-mov] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_cuda_video_with_cpu_video_and_cpu_audio[to_file] SKIPPED [ 65%] test/test_encoders.py::TestEncoder::test_cuda_video_with_cpu_video_and_cpu_audio[to_file_like] SKIPPED [ 65%] test/test_encoders.py::TestEncoder::test_multiple_video_streams_and_audio[to_file] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_multiple_video_streams_and_audio[to_file_like] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_add_audio_out_num_channels[to_file] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_add_audio_out_num_channels[to_file_like] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file-encode_params0-mov] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file-encode_params0-mp4] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file-encode_params0-avi] SKIPPED [ 65%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file-encode_params0-mkv] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file-encode_params0-flv] SKIPPED [ 65%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file-encode_params1-mov] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file-encode_params1-mp4] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file-encode_params1-avi] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file-encode_params1-mkv] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file-encode_params1-flv] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file-encode_params2-mov] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file-encode_params2-mp4] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file-encode_params2-avi] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file-encode_params2-mkv] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file-encode_params2-flv] PASSED [ 65%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file-encode_params3-mov] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file-encode_params3-mp4] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file-encode_params3-avi] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file-encode_params3-mkv] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file-encode_params3-flv] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file_like-encode_params0-mov] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file_like-encode_params0-mp4] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file_like-encode_params0-avi] SKIPPED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file_like-encode_params0-mkv] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file_like-encode_params0-flv] SKIPPED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file_like-encode_params1-mov] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file_like-encode_params1-mp4] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file_like-encode_params1-avi] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file_like-encode_params1-mkv] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file_like-encode_params1-flv] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file_like-encode_params2-mov] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file_like-encode_params2-mp4] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file_like-encode_params2-avi] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file_like-encode_params2-mkv] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file_like-encode_params2-flv] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file_like-encode_params3-mov] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file_like-encode_params3-mp4] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file_like-encode_params3-avi] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file_like-encode_params3-mkv] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[30-to_file_like-encode_params3-flv] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file-encode_params0-mov] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file-encode_params0-mp4] PASSED [ 66%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file-encode_params0-avi] SKIPPED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file-encode_params0-mkv] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file-encode_params0-flv] SKIPPED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file-encode_params1-mov] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file-encode_params1-mp4] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file-encode_params1-avi] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file-encode_params1-mkv] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file-encode_params1-flv] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file-encode_params2-mov] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file-encode_params2-mp4] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file-encode_params2-avi] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file-encode_params2-mkv] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file-encode_params2-flv] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file-encode_params3-mov] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file-encode_params3-mp4] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file-encode_params3-avi] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file-encode_params3-mkv] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file-encode_params3-flv] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file_like-encode_params0-mov] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file_like-encode_params0-mp4] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file_like-encode_params0-avi] SKIPPED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file_like-encode_params0-mkv] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file_like-encode_params0-flv] SKIPPED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file_like-encode_params1-mov] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file_like-encode_params1-mp4] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file_like-encode_params1-avi] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file_like-encode_params1-mkv] PASSED [ 67%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file_like-encode_params1-flv] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file_like-encode_params2-mov] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file_like-encode_params2-mp4] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file_like-encode_params2-avi] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file_like-encode_params2-mkv] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file_like-encode_params2-flv] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file_like-encode_params3-mov] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file_like-encode_params3-mp4] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file_like-encode_params3-avi] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file_like-encode_params3-mkv] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_video_against_ffmpeg_cli[29.97-to_file_like-encode_params3-flv] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-None-None-asset0] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-None-None-asset1] FAILED [ 68%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-None-0-asset0] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-None-0-asset1] FAILED [ 68%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-None-44100-asset0] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-None-44100-asset1] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-None-999999999-asset0] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-None-999999999-asset1] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-1-None-asset0] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-1-None-asset1] FAILED [ 68%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-1-0-asset0] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-1-0-asset1] FAILED [ 68%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-1-44100-asset0] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-1-44100-asset1] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-1-999999999-asset0] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-1-999999999-asset1] PASSED [ 68%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-2-None-asset0] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-2-None-asset1] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-2-0-asset0] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-2-0-asset1] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-2-44100-asset0] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-2-44100-asset1] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-2-999999999-asset0] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-2-999999999-asset1] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-None-None-asset0] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-None-None-asset1] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-None-0-asset0] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-None-0-asset1] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-None-44100-asset0] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-None-44100-asset1] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-None-999999999-asset0] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-None-999999999-asset1] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-1-None-asset0] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-1-None-asset1] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-1-0-asset0] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-1-0-asset1] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-1-44100-asset0] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-1-44100-asset1] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-1-999999999-asset0] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-1-999999999-asset1] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-2-None-asset0] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-2-None-asset1] PASSED [ 69%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-2-0-asset0] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-2-0-asset1] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-2-44100-asset0] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-2-44100-asset1] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-2-999999999-asset0] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-32000-2-999999999-asset1] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-None-None-asset0] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-None-None-asset1] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-None-0-asset0] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-None-0-asset1] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-None-44100-asset0] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-None-44100-asset1] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-None-999999999-asset0] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-None-999999999-asset1] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-1-None-asset0] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-1-None-asset1] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-1-0-asset0] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-1-0-asset1] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-1-44100-asset0] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-1-44100-asset1] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-1-999999999-asset0] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-1-999999999-asset1] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-2-None-asset0] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-2-None-asset1] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-2-0-asset0] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-2-0-asset1] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-2-44100-asset0] PASSED [ 70%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-2-44100-asset1] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-2-999999999-asset0] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-8000-2-999999999-asset1] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-None-None-asset0] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-None-None-asset1] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-None-0-asset0] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-None-0-asset1] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-None-44100-asset0] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-None-44100-asset1] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-None-999999999-asset0] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-None-999999999-asset1] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-1-None-asset0] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-1-None-asset1] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-1-0-asset0] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-1-0-asset1] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-1-44100-asset0] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-1-44100-asset1] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-1-999999999-asset0] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-1-999999999-asset1] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-2-None-asset0] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-2-None-asset1] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-2-0-asset0] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-2-0-asset1] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-2-44100-asset0] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-2-44100-asset1] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-2-999999999-asset0] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-wav-32000-2-999999999-asset1] PASSED [ 71%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-None-None-asset0] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-None-None-asset1] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-None-0-asset0] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-None-0-asset1] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-None-44100-asset0] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-None-44100-asset1] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-None-999999999-asset0] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-None-999999999-asset1] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-1-None-asset0] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-1-None-asset1] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-1-0-asset0] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-1-0-asset1] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-1-44100-asset0] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-1-44100-asset1] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-1-999999999-asset0] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-1-999999999-asset1] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-2-None-asset0] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-2-None-asset1] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-2-0-asset0] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-2-0-asset1] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-2-44100-asset0] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-2-44100-asset1] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-2-999999999-asset0] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-8000-2-999999999-asset1] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-None-None-asset0] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-None-None-asset1] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-None-0-asset0] PASSED [ 72%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-None-0-asset1] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-None-44100-asset0] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-None-44100-asset1] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-None-999999999-asset0] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-None-999999999-asset1] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-1-None-asset0] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-1-None-asset1] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-1-0-asset0] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-1-0-asset1] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-1-44100-asset0] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-1-44100-asset1] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-1-999999999-asset0] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-1-999999999-asset1] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-2-None-asset0] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-2-None-asset1] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-2-0-asset0] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-2-0-asset1] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-2-44100-asset0] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-2-44100-asset1] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-2-999999999-asset0] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-flac-32000-2-999999999-asset1] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-None-None-asset0] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-None-None-asset1] FAILED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-None-0-asset0] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-None-0-asset1] FAILED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-None-44100-asset0] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-None-44100-asset1] PASSED [ 73%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-None-999999999-asset0] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-None-999999999-asset1] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-1-None-asset0] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-1-None-asset1] FAILED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-1-0-asset0] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-1-0-asset1] FAILED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-1-44100-asset0] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-1-44100-asset1] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-1-999999999-asset0] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-1-999999999-asset1] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-2-None-asset0] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-2-None-asset1] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-2-0-asset0] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-2-0-asset1] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-2-44100-asset0] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-2-44100-asset1] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-2-999999999-asset0] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-2-999999999-asset1] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-None-None-asset0] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-None-None-asset1] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-None-0-asset0] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-None-0-asset1] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-None-44100-asset0] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-None-44100-asset1] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-None-999999999-asset0] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-None-999999999-asset1] PASSED [ 74%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-1-None-asset0] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-1-None-asset1] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-1-0-asset0] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-1-0-asset1] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-1-44100-asset0] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-1-44100-asset1] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-1-999999999-asset0] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-1-999999999-asset1] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-2-None-asset0] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-2-None-asset1] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-2-0-asset0] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-2-0-asset1] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-2-44100-asset0] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-2-44100-asset1] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-2-999999999-asset0] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-32000-2-999999999-asset1] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-None-None-asset0] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-None-None-asset1] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-None-0-asset0] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-None-0-asset1] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-None-44100-asset0] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-None-44100-asset1] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-None-999999999-asset0] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-None-999999999-asset1] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-1-None-asset0] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-1-None-asset1] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-1-0-asset0] PASSED [ 75%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-1-0-asset1] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-1-44100-asset0] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-1-44100-asset1] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-1-999999999-asset0] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-1-999999999-asset1] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-2-None-asset0] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-2-None-asset1] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-2-0-asset0] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-2-0-asset1] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-2-44100-asset0] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-2-44100-asset1] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-2-999999999-asset0] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-8000-2-999999999-asset1] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-None-None-asset0] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-None-None-asset1] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-None-0-asset0] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-None-0-asset1] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-None-44100-asset0] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-None-44100-asset1] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-None-999999999-asset0] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-None-999999999-asset1] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-1-None-asset0] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-1-None-asset1] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-1-0-asset0] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-1-0-asset1] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-1-44100-asset0] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-1-44100-asset1] PASSED [ 76%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-1-999999999-asset0] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-1-999999999-asset1] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-2-None-asset0] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-2-None-asset1] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-2-0-asset0] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-2-0-asset1] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-2-44100-asset0] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-2-44100-asset1] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-2-999999999-asset0] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-wav-32000-2-999999999-asset1] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-None-None-asset0] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-None-None-asset1] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-None-0-asset0] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-None-0-asset1] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-None-44100-asset0] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-None-44100-asset1] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-None-999999999-asset0] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-None-999999999-asset1] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-1-None-asset0] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-1-None-asset1] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-1-0-asset0] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-1-0-asset1] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-1-44100-asset0] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-1-44100-asset1] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-1-999999999-asset0] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-1-999999999-asset1] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-2-None-asset0] PASSED [ 77%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-2-None-asset1] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-2-0-asset0] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-2-0-asset1] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-2-44100-asset0] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-2-44100-asset1] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-2-999999999-asset0] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-8000-2-999999999-asset1] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-None-None-asset0] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-None-None-asset1] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-None-0-asset0] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-None-0-asset1] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-None-44100-asset0] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-None-44100-asset1] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-None-999999999-asset0] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-None-999999999-asset1] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-1-None-asset0] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-1-None-asset1] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-1-0-asset0] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-1-0-asset1] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-1-44100-asset0] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-1-44100-asset1] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-1-999999999-asset0] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-1-999999999-asset1] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-2-None-asset0] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-2-None-asset1] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-2-0-asset0] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-2-0-asset1] PASSED [ 78%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-2-44100-asset0] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-2-44100-asset1] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-2-999999999-asset0] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-flac-32000-2-999999999-asset1] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_video_round_trip[to_file-mov] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_video_round_trip[to_file-mp4] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_video_round_trip[to_file-mkv] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_video_round_trip[to_file_like-mov] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_video_round_trip[to_file_like-mp4] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_video_round_trip[to_file_like-mkv] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_audio_round_trip[to_file-wav] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_audio_round_trip[to_file-flac] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_audio_round_trip[to_file_like-wav] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_audio_round_trip[to_file_like-flac] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_video_to_file_vs_to_file_like[mov] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_video_to_file_vs_to_file_like[mp4] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_video_to_file_vs_to_file_like[avi] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_video_to_file_vs_to_file_like[mkv] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_video_to_file_vs_to_file_like[flv] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_audio_to_file_vs_to_file_like[mp3] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_audio_to_file_vs_to_file_like[wav] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_audio_to_file_vs_to_file_like[flac] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_video_contiguity[cpu-to_file] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_video_contiguity[cpu-to_file_like] PASSED [ 79%] test/test_encoders.py::TestEncoder::test_video_contiguity[cuda-to_file] SKIPPED [ 79%] test/test_encoders.py::TestEncoder::test_video_contiguity[cuda-to_file_like] SKIPPED [ 79%] test/test_encoders.py::TestEncoder::test_audio_contiguity[to_file] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_audio_contiguity[to_file_like] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_add_audio_out_sample_rate[to_file] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_add_audio_out_sample_rate[to_file_like] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_pixel_format_errors[to_file] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_pixel_format_errors[to_file_like] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_pixel_format_gpu_override_errors[to_file] SKIPPED [ 80%] test/test_encoders.py::TestEncoder::test_pixel_format_gpu_override_errors[to_file_like] SKIPPED [ 80%] test/test_encoders.py::TestEncoder::test_extra_options_errors[to_file-extra_options0-qp=-10 is out of valid range] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_extra_options_errors[to_file-extra_options1-Option qp expects a numeric value but got] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_extra_options_errors[to_file-extra_options2-Option direct-pred expects a numeric value but got 'a'] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_extra_options_errors[to_file-extra_options3-avcodec_open2 failed: Invalid argument] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_extra_options_errors[to_file_like-extra_options0-qp=-10 is out of valid range] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_extra_options_errors[to_file_like-extra_options1-Option qp expects a numeric value but got] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_extra_options_errors[to_file_like-extra_options2-Option direct-pred expects a numeric value but got 'a'] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_extra_options_errors[to_file_like-extra_options3-avcodec_open2 failed: Invalid argument] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_write_frames_wrong_dtype_errors[to_file] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_write_frames_wrong_dtype_errors[to_file_like] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_write_frames_wrong_ndim_errors[to_file] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_write_frames_wrong_ndim_errors[to_file_like] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_write_frames_wrong_num_channels_errors[to_file] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_write_frames_wrong_num_channels_errors[to_file_like] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_add_audio_invalid_sample_rate_errors[to_file] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_add_audio_invalid_sample_rate_errors[to_file_like] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_add_audio_invalid_num_channels_errors[to_file] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_add_audio_invalid_num_channels_errors[to_file_like] PASSED [ 80%] test/test_encoders.py::TestEncoder::test_to_file_like_custom_file_object PASSED [ 80%] test/test_encoders.py::TestEncoder::test_to_file_like_custom_file_object_audio PASSED [ 81%] test/test_encoders.py::TestEncoder::test_to_file_like_real_file_video PASSED [ 81%] test/test_encoders.py::TestEncoder::test_to_file_like_real_file_audio PASSED [ 81%] test/test_encoders.py::TestEncoder::test_to_file_like_bad_methods_video PASSED [ 81%] test/test_encoders.py::TestEncoder::test_to_file_like_bad_methods_audio PASSED [ 81%] test/test_encoders.py::TestEncoder::test_codec_parameter_utilized[mp4-h264-to_file] PASSED [ 81%] test/test_encoders.py::TestEncoder::test_codec_parameter_utilized[mp4-h264-to_file_like] PASSED [ 81%] test/test_encoders.py::TestEncoder::test_codec_parameter_utilized[mp4-hevc-to_file] PASSED [ 81%] test/test_encoders.py::TestEncoder::test_codec_parameter_utilized[mp4-hevc-to_file_like] PASSED [ 81%] test/test_encoders.py::TestEncoder::test_codec_parameter_utilized[mkv-av1-to_file] PASSED [ 81%] test/test_encoders.py::TestEncoder::test_codec_parameter_utilized[mkv-av1-to_file_like] PASSED [ 81%] test/test_encoders.py::TestEncoder::test_codec_parameter_utilized[avi-mpeg4-to_file] PASSED [ 81%] test/test_encoders.py::TestEncoder::test_codec_parameter_utilized[avi-mpeg4-to_file_like] PASSED [ 81%] test/test_encoders.py::TestEncoder::test_codec_parameter_utilized[webm-vp9-to_file] PASSED [ 81%] test/test_encoders.py::TestEncoder::test_codec_parameter_utilized[webm-vp9-to_file_like] PASSED [ 81%] test/test_encoders.py::TestEncoder::test_codec_spec_vs_impl_equivalence[h264-libx264-to_file] PASSED [ 81%] test/test_encoders.py::TestEncoder::test_codec_spec_vs_impl_equivalence[h264-libx264-to_file_like] PASSED [ 81%] test/test_encoders.py::TestEncoder::test_codec_spec_vs_impl_equivalence[av1-libaom-av1-to_file] PASSED [ 81%] test/test_encoders.py::TestEncoder::test_codec_spec_vs_impl_equivalence[av1-libaom-av1-to_file_like] PASSED [ 81%] test/test_encoders.py::TestEncoder::test_codec_spec_vs_impl_equivalence[vp9-libvpx-vp9-to_file] PASSED [ 81%] test/test_encoders.py::TestEncoder::test_codec_spec_vs_impl_equivalence[vp9-libvpx-vp9-to_file_like] PASSED [ 81%] test/test_encoders.py::TestEncoder::test_extra_options_utilized[baseline-bt709-tv] PASSED [ 81%] test/test_encoders.py::TestEncoder::test_extra_options_utilized[main-bt470bg-pc] PASSED [ 81%] test/test_encoders.py::TestEncoder::test_extra_options_utilized[high-fcc-pc] PASSED [ 81%] test/test_encoders.py::TestEncoder::test_crf_valid_values[23-to_file] PASSED [ 81%] test/test_encoders.py::TestEncoder::test_crf_valid_values[23-to_file_like] PASSED [ 81%] test/test_encoders.py::TestEncoder::test_crf_valid_values[23.5-to_file] PASSED [ 81%] test/test_encoders.py::TestEncoder::test_crf_valid_values[23.5-to_file_like] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_crf_valid_values[-0.9-to_file] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_crf_valid_values[-0.9-to_file_like] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_audio_bit_rate_positive_values[None-to_file] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_audio_bit_rate_positive_values[None-to_file_like] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_audio_bit_rate_positive_values[0-to_file] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_audio_bit_rate_positive_values[0-to_file_like] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_audio_bit_rate_positive_values[44100-to_file] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_audio_bit_rate_positive_values[44100-to_file_like] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_audio_bit_rate_positive_values[999999999-to_file] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_audio_bit_rate_positive_values[999999999-to_file_like] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_multiple_audio_formats[wav-to_file] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_multiple_audio_formats[wav-to_file_like] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_multiple_audio_formats[mp3-to_file] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_multiple_audio_formats[mp3-to_file_like] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_multiple_audio_formats[flac-to_file] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_multiple_audio_formats[flac-to_file_like] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_non_integer_frame_rate[to_file] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_non_integer_frame_rate[to_file_like] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_preset_parameter[to_file] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_preset_parameter[to_file_like] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_invalid_codec_name_errors[to_file] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_invalid_codec_name_errors[to_file_like] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_crf_out_of_range_errors[to_file] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_crf_out_of_range_errors[to_file_like] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_invalid_preset_errors[to_file] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_invalid_preset_errors[to_file_like] PASSED [ 82%] test/test_encoders.py::TestEncoder::test_fragmented_mp4_truncation[to_file-mp4] PASSED [ 83%] test/test_encoders.py::TestEncoder::test_fragmented_mp4_truncation[to_file-mov] PASSED [ 83%] test/test_encoders.py::TestEncoder::test_fragmented_mp4_truncation[to_file_like-mp4] PASSED [ 83%] test/test_encoders.py::TestEncoder::test_fragmented_mp4_truncation[to_file_like-mov] PASSED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt470bg-mov-None-to_file] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt470bg-mov-None-to_file_like] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt470bg-mov-h264_nvenc-to_file] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt470bg-mov-h264_nvenc-to_file_like] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt470bg-avi-h264_nvenc-to_file] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt470bg-avi-h264_nvenc-to_file_like] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt470bg-mp4-hevc_nvenc-to_file] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt470bg-mp4-hevc_nvenc-to_file_like] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt470bg-mkv-av1_nvenc-to_file] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt470bg-mkv-av1_nvenc-to_file_like] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt709-mov-None-to_file] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt709-mov-None-to_file_like] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt709-mov-h264_nvenc-to_file] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt709-mov-h264_nvenc-to_file_like] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt709-avi-h264_nvenc-to_file] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt709-avi-h264_nvenc-to_file_like] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt709-mp4-hevc_nvenc-to_file] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt709-mp4-hevc_nvenc-to_file_like] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt709-mkv-av1_nvenc-to_file] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt709-mkv-av1_nvenc-to_file_like] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt2020nc-mov-None-to_file] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt2020nc-mov-None-to_file_like] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt2020nc-mov-h264_nvenc-to_file] SKIPPED [ 83%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt2020nc-mov-h264_nvenc-to_file_like] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt2020nc-avi-h264_nvenc-to_file] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt2020nc-avi-h264_nvenc-to_file_like] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt2020nc-mp4-hevc_nvenc-to_file] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt2020nc-mp4-hevc_nvenc-to_file_like] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt2020nc-mkv-av1_nvenc-to_file] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-bt2020nc-mkv-av1_nvenc-to_file_like] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-None-mov-None-to_file] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-None-mov-None-to_file_like] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-None-mov-h264_nvenc-to_file] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-None-mov-h264_nvenc-to_file_like] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-None-avi-h264_nvenc-to_file] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-None-avi-h264_nvenc-to_file_like] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-None-mp4-hevc_nvenc-to_file] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-None-mp4-hevc_nvenc-to_file_like] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-None-mkv-av1_nvenc-to_file] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[pc-None-mkv-av1_nvenc-to_file_like] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt470bg-mov-None-to_file] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt470bg-mov-None-to_file_like] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt470bg-mov-h264_nvenc-to_file] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt470bg-mov-h264_nvenc-to_file_like] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt470bg-avi-h264_nvenc-to_file] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt470bg-avi-h264_nvenc-to_file_like] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt470bg-mp4-hevc_nvenc-to_file] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt470bg-mp4-hevc_nvenc-to_file_like] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt470bg-mkv-av1_nvenc-to_file] SKIPPED [ 84%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt470bg-mkv-av1_nvenc-to_file_like] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt709-mov-None-to_file] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt709-mov-None-to_file_like] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt709-mov-h264_nvenc-to_file] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt709-mov-h264_nvenc-to_file_like] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt709-avi-h264_nvenc-to_file] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt709-avi-h264_nvenc-to_file_like] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt709-mp4-hevc_nvenc-to_file] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt709-mp4-hevc_nvenc-to_file_like] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt709-mkv-av1_nvenc-to_file] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt709-mkv-av1_nvenc-to_file_like] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt2020nc-mov-None-to_file] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt2020nc-mov-None-to_file_like] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt2020nc-mov-h264_nvenc-to_file] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt2020nc-mov-h264_nvenc-to_file_like] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt2020nc-avi-h264_nvenc-to_file] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt2020nc-avi-h264_nvenc-to_file_like] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt2020nc-mp4-hevc_nvenc-to_file] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt2020nc-mp4-hevc_nvenc-to_file_like] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt2020nc-mkv-av1_nvenc-to_file] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-bt2020nc-mkv-av1_nvenc-to_file_like] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-None-mov-None-to_file] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-None-mov-None-to_file_like] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-None-mov-h264_nvenc-to_file] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-None-mov-h264_nvenc-to_file_like] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-None-avi-h264_nvenc-to_file] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-None-avi-h264_nvenc-to_file_like] SKIPPED [ 85%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-None-mp4-hevc_nvenc-to_file] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-None-mp4-hevc_nvenc-to_file_like] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-None-mkv-av1_nvenc-to_file] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[tv-None-mkv-av1_nvenc-to_file_like] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt470bg-mov-None-to_file] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt470bg-mov-None-to_file_like] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt470bg-mov-h264_nvenc-to_file] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt470bg-mov-h264_nvenc-to_file_like] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt470bg-avi-h264_nvenc-to_file] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt470bg-avi-h264_nvenc-to_file_like] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt470bg-mp4-hevc_nvenc-to_file] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt470bg-mp4-hevc_nvenc-to_file_like] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt470bg-mkv-av1_nvenc-to_file] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt470bg-mkv-av1_nvenc-to_file_like] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt709-mov-None-to_file] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt709-mov-None-to_file_like] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt709-mov-h264_nvenc-to_file] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt709-mov-h264_nvenc-to_file_like] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt709-avi-h264_nvenc-to_file] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt709-avi-h264_nvenc-to_file_like] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt709-mp4-hevc_nvenc-to_file] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt709-mp4-hevc_nvenc-to_file_like] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt709-mkv-av1_nvenc-to_file] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt709-mkv-av1_nvenc-to_file_like] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt2020nc-mov-None-to_file] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt2020nc-mov-None-to_file_like] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt2020nc-mov-h264_nvenc-to_file] SKIPPED [ 86%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt2020nc-mov-h264_nvenc-to_file_like] SKIPPED [ 87%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt2020nc-avi-h264_nvenc-to_file] SKIPPED [ 87%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt2020nc-avi-h264_nvenc-to_file_like] SKIPPED [ 87%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt2020nc-mp4-hevc_nvenc-to_file] SKIPPED [ 87%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt2020nc-mp4-hevc_nvenc-to_file_like] SKIPPED [ 87%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt2020nc-mkv-av1_nvenc-to_file] SKIPPED [ 87%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-bt2020nc-mkv-av1_nvenc-to_file_like] SKIPPED [ 87%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-None-mov-None-to_file] SKIPPED [ 87%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-None-mov-None-to_file_like] SKIPPED [ 87%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-None-mov-h264_nvenc-to_file] SKIPPED [ 87%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-None-mov-h264_nvenc-to_file_like] SKIPPED [ 87%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-None-avi-h264_nvenc-to_file] SKIPPED [ 87%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-None-avi-h264_nvenc-to_file_like] SKIPPED [ 87%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-None-mp4-hevc_nvenc-to_file] SKIPPED [ 87%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-None-mp4-hevc_nvenc-to_file_like] SKIPPED [ 87%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-None-mkv-av1_nvenc-to_file] SKIPPED [ 87%] test/test_encoders.py::TestEncoder::test_nvenc_against_ffmpeg_cli[None-None-mkv-av1_nvenc-to_file_like] SKIPPED [ 87%] test/test_encoders.py::TestEncoder::test_write_samples_wrong_dtype_errors[to_file] PASSED [ 87%] test/test_encoders.py::TestEncoder::test_write_samples_wrong_dtype_errors[to_file_like] PASSED [ 87%] test/test_encoders.py::TestEncoder::test_write_samples_wrong_ndim_errors[to_file] PASSED [ 87%] test/test_encoders.py::TestEncoder::test_write_samples_wrong_ndim_errors[to_file_like] PASSED [ 87%] test/test_encoders.py::TestEncoder::test_add_audio_unsupported_num_channels_errors[to_file] PASSED [ 87%] test/test_encoders.py::TestEncoder::test_add_audio_unsupported_num_channels_errors[to_file_like] PASSED [ 87%] test/test_encoders.py::TestEncoder::test_add_audio_invalid_out_sample_rate_errors[to_file] PASSED [ 87%] test/test_encoders.py::TestEncoder::test_add_audio_invalid_out_sample_rate_errors[to_file_like] PASSED [ 87%] test/test_encoders.py::TestImageEncoders::test_dest_variants_match[png] PASSED [ 87%] test/test_encoders.py::TestImageEncoders::test_dest_variants_match[jpeg] PASSED [ 87%] test/test_encoders.py::TestImageEncoders::test_dest_variants_match[jpeg_cuda] SKIPPED [ 88%] test/test_encoders.py::TestImageEncoders::test_dest_str_and_pathlib[png] PASSED [ 88%] test/test_encoders.py::TestImageEncoders::test_dest_str_and_pathlib[jpeg] PASSED [ 88%] test/test_encoders.py::TestImageEncoders::test_dest_str_and_pathlib[jpeg_cuda] SKIPPED [ 88%] test/test_encoders.py::TestImageEncoders::test_dest_open_file_object[png] PASSED [ 88%] test/test_encoders.py::TestImageEncoders::test_dest_open_file_object[jpeg] PASSED [ 88%] test/test_encoders.py::TestImageEncoders::test_dest_open_file_object[jpeg_cuda] SKIPPED [ 88%] test/test_encoders.py::TestImageEncoders::test_round_trip_png[0-asset0-RGB] PASSED [ 88%] test/test_encoders.py::TestImageEncoders::test_round_trip_png[0-asset1-GRAY] PASSED [ 88%] test/test_encoders.py::TestImageEncoders::test_round_trip_png[6-asset0-RGB] PASSED [ 88%] test/test_encoders.py::TestImageEncoders::test_round_trip_png[6-asset1-GRAY] PASSED [ 88%] test/test_encoders.py::TestImageEncoders::test_round_trip_png[9-asset0-RGB] PASSED [ 88%] test/test_encoders.py::TestImageEncoders::test_round_trip_png[9-asset1-GRAY] PASSED [ 88%] test/test_encoders.py::TestImageEncoders::test_against_pil_png PASSED [ 88%] test/test_encoders.py::TestImageEncoders::test_compression_level_affects_size_png PASSED [ 88%] test/test_encoders.py::TestImageEncoders::test_default_compression_level_png PASSED [ 88%] test/test_encoders.py::TestImageEncoders::test_bad_compression_level_png[-1] PASSED [ 88%] test/test_encoders.py::TestImageEncoders::test_bad_compression_level_png[10] PASSED [ 88%] test/test_encoders.py::TestImageEncoders::test_to_tensor_png PASSED [ 88%] test/test_encoders.py::TestImageEncoders::test_round_trip_jpeg[25-35-cpu] PASSED [ 88%] test/test_encoders.py::TestImageEncoders::test_round_trip_jpeg[25-35-cuda] SKIPPED [ 88%] test/test_encoders.py::TestImageEncoders::test_round_trip_jpeg[75-40-cpu] PASSED [ 88%] test/test_encoders.py::TestImageEncoders::test_round_trip_jpeg[75-40-cuda] SKIPPED [ 88%] test/test_encoders.py::TestImageEncoders::test_round_trip_jpeg[95-42-cpu] PASSED [ 88%] test/test_encoders.py::TestImageEncoders::test_round_trip_jpeg[95-42-cuda] SKIPPED [ 88%] test/test_encoders.py::TestImageEncoders::test_round_trip_jpeg_grayscale[25-35] PASSED [ 88%] test/test_encoders.py::TestImageEncoders::test_round_trip_jpeg_grayscale[75-40] PASSED [ 88%] test/test_encoders.py::TestImageEncoders::test_round_trip_jpeg_grayscale[95-42] PASSED [ 89%] test/test_encoders.py::TestImageEncoders::test_quality_affects_size_jpeg[cpu] PASSED [ 89%] test/test_encoders.py::TestImageEncoders::test_quality_affects_size_jpeg[cuda] SKIPPED [ 89%] test/test_encoders.py::TestImageEncoders::test_to_tensor_jpeg[cpu] PASSED [ 89%] test/test_encoders.py::TestImageEncoders::test_to_tensor_jpeg[cuda] SKIPPED [ 89%] test/test_encoders.py::TestImageEncoders::test_bad_quality_jpeg[-1] PASSED [ 89%] test/test_encoders.py::TestImageEncoders::test_bad_quality_jpeg[101] PASSED [ 89%] test/test_encoders.py::TestImageEncoders::test_grayscale_jpeg_cuda_errors SKIPPED [ 89%] test/test_encoders.py::TestImageEncoders::test_bad_dtype[png] PASSED [ 89%] test/test_encoders.py::TestImageEncoders::test_bad_dtype[jpeg] PASSED [ 89%] test/test_encoders.py::TestImageEncoders::test_bad_dtype[jpeg_cuda] SKIPPED [ 89%] test/test_encoders.py::TestImageEncoders::test_bad_ndim[shape0-png] PASSED [ 89%] test/test_encoders.py::TestImageEncoders::test_bad_ndim[shape0-jpeg] PASSED [ 89%] test/test_encoders.py::TestImageEncoders::test_bad_ndim[shape0-jpeg_cuda] SKIPPED [ 89%] test/test_encoders.py::TestImageEncoders::test_bad_ndim[shape1-png] PASSED [ 89%] test/test_encoders.py::TestImageEncoders::test_bad_ndim[shape1-jpeg] PASSED [ 89%] test/test_encoders.py::TestImageEncoders::test_bad_ndim[shape1-jpeg_cuda] SKIPPED [ 89%] test/test_encoders.py::TestImageEncoders::test_bad_num_channels[2-png] PASSED [ 89%] test/test_encoders.py::TestImageEncoders::test_bad_num_channels[2-jpeg] PASSED [ 89%] test/test_encoders.py::TestImageEncoders::test_bad_num_channels[2-jpeg_cuda] SKIPPED [ 89%] test/test_encoders.py::TestImageEncoders::test_bad_num_channels[4-png] PASSED [ 89%] test/test_encoders.py::TestImageEncoders::test_bad_num_channels[4-jpeg] PASSED [ 89%] test/test_encoders.py::TestImageEncoders::test_bad_num_channels[4-jpeg_cuda] SKIPPED [ 89%] test/test_encoders.py::TestImageEncoders::test_bad_file_like[png] PASSED [ 89%] test/test_encoders.py::TestImageEncoders::test_bad_file_like[jpeg] PASSED [ 89%] test/test_encoders.py::TestImageEncoders::test_bad_file_like[jpeg_cuda] SKIPPED [ 89%] test/test_ffmpeg_optional.py::test_ffmpeg_is_really_absent SKIPPED (...) [ 90%] test/test_ffmpeg_optional.py::test_image_decoders_work_without_ffmpeg[jpeg] SKIPPED [ 90%] test/test_ffmpeg_optional.py::test_image_decoders_work_without_ffmpeg[png] SKIPPED [ 90%] test/test_ffmpeg_optional.py::test_image_decoders_work_without_ffmpeg[webp] SKIPPED [ 90%] test/test_ffmpeg_optional.py::test_image_decoders_work_without_ffmpeg[gif] SKIPPED [ 90%] test/test_ffmpeg_optional.py::test_image_decoders_work_without_ffmpeg[avif] SKIPPED [ 90%] test/test_ffmpeg_optional.py::test_image_decoders_work_without_ffmpeg[image] SKIPPED [ 90%] test/test_ffmpeg_optional.py::test_ffmpeg_entry_points_raise_clear_error[VideoDecoder] SKIPPED [ 90%] test/test_ffmpeg_optional.py::test_ffmpeg_entry_points_raise_clear_error[AudioDecoder] SKIPPED [ 90%] test/test_ffmpeg_optional.py::test_ffmpeg_entry_points_raise_clear_error[WavDecoder] SKIPPED [ 90%] test/test_ffmpeg_optional.py::test_ffmpeg_entry_points_raise_clear_error[VideoEncoder] SKIPPED [ 90%] test/test_ffmpeg_optional.py::test_ffmpeg_entry_points_raise_clear_error[AudioEncoder] SKIPPED [ 90%] test/test_ffmpeg_optional.py::test_ffmpeg_entry_points_raise_clear_error[Encoder] SKIPPED [ 90%] test/test_frame_dataclasses.py::test_unpacking PASSED [ 90%] test/test_frame_dataclasses.py::test_frame_error PASSED [ 90%] test/test_frame_dataclasses.py::test_framebatch_error PASSED [ 90%] test/test_frame_dataclasses.py::test_framebatch_iteration PASSED [ 90%] test/test_frame_dataclasses.py::test_framebatch_indexing PASSED [ 90%] test/test_frame_dataclasses.py::test_audio_samples_error PASSED [ 90%] test/test_logging.py::TestLogging::test_cpp_logger[ALL] SKIPPED (CUD...) [ 90%] test/test_logging.py::TestLogging::test_cpp_logger[OFF] SKIPPED (CUD...) [ 90%] test/test_logging.py::TestLogging::test_cpp_logger[default] SKIPPED [ 90%] test/test_logging.py::TestLogging::test_python_logger[ALL] PASSED [ 90%] test/test_logging.py::TestLogging::test_python_logger[OFF] PASSED [ 90%] test/test_logging.py::TestLogging::test_get_set_log_level PASSED [ 90%] test/test_logging.py::TestLogging::test_bad_log_level PASSED [ 90%] test/test_metadata.py::test_get_metadata[get_container_metadata_from_header] PASSED [ 90%] test/test_metadata.py::test_get_metadata[metadata_getter1] PASSED [ 91%] test/test_metadata.py::test_get_metadata[metadata_getter2] PASSED [ 91%] test/test_metadata.py::test_get_metadata[metadata_getter3] PASSED [ 91%] test/test_metadata.py::test_get_metadata_audio_file[get_container_metadata_from_header] PASSED [ 91%] test/test_metadata.py::test_get_metadata_audio_file[metadata_getter1] PASSED [ 91%] test/test_metadata.py::test_rotation_metadata PASSED [ 91%] test/test_metadata.py::test_color_metadata PASSED [ 91%] test/test_metadata.py::test_repr PASSED [ 91%] test/test_ops.py::TestVideoDecoderOps::test_seek_and_next[cpu] PASSED [ 91%] test/test_ops.py::TestVideoDecoderOps::test_seek_and_next[cuda] SKIPPED [ 91%] test/test_ops.py::TestVideoDecoderOps::test_seek_and_next[cuda:ffmpeg] SKIPPED [ 91%] test/test_ops.py::TestVideoDecoderOps::test_seek_to_negative_pts[cpu] PASSED [ 91%] test/test_ops.py::TestVideoDecoderOps::test_seek_to_negative_pts[cuda] SKIPPED [ 91%] test/test_ops.py::TestVideoDecoderOps::test_seek_to_negative_pts[cuda:ffmpeg] SKIPPED [ 91%] test/test_ops.py::TestVideoDecoderOps::test_get_frame_at_pts[cpu] PASSED [ 91%] test/test_ops.py::TestVideoDecoderOps::test_get_frame_at_pts[cuda] SKIPPED [ 91%] test/test_ops.py::TestVideoDecoderOps::test_get_frame_at_pts[cuda:ffmpeg] SKIPPED [ 91%] test/test_ops.py::TestVideoDecoderOps::test_get_frame_at_index[cpu] PASSED [ 91%] test/test_ops.py::TestVideoDecoderOps::test_get_frame_at_index[cuda] SKIPPED [ 91%] test/test_ops.py::TestVideoDecoderOps::test_get_frame_at_index[cuda:ffmpeg] SKIPPED [ 91%] test/test_ops.py::TestVideoDecoderOps::test_get_frame_with_info_at_index[cpu] PASSED [ 91%] test/test_ops.py::TestVideoDecoderOps::test_get_frame_with_info_at_index[cuda] SKIPPED [ 91%] test/test_ops.py::TestVideoDecoderOps::test_get_frame_with_info_at_index[cuda:ffmpeg] SKIPPED [ 91%] test/test_ops.py::TestVideoDecoderOps::test_get_frames_at_indices[cpu] PASSED [ 91%] test/test_ops.py::TestVideoDecoderOps::test_get_frames_at_indices[cuda] SKIPPED [ 91%] test/test_ops.py::TestVideoDecoderOps::test_get_frames_at_indices[cuda:ffmpeg] SKIPPED [ 91%] test/test_ops.py::TestVideoDecoderOps::test_get_frames_at_indices_unsorted_indices[cpu] PASSED [ 91%] test/test_ops.py::TestVideoDecoderOps::test_get_frames_at_indices_unsorted_indices[cuda] SKIPPED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_get_frames_at_indices_unsorted_indices[cuda:ffmpeg] SKIPPED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_get_frames_at_indices_negative_indices[cpu] PASSED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_get_frames_at_indices_negative_indices[cuda] SKIPPED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_get_frames_at_indices_negative_indices[cuda:ffmpeg] SKIPPED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_get_frames_at_indices_fail_on_invalid_negative_indices[cpu] PASSED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_get_frames_at_indices_fail_on_invalid_negative_indices[cuda] SKIPPED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_get_frames_at_indices_fail_on_invalid_negative_indices[cuda:ffmpeg] SKIPPED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_get_frames_by_pts[cpu] PASSED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_get_frames_by_pts[cuda] SKIPPED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_get_frames_by_pts[cuda:ffmpeg] SKIPPED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_pts_apis_against_index_ref[cpu] PASSED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_pts_apis_against_index_ref[cuda] SKIPPED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_pts_apis_against_index_ref[cuda:ffmpeg] SKIPPED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_get_frames_in_range[cpu] PASSED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_get_frames_in_range[cuda] SKIPPED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_get_frames_in_range[cuda:ffmpeg] SKIPPED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_throws_exception_at_eof[cpu] PASSED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_throws_exception_at_eof[cuda] SKIPPED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_throws_exception_at_eof[cuda:ffmpeg] SKIPPED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_throws_exception_if_seek_too_far[cpu] PASSED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_throws_exception_if_seek_too_far[cuda] SKIPPED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_throws_exception_if_seek_too_far[cuda:ffmpeg] SKIPPED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_compile_seek_and_next[cpu] SKIPPED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_compile_seek_and_next[cuda] SKIPPED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_compile_seek_and_next[cuda:ffmpeg] SKIPPED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_create_decoder[file-cpu] PASSED [ 92%] test/test_ops.py::TestVideoDecoderOps::test_create_decoder[file-cuda] SKIPPED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_create_decoder[file-cuda:ffmpeg] SKIPPED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_create_decoder[tensor-cpu] PASSED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_create_decoder[tensor-cuda] SKIPPED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_create_decoder[tensor-cuda:ffmpeg] SKIPPED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_create_decoder[bytes-cpu] PASSED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_create_decoder[bytes-cuda] SKIPPED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_create_decoder[bytes-cuda:ffmpeg] SKIPPED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_create_decoder[file_like_rawio-cpu] PASSED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_create_decoder[file_like_rawio-cuda] SKIPPED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_create_decoder[file_like_rawio-cuda:ffmpeg] SKIPPED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_create_decoder[file_like_bufferedio-cpu] PASSED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_create_decoder[file_like_bufferedio-cuda] SKIPPED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_create_decoder[file_like_bufferedio-cuda:ffmpeg] SKIPPED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_video_get_json_metadata PASSED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_video_get_json_metadata_with_stream PASSED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_get_ffmpeg_version PASSED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_frame_pts_equality PASSED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_seek_mode_custom_frame_mappings_fails PASSED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_seek_mode_custom_frame_mappings[cpu] PASSED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_seek_mode_custom_frame_mappings[cuda] SKIPPED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_seek_mode_custom_frame_mappings[cuda:ffmpeg] SKIPPED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_color_conversion_library[filtergraph] PASSED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_color_conversion_library[swscale] PASSED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_color_conversion_library_with_dimension_order[filtergraph-NHWC] PASSED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_color_conversion_library_with_dimension_order[filtergraph-NCHW] PASSED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_color_conversion_library_with_dimension_order[swscale-NHWC] PASSED [ 93%] test/test_ops.py::TestVideoDecoderOps::test_color_conversion_library_with_dimension_order[swscale-NCHW] PASSED [ 94%] test/test_ops.py::TestVideoDecoderOps::test_cuda_decoder SKIPPED (CU...) [ 94%] test/test_ops.py::TestAudioDecoderOps::test_audio_bad_method[method0] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_audio_bad_method[method1] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_audio_bad_method[method2] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_audio_bad_method[method3] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_audio_bad_method[method4] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_audio_bad_method[method5] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_audio_bad_seek_mode PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_next[asset0] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_next[asset1] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_get_frames_by_pts_in_range_audio[asset0-begin_to_end] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_get_frames_by_pts_in_range_audio[asset0-begin_to_None] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_get_frames_by_pts_in_range_audio[asset0-begin_to_beyond_end] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_get_frames_by_pts_in_range_audio[asset0-at_frame_boundaries] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_get_frames_by_pts_in_range_audio[asset0-not_at_frame_boundaries] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_get_frames_by_pts_in_range_audio[asset1-begin_to_end] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_get_frames_by_pts_in_range_audio[asset1-begin_to_None] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_get_frames_by_pts_in_range_audio[asset1-begin_to_beyond_end] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_get_frames_by_pts_in_range_audio[asset1-at_frame_boundaries] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_get_frames_by_pts_in_range_audio[asset1-not_at_frame_boundaries] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_decode_epsilon_range[asset0] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_decode_epsilon_range[asset1] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_decode_just_one_frame_at_boundaries[asset0] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_decode_just_one_frame_at_boundaries[asset1] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_decode_start_equal_stop[asset0] PASSED [ 94%] test/test_ops.py::TestAudioDecoderOps::test_decode_start_equal_stop[asset1] PASSED [ 95%] test/test_ops.py::TestAudioDecoderOps::test_multiple_calls[asset0] PASSED [ 95%] test/test_ops.py::TestAudioDecoderOps::test_multiple_calls[asset1] PASSED [ 95%] test/test_ops.py::TestAudioDecoderOps::test_pts[asset0] PASSED [ 95%] test/test_ops.py::TestAudioDecoderOps::test_pts[asset1] PASSED [ 95%] test/test_ops.py::TestAudioDecoderOps::test_sample_rate_conversion PASSED [ 95%] test/test_ops.py::TestAudioDecoderOps::test_file_like_decoding[cpu-0] PASSED [ 95%] test/test_ops.py::TestAudioDecoderOps::test_file_like_decoding[cpu-1024] PASSED [ 95%] test/test_ops.py::TestAudioDecoderOps::test_file_like_decoding[cuda-0] SKIPPED [ 95%] test/test_ops.py::TestAudioDecoderOps::test_file_like_decoding[cuda-1024] SKIPPED [ 95%] test/test_ops.py::TestAudioDecoderOps::test_file_like_decoding[cuda:ffmpeg-0] SKIPPED [ 95%] test/test_ops.py::TestAudioDecoderOps::test_file_like_decoding[cuda:ffmpeg-1024] SKIPPED [ 95%] test/test_ops.py::TestAudioDecoderOps::test_file_like_method_check_fails PASSED [ 95%] test/test_ops.py::TestAudioDecoderOps::test_file_like_read_fails PASSED [ 95%] test/test_ops.py::TestAudioDecoderOps::test_file_like_read_less_than_requested[half] PASSED [ 95%] test/test_ops.py::TestAudioDecoderOps::test_file_like_read_less_than_requested[minus_10] PASSED [ 95%] test/test_policy.py::test_policy[repeat_last-frame_indices0-expected_frame_indices0] PASSED [ 95%] test/test_policy.py::test_policy[repeat_last-frame_indices1-expected_frame_indices1] PASSED [ 95%] test/test_policy.py::test_policy[wrap-frame_indices2-expected_frame_indices2] PASSED [ 95%] test/test_policy.py::test_policy[wrap-frame_indices3-expected_frame_indices3] PASSED [ 95%] test/test_policy.py::test_error_policy PASSED [ 95%] test/test_samplers.py::test_index_based_sampler[1-clips_at_random_indices] PASSED [ 95%] test/test_samplers.py::test_index_based_sampler[1-clips_at_regular_indices] PASSED [ 95%] test/test_samplers.py::test_index_based_sampler[5-clips_at_random_indices] PASSED [ 95%] test/test_samplers.py::test_index_based_sampler[5-clips_at_regular_indices] PASSED [ 95%] test/test_samplers.py::test_time_based_sampler[None-sampler0] PASSED [ 95%] test/test_samplers.py::test_time_based_sampler[None-sampler1] PASSED [ 95%] test/test_samplers.py::test_time_based_sampler[3-sampler0] PASSED [ 96%] test/test_samplers.py::test_time_based_sampler[3-sampler1] PASSED [ 96%] test/test_samplers.py::test_against_ref[sampler0] PASSED [ 96%] test/test_samplers.py::test_against_ref[sampler1] PASSED [ 96%] test/test_samplers.py::test_against_ref[sampler2] PASSED [ 96%] test/test_samplers.py::test_against_ref[sampler3] PASSED [ 96%] test/test_samplers.py::test_sampling_range[sampler0-10-11-True] PASSED [ 96%] test/test_samplers.py::test_sampling_range[sampler1-10-12-False] PASSED [ 96%] test/test_samplers.py::test_sampling_range[sampler2-10-11-True] PASSED [ 96%] test/test_samplers.py::test_sampling_range[sampler3-10-12-False] PASSED [ 96%] test/test_samplers.py::test_sampling_range[sampler4-10.0-11.0-True] PASSED [ 96%] test/test_samplers.py::test_sampling_range[sampler5-10.0-12.0-False] PASSED [ 96%] test/test_samplers.py::test_sampling_range[sampler6-10-11-True] PASSED [ 96%] test/test_samplers.py::test_sampling_range[sampler7-10-12-False] PASSED [ 96%] test/test_samplers.py::test_sampling_range_negative[clips_at_random_indices] PASSED [ 96%] test/test_samplers.py::test_sampling_range_negative[clips_at_regular_indices] PASSED [ 96%] test/test_samplers.py::test_sampling_range_default_behavior_random_sampler[clips_at_random_indices] PASSED [ 96%] test/test_samplers.py::test_sampling_range_default_behavior_random_sampler[clips_at_random_timestamps] PASSED [ 96%] test/test_samplers.py::test_sampling_range_default_regular_sampler[sampler0] PASSED [ 96%] test/test_samplers.py::test_sampling_range_default_regular_sampler[sampler1] PASSED [ 96%] test/test_samplers.py::test_sampling_range_error_policy[sampler0] PASSED [ 96%] test/test_samplers.py::test_sampling_range_error_policy[sampler1] PASSED [ 96%] test/test_samplers.py::test_sampling_range_error_policy[sampler2] PASSED [ 96%] test/test_samplers.py::test_sampling_range_error_policy[sampler3] PASSED [ 96%] test/test_samplers.py::test_random_sampler_randomness[clips_at_random_indices] PASSED [ 96%] test/test_samplers.py::test_random_sampler_randomness[clips_at_random_timestamps] PASSED [ 96%] test/test_samplers.py::test_sample_at_regular_indices_num_clips_large[10-10] PASSED [ 96%] test/test_samplers.py::test_sample_at_regular_indices_num_clips_large[50-10] PASSED [ 97%] test/test_samplers.py::test_sampler_errors[clips_at_random_indices] PASSED [ 97%] test/test_samplers.py::test_sampler_errors[clips_at_regular_indices] PASSED [ 97%] test/test_samplers.py::test_sampler_errors[sampler2] PASSED [ 97%] test/test_samplers.py::test_sampler_errors[clips_at_random_timestamps] PASSED [ 97%] test/test_samplers.py::test_index_based_samplers_errors[clips_at_random_indices] PASSED [ 97%] test/test_samplers.py::test_index_based_samplers_errors[clips_at_regular_indices] PASSED [ 97%] test/test_samplers.py::test_time_based_sampler_errors[clips_at_random_timestamps] PASSED [ 97%] test/test_samplers.py::test_time_based_sampler_errors[sampler1] PASSED [ 97%] test/test_samplers.py::test_build_all_clips_indices[clip_start_indices0-1-repeat_last-expected_all_clips_indices0] PASSED [ 97%] test/test_samplers.py::test_build_all_clips_indices[clip_start_indices1-2-repeat_last-expected_all_clips_indices1] PASSED [ 97%] test/test_samplers.py::test_build_all_clips_indices[clip_start_indices2-1-wrap-expected_all_clips_indices2] PASSED [ 97%] test/test_samplers.py::test_build_all_clips_indices[clip_start_indices3-2-wrap-expected_all_clips_indices3] PASSED [ 97%] test/test_samplers.py::test_build_all_clips_timestamps[clip_start_seconds0-1.5-repeat_last-expected_all_clips_timestamps0] PASSED [ 97%] test/test_samplers.py::test_build_all_clips_timestamps[clip_start_seconds1-1.5-wrap-expected_all_clips_timestamps1] PASSED [ 97%] test/test_samplers.py::test_floating_point_precision_in_clips_at_regular_timestamps[repeat_last] PASSED [ 97%] test/test_samplers.py::test_floating_point_precision_in_clips_at_regular_timestamps[wrap] PASSED [ 97%] test/test_samplers.py::test_floating_point_precision_in_clips_at_regular_timestamps[error] PASSED [ 97%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_resize_torchvision[video0-1.5-1.31] PASSED [ 97%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_resize_torchvision[video0-0.5-0.71] PASSED [ 97%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_resize_torchvision[video0-0.7-1.31] PASSED [ 97%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_resize_torchvision[video0-1.5-0.71] PASSED [ 97%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_resize_torchvision[video0-1.0-1.0] PASSED [ 97%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_resize_torchvision[video0-2.0-2.0] PASSED [ 97%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_resize_torchvision[video1-1.5-1.31] PASSED [ 97%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_resize_torchvision[video1-0.5-0.71] PASSED [ 97%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_resize_torchvision[video1-0.7-1.31] PASSED [ 97%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_resize_torchvision[video1-1.5-0.71] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_resize_torchvision[video1-1.0-1.0] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_resize_torchvision[video1-2.0-2.0] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_resize_fails PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_resize_non_32_aligned_input_width PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_center_crop_torchvision[video0-0.5-0.5] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_center_crop_torchvision[video0-0.25-0.1] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_center_crop_torchvision[video0-1.0-1.0] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_center_crop_torchvision[video0-0.15-0.75] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_center_crop_torchvision[video1-0.5-0.5] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_center_crop_torchvision[video1-0.25-0.1] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_center_crop_torchvision[video1-1.0-1.0] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_center_crop_torchvision[video1-0.15-0.75] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_center_crop_fails PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_torchvision[0-video0-0.5-0.5] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_torchvision[0-video0-0.25-0.1] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_torchvision[0-video0-1.0-1.0] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_torchvision[0-video0-0.15-0.75] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_torchvision[0-video1-0.5-0.5] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_torchvision[0-video1-0.25-0.1] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_torchvision[0-video1-1.0-1.0] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_torchvision[0-video1-0.15-0.75] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_torchvision[1234-video0-0.5-0.5] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_torchvision[1234-video0-0.25-0.1] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_torchvision[1234-video0-1.0-1.0] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_torchvision[1234-video0-0.15-0.75] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_torchvision[1234-video1-0.5-0.5] PASSED [ 98%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_torchvision[1234-video1-0.25-0.1] PASSED [ 99%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_torchvision[1234-video1-1.0-1.0] PASSED [ 99%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_torchvision[1234-video1-0.15-0.75] PASSED [ 99%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_nhwc[0.25-0.1] PASSED [ 99%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_nhwc[0.25-0.25] PASSED [ 99%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_fails[must not specify padding-params0] PASSED [ 99%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_fails[must not specify pad_if_needed-params1] PASSED [ 99%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_fails[fill must be 0-params2] PASSED [ 99%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_fails[padding_mode must be constant-params3] PASSED [ 99%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_reusable_objects[0] PASSED [ 99%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_random_crop_reusable_objects[314] PASSED [ 99%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_transform_pipeline[Resize-RandomCrop0] PASSED [ 99%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_transform_pipeline[Resize-RandomCrop1] PASSED [ 99%] test/test_transform_ops.py::TestPublicVideoDecoderTransformOps::test_transform_fails PASSED [ 99%] test/test_transform_ops.py::TestCoreVideoDecoderTransformOps::test_color_conversion_library[video0] PASSED [ 99%] test/test_transform_ops.py::TestCoreVideoDecoderTransformOps::test_color_conversion_library[video1] PASSED [ 99%] test/test_transform_ops.py::TestCoreVideoDecoderTransformOps::test_color_conversion_library[video2] PASSED [ 99%] test/test_transform_ops.py::TestCoreVideoDecoderTransformOps::test_color_conversion_library_with_generated_videos[128-30] PASSED [ 99%] test/test_transform_ops.py::TestCoreVideoDecoderTransformOps::test_color_conversion_library_with_generated_videos[128-32] PASSED [ 99%] test/test_transform_ops.py::TestCoreVideoDecoderTransformOps::test_color_conversion_library_with_generated_videos[128-300] PASSED [ 99%] test/test_transform_ops.py::TestCoreVideoDecoderTransformOps::test_scaling_on_cuda_fails SKIPPED [ 99%] test/test_transform_ops.py::TestCoreVideoDecoderTransformOps::test_transform_fails PASSED [ 99%] test/test_transform_ops.py::TestCoreVideoDecoderTransformOps::test_resize_ffmpeg PASSED [ 99%] test/test_transform_ops.py::TestCoreVideoDecoderTransformOps::test_resize_transform_fails PASSED [ 99%] test/test_transform_ops.py::TestCoreVideoDecoderTransformOps::test_crop_transform PASSED [ 99%] test/test_transform_ops.py::TestCoreVideoDecoderTransformOps::test_crop_transform_fails PASSED [ 99%] test/test_version.py::test_version PASSED [100%] =================================== FAILURES =================================== ____ TestEncoder.test_audio_against_cli[to_file-mp3-8000-None-None-asset1] _____ self = asset = TestAudio(filename='sine_mono_s32.wav', default_stream_index=0, stream_infos={0: TestAudioStreamInfo(sample_rate=16000...e-02, 1.0622e-01, 1.5264e-01, 1.9501e-01, 2.3131e-01, 2.6058e-01, 2.8226e-01, 2.9559e-01]])]}) bit_rate = None, num_channels = None, sample_rate = 8000, format = 'mp3' method = 'to_file' tmp_path = PosixPath('/build/pytest-of-nixbld/pytest-0/test_audio_against_cli_to_file0') capfd = <_pytest.capture.CaptureFixture object at 0x7ffcc0198e10> with_ffmpeg_debug_logs = None @needs_ffmpeg_cli @pytest.mark.parametrize("asset", (NASA_AUDIO_MP3, SINE_MONO_S32)) @pytest.mark.parametrize("bit_rate", (None, 0, 44_100, 999_999_999)) @pytest.mark.parametrize("num_channels", (None, 1, 2)) @pytest.mark.parametrize("sample_rate", (8_000, 32_000)) @pytest.mark.parametrize( "format", [ # TODO: https://github.com/pytorch/torchcodec/issues/837 pytest.param( "mp3", marks=pytest.mark.skipif( IS_WINDOWS and ffmpeg_major_version <= 5, reason="Encoding mp3 on Windows is weirdly buggy", ), ), pytest.param( "wav", marks=pytest.mark.skipif( ffmpeg_major_version == 4, reason="Swresample with FFmpeg 4 doesn't work on wav files", ), ), "flac", ], ) @pytest.mark.parametrize("method", ("to_file", "to_file_like")) @pytest.mark.skipif( IS_WINDOWS and ffmpeg_major_version >= 8, reason="against_cli tests fail on Windows with FFmpeg 8", ) def test_audio_against_cli( self, asset, bit_rate, num_channels, sample_rate, format, method, tmp_path, capfd, with_ffmpeg_debug_logs, ): # Encodes samples with our encoder and with the FFmpeg CLI, and checks # that both decoded outputs are equal source_audio = AudioDecoder(str(asset.path)).get_all_samples() source_samples = source_audio.data in_sample_rate = source_audio.sample_rate in_num_channels = source_samples.shape[0] out_num_channels = num_channels if num_channels is not None else in_num_channels # Encode with FFmpeg CLI encoded_by_ffmpeg = tmp_path / f"ffmpeg_output.{format}" subprocess.run( ["/nix/store/xpiqh1qirmiwi3hy0vs7kcl1qyggainc-ffmpeg-headless-9.0.1-bin/bin/ffmpeg", "-i", str(asset.path)] + (["-b:a", f"{bit_rate}"] if bit_rate is not None else []) + (["-ac", f"{out_num_channels}"] if num_channels is not None else []) + ["-ar", f"{sample_rate}"] + [str(encoded_by_ffmpeg)], capture_output=True, check=True, ) # Encode with Encoder enc, encoder_output, open_kwargs = self._create_encoder( method, tmp_path, format ) audio = enc.add_audio( sample_rate=in_sample_rate, num_channels=in_num_channels, bit_rate=bit_rate, out_num_channels=num_channels, out_sample_rate=sample_rate, ) self._open_encoder(enc, open_kwargs) audio.add_samples(source_samples) enc.close() captured = capfd.readouterr() if format == "wav": assert "Timestamps are unset in a packet" not in captured.err if format == "mp3": assert "Queue input is backward in time" not in captured.err if format in ("flac", "wav"): assert "Encoder did not produce proper pts" not in captured.err if format in ("flac", "mp3"): assert "Application provided invalid" not in captured.err if IS_WINDOWS_WITH_FFMPEG_LE_70 and format == "mp3": # We're getting a "Could not open input file" on Windows mp3 # files when decoding. # TODO: https://github.com/pytorch/torchcodec/issues/837 return samples_by_us = AudioDecoder( self._get_decoder_source(encoder_output) ).get_all_samples() samples_by_ffmpeg = AudioDecoder(str(encoded_by_ffmpeg)).get_all_samples() assert_close = torch.testing.assert_close if sample_rate != in_sample_rate: if platform.machine().lower() == "aarch64": rtol, atol = 0, 1e-2 else: rtol, atol = 0, 1e-3 if sys.platform == "darwin": assert_close = partial(assert_tensor_close_on_at_least, percentage=99) elif format == "wav": rtol, atol = 0, 1e-4 elif format == "mp3" and asset is SINE_MONO_S32 and num_channels == 2: # Not sure why, this one needs slightly higher tol. With default # tolerances, the check fails on ~1% of the samples, so that's # probably fine. It might be that the FFmpeg CLI doesn't rely on # libswresample for converting channels? rtol, atol = 0, 1e-3 else: rtol, atol = None, None > assert_close( samples_by_us.data, samples_by_ffmpeg.data, rtol=rtol, atol=atol, ) E AssertionError: Tensor-likes are not close! E E Mismatched elements: 51 / 32000 (0.2%) E Greatest absolute difference: 0.0017298758029937744 at index (0, 7044) (up to 0.001 allowed) E Greatest relative difference: 0.05868266522884369 at index (0, 7032) (up to 0 allowed) test/test_encoders.py:1190: AssertionError ----------------------------- Captured stderr call ----------------------------- [AVFormatContext @ 0x555565e1c6c0] Opening '/build/pytest-of-nixbld/pytest-0/test_audio_against_cli_to_file0/test.mp3' for reading [file @ 0x555565da2e80] Setting default whitelist 'file,crypto,data' [mp3 @ 0x555565e1c6c0] Format mp3 probed with size=2048 and score=52 id3v2 ver:4 flags:00 len:34 [mp3 @ 0x555565e1c6c0] pad 576 832 [mp3 @ 0x555565e1c6c0] Skipping 0 bytes of junk at 260. [mp3 @ 0x555565e1c6c0] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0x555565e1c6c0] demuxer injecting skip 1105 / discard 0 [mp3float @ 0x55555ec88a40] skip 1105 / discard 0 samples due to side data [mp3float @ 0x55555ec88a40] skip whole frame, skip left: 529 [mp3 @ 0x555565e1c6c0] All info found [mp3 @ 0x555565e1c6c0] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0x55555ec88a40] skip 1105 / discard 0 samples due to side data [mp3float @ 0x55555ec88a40] skip whole frame, skip left: 529 [mp3float @ 0x55555ec88a40] skip 529/576 samples [mp3 @ 0x555565e1c6c0] demuxer injecting skip 0 / discard 303 [mp3float @ 0x55555ec88a40] skip 0 / discard 303 samples due to side data [mp3float @ 0x55555ec88a40] discard 303/576 samples [AVIOContext @ 0x55555edf3e00] Statistics: 4436 bytes read, 0 seeks [AVFormatContext @ 0x55555e05d980] Opening '/build/pytest-of-nixbld/pytest-0/test_audio_against_cli_to_file0/ffmpeg_output.mp3' for reading [file @ 0x555565da2f40] Setting default whitelist 'file,crypto,data' [mp3 @ 0x55555e05d980] Format mp3 probed with size=2048 and score=52 id3v2 ver:4 flags:00 len:34 [mp3 @ 0x55555e05d980] pad 576 832 [mp3 @ 0x55555e05d980] Skipping 0 bytes of junk at 260. [mp3 @ 0x55555e05d980] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0x55555e05d980] demuxer injecting skip 1105 / discard 0 [mp3float @ 0x55555ecbc200] skip 1105 / discard 0 samples due to side data [mp3float @ 0x55555ecbc200] skip whole frame, skip left: 529 [mp3 @ 0x55555e05d980] All info found [mp3 @ 0x55555e05d980] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0x55555ecbc200] skip 1105 / discard 0 samples due to side data [mp3float @ 0x55555ecbc200] skip whole frame, skip left: 529 [mp3float @ 0x55555ecbc200] skip 529/576 samples [mp3 @ 0x55555e05d980] demuxer injecting skip 0 / discard 303 [mp3float @ 0x55555ecbc200] skip 0 / discard 303 samples due to side data [mp3float @ 0x55555ecbc200] discard 303/576 samples [AVIOContext @ 0x55555edf3e00] Statistics: 4436 bytes read, 0 seeks ______ TestEncoder.test_audio_against_cli[to_file-mp3-8000-None-0-asset1] ______ self = asset = TestAudio(filename='sine_mono_s32.wav', default_stream_index=0, stream_infos={0: TestAudioStreamInfo(sample_rate=16000...e-02, 1.0622e-01, 1.5264e-01, 1.9501e-01, 2.3131e-01, 2.6058e-01, 2.8226e-01, 2.9559e-01]])]}) bit_rate = 0, num_channels = None, sample_rate = 8000, format = 'mp3' method = 'to_file' tmp_path = PosixPath('/build/pytest-of-nixbld/pytest-0/test_audio_against_cli_to_file1') capfd = <_pytest.capture.CaptureFixture object at 0x7ffcc01956e0> with_ffmpeg_debug_logs = None @needs_ffmpeg_cli @pytest.mark.parametrize("asset", (NASA_AUDIO_MP3, SINE_MONO_S32)) @pytest.mark.parametrize("bit_rate", (None, 0, 44_100, 999_999_999)) @pytest.mark.parametrize("num_channels", (None, 1, 2)) @pytest.mark.parametrize("sample_rate", (8_000, 32_000)) @pytest.mark.parametrize( "format", [ # TODO: https://github.com/pytorch/torchcodec/issues/837 pytest.param( "mp3", marks=pytest.mark.skipif( IS_WINDOWS and ffmpeg_major_version <= 5, reason="Encoding mp3 on Windows is weirdly buggy", ), ), pytest.param( "wav", marks=pytest.mark.skipif( ffmpeg_major_version == 4, reason="Swresample with FFmpeg 4 doesn't work on wav files", ), ), "flac", ], ) @pytest.mark.parametrize("method", ("to_file", "to_file_like")) @pytest.mark.skipif( IS_WINDOWS and ffmpeg_major_version >= 8, reason="against_cli tests fail on Windows with FFmpeg 8", ) def test_audio_against_cli( self, asset, bit_rate, num_channels, sample_rate, format, method, tmp_path, capfd, with_ffmpeg_debug_logs, ): # Encodes samples with our encoder and with the FFmpeg CLI, and checks # that both decoded outputs are equal source_audio = AudioDecoder(str(asset.path)).get_all_samples() source_samples = source_audio.data in_sample_rate = source_audio.sample_rate in_num_channels = source_samples.shape[0] out_num_channels = num_channels if num_channels is not None else in_num_channels # Encode with FFmpeg CLI encoded_by_ffmpeg = tmp_path / f"ffmpeg_output.{format}" subprocess.run( ["/nix/store/xpiqh1qirmiwi3hy0vs7kcl1qyggainc-ffmpeg-headless-9.0.1-bin/bin/ffmpeg", "-i", str(asset.path)] + (["-b:a", f"{bit_rate}"] if bit_rate is not None else []) + (["-ac", f"{out_num_channels}"] if num_channels is not None else []) + ["-ar", f"{sample_rate}"] + [str(encoded_by_ffmpeg)], capture_output=True, check=True, ) # Encode with Encoder enc, encoder_output, open_kwargs = self._create_encoder( method, tmp_path, format ) audio = enc.add_audio( sample_rate=in_sample_rate, num_channels=in_num_channels, bit_rate=bit_rate, out_num_channels=num_channels, out_sample_rate=sample_rate, ) self._open_encoder(enc, open_kwargs) audio.add_samples(source_samples) enc.close() captured = capfd.readouterr() if format == "wav": assert "Timestamps are unset in a packet" not in captured.err if format == "mp3": assert "Queue input is backward in time" not in captured.err if format in ("flac", "wav"): assert "Encoder did not produce proper pts" not in captured.err if format in ("flac", "mp3"): assert "Application provided invalid" not in captured.err if IS_WINDOWS_WITH_FFMPEG_LE_70 and format == "mp3": # We're getting a "Could not open input file" on Windows mp3 # files when decoding. # TODO: https://github.com/pytorch/torchcodec/issues/837 return samples_by_us = AudioDecoder( self._get_decoder_source(encoder_output) ).get_all_samples() samples_by_ffmpeg = AudioDecoder(str(encoded_by_ffmpeg)).get_all_samples() assert_close = torch.testing.assert_close if sample_rate != in_sample_rate: if platform.machine().lower() == "aarch64": rtol, atol = 0, 1e-2 else: rtol, atol = 0, 1e-3 if sys.platform == "darwin": assert_close = partial(assert_tensor_close_on_at_least, percentage=99) elif format == "wav": rtol, atol = 0, 1e-4 elif format == "mp3" and asset is SINE_MONO_S32 and num_channels == 2: # Not sure why, this one needs slightly higher tol. With default # tolerances, the check fails on ~1% of the samples, so that's # probably fine. It might be that the FFmpeg CLI doesn't rely on # libswresample for converting channels? rtol, atol = 0, 1e-3 else: rtol, atol = None, None > assert_close( samples_by_us.data, samples_by_ffmpeg.data, rtol=rtol, atol=atol, ) E AssertionError: Tensor-likes are not close! E E Mismatched elements: 51 / 32000 (0.2%) E Greatest absolute difference: 0.0017298758029937744 at index (0, 7044) (up to 0.001 allowed) E Greatest relative difference: 0.05868266522884369 at index (0, 7032) (up to 0 allowed) test/test_encoders.py:1190: AssertionError ----------------------------- Captured stderr call ----------------------------- [AVFormatContext @ 0x555561d17080] Opening '/build/pytest-of-nixbld/pytest-0/test_audio_against_cli_to_file1/test.mp3' for reading [file @ 0x5555613956c0] Setting default whitelist 'file,crypto,data' [mp3 @ 0x555561d17080] Format mp3 probed with size=2048 and score=52 id3v2 ver:4 flags:00 len:34 [mp3 @ 0x555561d17080] pad 576 832 [mp3 @ 0x555561d17080] Skipping 0 bytes of junk at 260. [mp3 @ 0x555561d17080] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0x555561d17080] demuxer injecting skip 1105 / discard 0 [mp3float @ 0x55555ecbc200] skip 1105 / discard 0 samples due to side data [mp3float @ 0x55555ecbc200] skip whole frame, skip left: 529 [mp3 @ 0x555561d17080] All info found [mp3 @ 0x555561d17080] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0x55555ecbc200] skip 1105 / discard 0 samples due to side data [mp3float @ 0x55555ecbc200] skip whole frame, skip left: 529 [mp3float @ 0x55555ecbc200] skip 529/576 samples [mp3 @ 0x555561d17080] demuxer injecting skip 0 / discard 303 [mp3float @ 0x55555ecbc200] skip 0 / discard 303 samples due to side data [mp3float @ 0x55555ecbc200] discard 303/576 samples [AVIOContext @ 0x55555efb1240] Statistics: 4436 bytes read, 0 seeks [AVFormatContext @ 0x555561d17080] Opening '/build/pytest-of-nixbld/pytest-0/test_audio_against_cli_to_file1/ffmpeg_output.mp3' for reading [file @ 0x55556d14c740] Setting default whitelist 'file,crypto,data' [mp3 @ 0x555561d17080] Format mp3 probed with size=2048 and score=52 id3v2 ver:4 flags:00 len:34 [mp3 @ 0x555561d17080] pad 576 832 [mp3 @ 0x555561d17080] Skipping 0 bytes of junk at 260. [mp3 @ 0x555561d17080] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0x555561d17080] demuxer injecting skip 1105 / discard 0 [mp3float @ 0x55555ecc3300] skip 1105 / discard 0 samples due to side data [mp3float @ 0x55555ecc3300] skip whole frame, skip left: 529 [mp3 @ 0x555561d17080] All info found [mp3 @ 0x555561d17080] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0x55555ecc3300] skip 1105 / discard 0 samples due to side data [mp3float @ 0x55555ecc3300] skip whole frame, skip left: 529 [mp3float @ 0x55555ecc3300] skip 529/576 samples [mp3 @ 0x555561d17080] demuxer injecting skip 0 / discard 303 [mp3float @ 0x55555ecc3300] skip 0 / discard 303 samples due to side data [mp3float @ 0x55555ecc3300] discard 303/576 samples [AVIOContext @ 0x55555efb1240] Statistics: 4436 bytes read, 0 seeks ______ TestEncoder.test_audio_against_cli[to_file-mp3-8000-1-None-asset1] ______ self = asset = TestAudio(filename='sine_mono_s32.wav', default_stream_index=0, stream_infos={0: TestAudioStreamInfo(sample_rate=16000...e-02, 1.0622e-01, 1.5264e-01, 1.9501e-01, 2.3131e-01, 2.6058e-01, 2.8226e-01, 2.9559e-01]])]}) bit_rate = None, num_channels = 1, sample_rate = 8000, format = 'mp3' method = 'to_file' tmp_path = PosixPath('/build/pytest-of-nixbld/pytest-0/test_audio_against_cli_to_file2') capfd = <_pytest.capture.CaptureFixture object at 0x7ffcc01a5c50> with_ffmpeg_debug_logs = None @needs_ffmpeg_cli @pytest.mark.parametrize("asset", (NASA_AUDIO_MP3, SINE_MONO_S32)) @pytest.mark.parametrize("bit_rate", (None, 0, 44_100, 999_999_999)) @pytest.mark.parametrize("num_channels", (None, 1, 2)) @pytest.mark.parametrize("sample_rate", (8_000, 32_000)) @pytest.mark.parametrize( "format", [ # TODO: https://github.com/pytorch/torchcodec/issues/837 pytest.param( "mp3", marks=pytest.mark.skipif( IS_WINDOWS and ffmpeg_major_version <= 5, reason="Encoding mp3 on Windows is weirdly buggy", ), ), pytest.param( "wav", marks=pytest.mark.skipif( ffmpeg_major_version == 4, reason="Swresample with FFmpeg 4 doesn't work on wav files", ), ), "flac", ], ) @pytest.mark.parametrize("method", ("to_file", "to_file_like")) @pytest.mark.skipif( IS_WINDOWS and ffmpeg_major_version >= 8, reason="against_cli tests fail on Windows with FFmpeg 8", ) def test_audio_against_cli( self, asset, bit_rate, num_channels, sample_rate, format, method, tmp_path, capfd, with_ffmpeg_debug_logs, ): # Encodes samples with our encoder and with the FFmpeg CLI, and checks # that both decoded outputs are equal source_audio = AudioDecoder(str(asset.path)).get_all_samples() source_samples = source_audio.data in_sample_rate = source_audio.sample_rate in_num_channels = source_samples.shape[0] out_num_channels = num_channels if num_channels is not None else in_num_channels # Encode with FFmpeg CLI encoded_by_ffmpeg = tmp_path / f"ffmpeg_output.{format}" subprocess.run( ["/nix/store/xpiqh1qirmiwi3hy0vs7kcl1qyggainc-ffmpeg-headless-9.0.1-bin/bin/ffmpeg", "-i", str(asset.path)] + (["-b:a", f"{bit_rate}"] if bit_rate is not None else []) + (["-ac", f"{out_num_channels}"] if num_channels is not None else []) + ["-ar", f"{sample_rate}"] + [str(encoded_by_ffmpeg)], capture_output=True, check=True, ) # Encode with Encoder enc, encoder_output, open_kwargs = self._create_encoder( method, tmp_path, format ) audio = enc.add_audio( sample_rate=in_sample_rate, num_channels=in_num_channels, bit_rate=bit_rate, out_num_channels=num_channels, out_sample_rate=sample_rate, ) self._open_encoder(enc, open_kwargs) audio.add_samples(source_samples) enc.close() captured = capfd.readouterr() if format == "wav": assert "Timestamps are unset in a packet" not in captured.err if format == "mp3": assert "Queue input is backward in time" not in captured.err if format in ("flac", "wav"): assert "Encoder did not produce proper pts" not in captured.err if format in ("flac", "mp3"): assert "Application provided invalid" not in captured.err if IS_WINDOWS_WITH_FFMPEG_LE_70 and format == "mp3": # We're getting a "Could not open input file" on Windows mp3 # files when decoding. # TODO: https://github.com/pytorch/torchcodec/issues/837 return samples_by_us = AudioDecoder( self._get_decoder_source(encoder_output) ).get_all_samples() samples_by_ffmpeg = AudioDecoder(str(encoded_by_ffmpeg)).get_all_samples() assert_close = torch.testing.assert_close if sample_rate != in_sample_rate: if platform.machine().lower() == "aarch64": rtol, atol = 0, 1e-2 else: rtol, atol = 0, 1e-3 if sys.platform == "darwin": assert_close = partial(assert_tensor_close_on_at_least, percentage=99) elif format == "wav": rtol, atol = 0, 1e-4 elif format == "mp3" and asset is SINE_MONO_S32 and num_channels == 2: # Not sure why, this one needs slightly higher tol. With default # tolerances, the check fails on ~1% of the samples, so that's # probably fine. It might be that the FFmpeg CLI doesn't rely on # libswresample for converting channels? rtol, atol = 0, 1e-3 else: rtol, atol = None, None > assert_close( samples_by_us.data, samples_by_ffmpeg.data, rtol=rtol, atol=atol, ) E AssertionError: Tensor-likes are not close! E E Mismatched elements: 51 / 32000 (0.2%) E Greatest absolute difference: 0.0017298758029937744 at index (0, 7044) (up to 0.001 allowed) E Greatest relative difference: 0.05868266522884369 at index (0, 7032) (up to 0 allowed) test/test_encoders.py:1190: AssertionError ----------------------------- Captured stderr call ----------------------------- [AVFormatContext @ 0x55555ec88e80] Opening '/build/pytest-of-nixbld/pytest-0/test_audio_against_cli_to_file2/test.mp3' for reading [file @ 0x555563f646c0] Setting default whitelist 'file,crypto,data' [mp3 @ 0x55555ec88e80] Format mp3 probed with size=2048 and score=52 id3v2 ver:4 flags:00 len:34 [mp3 @ 0x55555ec88e80] pad 576 832 [mp3 @ 0x55555ec88e80] Skipping 0 bytes of junk at 260. [mp3 @ 0x55555ec88e80] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0x55555ec88e80] demuxer injecting skip 1105 / discard 0 [mp3float @ 0x555562509ac0] skip 1105 / discard 0 samples due to side data [mp3float @ 0x555562509ac0] skip whole frame, skip left: 529 [mp3 @ 0x55555ec88e80] All info found [mp3 @ 0x55555ec88e80] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0x555562509ac0] skip 1105 / discard 0 samples due to side data [mp3float @ 0x555562509ac0] skip whole frame, skip left: 529 [mp3float @ 0x555562509ac0] skip 529/576 samples [mp3 @ 0x55555ec88e80] demuxer injecting skip 0 / discard 303 [mp3float @ 0x555562509ac0] skip 0 / discard 303 samples due to side data [mp3float @ 0x555562509ac0] discard 303/576 samples [AVIOContext @ 0x55556314cd00] Statistics: 4436 bytes read, 0 seeks [AVFormatContext @ 0x55555ec88e80] Opening '/build/pytest-of-nixbld/pytest-0/test_audio_against_cli_to_file2/ffmpeg_output.mp3' for reading [file @ 0x555565e6b3c0] Setting default whitelist 'file,crypto,data' [mp3 @ 0x55555ec88e80] Format mp3 probed with size=2048 and score=52 id3v2 ver:4 flags:00 len:34 [mp3 @ 0x55555ec88e80] pad 576 832 [mp3 @ 0x55555ec88e80] Skipping 0 bytes of junk at 260. [mp3 @ 0x55555ec88e80] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0x55555ec88e80] demuxer injecting skip 1105 / discard 0 [mp3float @ 0x555565e774c0] skip 1105 / discard 0 samples due to side data [mp3float @ 0x555565e774c0] skip whole frame, skip left: 529 [mp3 @ 0x55555ec88e80] All info found [mp3 @ 0x55555ec88e80] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0x555565e774c0] skip 1105 / discard 0 samples due to side data [mp3float @ 0x555565e774c0] skip whole frame, skip left: 529 [mp3float @ 0x555565e774c0] skip 529/576 samples [mp3 @ 0x55555ec88e80] demuxer injecting skip 0 / discard 303 [mp3float @ 0x555565e774c0] skip 0 / discard 303 samples due to side data [mp3float @ 0x555565e774c0] discard 303/576 samples [AVIOContext @ 0x55556314cd00] Statistics: 4436 bytes read, 0 seeks _______ TestEncoder.test_audio_against_cli[to_file-mp3-8000-1-0-asset1] ________ self = asset = TestAudio(filename='sine_mono_s32.wav', default_stream_index=0, stream_infos={0: TestAudioStreamInfo(sample_rate=16000...e-02, 1.0622e-01, 1.5264e-01, 1.9501e-01, 2.3131e-01, 2.6058e-01, 2.8226e-01, 2.9559e-01]])]}) bit_rate = 0, num_channels = 1, sample_rate = 8000, format = 'mp3' method = 'to_file' tmp_path = PosixPath('/build/pytest-of-nixbld/pytest-0/test_audio_against_cli_to_file3') capfd = <_pytest.capture.CaptureFixture object at 0x7ffcb0e65c70> with_ffmpeg_debug_logs = None @needs_ffmpeg_cli @pytest.mark.parametrize("asset", (NASA_AUDIO_MP3, SINE_MONO_S32)) @pytest.mark.parametrize("bit_rate", (None, 0, 44_100, 999_999_999)) @pytest.mark.parametrize("num_channels", (None, 1, 2)) @pytest.mark.parametrize("sample_rate", (8_000, 32_000)) @pytest.mark.parametrize( "format", [ # TODO: https://github.com/pytorch/torchcodec/issues/837 pytest.param( "mp3", marks=pytest.mark.skipif( IS_WINDOWS and ffmpeg_major_version <= 5, reason="Encoding mp3 on Windows is weirdly buggy", ), ), pytest.param( "wav", marks=pytest.mark.skipif( ffmpeg_major_version == 4, reason="Swresample with FFmpeg 4 doesn't work on wav files", ), ), "flac", ], ) @pytest.mark.parametrize("method", ("to_file", "to_file_like")) @pytest.mark.skipif( IS_WINDOWS and ffmpeg_major_version >= 8, reason="against_cli tests fail on Windows with FFmpeg 8", ) def test_audio_against_cli( self, asset, bit_rate, num_channels, sample_rate, format, method, tmp_path, capfd, with_ffmpeg_debug_logs, ): # Encodes samples with our encoder and with the FFmpeg CLI, and checks # that both decoded outputs are equal source_audio = AudioDecoder(str(asset.path)).get_all_samples() source_samples = source_audio.data in_sample_rate = source_audio.sample_rate in_num_channels = source_samples.shape[0] out_num_channels = num_channels if num_channels is not None else in_num_channels # Encode with FFmpeg CLI encoded_by_ffmpeg = tmp_path / f"ffmpeg_output.{format}" subprocess.run( ["/nix/store/xpiqh1qirmiwi3hy0vs7kcl1qyggainc-ffmpeg-headless-9.0.1-bin/bin/ffmpeg", "-i", str(asset.path)] + (["-b:a", f"{bit_rate}"] if bit_rate is not None else []) + (["-ac", f"{out_num_channels}"] if num_channels is not None else []) + ["-ar", f"{sample_rate}"] + [str(encoded_by_ffmpeg)], capture_output=True, check=True, ) # Encode with Encoder enc, encoder_output, open_kwargs = self._create_encoder( method, tmp_path, format ) audio = enc.add_audio( sample_rate=in_sample_rate, num_channels=in_num_channels, bit_rate=bit_rate, out_num_channels=num_channels, out_sample_rate=sample_rate, ) self._open_encoder(enc, open_kwargs) audio.add_samples(source_samples) enc.close() captured = capfd.readouterr() if format == "wav": assert "Timestamps are unset in a packet" not in captured.err if format == "mp3": assert "Queue input is backward in time" not in captured.err if format in ("flac", "wav"): assert "Encoder did not produce proper pts" not in captured.err if format in ("flac", "mp3"): assert "Application provided invalid" not in captured.err if IS_WINDOWS_WITH_FFMPEG_LE_70 and format == "mp3": # We're getting a "Could not open input file" on Windows mp3 # files when decoding. # TODO: https://github.com/pytorch/torchcodec/issues/837 return samples_by_us = AudioDecoder( self._get_decoder_source(encoder_output) ).get_all_samples() samples_by_ffmpeg = AudioDecoder(str(encoded_by_ffmpeg)).get_all_samples() assert_close = torch.testing.assert_close if sample_rate != in_sample_rate: if platform.machine().lower() == "aarch64": rtol, atol = 0, 1e-2 else: rtol, atol = 0, 1e-3 if sys.platform == "darwin": assert_close = partial(assert_tensor_close_on_at_least, percentage=99) elif format == "wav": rtol, atol = 0, 1e-4 elif format == "mp3" and asset is SINE_MONO_S32 and num_channels == 2: # Not sure why, this one needs slightly higher tol. With default # tolerances, the check fails on ~1% of the samples, so that's # probably fine. It might be that the FFmpeg CLI doesn't rely on # libswresample for converting channels? rtol, atol = 0, 1e-3 else: rtol, atol = None, None > assert_close( samples_by_us.data, samples_by_ffmpeg.data, rtol=rtol, atol=atol, ) E AssertionError: Tensor-likes are not close! E E Mismatched elements: 51 / 32000 (0.2%) E Greatest absolute difference: 0.0017298758029937744 at index (0, 7044) (up to 0.001 allowed) E Greatest relative difference: 0.05868266522884369 at index (0, 7032) (up to 0 allowed) test/test_encoders.py:1190: AssertionError ----------------------------- Captured stderr call ----------------------------- [AVFormatContext @ 0x55555ec88e80] Opening '/build/pytest-of-nixbld/pytest-0/test_audio_against_cli_to_file3/test.mp3' for reading [file @ 0x555565da2f40] Setting default whitelist 'file,crypto,data' [mp3 @ 0x55555ec88e80] Format mp3 probed with size=2048 and score=52 id3v2 ver:4 flags:00 len:34 [mp3 @ 0x55555ec88e80] pad 576 832 [mp3 @ 0x55555ec88e80] Skipping 0 bytes of junk at 260. [mp3 @ 0x55555ec88e80] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0x55555ec88e80] demuxer injecting skip 1105 / discard 0 [mp3float @ 0x555565e774c0] skip 1105 / discard 0 samples due to side data [mp3float @ 0x555565e774c0] skip whole frame, skip left: 529 [mp3 @ 0x55555ec88e80] All info found [mp3 @ 0x55555ec88e80] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0x555565e774c0] skip 1105 / discard 0 samples due to side data [mp3float @ 0x555565e774c0] skip whole frame, skip left: 529 [mp3float @ 0x555565e774c0] skip 529/576 samples [mp3 @ 0x55555ec88e80] demuxer injecting skip 0 / discard 303 [mp3float @ 0x555565e774c0] skip 0 / discard 303 samples due to side data [mp3float @ 0x555565e774c0] discard 303/576 samples [AVIOContext @ 0x555562546140] Statistics: 4436 bytes read, 0 seeks [AVFormatContext @ 0x55555ec88e80] Opening '/build/pytest-of-nixbld/pytest-0/test_audio_against_cli_to_file3/ffmpeg_output.mp3' for reading [file @ 0x55555ed7c900] Setting default whitelist 'file,crypto,data' [mp3 @ 0x55555ec88e80] Format mp3 probed with size=2048 and score=52 id3v2 ver:4 flags:00 len:34 [mp3 @ 0x55555ec88e80] pad 576 832 [mp3 @ 0x55555ec88e80] Skipping 0 bytes of junk at 260. [mp3 @ 0x55555ec88e80] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0x55555ec88e80] demuxer injecting skip 1105 / discard 0 [mp3float @ 0x5555684ef680] skip 1105 / discard 0 samples due to side data [mp3float @ 0x5555684ef680] skip whole frame, skip left: 529 [mp3 @ 0x55555ec88e80] All info found [mp3 @ 0x55555ec88e80] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0x5555684ef680] skip 1105 / discard 0 samples due to side data [mp3float @ 0x5555684ef680] skip whole frame, skip left: 529 [mp3float @ 0x5555684ef680] skip 529/576 samples [mp3 @ 0x55555ec88e80] demuxer injecting skip 0 / discard 303 [mp3float @ 0x5555684ef680] skip 0 / discard 303 samples due to side data [mp3float @ 0x5555684ef680] discard 303/576 samples [AVIOContext @ 0x555562546140] Statistics: 4436 bytes read, 0 seeks __ TestEncoder.test_audio_against_cli[to_file_like-mp3-8000-None-None-asset1] __ self = asset = TestAudio(filename='sine_mono_s32.wav', default_stream_index=0, stream_infos={0: TestAudioStreamInfo(sample_rate=16000...e-02, 1.0622e-01, 1.5264e-01, 1.9501e-01, 2.3131e-01, 2.6058e-01, 2.8226e-01, 2.9559e-01]])]}) bit_rate = None, num_channels = None, sample_rate = 8000, format = 'mp3' method = 'to_file_like' tmp_path = PosixPath('/build/pytest-of-nixbld/pytest-0/test_audio_against_cli_to_file4') capfd = <_pytest.capture.CaptureFixture object at 0x7ffcb15313d0> with_ffmpeg_debug_logs = None @needs_ffmpeg_cli @pytest.mark.parametrize("asset", (NASA_AUDIO_MP3, SINE_MONO_S32)) @pytest.mark.parametrize("bit_rate", (None, 0, 44_100, 999_999_999)) @pytest.mark.parametrize("num_channels", (None, 1, 2)) @pytest.mark.parametrize("sample_rate", (8_000, 32_000)) @pytest.mark.parametrize( "format", [ # TODO: https://github.com/pytorch/torchcodec/issues/837 pytest.param( "mp3", marks=pytest.mark.skipif( IS_WINDOWS and ffmpeg_major_version <= 5, reason="Encoding mp3 on Windows is weirdly buggy", ), ), pytest.param( "wav", marks=pytest.mark.skipif( ffmpeg_major_version == 4, reason="Swresample with FFmpeg 4 doesn't work on wav files", ), ), "flac", ], ) @pytest.mark.parametrize("method", ("to_file", "to_file_like")) @pytest.mark.skipif( IS_WINDOWS and ffmpeg_major_version >= 8, reason="against_cli tests fail on Windows with FFmpeg 8", ) def test_audio_against_cli( self, asset, bit_rate, num_channels, sample_rate, format, method, tmp_path, capfd, with_ffmpeg_debug_logs, ): # Encodes samples with our encoder and with the FFmpeg CLI, and checks # that both decoded outputs are equal source_audio = AudioDecoder(str(asset.path)).get_all_samples() source_samples = source_audio.data in_sample_rate = source_audio.sample_rate in_num_channels = source_samples.shape[0] out_num_channels = num_channels if num_channels is not None else in_num_channels # Encode with FFmpeg CLI encoded_by_ffmpeg = tmp_path / f"ffmpeg_output.{format}" subprocess.run( ["/nix/store/xpiqh1qirmiwi3hy0vs7kcl1qyggainc-ffmpeg-headless-9.0.1-bin/bin/ffmpeg", "-i", str(asset.path)] + (["-b:a", f"{bit_rate}"] if bit_rate is not None else []) + (["-ac", f"{out_num_channels}"] if num_channels is not None else []) + ["-ar", f"{sample_rate}"] + [str(encoded_by_ffmpeg)], capture_output=True, check=True, ) # Encode with Encoder enc, encoder_output, open_kwargs = self._create_encoder( method, tmp_path, format ) audio = enc.add_audio( sample_rate=in_sample_rate, num_channels=in_num_channels, bit_rate=bit_rate, out_num_channels=num_channels, out_sample_rate=sample_rate, ) self._open_encoder(enc, open_kwargs) audio.add_samples(source_samples) enc.close() captured = capfd.readouterr() if format == "wav": assert "Timestamps are unset in a packet" not in captured.err if format == "mp3": assert "Queue input is backward in time" not in captured.err if format in ("flac", "wav"): assert "Encoder did not produce proper pts" not in captured.err if format in ("flac", "mp3"): assert "Application provided invalid" not in captured.err if IS_WINDOWS_WITH_FFMPEG_LE_70 and format == "mp3": # We're getting a "Could not open input file" on Windows mp3 # files when decoding. # TODO: https://github.com/pytorch/torchcodec/issues/837 return samples_by_us = AudioDecoder( self._get_decoder_source(encoder_output) ).get_all_samples() samples_by_ffmpeg = AudioDecoder(str(encoded_by_ffmpeg)).get_all_samples() assert_close = torch.testing.assert_close if sample_rate != in_sample_rate: if platform.machine().lower() == "aarch64": rtol, atol = 0, 1e-2 else: rtol, atol = 0, 1e-3 if sys.platform == "darwin": assert_close = partial(assert_tensor_close_on_at_least, percentage=99) elif format == "wav": rtol, atol = 0, 1e-4 elif format == "mp3" and asset is SINE_MONO_S32 and num_channels == 2: # Not sure why, this one needs slightly higher tol. With default # tolerances, the check fails on ~1% of the samples, so that's # probably fine. It might be that the FFmpeg CLI doesn't rely on # libswresample for converting channels? rtol, atol = 0, 1e-3 else: rtol, atol = None, None > assert_close( samples_by_us.data, samples_by_ffmpeg.data, rtol=rtol, atol=atol, ) E AssertionError: Tensor-likes are not close! E E Mismatched elements: 51 / 32000 (0.2%) E Greatest absolute difference: 0.0017298758029937744 at index (0, 7044) (up to 0.001 allowed) E Greatest relative difference: 0.05868266522884369 at index (0, 7032) (up to 0 allowed) test/test_encoders.py:1190: AssertionError ----------------------------- Captured stderr call ----------------------------- [mp3 @ 0x55555f44a340] Format mp3 probed with size=2048 and score=52 id3v2 ver:4 flags:00 len:34 [mp3 @ 0x55555f44a340] pad 576 832 [mp3 @ 0x55555f44a340] Skipping 0 bytes of junk at 260. [mp3 @ 0x55555f44a340] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0x55555f44a340] demuxer injecting skip 1105 / discard 0 [mp3float @ 0x555563774080] skip 1105 / discard 0 samples due to side data [mp3float @ 0x555563774080] skip whole frame, skip left: 529 [mp3 @ 0x55555f44a340] All info found [mp3 @ 0x55555f44a340] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0x555563774080] skip 1105 / discard 0 samples due to side data [mp3float @ 0x555563774080] skip whole frame, skip left: 529 [mp3float @ 0x555563774080] skip 529/576 samples [mp3 @ 0x55555f44a340] demuxer injecting skip 0 / discard 303 [mp3float @ 0x555563774080] skip 0 / discard 303 samples due to side data [mp3float @ 0x555563774080] discard 303/576 samples [AVFormatContext @ 0x55555f44a340] Opening '/build/pytest-of-nixbld/pytest-0/test_audio_against_cli_to_file4/ffmpeg_output.mp3' for reading [file @ 0x555562cd2780] Setting default whitelist 'file,crypto,data' [mp3 @ 0x55555f44a340] Format mp3 probed with size=2048 and score=52 id3v2 ver:4 flags:00 len:34 [mp3 @ 0x55555f44a340] pad 576 832 [mp3 @ 0x55555f44a340] Skipping 0 bytes of junk at 260. [mp3 @ 0x55555f44a340] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0x55555f44a340] demuxer injecting skip 1105 / discard 0 [mp3float @ 0x55556ffc4180] skip 1105 / discard 0 samples due to side data [mp3float @ 0x55556ffc4180] skip whole frame, skip left: 529 [mp3 @ 0x55555f44a340] All info found [mp3 @ 0x55555f44a340] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0x55556ffc4180] skip 1105 / discard 0 samples due to side data [mp3float @ 0x55556ffc4180] skip whole frame, skip left: 529 [mp3float @ 0x55556ffc4180] skip 529/576 samples [mp3 @ 0x55555f44a340] demuxer injecting skip 0 / discard 303 [mp3float @ 0x55556ffc4180] skip 0 / discard 303 samples due to side data [mp3float @ 0x55556ffc4180] discard 303/576 samples [AVIOContext @ 0x555565e79d40] Statistics: 4436 bytes read, 0 seeks ___ TestEncoder.test_audio_against_cli[to_file_like-mp3-8000-None-0-asset1] ____ self = asset = TestAudio(filename='sine_mono_s32.wav', default_stream_index=0, stream_infos={0: TestAudioStreamInfo(sample_rate=16000...e-02, 1.0622e-01, 1.5264e-01, 1.9501e-01, 2.3131e-01, 2.6058e-01, 2.8226e-01, 2.9559e-01]])]}) bit_rate = 0, num_channels = None, sample_rate = 8000, format = 'mp3' method = 'to_file_like' tmp_path = PosixPath('/build/pytest-of-nixbld/pytest-0/test_audio_against_cli_to_file5') capfd = <_pytest.capture.CaptureFixture object at 0x7ffcb1531650> with_ffmpeg_debug_logs = None @needs_ffmpeg_cli @pytest.mark.parametrize("asset", (NASA_AUDIO_MP3, SINE_MONO_S32)) @pytest.mark.parametrize("bit_rate", (None, 0, 44_100, 999_999_999)) @pytest.mark.parametrize("num_channels", (None, 1, 2)) @pytest.mark.parametrize("sample_rate", (8_000, 32_000)) @pytest.mark.parametrize( "format", [ # TODO: https://github.com/pytorch/torchcodec/issues/837 pytest.param( "mp3", marks=pytest.mark.skipif( IS_WINDOWS and ffmpeg_major_version <= 5, reason="Encoding mp3 on Windows is weirdly buggy", ), ), pytest.param( "wav", marks=pytest.mark.skipif( ffmpeg_major_version == 4, reason="Swresample with FFmpeg 4 doesn't work on wav files", ), ), "flac", ], ) @pytest.mark.parametrize("method", ("to_file", "to_file_like")) @pytest.mark.skipif( IS_WINDOWS and ffmpeg_major_version >= 8, reason="against_cli tests fail on Windows with FFmpeg 8", ) def test_audio_against_cli( self, asset, bit_rate, num_channels, sample_rate, format, method, tmp_path, capfd, with_ffmpeg_debug_logs, ): # Encodes samples with our encoder and with the FFmpeg CLI, and checks # that both decoded outputs are equal source_audio = AudioDecoder(str(asset.path)).get_all_samples() source_samples = source_audio.data in_sample_rate = source_audio.sample_rate in_num_channels = source_samples.shape[0] out_num_channels = num_channels if num_channels is not None else in_num_channels # Encode with FFmpeg CLI encoded_by_ffmpeg = tmp_path / f"ffmpeg_output.{format}" subprocess.run( ["/nix/store/xpiqh1qirmiwi3hy0vs7kcl1qyggainc-ffmpeg-headless-9.0.1-bin/bin/ffmpeg", "-i", str(asset.path)] + (["-b:a", f"{bit_rate}"] if bit_rate is not None else []) + (["-ac", f"{out_num_channels}"] if num_channels is not None else []) + ["-ar", f"{sample_rate}"] + [str(encoded_by_ffmpeg)], capture_output=True, check=True, ) # Encode with Encoder enc, encoder_output, open_kwargs = self._create_encoder( method, tmp_path, format ) audio = enc.add_audio( sample_rate=in_sample_rate, num_channels=in_num_channels, bit_rate=bit_rate, out_num_channels=num_channels, out_sample_rate=sample_rate, ) self._open_encoder(enc, open_kwargs) audio.add_samples(source_samples) enc.close() captured = capfd.readouterr() if format == "wav": assert "Timestamps are unset in a packet" not in captured.err if format == "mp3": assert "Queue input is backward in time" not in captured.err if format in ("flac", "wav"): assert "Encoder did not produce proper pts" not in captured.err if format in ("flac", "mp3"): assert "Application provided invalid" not in captured.err if IS_WINDOWS_WITH_FFMPEG_LE_70 and format == "mp3": # We're getting a "Could not open input file" on Windows mp3 # files when decoding. # TODO: https://github.com/pytorch/torchcodec/issues/837 return samples_by_us = AudioDecoder( self._get_decoder_source(encoder_output) ).get_all_samples() samples_by_ffmpeg = AudioDecoder(str(encoded_by_ffmpeg)).get_all_samples() assert_close = torch.testing.assert_close if sample_rate != in_sample_rate: if platform.machine().lower() == "aarch64": rtol, atol = 0, 1e-2 else: rtol, atol = 0, 1e-3 if sys.platform == "darwin": assert_close = partial(assert_tensor_close_on_at_least, percentage=99) elif format == "wav": rtol, atol = 0, 1e-4 elif format == "mp3" and asset is SINE_MONO_S32 and num_channels == 2: # Not sure why, this one needs slightly higher tol. With default # tolerances, the check fails on ~1% of the samples, so that's # probably fine. It might be that the FFmpeg CLI doesn't rely on # libswresample for converting channels? rtol, atol = 0, 1e-3 else: rtol, atol = None, None > assert_close( samples_by_us.data, samples_by_ffmpeg.data, rtol=rtol, atol=atol, ) E AssertionError: Tensor-likes are not close! E E Mismatched elements: 51 / 32000 (0.2%) E Greatest absolute difference: 0.0017298758029937744 at index (0, 7044) (up to 0.001 allowed) E Greatest relative difference: 0.05868266522884369 at index (0, 7032) (up to 0 allowed) test/test_encoders.py:1190: AssertionError ----------------------------- Captured stderr call ----------------------------- [mp3 @ 0x55555f44a340] Format mp3 probed with size=2048 and score=52 id3v2 ver:4 flags:00 len:34 [mp3 @ 0x55555f44a340] pad 576 832 [mp3 @ 0x55555f44a340] Skipping 0 bytes of junk at 260. [mp3 @ 0x55555f44a340] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0x55555f44a340] demuxer injecting skip 1105 / discard 0 [mp3float @ 0x5555655a4480] skip 1105 / discard 0 samples due to side data [mp3float @ 0x5555655a4480] skip whole frame, skip left: 529 [mp3 @ 0x55555f44a340] All info found [mp3 @ 0x55555f44a340] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0x5555655a4480] skip 1105 / discard 0 samples due to side data [mp3float @ 0x5555655a4480] skip whole frame, skip left: 529 [mp3float @ 0x5555655a4480] skip 529/576 samples [mp3 @ 0x55555f44a340] demuxer injecting skip 0 / discard 303 [mp3float @ 0x5555655a4480] skip 0 / discard 303 samples due to side data [mp3float @ 0x5555655a4480] discard 303/576 samples [AVFormatContext @ 0x55555f44a340] Opening '/build/pytest-of-nixbld/pytest-0/test_audio_against_cli_to_file5/ffmpeg_output.mp3' for reading [file @ 0x5555644d3340] Setting default whitelist 'file,crypto,data' [mp3 @ 0x55555f44a340] Format mp3 probed with size=2048 and score=52 id3v2 ver:4 flags:00 len:34 [mp3 @ 0x55555f44a340] pad 576 832 [mp3 @ 0x55555f44a340] Skipping 0 bytes of junk at 260. [mp3 @ 0x55555f44a340] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0x55555f44a340] demuxer injecting skip 1105 / discard 0 [mp3float @ 0x55556ffc4180] skip 1105 / discard 0 samples due to side data [mp3float @ 0x55556ffc4180] skip whole frame, skip left: 529 [mp3 @ 0x55555f44a340] All info found [mp3 @ 0x55555f44a340] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0x55556ffc4180] skip 1105 / discard 0 samples due to side data [mp3float @ 0x55556ffc4180] skip whole frame, skip left: 529 [mp3float @ 0x55556ffc4180] skip 529/576 samples [mp3 @ 0x55555f44a340] demuxer injecting skip 0 / discard 303 [mp3float @ 0x55556ffc4180] skip 0 / discard 303 samples due to side data [mp3float @ 0x55556ffc4180] discard 303/576 samples [AVIOContext @ 0x5555644e1700] Statistics: 4436 bytes read, 0 seeks ___ TestEncoder.test_audio_against_cli[to_file_like-mp3-8000-1-None-asset1] ____ self = asset = TestAudio(filename='sine_mono_s32.wav', default_stream_index=0, stream_infos={0: TestAudioStreamInfo(sample_rate=16000...e-02, 1.0622e-01, 1.5264e-01, 1.9501e-01, 2.3131e-01, 2.6058e-01, 2.8226e-01, 2.9559e-01]])]}) bit_rate = None, num_channels = 1, sample_rate = 8000, format = 'mp3' method = 'to_file_like' tmp_path = PosixPath('/build/pytest-of-nixbld/pytest-0/test_audio_against_cli_to_file6') capfd = <_pytest.capture.CaptureFixture object at 0x7ffcb1533ad0> with_ffmpeg_debug_logs = None @needs_ffmpeg_cli @pytest.mark.parametrize("asset", (NASA_AUDIO_MP3, SINE_MONO_S32)) @pytest.mark.parametrize("bit_rate", (None, 0, 44_100, 999_999_999)) @pytest.mark.parametrize("num_channels", (None, 1, 2)) @pytest.mark.parametrize("sample_rate", (8_000, 32_000)) @pytest.mark.parametrize( "format", [ # TODO: https://github.com/pytorch/torchcodec/issues/837 pytest.param( "mp3", marks=pytest.mark.skipif( IS_WINDOWS and ffmpeg_major_version <= 5, reason="Encoding mp3 on Windows is weirdly buggy", ), ), pytest.param( "wav", marks=pytest.mark.skipif( ffmpeg_major_version == 4, reason="Swresample with FFmpeg 4 doesn't work on wav files", ), ), "flac", ], ) @pytest.mark.parametrize("method", ("to_file", "to_file_like")) @pytest.mark.skipif( IS_WINDOWS and ffmpeg_major_version >= 8, reason="against_cli tests fail on Windows with FFmpeg 8", ) def test_audio_against_cli( self, asset, bit_rate, num_channels, sample_rate, format, method, tmp_path, capfd, with_ffmpeg_debug_logs, ): # Encodes samples with our encoder and with the FFmpeg CLI, and checks # that both decoded outputs are equal source_audio = AudioDecoder(str(asset.path)).get_all_samples() source_samples = source_audio.data in_sample_rate = source_audio.sample_rate in_num_channels = source_samples.shape[0] out_num_channels = num_channels if num_channels is not None else in_num_channels # Encode with FFmpeg CLI encoded_by_ffmpeg = tmp_path / f"ffmpeg_output.{format}" subprocess.run( ["/nix/store/xpiqh1qirmiwi3hy0vs7kcl1qyggainc-ffmpeg-headless-9.0.1-bin/bin/ffmpeg", "-i", str(asset.path)] + (["-b:a", f"{bit_rate}"] if bit_rate is not None else []) + (["-ac", f"{out_num_channels}"] if num_channels is not None else []) + ["-ar", f"{sample_rate}"] + [str(encoded_by_ffmpeg)], capture_output=True, check=True, ) # Encode with Encoder enc, encoder_output, open_kwargs = self._create_encoder( method, tmp_path, format ) audio = enc.add_audio( sample_rate=in_sample_rate, num_channels=in_num_channels, bit_rate=bit_rate, out_num_channels=num_channels, out_sample_rate=sample_rate, ) self._open_encoder(enc, open_kwargs) audio.add_samples(source_samples) enc.close() captured = capfd.readouterr() if format == "wav": assert "Timestamps are unset in a packet" not in captured.err if format == "mp3": assert "Queue input is backward in time" not in captured.err if format in ("flac", "wav"): assert "Encoder did not produce proper pts" not in captured.err if format in ("flac", "mp3"): assert "Application provided invalid" not in captured.err if IS_WINDOWS_WITH_FFMPEG_LE_70 and format == "mp3": # We're getting a "Could not open input file" on Windows mp3 # files when decoding. # TODO: https://github.com/pytorch/torchcodec/issues/837 return samples_by_us = AudioDecoder( self._get_decoder_source(encoder_output) ).get_all_samples() samples_by_ffmpeg = AudioDecoder(str(encoded_by_ffmpeg)).get_all_samples() assert_close = torch.testing.assert_close if sample_rate != in_sample_rate: if platform.machine().lower() == "aarch64": rtol, atol = 0, 1e-2 else: rtol, atol = 0, 1e-3 if sys.platform == "darwin": assert_close = partial(assert_tensor_close_on_at_least, percentage=99) elif format == "wav": rtol, atol = 0, 1e-4 elif format == "mp3" and asset is SINE_MONO_S32 and num_channels == 2: # Not sure why, this one needs slightly higher tol. With default # tolerances, the check fails on ~1% of the samples, so that's # probably fine. It might be that the FFmpeg CLI doesn't rely on # libswresample for converting channels? rtol, atol = 0, 1e-3 else: rtol, atol = None, None > assert_close( samples_by_us.data, samples_by_ffmpeg.data, rtol=rtol, atol=atol, ) E AssertionError: Tensor-likes are not close! E E Mismatched elements: 51 / 32000 (0.2%) E Greatest absolute difference: 0.0017298758029937744 at index (0, 7044) (up to 0.001 allowed) E Greatest relative difference: 0.05868266522884369 at index (0, 7032) (up to 0 allowed) test/test_encoders.py:1190: AssertionError ----------------------------- Captured stderr call ----------------------------- [mp3 @ 0x55555eab3bc0] Format mp3 probed with size=2048 and score=52 id3v2 ver:4 flags:00 len:34 [mp3 @ 0x55555eab3bc0] pad 576 832 [mp3 @ 0x55555eab3bc0] Skipping 0 bytes of junk at 260. [mp3 @ 0x55555eab3bc0] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0x55555eab3bc0] demuxer injecting skip 1105 / discard 0 [mp3float @ 0x5555655a4480] skip 1105 / discard 0 samples due to side data [mp3float @ 0x5555655a4480] skip whole frame, skip left: 529 [mp3 @ 0x55555eab3bc0] All info found [mp3 @ 0x55555eab3bc0] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0x5555655a4480] skip 1105 / discard 0 samples due to side data [mp3float @ 0x5555655a4480] skip whole frame, skip left: 529 [mp3float @ 0x5555655a4480] skip 529/576 samples [mp3 @ 0x55555eab3bc0] demuxer injecting skip 0 / discard 303 [mp3float @ 0x5555655a4480] skip 0 / discard 303 samples due to side data [mp3float @ 0x5555655a4480] discard 303/576 samples [AVFormatContext @ 0x55555eab3bc0] Opening '/build/pytest-of-nixbld/pytest-0/test_audio_against_cli_to_file6/ffmpeg_output.mp3' for reading [file @ 0x5555604e4f80] Setting default whitelist 'file,crypto,data' [mp3 @ 0x55555eab3bc0] Format mp3 probed with size=2048 and score=52 id3v2 ver:4 flags:00 len:34 [mp3 @ 0x55555eab3bc0] pad 576 832 [mp3 @ 0x55555eab3bc0] Skipping 0 bytes of junk at 260. [mp3 @ 0x55555eab3bc0] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0x55555eab3bc0] demuxer injecting skip 1105 / discard 0 [mp3float @ 0x55556163a080] skip 1105 / discard 0 samples due to side data [mp3float @ 0x55556163a080] skip whole frame, skip left: 529 [mp3 @ 0x55555eab3bc0] All info found [mp3 @ 0x55555eab3bc0] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0x55556163a080] skip 1105 / discard 0 samples due to side data [mp3float @ 0x55556163a080] skip whole frame, skip left: 529 [mp3float @ 0x55556163a080] skip 529/576 samples [mp3 @ 0x55555eab3bc0] demuxer injecting skip 0 / discard 303 [mp3float @ 0x55556163a080] skip 0 / discard 303 samples due to side data [mp3float @ 0x55556163a080] discard 303/576 samples [AVIOContext @ 0x555562f132c0] Statistics: 4436 bytes read, 0 seeks _____ TestEncoder.test_audio_against_cli[to_file_like-mp3-8000-1-0-asset1] _____ self = asset = TestAudio(filename='sine_mono_s32.wav', default_stream_index=0, stream_infos={0: TestAudioStreamInfo(sample_rate=16000...e-02, 1.0622e-01, 1.5264e-01, 1.9501e-01, 2.3131e-01, 2.6058e-01, 2.8226e-01, 2.9559e-01]])]}) bit_rate = 0, num_channels = 1, sample_rate = 8000, format = 'mp3' method = 'to_file_like' tmp_path = PosixPath('/build/pytest-of-nixbld/pytest-0/test_audio_against_cli_to_file7') capfd = <_pytest.capture.CaptureFixture object at 0x7ffcb1533ed0> with_ffmpeg_debug_logs = None @needs_ffmpeg_cli @pytest.mark.parametrize("asset", (NASA_AUDIO_MP3, SINE_MONO_S32)) @pytest.mark.parametrize("bit_rate", (None, 0, 44_100, 999_999_999)) @pytest.mark.parametrize("num_channels", (None, 1, 2)) @pytest.mark.parametrize("sample_rate", (8_000, 32_000)) @pytest.mark.parametrize( "format", [ # TODO: https://github.com/pytorch/torchcodec/issues/837 pytest.param( "mp3", marks=pytest.mark.skipif( IS_WINDOWS and ffmpeg_major_version <= 5, reason="Encoding mp3 on Windows is weirdly buggy", ), ), pytest.param( "wav", marks=pytest.mark.skipif( ffmpeg_major_version == 4, reason="Swresample with FFmpeg 4 doesn't work on wav files", ), ), "flac", ], ) @pytest.mark.parametrize("method", ("to_file", "to_file_like")) @pytest.mark.skipif( IS_WINDOWS and ffmpeg_major_version >= 8, reason="against_cli tests fail on Windows with FFmpeg 8", ) def test_audio_against_cli( self, asset, bit_rate, num_channels, sample_rate, format, method, tmp_path, capfd, with_ffmpeg_debug_logs, ): # Encodes samples with our encoder and with the FFmpeg CLI, and checks # that both decoded outputs are equal source_audio = AudioDecoder(str(asset.path)).get_all_samples() source_samples = source_audio.data in_sample_rate = source_audio.sample_rate in_num_channels = source_samples.shape[0] out_num_channels = num_channels if num_channels is not None else in_num_channels # Encode with FFmpeg CLI encoded_by_ffmpeg = tmp_path / f"ffmpeg_output.{format}" subprocess.run( ["/nix/store/xpiqh1qirmiwi3hy0vs7kcl1qyggainc-ffmpeg-headless-9.0.1-bin/bin/ffmpeg", "-i", str(asset.path)] + (["-b:a", f"{bit_rate}"] if bit_rate is not None else []) + (["-ac", f"{out_num_channels}"] if num_channels is not None else []) + ["-ar", f"{sample_rate}"] + [str(encoded_by_ffmpeg)], capture_output=True, check=True, ) # Encode with Encoder enc, encoder_output, open_kwargs = self._create_encoder( method, tmp_path, format ) audio = enc.add_audio( sample_rate=in_sample_rate, num_channels=in_num_channels, bit_rate=bit_rate, out_num_channels=num_channels, out_sample_rate=sample_rate, ) self._open_encoder(enc, open_kwargs) audio.add_samples(source_samples) enc.close() captured = capfd.readouterr() if format == "wav": assert "Timestamps are unset in a packet" not in captured.err if format == "mp3": assert "Queue input is backward in time" not in captured.err if format in ("flac", "wav"): assert "Encoder did not produce proper pts" not in captured.err if format in ("flac", "mp3"): assert "Application provided invalid" not in captured.err if IS_WINDOWS_WITH_FFMPEG_LE_70 and format == "mp3": # We're getting a "Could not open input file" on Windows mp3 # files when decoding. # TODO: https://github.com/pytorch/torchcodec/issues/837 return samples_by_us = AudioDecoder( self._get_decoder_source(encoder_output) ).get_all_samples() samples_by_ffmpeg = AudioDecoder(str(encoded_by_ffmpeg)).get_all_samples() assert_close = torch.testing.assert_close if sample_rate != in_sample_rate: if platform.machine().lower() == "aarch64": rtol, atol = 0, 1e-2 else: rtol, atol = 0, 1e-3 if sys.platform == "darwin": assert_close = partial(assert_tensor_close_on_at_least, percentage=99) elif format == "wav": rtol, atol = 0, 1e-4 elif format == "mp3" and asset is SINE_MONO_S32 and num_channels == 2: # Not sure why, this one needs slightly higher tol. With default # tolerances, the check fails on ~1% of the samples, so that's # probably fine. It might be that the FFmpeg CLI doesn't rely on # libswresample for converting channels? rtol, atol = 0, 1e-3 else: rtol, atol = None, None > assert_close( samples_by_us.data, samples_by_ffmpeg.data, rtol=rtol, atol=atol, ) E AssertionError: Tensor-likes are not close! E E Mismatched elements: 51 / 32000 (0.2%) E Greatest absolute difference: 0.0017298758029937744 at index (0, 7044) (up to 0.001 allowed) E Greatest relative difference: 0.05868266522884369 at index (0, 7032) (up to 0 allowed) test/test_encoders.py:1190: AssertionError ----------------------------- Captured stderr call ----------------------------- [mp3 @ 0x55555eab3bc0] Format mp3 probed with size=2048 and score=52 id3v2 ver:4 flags:00 len:34 [mp3 @ 0x55555eab3bc0] pad 576 832 [mp3 @ 0x55555eab3bc0] Skipping 0 bytes of junk at 260. [mp3 @ 0x55555eab3bc0] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0x55555eab3bc0] demuxer injecting skip 1105 / discard 0 [mp3float @ 0x55556ffc4180] skip 1105 / discard 0 samples due to side data [mp3float @ 0x55556ffc4180] skip whole frame, skip left: 529 [mp3 @ 0x55555eab3bc0] All info found [mp3 @ 0x55555eab3bc0] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0x55556ffc4180] skip 1105 / discard 0 samples due to side data [mp3float @ 0x55556ffc4180] skip whole frame, skip left: 529 [mp3float @ 0x55556ffc4180] skip 529/576 samples [mp3 @ 0x55555eab3bc0] demuxer injecting skip 0 / discard 303 [mp3float @ 0x55556ffc4180] skip 0 / discard 303 samples due to side data [mp3float @ 0x55556ffc4180] discard 303/576 samples [AVFormatContext @ 0x55555eab3bc0] Opening '/build/pytest-of-nixbld/pytest-0/test_audio_against_cli_to_file7/ffmpeg_output.mp3' for reading [file @ 0x555562df6800] Setting default whitelist 'file,crypto,data' [mp3 @ 0x55555eab3bc0] Format mp3 probed with size=2048 and score=52 id3v2 ver:4 flags:00 len:34 [mp3 @ 0x55555eab3bc0] pad 576 832 [mp3 @ 0x55555eab3bc0] Skipping 0 bytes of junk at 260. [mp3 @ 0x55555eab3bc0] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0x55555eab3bc0] demuxer injecting skip 1105 / discard 0 [mp3float @ 0x555564253100] skip 1105 / discard 0 samples due to side data [mp3float @ 0x555564253100] skip whole frame, skip left: 529 [mp3 @ 0x55555eab3bc0] All info found [mp3 @ 0x55555eab3bc0] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0x555564253100] skip 1105 / discard 0 samples due to side data [mp3float @ 0x555564253100] skip whole frame, skip left: 529 [mp3float @ 0x555564253100] skip 529/576 samples [mp3 @ 0x55555eab3bc0] demuxer injecting skip 0 / discard 303 [mp3float @ 0x555564253100] skip 0 / discard 303 samples due to side data [mp3float @ 0x555564253100] discard 303/576 samples [AVIOContext @ 0x55555eafff00] Statistics: 4436 bytes read, 0 seeks =============================== warnings summary =============================== test/test_decoders.py::TestImageDecoder::test_torchscript[jpeg] test/test_decoders.py::TestImageDecoder::test_torchscript[png] test/test_decoders.py::TestImageDecoder::test_torchscript[webp] test/test_decoders.py::TestImageDecoder::test_torchscript[gif] test/test_decoders.py::TestImageDecoder::test_torchscript[avif] /nix/store/1jsb1k3b63y0f6w0c4z303l2d9bsxw7g-python3.14-torch-2.13.0/lib/python3.14/site-packages/torch/jit/_script.py:1482: DeprecationWarning: `torch.jit.script` is not supported in Python 3.14+ and may break. Please switch to `torch.compile` or `torch.export`. warnings.warn( -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-None-None-asset1] - AssertionError: Tensor-likes are not close! FAILED test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-None-0-asset1] - AssertionError: Tensor-likes are not close! FAILED test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-1-None-asset1] - AssertionError: Tensor-likes are not close! FAILED test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-1-0-asset1] - AssertionError: Tensor-likes are not close! FAILED test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-None-None-asset1] - AssertionError: Tensor-likes are not close! FAILED test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-None-0-asset1] - AssertionError: Tensor-likes are not close! FAILED test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-1-None-asset1] - AssertionError: Tensor-likes are not close! FAILED test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-1-0-asset1] - AssertionError: Tensor-likes are not close! = 8 failed, 1935 passed, 737 skipped, 1 deselected, 5 warnings in 328.70s (0:05:28) =