==> Updating pacman database cache :: Synchronizing package databases... core downloading... extra downloading... ==> Building python-torchcodec -> repo: extra-staging -> arch: aarch64 -> worker: ben-5 ==> Building python-torchcodec for [extra-staging] (aarch64) :: Synchronizing package databases... core-staging downloading... core-testing downloading... core downloading... extra-staging downloading... extra-testing downloading... aur downloading... extra downloading... :: Starting full system upgrade... there is nothing to do ==> Building in chroot for [extra-staging] (aarch64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-staging-aarch64/root] -> [ben-5]...done ==> Making package: python-torchcodec 0.16.0-1 (Thu Sep 17 07:26:14 2026) ==> Retrieving sources... -> Downloading torchcodec-0.16.0.tar.gz... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 9.56M 0 9.56M 0 0 6.74M 0 00:01 9.55M 100 16.58M 0 16.58M 0 0 8.50M 0 00:01 9.55M 100 16.58M 0 16.58M 0 0 8.50M 0 00:01 9.55M 100 16.58M 0 16.58M 0 0 8.50M 0 00:01 9.55M ==> Validating source files with b2sums... torchcodec-0.16.0.tar.gz ... Passed ==> Making package: python-torchcodec 0.16.0-1 (Thu Sep 17 14:26:22 2026) ==> Checking runtime dependencies... ==> Installing missing dependencies... dependencies... :: There are 2 providers available for liblsmash.: :: Repository extra-testing 1) l-smash :: Repository extra 2) l-smash Enter a number (): :: There are 2 providers available for libgl: :: Repository extra-testing 1) libglvnd :: Repository extra 2) libglvnd Enter a number (): looking for conflicting packages... warning: insufficient columns available for table display Packages (140) abseil-cpp-20260817.0-2 aom-3.15.0-1 avahi-1:0.9rc5-1 blas-3.12.1-2 cblas-3.12.1-2 cmake-4.4.3-2 cppdap-1.58.0-3 cpuinfo-r843.ea6b9f1-1 dav1d-1.5.4-1 default-cursors-3-1 double-conversion-3.4.0-1 duktape-2.7.0-7 eigen-5.0.1-2 fontconfig-2:2.18.3-2 freetype2-2.14.3-1 fribidi-1.0.16-2 gflags-2.2.2-6 google-glog-0.7.1-2 graphite-1:1.3.15-1 gtest-1.18.0-1 harfbuzz-14.4.0-1 hicolor-icon-theme-0.18-1 hwloc-2.14.0-1 jbigkit-2.1-8 jsoncpp-1.9.8-1 l-smash-2.14.5-4 lapack-3.12.1-2 lcms2-2.19.1-1 libb2-0.98.1-3 libcups-2:2.4.19-1 libdaemon-0.14-6 libde265-1.1.3-1 libdeflate-1.26-1 libdrm-2.4.134-1 libedit-20260512_3.1-1 libevdev-1.13.7-1 libfabric-2.6.0-1 libglvnd-1.7.0-3 libgudev-238-3 libice-1.1.2-1 libimagequant-4.4.1-2 libinput-1.31.3-1 libpciaccess-0.19-1 libproxy-0.5.12-1 libraqm-0.11.0-1 libsm-1.2.6-1 libtiff-4.7.2-1 liburing-2.15-1 libuv-1.52.1-2 libwacom-2.20.0-1 libx11-1.8.13-1 libxau-1.0.12-1 libxcb-1.17.0-1 libxdmcp-1.1.5-2 libxext-1.3.7-1 libxkbcommon-1.13.2-1 libxkbcommon-x11-1.13.2-1 libxshmfence-1.3.3-1 libxxf86vm-1.1.7-1 libyaml-0.2.5-3 libyuv-r2921+644251f25-1 llvm-libs-22.1.8-2 lm_sensors-1:3.6.2-1 lua54-5.4.9-1 md4c-0.5.3-1 mesa-1:26.2.2-1 mtdev-1.1.7-1 ninja-1.13.2-3 numactl-2.0.19-1 openh264-2.6.0-2 openjpeg2-2.5.4-1 openmp-22.1.8-1 openmpi-5.0.11-1 openpmix-5.0.11-1 openucx-1.20.1-3 protobuf-36.1-1 prrte-3.0.14-1 pybind11-3.1.0-1 python-certifi-2026.07.22-1 python-charset-normalizer-3.5.1-1 python-contourpy-1.4.0-1 python-cycler-0.12.1-4 python-dateutil-2.9.0-8 python-filelock-3.31.2-1 python-fonttools-4.65.0-1 python-fsspec-2026.7.0-1 python-gmpy2-2.3.1-1 python-idna-3.19-1 python-jinja-1:3.1.6-3 python-kiwisolver-1.5.1-1 python-markupsafe-3.0.3-1 python-matplotlib-3.11.2-1 python-mpmath-1.4.1-1 python-networkx-3.6.1-1 python-numpy-2.5.3-1 python-packaging-26.3-1 python-pandas-2.3.3-7 python-pathspec-1.1.1-1 python-pillow-12.3.0-1 python-platformdirs-4.11.8-1 python-pooch-1.9.0-1 python-pyparsing-3.3.2-1 python-pytz-2026.1-1 python-requests-2.34.2-1 python-scikit-build-core-1.0.3-1 python-scipy-1.18.1-1 python-six-1.17.0-3 python-sympy-1.14.0-6 python-typing_extensions-4.16.0-1 python-urllib3-2.7.0-1 python-yaml-6.0.3-2 qhull-2020.2-5 qt6-base-6.11.2-3 qt6-translations-6.11.2-1 rav1e-0.8.1-3 rhash-1.4.6-1 shared-mime-info-2.5.1-2 spirv-tools-1:1.4.357.0-1 svt-av1-4.2.0-1 tslib-1.24-1 vulkan-icd-loader-1.4.357.0-1 wayland-1.26.0-1 x264-3:0.165.r3222.b35605a-2 x265-4.3-1 xcb-proto-1.17.0-4 xcb-util-0.4.1-2 xcb-util-cursor-0.1.6-1 xcb-util-image-0.4.1-3 xcb-util-keysyms-0.4.1-5 xcb-util-renderutil-0.3.10-2 xcb-util-wm-0.4.2-2 xdg-utils-1.2.1-2 xkeyboard-config-2.48-1 xorgproto-2025.1-1 libavif-1.4.2-1 libheif-1.23.4-1 libjpeg-turbo-3.2.0-2 libpng-1.6.58-2 libwebp-1.6.0-2 python-pytorch-2.14.0-1 Total Download Size: 96.31 MiB Total Installed Size: 1552.04 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-pytorch-2.14.0-1-aarch64 downloading... llvm-libs-22.1.8-2-aarch64 downloading... python-scipy-1.18.1-1-aarch64 downloading... python-pandas-2.3.3-7-aarch64 downloading... qt6-base-6.11.2-3-aarch64 downloading... cmake-4.4.3-2-aarch64 downloading... mesa-1:26.2.2-1-aarch64 downloading... python-matplotlib-3.11.2-1-aarch64 downloading... python-numpy-2.5.3-1-aarch64 downloading... lapack-3.12.1-2-aarch64 downloading... openmpi-5.0.11-1-aarch64 downloading... protobuf-36.1-1-aarch64 downloading... python-fonttools-4.65.0-1-aarch64 downloading... eigen-5.0.1-2-aarch64 downloading... aom-3.15.0-1-aarch64 downloading... x265-4.3-1-aarch64 downloading... libx11-1.8.13-1-aarch64 downloading... rav1e-0.8.1-3-aarch64 downloading... openucx-1.20.1-3-aarch64 downloading... spirv-tools-1:1.4.357.0-1-aarch64 downloading... svt-av1-4.2.0-1-aarch64 downloading... abseil-cpp-20260817.0-2-aarch64 downloading... openjpeg2-2.5.4-1-aarch64 downloading... harfbuzz-14.4.0-1-aarch64 downloading... libxcb-1.17.0-1-aarch64 downloading... openpmix-5.0.11-1-aarch64 downloading... x264-3:0.165.r3222.b35605a-2-aarch64 downloading... python-pillow-12.3.0-1-aarch64 downloading... libfabric-2.6.0-1-aarch64 downloading... libheif-1.23.4-1-aarch64 downloading... shared-mime-info-2.5.1-2-aarch64 downloading... openh264-2.6.0-2-aarch64 downloading... libjpeg-turbo-3.2.0-2-aarch64 downloading... prrte-3.0.14-1-aarch64 downloading... hwloc-2.14.0-1-aarch64 downloading... freetype2-2.14.3-1-aarch64 downloading... avahi-1:0.9rc5-1-aarch64 downloading... openmp-22.1.8-1-aarch64 downloading... libtiff-4.7.2-1-aarch64 downloading... libglvnd-1.7.0-3-aarch64 downloading... libdrm-2.4.134-1-aarch64 downloading... fontconfig-2:2.18.3-2-aarch64 downloading... dav1d-1.5.4-1-aarch64 downloading... l-smash-2.14.5-4-aarch64 downloading... gtest-1.18.0-1-aarch64 downloading... cppdap-1.58.0-3-aarch64 downloading... lua54-5.4.9-1-aarch64 downloading... libavif-1.4.2-1-aarch64 downloading... libxkbcommon-1.13.2-1-aarch64 downloading... libcups-2:2.4.19-1-aarch64 downloading... libwebp-1.6.0-2-aarch64 downloading... libde265-1.1.3-1-aarch64 downloading... libimagequant-4.4.1-2-aarch64 downloading... libyuv-r2921+644251f25-1-aarch64 downloading... libpng-1.6.58-2-aarch64 downloading... liburing-2.15-1-aarch64 downloading... lcms2-2.19.1-1-aarch64 downloading... libuv-1.52.1-2-aarch64 downloading... blas-3.12.1-2-aarch64 downloading... libinput-1.31.3-1-aarch64 downloading... python-gmpy2-2.3.1-1-aarch64 downloading... python-contourpy-1.4.0-1-aarch64 downloading... python-yaml-6.0.3-2-aarch64 downloading... duktape-2.7.0-7-aarch64 downloading... rhash-1.4.6-1-aarch64 downloading... gflags-2.2.2-6-aarch64 downloading... libwacom-2.20.0-1-aarch64 downloading... ninja-1.13.2-3-aarch64 downloading... jsoncpp-1.9.8-1-aarch64 downloading... vulkan-icd-loader-1.4.357.0-1-aarch64 downloading... wayland-1.26.0-1-aarch64 downloading... lm_sensors-1:3.6.2-1-aarch64 downloading... libedit-20260512_3.1-1-aarch64 downloading... tslib-1.24-1-aarch64 downloading... libxext-1.3.7-1-aarch64 downloading... cpuinfo-r843.ea6b9f1-1-aarch64 downloading... numactl-2.0.19-1-aarch64 downloading... libice-1.1.2-1-aarch64 downloading... md4c-0.5.3-1-aarch64 downloading... graphite-1:1.3.15-1-aarch64 downloading... fribidi-1.0.16-2-aarch64 downloading... libyaml-0.2.5-3-aarch64 downloading... cblas-3.12.1-2-aarch64 downloading... double-conversion-3.4.0-1-aarch64 downloading... libevdev-1.13.7-1-aarch64 downloading... libdeflate-1.26-1-aarch64 downloading... jbigkit-2.1-8-aarch64 downloading... libsm-1.2.6-1-aarch64 downloading... libgudev-238-3-aarch64 downloading... python-kiwisolver-1.5.1-1-aarch64 downloading... xcb-util-wm-0.4.2-2-aarch64 downloading... libraqm-0.11.0-1-aarch64 downloading... libxkbcommon-x11-1.13.2-1-aarch64 downloading... libproxy-0.5.12-1-aarch64 downloading... libxdmcp-1.1.5-2-aarch64 downloading... libpciaccess-0.19-1-aarch64 downloading... python-markupsafe-3.0.3-1-aarch64 downloading... libb2-0.98.1-3-aarch64 downloading... libdaemon-0.14-6-aarch64 downloading... xcb-util-image-0.4.1-3-aarch64 downloading... mtdev-1.1.7-1-aarch64 downloading... libxxf86vm-1.1.7-1-aarch64 downloading... xcb-util-0.4.1-2-aarch64 downloading... xcb-util-cursor-0.1.6-1-aarch64 downloading... libxau-1.0.12-1-aarch64 downloading... xcb-util-renderutil-0.3.10-2-aarch64 downloading... xcb-util-keysyms-0.4.1-5-aarch64 downloading... libxshmfence-1.3.3-1-aarch64 downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing aom... installing dav1d... Optional dependencies for dav1d dav1d-doc: HTML documentation installing libjpeg-turbo... installing libpng... installing libwebp... Optional dependencies for libwebp libwebp-utils: WebP conversion and inspection tools installing libyuv... installing rav1e... installing svt-av1... installing libavif... installing libde265... Optional dependencies for libde265 sdl2-compat: for the decoder tool installing openh264... installing l-smash... installing x264... installing x265... installing libheif... Optional dependencies for libheif libjpeg-turbo: for heif-dec and heif-enc [installed] libpng: for heif-dec and heif-enc [installed] libtiff: for heif-dec and heif-enc [pending] dav1d: dav1d encoder [installed] ffmpeg: hardware decode openjpeg2: JPEG2000 decoder [pending] rav1e: rav1e encoder [installed] svt-av1: svt-av1 encoder [installed] installing gtest... Optional dependencies for gtest python: gmock generator [installed] installing abseil-cpp... installing cpuinfo... installing eigen... installing gflags... installing google-glog... installing libuv... installing numactl... installing libedit... installing llvm-libs... installing openmp... Optional dependencies for openmp cuda: offloading to NVIDIA GPUs hsa-rocr: offloading to AMD GPUs installing libpciaccess... installing hwloc... Optional dependencies for hwloc cairo: PDF, Postscript, and PNG export support libxml2: full XML import/export support [installed] installing libfabric... installing openpmix... Optional dependencies for openpmix openpmix-docs: for documentation installing openucx... Optional dependencies for openucx rdma-core: for InfiniBand and RDMA support cuda: for CUDA support rocm-language-runtime: for ROCm support installing prrte... Optional dependencies for prrte openssh: for execution on remote hosts via plm_ssh_agent prrte-docs: for documentation installing openmpi... Optional dependencies for openmpi cuda: cuda support hip-runtime-amd: ROCm support gcc-fortran: fortran support openssh: for execution on remote hosts via plm_ssh_agent openucc: for UCC accelerated collectives installing protobuf... installing pybind11... Optional dependencies for pybind11 python-setuptools: for setup_helpers installing python-filelock... installing python-fsspec... Optional dependencies for python-fsspec python-aiohttp: HTTP support python-distributed: Dask support python-libarchive-c: archives support python-lz4: LZ4 compression support python-paramiko: SFTP support python-pyarrow: Arrow/Parquet support python-pygit2: git support python-requests: web protocols support [pending] python-smbprotocol: SMB support python-snappy: snappy compression support python-tqdm: progress bar support installing python-markupsafe... installing python-jinja... Optional dependencies for python-jinja python-babel: for i18n support installing blas... installing cblas... installing lapack... installing python-numpy... Optional dependencies for python-numpy blas-openblas: faster linear algebra installing python-platformdirs... installing python-packaging... installing python-charset-normalizer... installing python-idna... installing python-urllib3... Optional dependencies for python-urllib3 python-brotli: Brotli support python-brotlicffi: Brotli support python-h2: HTTP/2 support python-pysocks: SOCKS support installing python-certifi... installing python-requests... Optional dependencies for python-requests python-chardet: alternative character encoding library python-pysocks: SOCKS proxy support installing python-pooch... Optional dependencies for python-pooch python-paramiko: for SFTP downloads python-tqdm: for printing a download progress bar installing python-scipy... Optional dependencies for python-scipy python-pillow: for image saving module [pending] installing freetype2... Optional dependencies for freetype2 harfbuzz: Improved autohinting [pending] installing python-contourpy... Optional dependencies for python-contourpy python-matplotlib: matplotlib renderer [pending] installing python-cycler... installing python-six... installing python-dateutil... installing python-fonttools... Optional dependencies for python-fonttools python-brotli: to compress/decompress WOFF 2.0 web fonts python-fs: to read/write UFO source files python-lxml: faster backend for XML files reading/writing python-lz4: for graphite type tables in ttLib/tables python-matplotlib: for visualizing DesignSpaceDocument and resulting VariationModel [pending] python-pyqt5: for drawing glyphs with Qt’s QPainterPath python-reportlab: to drawing glyphs as PNG images python-scipy: for finding wrong contour/component order between different masters [installed] python-sympy: for symbolic font statistics analysis [pending] python-uharfbuzz: to use the Harfbuzz Repacker for packing GSUB/GPOS tables python-unicodedata2: for displaying the Unicode character names when dumping the cmap table with ttx python-zopfli: faster backend fom WOFF 1.0 web fonts compression installing python-kiwisolver... installing jbigkit... installing libdeflate... installing libtiff... Optional dependencies for libtiff freeglut: for using tiffgt installing lcms2... installing fribidi... installing graphite... Optional dependencies for graphite graphite-docs: Documentation installing harfbuzz... Optional dependencies for harfbuzz harfbuzz-utils: utilities installing libraqm... installing openjpeg2... installing libimagequant... installing xcb-proto... installing xorgproto... installing libxdmcp... installing libxau... installing libxcb... installing python-pillow... Optional dependencies for python-pillow libwebp: for webp images [installed] tk: for the ImageTK module python-olefile: OLE2 file support python-pyqt6: for the ImageQt module python-defusedxml: for reading XMP tags installing python-pyparsing... Optional dependencies for python-pyparsing python-railroad-diagrams: for generating Railroad Diagrams python-jinja: for generating Railroad Diagrams [installed] installing qhull... installing python-matplotlib... Optional dependencies for python-matplotlib tk: Tk{Agg,Cairo} backends pyside6: alternative for Qt6{Agg,Cairo} backends python-pyqt6: Qt6{Agg,Cairo} backends python-gobject: for GTK{3,4}{Agg,Cairo} backend python-wxpython: WX{Agg,Cairo} backend python-cairo: {GTK{3,4},Qt{5,6},Tk,WX}Cairo backends python-cairocffi: alternative for Cairo backends python-tornado: WebAgg backend ffmpeg: for saving movies imagemagick: for saving animated gifs ghostscript: usetex dependencies texlive-binextra: usetex dependencies texlive-fontsrecommended: usetex dependencies texlive-latexrecommended: usetex usage with pdflatex python-certifi: https support [installed] installing python-pytz... installing python-pandas... Optional dependencies for python-pandas python-pandas-datareader: pandas.io.data replacement (recommended) python-numexpr: accelerating certain numerical operations (recommended) python-bottleneck: accelerating certain types of nan evaluations (recommended) python-matplotlib: plotting [installed] python-jinja: conditional formatting with DataFrame.style [installed] python-tabulate: printing in Markdown-friendly format python-scipy: miscellaneous statistical functions [installed] python-numba: alternative execution engine python-xarray: pandas-like API for N-dimensional data python-xlrd: Excel XLS input python-xlwt: Excel XLS output python-openpyxl: Excel XLSX input/output python-xlsxwriter: alternative Excel XLSX output python-beautifulsoup4: read_html function (in any case) python-html5lib: read_html function (and/or python-lxml) python-lxml: read_xml, to_xml and read_html function (and/or python-html5lib) python-sqlalchemy: SQL database support python-psycopg2: PostgreSQL engine for sqlalchemy python-pymysql: MySQL engine for sqlalchemy python-pytables: HDF5-based reading / writing python-blosc: for msgpack compression using blosc zlib: compression for msgpack [installed] python-pyarrow: Parquet, ORC and feather reading/writing python-fsspec: handling files aside from local and HTTP [installed] python-qtpy: read_clipboard function (only one needed) xclip: read_clipboard function (only one needed) xsel: read_clipboard function (only one needed) python-brotli: Brotli compression python-snappy: Snappy compression python-zstandard: Zstandard (zstd) compression installing python-networkx... Optional dependencies for python-networkx python-lxml: for GraphML XML format python-pydot: for graph drawing and graph layout algorithms in pure Python via GraphViz python-pygraphviz: for graph drawing and graph layout algorithms with bindings to GraphViz python-sympy: for polynomial algorithms [pending] installing cppdap... installing hicolor-icon-theme... installing jsoncpp... Optional dependencies for jsoncpp jsoncpp-doc: documentation installing rhash... installing cmake... Optional dependencies for cmake make: for unix Makefile generator [installed] ninja: for ninja generator [pending] qt6-base: cmake-gui [pending] installing ninja... installing python-pathspec... Optional dependencies for python-pathspec python-google-re2: re2 backend installing python-scikit-build-core... installing python-gmpy2... installing python-mpmath... installing python-sympy... Optional dependencies for python-sympy ipython: user friendly interface for isympy python-symengine: optimized backend, set USE_SYMENGINE=1 to use installing python-typing_extensions... installing libyaml... installing python-yaml... installing double-conversion... installing fontconfig... Creating fontconfig configuration... Rebuilding fontconfig cache... installing libb2... installing libdaemon... installing avahi... Optional dependencies for avahi gtk3: avahi-discover, avahi-discover-standalone, bshell, bssh, bvnc libevent: libevent bindings [installed] nss-mdns: NSS support for mDNS python-dbus: avahi-bookmarks, avahi-discover python-gobject: avahi-bookmarks, avahi-discover python-twisted: avahi-bookmarks installing libcups... installing libdrm... Optional dependencies for libdrm cairo: needed for modetest tool installing libx11... installing libxext... installing libxshmfence... installing libxxf86vm... installing lm_sensors... Optional dependencies for lm_sensors rrdtool: for logging with sensord perl: for sensor detection and configuration convert [installed] installing spirv-tools... installing default-cursors... Optional dependencies for default-cursors adwaita-cursors: default cursor theme installing wayland... installing mesa... Optional dependencies for mesa opengl-man-pages: for the OpenGL API man pages installing libglvnd... installing libice... installing libevdev... installing libgudev... installing libwacom... Optional dependencies for libwacom python-libevdev: for libwacom-show-stylus python-pyudev: for libwacom-show-stylus installing lua54... installing mtdev... installing libinput... Optional dependencies for libinput libinput-tools: debug utilities installing duktape... installing libproxy... installing libsm... installing liburing... installing xkeyboard-config... installing libxkbcommon... Optional dependencies for libxkbcommon libxkbcommon-x11: xkbcli interactive-x11 [pending] wayland: xkbcli interactive-wayland [installed] installing libxkbcommon-x11... installing md4c... installing shared-mime-info... installing tslib... installing xcb-util-renderutil... installing xcb-util... installing xcb-util-image... installing xcb-util-cursor... installing xcb-util-keysyms... installing xcb-util-wm... installing xdg-utils... Optional dependencies for xdg-utils kde-cli-tools: for KDE Plasma5 support in xdg-open exo: for Xfce support in xdg-open pcmanfm: for LXDE support in xdg-open perl-file-mimeinfo: for generic support in xdg-open perl-net-dbus: Perl extension to dbus used in xdg-screensaver perl-x11-protocol: Perl X11 protocol used in xdg-screensaver xorg-xset: for X11 support in xdg-screensaver xorg-xprop: for X11 support in xdg-screensaver installing qt6-translations... installing qt6-base... Optional dependencies for qt6-base freetds: MS SQL driver gdk-pixbuf2: GTK platform plugin gtk3: GTK platform plugin libfbclient: Firebird/iBase driver mariadb-libs: MariaDB driver pango: GTK platform plugin perl: for syncqt [installed] postgresql-libs: PostgreSQL driver unixodbc: ODBC driver installing vulkan-icd-loader... Optional dependencies for vulkan-icd-loader vulkan-driver: packaged vulkan driver installing python-pytorch... Optional dependencies for python-pytorch python-onnxscript: for the ONNX exporter :: Running post-transaction hooks... (1/9) Creating system user accounts... Creating group 'avahi' with GID 969. Creating user 'avahi' (Avahi mDNS/DNS-SD daemon) with UID 969 and GID 969. (2/9) Updating udev hardware database... (3/9) Reloading system manager configuration... Skipped: Current root is not booted. (4/9) Updating the MIME type database... (5/9) Reloading device manager configuration... Skipped: Current root is not booted. (6/9) Arming ConditionNeedsUpdate... (7/9) Updating fontconfig configuration... (8/9) Reloading system bus configuration... Skipped: Current root is not booted. (9/9) Updating fontconfig cache... ==> Checking buildtime dependencies... ==> Installing missing dependencies... dependencies... :: There are 4 providers available for jack: :: Repository extra-testing 1) jack2 2) pipewire-jack :: Repository extra 3) jack2 4) pipewire-jack Enter a number (): :: There are 2 providers available for onevpl: :: Repository extra-testing 1) libvpl :: Repository extra 2) libvpl Enter a number (): :: There are 2 providers available for sdl2: :: Repository extra-testing 1) sdl2-compat :: Repository extra 2) sdl2-compat Enter a number (): :: There are 2 providers available for libzimg.: :: Repository extra-testing 1) zimg :: Repository extra 2) zimg Enter a number (): looking for conflicting packages... warning: insufficient columns available for table display Packages (92) alsa-lib-1.2.16.1-1 alsa-topology-conf-1.2.5.1-4 alsa-ucm-conf-1.2.16.1-1 bubblewrap-0.12.0-1 cairo-1.18.4-1 fftw-3.3.11-1 flac-1.5.0-1 gdk-pixbuf2-2.44.7-1 giflib-6.1.3-2 glslang-1:1.4.357.0-1 glycin-2.1.5-2 gperftools-2.18.1-1 gsm-1.0.24-1 hidapi-0.15.0-1 highway-1.4.0-1 jack2-1.9.22-2 lame-4.0-1 libass-0.17.5-1 libasyncns-1:0.8+r3+g68cd5af-3 libavc1394-0.5.4-7 libbluray-1.5.1-1 libbpf-1.7.0-1 libbs2b-3.1.0-10 libbsd-0.12.2-2 libdatrie-0.2.14-1 libdovi-3.4.0-1 libdvdnav-7.0.0-1 libdvdread-7.1.1-1 libiec61883-1.2.0-9 libjxl-0.12.0-1 libmd-1.2.0-1 libmodplug-0.8.9.0-7 libogg-1.3.6-1 libopenmpt-0.8.9-1 libpgm-5.3.128-4 libplacebo-7.360.1-6 libpulse-17.0+r98+gb096704c0-1 libraw1394-2.1.2-4 librsvg-2:2.62.3-1 libsamplerate-0.2.2-3 libsndfile-1.2.2-4 libsodium-1.0.22-1 libsoxr-0.1.3-5 libssh-0.12.2-1 libthai-0.1.30-1 libtheora-1.2.0-1 libunibreak-7.0-1 libunwind-1.8.3-1 libva-2.24.1-1 libvdpau-1.5-4 libvorbis-1.3.7-4 libvpl-2.17.0-1 libvpx-1.17.0-1 libxcursor-1.2.3-1 libxfixes-6.0.2-1 libxft-2.3.9-1 libxrender-0.9.12-1 libxv-1.0.13-1 lzo-2.10-5 mpg123-1.33.7-1 ocl-icd-2.3.5-1 opencore-amr-0.1.6-2 opus-1.6.1-1 pango-1:1.58.2-1 pixman-0.46.4-1 portaudio-1:19.7.0-4 python-iniconfig-2.3.0-1 python-pluggy-1.6.0-3 python-pygments-2.21.0-1 python-pyproject-hooks-1.2.0-6 rubberband-4.0.0-2 sdl2-compat-2.32.72-1 sdl3-3.4.16-1 shaderc-2026.3-1 snappy-1.2.2-3 sndio-1.10.0-1 speex-1.2.1-2 speexdsp-1.2.1-2 srt-1.5.7-1 v4l-utils-1.32.0-2 vapoursynth-79-1 vid.stab-1.1.2-1 vmaf-3.2.0-1 xvidcore-1.3.7-4 zeromq-4.3.5-3 zimg-3.0.6-2 ffmpeg-2:9.0.1-4 fmt-12.2.0-1 python-build-1.6.0-1 python-installer-1.0.1-1 python-pytest-1:9.1.1-1 python-torchvision-0.29.0-1 Total Download Size: 1.49 MiB Total Installed Size: 245.59 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... ffmpeg-2:9.0.1-4-aarch64 downloading... librsvg-2:2.62.3-1-aarch64 downloading... glycin-2.1.5-2-aarch64 downloading... opus-1.6.1-1-aarch64 downloading... libjxl-0.12.0-1-aarch64 downloading... glslang-1:1.4.357.0-1-aarch64 downloading... v4l-utils-1.32.0-2-aarch64 downloading... fftw-3.3.11-1-aarch64 downloading... sdl3-3.4.16-1-aarch64 downloading... python-torchvision-0.29.0-1-aarch64 downloading... libvpx-1.17.0-1-aarch64 downloading... libsamplerate-0.2.2-3-aarch64 downloading... highway-1.4.0-1-aarch64 downloading... libbluray-1.5.1-1-aarch64 downloading... vapoursynth-79-1-aarch64 downloading... libopenmpt-0.8.9-1-aarch64 downloading... cairo-1.18.4-1-aarch64 downloading... zeromq-4.3.5-3-aarch64 downloading... alsa-lib-1.2.16.1-1-aarch64 downloading... gdk-pixbuf2-2.44.7-1-aarch64 downloading... gperftools-2.18.1-1-aarch64 downloading... vmaf-3.2.0-1-aarch64 downloading... jack2-1.9.22-2-aarch64 downloading... libplacebo-7.360.1-6-aarch64 downloading... srt-1.5.7-1-aarch64 downloading... libtheora-1.2.0-1-aarch64 downloading... speex-1.2.1-2-aarch64 downloading... sdl2-compat-2.32.72-1-aarch64 downloading... mpg123-1.33.7-1-aarch64 downloading... libpulse-17.0+r98+gb096704c0-1-aarch64 downloading... speexdsp-1.2.1-2-aarch64 downloading... pango-1:1.58.2-1-aarch64 downloading... flac-1.5.0-1-aarch64 downloading... libsndfile-1.2.2-4-aarch64 downloading... libthai-0.1.30-1-aarch64 downloading... rubberband-4.0.0-2-aarch64 downloading... libbpf-1.7.0-1-aarch64 downloading... lame-4.0-1-aarch64 downloading... libdovi-3.4.0-1-aarch64 downloading... libvpl-2.17.0-1-aarch64 downloading... libssh-0.12.2-1-aarch64 downloading... pixman-0.46.4-1-aarch64 downloading... fmt-12.2.0-1-aarch64 downloading... libvorbis-1.3.7-4-aarch64 downloading... libogg-1.3.6-1-aarch64 downloading... xvidcore-1.3.7-4-aarch64 downloading... libva-2.24.1-1-aarch64 downloading... libsodium-1.0.22-1-aarch64 downloading... libmodplug-0.8.9.0-7-aarch64 downloading... libpgm-5.3.128-4-aarch64 downloading... zimg-3.0.6-2-aarch64 downloading... libbsd-0.12.2-2-aarch64 downloading... shaderc-2026.3-1-aarch64 downloading... opencore-amr-0.1.6-2-aarch64 downloading... libunwind-1.8.3-1-aarch64 downloading... sndio-1.10.0-1-aarch64 downloading... libdvdread-7.1.1-1-aarch64 downloading... libass-0.17.5-1-aarch64 downloading... libdatrie-0.2.14-1-aarch64 downloading... portaudio-1:19.7.0-4-aarch64 downloading... lzo-2.10-5-aarch64 downloading... giflib-6.1.3-2-aarch64 downloading... vid.stab-1.1.2-1-aarch64 downloading... ocl-icd-2.3.5-1-aarch64 downloading... libvdpau-1.5-4-aarch64 downloading... libsoxr-0.1.3-5-aarch64 downloading... libxft-2.3.9-1-aarch64 downloading... libdvdnav-7.0.0-1-aarch64 downloading... libmd-1.2.0-1-aarch64 downloading... libraw1394-2.1.2-4-aarch64 downloading... hidapi-0.15.0-1-aarch64 downloading... gsm-1.0.24-1-aarch64 downloading... bubblewrap-0.12.0-1-aarch64 downloading... snappy-1.2.2-3-aarch64 downloading... libxcursor-1.2.3-1-aarch64 downloading... libiec61883-1.2.0-9-aarch64 downloading... libxv-1.0.13-1-aarch64 downloading... libavc1394-0.5.4-7-aarch64 downloading... libunibreak-7.0-1-aarch64 downloading... libxrender-0.9.12-1-aarch64 downloading... libbs2b-3.1.0-10-aarch64 downloading... libasyncns-1:0.8+r3+g68cd5af-3-aarch64 downloading... libxfixes-6.0.2-1-aarch64 downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing alsa-topology-conf... installing alsa-ucm-conf... installing alsa-lib... installing libxrender... installing lzo... installing pixman... installing cairo... installing gsm... installing libsamplerate... installing opus... installing jack2... Optional dependencies for jack2 a2jmidid: for ALSA MIDI to JACK MIDI bridging libffado: for firewire support using FFADO jack-example-tools: for official JACK example-clients and tools jack2-dbus: for dbus integration jack2-docs: for developer documentation realtime-privileges: for realtime privileges installing mpg123... Optional dependencies for mpg123 sdl2-compat: for sdl audio support [pending] jack: for jack audio support [installed] libpulse: for pulse audio support [pending] perl: for conplay [installed] installing lame... installing libunibreak... installing libass... installing libraw1394... installing libavc1394... installing libbluray... Optional dependencies for libbluray java-runtime: BD-J library installing libogg... installing flac... installing libvorbis... installing libsndfile... Optional dependencies for libsndfile alsa-lib: for sndfile-play [installed] installing libbs2b... installing libdvdread... Optional dependencies for libdvdread libdvdcss: Decoding encrypted DVDs installing libdvdnav... installing libiec61883... installing giflib... installing libunwind... installing gperftools... installing highway... installing libjxl... Optional dependencies for libjxl java-runtime: for JNI bindings installing libmodplug... installing libasyncns... installing libpulse... Optional dependencies for libpulse pulse-native-provider: PulseAudio backend installing portaudio... installing libopenmpt... installing glslang... installing shaderc... installing libdovi... installing libplacebo... installing bubblewrap... installing glycin... Optional dependencies for glycin libheif: Load .avif, .heic and .heif [installed] installing gdk-pixbuf2... Optional dependencies for gdk-pixbuf2 libheif: Load .avif, .heic and .heif [installed] libopenraw: Load .arw, .cr2, .crw, .dng, .erf, .mrw, .nef, .orf, .pef and .raf libwmf: Load .apm and .wmf installing libdatrie... installing libthai... installing libxft... installing pango... installing librsvg... installing libsoxr... installing libssh... installing libtheora... installing libxfixes... installing libva... Optional dependencies for libva intel-media-driver: backend for Intel GPUs (>= Broadwell) libva-intel-driver: backend for Intel GPUs (<= Haswell) libva-mesa-driver: backend for AMD and NVIDIA GPUs [installed] installing libvdpau... Optional dependencies for libvdpau libvdpau-va-gl: driver using VAAPI nvidia-utils: driver for NVIDIA installing libvpx... installing libxv... installing ocl-icd... Optional dependencies for ocl-icd opencl-driver: packaged opencl driver installing libvpl... Optional dependencies for libvpl intel-media-sdk: runtime implementation for legacy Intel GPUs vpl-gpu-rt: runtime implementation for Tiger Lake and newer GPUs installing opencore-amr... installing fftw... Optional dependencies for fftw fftw-openmpi: for OpenMPI integration installing rubberband... installing libxcursor... installing hidapi... Optional dependencies for hidapi libusb: for hidapi-libusb [installed] installing sdl3... Optional dependencies for sdl3 alsa-lib: ALSA audio driver [installed] libpulse: PulseAudio audio driver [installed] jack: JACK audio driver [installed] pipewire: PipeWire audio driver vulkan-driver: vulkan renderer sndio: sndio audio driver [pending] libdecor: Wayland client decorations installing sdl2-compat... installing snappy... installing libmd... installing libbsd... installing sndio... installing speexdsp... installing speex... installing srt... installing libbpf... installing v4l-utils... Optional dependencies for v4l-utils qt6-base: for qv4l2 and qvidcap [installed] qt6-5compat: for qv4l2 alsa-lib: for qv4l2 [installed] installing zimg... installing vapoursynth... installing vid.stab... installing vmaf... installing xvidcore... installing libsodium... installing libpgm... installing zeromq... Optional dependencies for zeromq cppzmq: C++ binding for libzmq installing ffmpeg... Optional dependencies for ffmpeg avisynthplus: AviSynthPlus support frei0r-plugins: Frei0r video effects support intel-media-sdk: Intel QuickSync support (legacy) ladspa: LADSPA filters nvidia-utils: Nvidia NVDEC/NVENC support onevpl-intel-gpu: Intel QuickSync support installing fmt... installing python-pyproject-hooks... installing python-build... Optional dependencies for python-build python-pip: to use as the Python package installer (default) python-uv: to use as the Python package installer python-virtualenv: to use virtualenv for build isolation installing python-installer... installing python-iniconfig... installing python-pluggy... installing python-pygments... installing python-pytest... installing python-torchvision... Optional dependencies for python-torchvision python-pycocotools: support for MS-COCO dataset python-scipy: for specific datasets [installed] :: Running post-transaction hooks... (1/6) Reloading system manager configuration... Skipped: Current root is not booted. (2/6) Reloading user manager configuration... Skipped: Current root is not booted. (3/6) Updating the MIME type database... (4/6) Reloading device manager configuration... Skipped: Current root is not booted. (5/6) Arming ConditionNeedsUpdate... (6/6) Updating the info directory file... ==> Retrieving sources... -> Found torchcodec-0.16.0.tar.gz ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources... -> Extracting torchcodec-0.16.0.tar.gz with bsdtar ==> Starting build()... * Getting build dependencies for wheel... * Building wheel... INFO: Didn't find sha. Is this a git repo? *** scikit-build-core 1.0.3 using CMake 4.4.3 (wheel) *** Configuring CMake... loading initial cache file build/cp314-cp314-linux_aarch64/CMakeInit.txt -- The C compiler identification is GNU 16.2.1 -- The CXX compiler identification is GNU 16.2.1 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/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: /usr/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: /usr/lib/python3.14/site-packages/pybind11/include (found version "3.1.0") -- Caffe2: Found gflags with new-style gflags target. -- Caffe2: Found glog with new-style glog target. -- Found ZLIB: /usr/lib/libz.so (found version "1.3.2") -- Caffe2: Found protobuf with new-style protobuf targets. -- Caffe2: Protobuf version 36.1.0 CMake Warning at /usr/lib/cmake/Torch/TorchConfig.cmake:22 (message): library kineto not found. Call Stack (most recent call first): /usr/lib/cmake/Torch/TorchConfig.cmake:119 (append_torchlib_if_found) src/torchcodec/_core/CMakeLists.txt:21 (find_package) -- Found Torch: /usr/lib/libtorch.so -- Found Python3: /usr/bin/python (found version "3.14.7") found components: Development Interpreter Development.Module Development.Embed -- Found JPEG: /usr/lib/libjpeg.so (found version "80") -- libjpeg found: building torchcodec with JPEG image decoding support. -- Found PNG: /usr/lib/libpng.so (found version "1.6.58") -- libpng found: building torchcodec with PNG image decoding support. -- 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: /usr/bin/pkg-config (found version "3.0.7") -- 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 (6.0s) -- Generating done (0.0s) -- Build files have been written to: /build/python-torchcodec/src/torchcodec-0.16.0/build/cp314-cp314-linux_aarch64 *** Building project with Ninja... [1/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_core9.dir/Logging.cpp.o [2/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_core9.dir/AVIOContextHolder.cpp.o [3/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_core9.dir/SwScale.cpp.o [4/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_core9.dir/TensorIO.cpp.o [5/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_core9.dir/ValidationUtils.cpp.o [6/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_core9.dir/Demuxer.cpp.o [7/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_core9.dir/ColorConverter.cpp.o [8/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_core9.dir/Frame.cpp.o [9/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_core9.dir/PacketDecoder.cpp.o [10/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_core9.dir/Transform.cpp.o [11/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_core9.dir/DeviceInterface.cpp.o [12/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_core9.dir/WavDecoder.cpp.o [13/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_core9.dir/NVDECCacheConfig.cpp.o [14/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_core9.dir/Metadata.cpp.o [15/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_core9.dir/CpuDeviceInterface.cpp.o [16/46] Building C object src/torchcodec/_core/CMakeFiles/libtorchcodec_image.dir/giflib/dgif_lib.c.o [17/46] Building C object src/torchcodec/_core/CMakeFiles/libtorchcodec_image.dir/giflib/gifalloc.c.o [18/46] Building C object src/torchcodec/_core/CMakeFiles/libtorchcodec_image.dir/giflib/gif_hash.c.o [19/46] Building C object src/torchcodec/_core/CMakeFiles/libtorchcodec_image.dir/giflib/openbsd-reallocarray.c.o [20/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_core9.dir/FilterGraph.cpp.o [21/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_core9.dir/FFMPEGCommon.cpp.o [22/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_core9.dir/Encoder.cpp.o [23/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_image.dir/DecodeJpegCuda.cpp.o [24/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_image.dir/DecodeJpeg.cpp.o [25/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_image.dir/DecodePng.cpp.o [26/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_image.dir/DecodeWebp.cpp.o [27/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_core9.dir/SingleStreamDecoder.cpp.o [28/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_core9.dir/FileIO.cpp.o [29/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_image.dir/EncodeJpegCuda.cpp.o [30/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_image.dir/EncodePng.cpp.o [31/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_image.dir/EncodeJpeg.cpp.o [32/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_image.dir/DecodeAvif.cpp.o [33/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_image.dir/DecodeGif.cpp.o [34/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_image.dir/image_custom_ops.cpp.o [35/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_pybind_ops.dir/FileIO.cpp.o [36/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_image.dir/FileIO.cpp.o [37/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_heic.dir/DecodeHeic.cpp.o [38/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_heic.dir/heic_custom_ops.cpp.o [39/46] Linking CXX shared library src/torchcodec/_core/libtorchcodec_heic.so [40/46] Linking CXX shared library src/torchcodec/_core/libtorchcodec_core9.so [41/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_pybind_ops.dir/pybind_ops.cpp.o [42/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_pybind_ops.dir/FileLikeIO.cpp.o [43/46] Linking CXX shared library src/torchcodec/_core/libtorchcodec_image.so In member function ‘operator()’, inlined from ‘decode_gif’ at /build/python-torchcodec/src/torchcodec-0.16.0/src/torchcodec/_core/DecodeGif.cpp:313:19: /build/python-torchcodec/src/torchcodec-0.16.0/src/torchcodec/_core/DecodeGif.cpp:256:5: warning: ‘MEM[(struct GraphicsControlBlock *)&gcb].DisposalMode’ may be used uninitialized [-Wmaybe-uninitialized] 256 | if (gcb.DisposalMode == DISPOSE_PREVIOUS) { | ^ /build/python-torchcodec/src/torchcodec-0.16.0/src/torchcodec/_core/DecodeGif.cpp: In function ‘decode_gif’: /build/python-torchcodec/src/torchcodec-0.16.0/src/torchcodec/_core/DecodeGif.cpp:310:26: note: ‘MEM[(struct GraphicsControlBlock *)&gcb].DisposalMode’ was declared here 310 | GraphicsControlBlock gcb; | ^ In member function ‘operator()’, inlined from ‘decode_gif’ at /build/python-torchcodec/src/torchcodec-0.16.0/src/torchcodec/_core/DecodeGif.cpp:314:27: /build/python-torchcodec/src/torchcodec-0.16.0/src/torchcodec/_core/DecodeGif.cpp:294:9: warning: ‘MEM[(struct GraphicsControlBlock *)&gcb].TransparentColor’ may be used uninitialized [-Wmaybe-uninitialized] 294 | if (c == gcb.TransparentColor) { | ^ /build/python-torchcodec/src/torchcodec-0.16.0/src/torchcodec/_core/DecodeGif.cpp: In function ‘decode_gif’: /build/python-torchcodec/src/torchcodec-0.16.0/src/torchcodec/_core/DecodeGif.cpp:310:26: note: ‘MEM[(struct GraphicsControlBlock *)&gcb].TransparentColor’ was declared here 310 | GraphicsControlBlock gcb; | ^ [44/46] Linking CXX shared module src/torchcodec/_core/libtorchcodec_pybind_ops.so [45/46] Building CXX object src/torchcodec/_core/CMakeFiles/libtorchcodec_custom_ops9.dir/custom_ops.cpp.o [46/46] Linking CXX shared library src/torchcodec/_core/libtorchcodec_custom_ops9.so *** Installing project into wheel... -- Install configuration: "Release" -- Installing: /tmp/tmp_2ck20hh/wheel/platlib/torchcodec/libtorchcodec_image.so -- Set non-toolchain portion of runtime path of "/tmp/tmp_2ck20hh/wheel/platlib/torchcodec/libtorchcodec_image.so" to "" -- Installing: /tmp/tmp_2ck20hh/wheel/platlib/torchcodec/libtorchcodec_pybind_ops.so -- Installing: /tmp/tmp_2ck20hh/wheel/platlib/torchcodec/libtorchcodec_heic.so -- Installing: /tmp/tmp_2ck20hh/wheel/platlib/torchcodec/libtorchcodec_core9.so -- Installing: /tmp/tmp_2ck20hh/wheel/platlib/torchcodec/libtorchcodec_custom_ops9.so -- Set non-toolchain portion of runtime path of "/tmp/tmp_2ck20hh/wheel/platlib/torchcodec/libtorchcodec_custom_ops9.so" to "" *** Making wheel... *** Created torchcodec-0.16.0-cp314-cp314-linux_aarch64.whl Successfully built torchcodec-0.16.0-cp314-cp314-linux_aarch64.whl ==> Starting check()... ============================= test session starts ============================== platform linux -- Python 3.14.7, pytest-9.1.1, pluggy-1.6.0 -- /build/python-torchcodec/src/torchcodec-0.16.0/test-env/bin/python cachedir: .pytest_cache rootdir: /build/python-torchcodec/src/torchcodec-0.16.0 configfile: pyproject.toml collecting ... collected 2683 items / 1 deselected / 2682 selected test/plugin/test_plugins.py::test_plugin_autoload[True] PASSED [ 0%] test/plugin/test_plugins.py::test_plugin_autoload[False] PASSED [ 0%] test/smoke_test.py::TestVideoDecoder::test_basics[cpu] PASSED [ 0%] test/smoke_test.py::TestVideoDecoder::test_basics[cuda] SKIPPED (CUDA not available.) [ 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 (CUDA not available.) [ 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 (CUDA not available.) [ 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 [ 1%] test/smoke_test.py::TestImageEncoder::test_encode_to_file[png] PASSED [ 1%] 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 not available.) [ 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 [ 2%] test/test_decoders.py::TestDecoder::test_create[file_like_custom-VideoDecoder-asset0] PASSED [ 2%] 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 [ 3%] test/test_decoders.py::TestVideoDecoder::test_getitem_numpy_int PASSED [ 3%] 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 [ 4%] test/test_decoders.py::TestVideoDecoder::test_get_frame_at[approximate-cuda:ffmpeg] SKIPPED [ 4%] 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 [ 5%] 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 [ 6%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_at[tensor-approximate-cpu] PASSED [ 6%] 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 [ 7%] test/test_decoders.py::TestVideoDecoder::test_get_frames_in_range_slice_indices_syntax[exact-cpu] PASSED [ 7%] 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 [ 8%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[exact-cuda-3-NHWC] SKIPPED [ 8%] 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 [ 9%] test/test_decoders.py::TestVideoDecoder::test_dimension_order[approximate-cpu-3-NCHW] PASSED [ 9%] 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 [ 10%] 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 [ 11%] 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 [ 12%] test/test_decoders.py::TestVideoDecoder::test_get_frames_played_in_range_fps_matches_torchvision[True-15.0] PASSED [ 12%] 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 [ 13%] test/test_decoders.py::TestVideoDecoder::test_bt601_colorspace[asset1] SKIPPED [ 13%] 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 [ 14%] test/test_decoders.py::TestVideoDecoder::test_custom_frame_mappings_json_and_bytes[method0-0-cuda] SKIPPED [ 14%] 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 [ 15%] 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 [ 16%] 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 [ 17%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_at[approximate-True-asset5] SKIPPED [ 17%] 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 [ 18%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_get_frames_played_at[exact-asset0] SKIPPED [ 18%] 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 [ 19%] test/test_decoders.py::TestVideoDecoder::test_nvdec_cuda_interface_backwards[approximate-asset3] SKIPPED [ 19%] 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 [ 20%] 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 [ 21%] 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 [ 22%] 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 [ 23%] test/test_decoders.py::TestAudioDecoder::test_get_all_samples[asset1] PASSED [ 23%] 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 [ 24%] test/test_decoders.py::TestAudioDecoder::test_resample_chunked_matches_full[8000-0.3333333333333333-asset3] PASSED [ 24%] 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 [ 25%] 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 [ 26%] 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 [ 27%] 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 [ 28%] test/test_decoders.py::TestAudioDecoder::test_num_channels[16-16000-asset1] PASSED [ 28%] 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 [ 29%] test/test_decoders.py::TestWavDecoder::test_against_audio_decoder[path-asset2-0.2-0.6] 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-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 [ 30%] 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 [ 31%] 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 [ 32%] 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 [ 33%] 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 [ 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-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 [ 35%] 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 [ 36%] 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 [ 37%] 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 [ 38%] 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 [ 39%] test/test_decoders.py::TestBlocks::test_matches_video_decoder[cpu-prefetch_packets-video5] PASSED [ 39%] 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 [ 40%] 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 [ 41%] 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 [ 42%] 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 [ 43%] 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 [ 44%] 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 [ 45%] 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 [ 46%] 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 [ 47%] 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 [ 48%] 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 [ 49%] 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 [ 50%] 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 [ 51%] 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 [ 52%] 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 [ 53%] 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 [ 54%] 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 [ 56%] 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 [ 57%] 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 [ 58%] 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 [ 59%] 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 [ 62%] 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 [ 63%] 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 [ 64%] 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 [ 67%] 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 [ 68%] 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 [ 69%] 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 [ 73%] 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 [ 74%] 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 [ 78%] 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 [ 79%] 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- 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- 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 [ 84%] 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 [ 89%] 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 SKIPPEDilable.) [ 90%] test/test_ffmpeg_optional.py::test_image_decoders_work_without_ffmpeg[jpeg] SKIPPEDe.) [ 90%] test/test_ffmpeg_optional.py::test_image_decoders_work_without_ffmpeg[png] SKIPPEDe.) [ 90%] test/test_ffmpeg_optional.py::test_image_decoders_work_without_ffmpeg[webp] SKIPPEDe.) [ 90%] test/test_ffmpeg_optional.py::test_image_decoders_work_without_ffmpeg[gif] SKIPPEDe.) [ 90%] test/test_ffmpeg_optional.py::test_image_decoders_work_without_ffmpeg[avif] SKIPPEDe.) [ 90%] test/test_ffmpeg_optional.py::test_image_decoders_work_without_ffmpeg[image] SKIPPEDe.) [ 90%] test/test_ffmpeg_optional.py::test_ffmpeg_entry_points_raise_clear_error[VideoDecoder] SKIPPEDe.) [ 90%] test/test_ffmpeg_optional.py::test_ffmpeg_entry_points_raise_clear_error[AudioDecoder] SKIPPEDe.) [ 90%] test/test_ffmpeg_optional.py::test_ffmpeg_entry_points_raise_clear_error[WavDecoder] SKIPPEDe.) [ 90%] test/test_ffmpeg_optional.py::test_ffmpeg_entry_points_raise_clear_error[VideoEncoder] SKIPPEDe.) [ 90%] test/test_ffmpeg_optional.py::test_ffmpeg_entry_points_raise_clear_error[AudioEncoder] SKIPPEDe.) [ 90%] test/test_ffmpeg_optional.py::test_ffmpeg_entry_points_raise_clear_error[Encoder] SKIPPEDe.) [ 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 (CUDA not available.) [ 90%] test/test_logging.py::TestLogging::test_cpp_logger[OFF] SKIPPED (CUDA not available.) [ 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 (CUDA not available.) [ 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_, stream_infos={0: TestAudioStreamInfo(sample_, num_, duration_, num_, sample_format='s32')}, frames={0: {0: TestFrameInfo(pts_.0, duration_.064), 1: TestFrameInfo(pts_.064, duration_.064), 2: TestFrameInfo(pts_.128, duration_.064), 3: TestFrameInfo(pts_.192, duration_.064), 4: TestFrameInfo(pts_.256, duration_.064), 5: TestFrameInfo(pts_.32, duration_.064), 6: TestFrameInfo(pts_.384, duration_.064), 7: TestFrameInfo(pts_.448, duration_.064), 8: TestFrameInfo(pts_.512, duration_.064), 9: TestFrameInfo(pts_.576, duration_.064), 10: TestFrameInfo(pts_.64, duration_.064), 11: TestFrameInfo(pts_.704, duration_.064), 12: TestFrameInfo(pts_.768, duration_.064), 13: TestFrameInfo(pts_.832, duration_.064), 14: TestFrameInfo(pts_.896, duration_.064), 15: TestFrameInfo(pts_.96, duration_.064), 16: TestFrameInfo(pts_.024, duration_.064), 17: TestFrameInfo(pts_.088, duration_.064), 18: TestFrameInfo(pts_.152, duration_.064), 19: TestFrameInfo(pts_.216, duration_.064), 20: TestFrameInfo(pts_.28, duration_.064), 21: TestFrameInfo(pts_.344, duration_.064), 22: TestFrameInfo(pts_.408, duration_.064), 23: TestFrameInfo(pts_.472, duration_.064), 24: TestFrameInfo(pts_.536, duration_.064), 25: TestFrameInfo(pts_.6, duration_.064), 26: TestFrameInfo(pts_.664, duration_.064), 27: TestFrameInfo(pts_.728, duration_.064), 28: TestFrameInfo(pts_.792, duration_.064), 29: TestFrameInfo(pts_.856, duration_.064), 30: TestFrameInfo(pts_.92, duration_.064), 31: TestFrameInfo(pts_.984, duration_.064), 32: TestFrameInfo(pts_.048, duration_.064), 33: TestFrameInfo(pts_.112, duration_.064), 34: TestFrameInfo(pts_.176, duration_.064), 35: TestFrameInfo(pts_.24, duration_.064), 36: TestFrameInfo(pts_.304, duration_.064), 37: TestFrameInfo(pts_.368, duration_.064), 38: TestFrameInfo(pts_.432, duration_.064), 39: TestFrameInfo(pts_.496, duration_.064), 40: TestFrameInfo(pts_.56, duration_.064), 41: TestFrameInfo(pts_.624, duration_.064), 42: TestFrameInfo(pts_.688, duration_.064), 43: TestFrameInfo(pts_.752, duration_.064), 44: TestFrameInfo(pts_.816, duration_.064), 45: TestFrameInfo(pts_.88, duration_.064), 46: TestFrameInfo(pts_.944, duration_.064), 47: TestFrameInfo(pts_.008, duration_.064), 48: TestFrameInfo(pts_.072, duration_.064), 49: TestFrameInfo(pts_.136, duration_.064), 50: TestFrameInfo(pts_.2, duration_.064), 51: TestFrameInfo(pts_.264, duration_.064), 52: TestFrameInfo(pts_.328, duration_.064), 53: TestFrameInfo(pts_.392, duration_.064), 54: TestFrameInfo(pts_.456, duration_.064), 55: TestFrameInfo(pts_.52, duration_.064), 56: TestFrameInfo(pts_.584, duration_.064), 57: TestFrameInfo(pts_.648, duration_.064), 58: TestFrameInfo(pts_.712, duration_.064), 59: TestFrameInfo(pts_.776, duration_.064), 60: TestFrameInfo(pts_.84, duration_.064), 61: TestFrameInfo(pts_.904, duration_.064), 62: TestFrameInfo(pts_.968, duration_.032)}}, _custom_frame_mappings_data={}, _reference_frames={0: [tensor([[0.3000, 0.2955, 0.2823, ..., 0.2651, 0.2370, 0.2019]]), tensor([[ 0.1607, 0.1148, 0.0654, ..., 0.0235, -0.0282, -0.0792]]), tensor([[-0.1277, -0.1725, -0.2121, ..., -0.2399, -0.2673, -0.2867]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2582, -0.2281]]), tensor([[-0.1912, -0.1486, -0.1016, ..., -0.0608, -0.0094, 0.0423]]), tensor([[0.0927, 0.1404, 0.1839, ..., 0.2154, 0.2481, 0.2734]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2187, 0.1801, 0.1362, ..., 0.0971, 0.0469, -0.0047]]), tensor([[-0.0562, -0.1061, -0.1527, ..., -0.1876, -0.2250, -0.2558]]), tensor([[-0.2789, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2427, -0.2088, -0.1686, ..., -0.1320, -0.0837, -0.0330]]), tensor([[0.0189, 0.0701, 0.1192, ..., 0.1568, 0.1984, 0.2341]]), tensor([[0.2629, 0.2838, 0.2963, ..., 0.3000, 0.2963, 0.2838]]), tensor([[0.2629, 0.2341, 0.1984, ..., 0.1647, 0.1191, 0.0700]]), tensor([[ 0.0188, -0.0329, -0.0837, ..., -0.1235, -0.1687, -0.2088]]), tensor([[-0.2427, -0.2694, -0.2881, ..., -0.2970, -0.2999, -0.2938]]), tensor([[-0.2789, -0.2558, -0.2250, ..., -0.1948, -0.1527, -0.1060]]), tensor([[-0.0562, -0.0047, 0.0469, ..., 0.0882, 0.1362, 0.1801]]), tensor([[0.2187, 0.2508, 0.2754, ..., 0.2894, 0.2987, 0.2991]]), tensor([[0.2906, 0.2734, 0.2481, ..., 0.2219, 0.1839, 0.1403]]), tensor([[ 0.0927, 0.0423, -0.0094, ..., -0.0515, -0.1016, -0.1487]]), tensor([[-0.1913, -0.2282, -0.2582, ..., -0.2772, -0.2928, -0.2997]]), tensor([[-0.2976, -0.2867, -0.2673, ..., -0.2454, -0.2121, -0.1725]]), tensor([[-0.1277, -0.0791, -0.0281, ..., 0.0143, 0.0655, 0.1147]]), tensor([[0.1608, 0.2019, 0.2370, ..., 0.2607, 0.2823, 0.2955]]), tensor([[0.3000, 0.2955, 0.2823, ..., 0.2651, 0.2370, 0.2018]]), tensor([[ 0.1608, 0.1147, 0.0654, ..., 0.0236, -0.0283, -0.0793]]), tensor([[-0.1277, -0.1725, -0.2122, ..., -0.2399, -0.2673, -0.2868]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2582, -0.2281]]), tensor([[-0.1912, -0.1486, -0.1015, ..., -0.0607, -0.0094, 0.0422]]), tensor([[0.0928, 0.1403, 0.1840, ..., 0.2156, 0.2481, 0.2734]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2187, 0.1800, 0.1362, ..., 0.0972, 0.0468, -0.0048]]), tensor([[-0.0562, -0.1062, -0.1527, ..., -0.1875, -0.2251, -0.2559]]), tensor([[-0.2789, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2426, -0.2087, -0.1685, ..., -0.1319, -0.0837, -0.0329]]), tensor([[0.0189, 0.0700, 0.1192, ..., 0.1569, 0.1984, 0.2342]]), tensor([[0.2629, 0.2839, 0.2963, ..., 0.3000, 0.2963, 0.2838]]), tensor([[0.2628, 0.2341, 0.1984, ..., 0.1645, 0.1191, 0.0699]]), tensor([[ 0.0189, -0.0330, -0.0837, ..., -0.1234, -0.1688, -0.2089]]), tensor([[-0.2427, -0.2695, -0.2881, ..., -0.2970, -0.2998, -0.2938]]), tensor([[-0.2789, -0.2559, -0.2250, ..., -0.1947, -0.1526, -0.1059]]), tensor([[-0.0560, -0.0047, 0.0471, ..., 0.0883, 0.1362, 0.1803]]), tensor([[0.2187, 0.2507, 0.2753, ..., 0.2894, 0.2987, 0.2991]]), tensor([[0.2905, 0.2734, 0.2481, ..., 0.2218, 0.1838, 0.1403]]), tensor([[ 0.0926, 0.0422, -0.0094, ..., -0.0515, -0.1017, -0.1486]]), tensor([[-0.1912, -0.2281, -0.2583, ..., -0.2772, -0.2928, -0.2997]]), tensor([[-0.2976, -0.2867, -0.2672, ..., -0.2454, -0.2123, -0.1726]]), tensor([[-0.1276, -0.0790, -0.0283, ..., 0.0143, 0.0656, 0.1150]]), tensor([[0.1609, 0.2021, 0.2370, ..., 0.2607, 0.2823, 0.2955]]), tensor([[0.3000, 0.2955, 0.2822, ..., 0.2652, 0.2369, 0.2020]]), tensor([[ 0.1606, 0.1146, 0.0652, ..., 0.0234, -0.0284, -0.0791]]), tensor([[-0.1277, -0.1725, -0.2123, ..., -0.2399, -0.2673, -0.2868]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2581, -0.2279]]), tensor([[-0.1912, -0.1486, -0.1016, ..., -0.0609, -0.0094, 0.0423]]), tensor([[0.0930, 0.1404, 0.1839, ..., 0.2154, 0.2483, 0.2735]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2186, 0.1801, 0.1361, ..., 0.0972, 0.0469, -0.0048]]), tensor([[-0.0563, -0.1061, -0.1528, ..., -0.1878, -0.2251, -0.2558]]), tensor([[-0.2790, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2426, -0.2087, -0.1687, ..., -0.1316, -0.0836, -0.0328]]), tensor([[0.0190, 0.0702, 0.1190, ..., 0.1568, 0.1985, 0.2340]]), tensor([[ 2.6297e-01, 2.8389e-01, 2.9634e-01, 2.9996e-01, 2.9470e-01, 2.8064e-01, 2.5823e-01, 2.2793e-01, 1.9098e-01, 1.4834e-01, 1.0156e-01, 5.1493e-02, -1.0579e-04, -5.1413e-02, -1.0176e-01, -1.4878e-01, -1.9137e-01, -2.2806e-01, -2.5819e-01, -2.8061e-01, -2.9468e-01, -2.9996e-01, -2.9626e-01, -2.8372e-01, -2.6287e-01, -2.3409e-01, -1.9833e-01, -1.5641e-01, -1.1033e-01, -6.0700e-02, -9.2651e-03, 4.2446e-02, 9.2613e-02, 1.4031e-01, 1.8406e-01, 2.2186e-01, 2.5329e-01, 2.7716e-01, 2.9284e-01, 2.9967e-01, 2.9763e-01, 2.8663e-01, 2.6726e-01, 2.3984e-01, 2.0527e-01, 1.6458e-01, 1.1926e-01, 7.0132e-02, 1.8627e-02, -3.3149e-02, -8.3655e-02, -1.3196e-01, -1.7633e-01, -2.1545e-01, -2.4814e-01, -2.7356e-01, -2.9067e-01, -2.9908e-01, -2.9866e-01, -2.8933e-01, -2.7139e-01, -2.4552e-01, -2.1200e-01, -1.7233e-01, -1.2753e-01, -7.9209e-02, -2.8262e-02, 2.3527e-02, 7.4615e-02, 1.2348e-01, 1.6866e-01, 2.0903e-01, 2.4276e-01, 2.6945e-01, 2.8812e-01, 2.9820e-01, 2.9940e-01, 2.9167e-01, 2.7525e-01, 2.5078e-01, 2.1873e-01, 1.8015e-01, 1.3595e-01, 8.8209e-02, 3.7578e-02, -1.4174e-02, -6.5503e-02, -1.1488e-01, -1.6083e-01, -2.0221e-01, -2.3713e-01, -2.6520e-01, -2.8537e-01, -2.9703e-01, -2.9985e-01, -2.9378e-01, -2.7884e-01, -2.5580e-01, -2.2503e-01, -1.8756e-01, -1.4449e-01, -9.7399e-02, -4.6856e-02, 5.0994e-03, 5.6326e-02, 1.0617e-01, 1.5284e-01, 1.9496e-01, 2.3109e-01, 2.6069e-01, 2.8234e-01, 2.9558e-01, 3.0000e-01, 2.9553e-01, 2.8226e-01, 2.6057e-01, 2.3112e-01, 1.9478e-01, 1.5264e-01, 1.0594e-01, 5.6089e-02, 4.5655e-03, -4.7094e-02, -9.7350e-02, -1.4471e-01, -1.8775e-01, -2.2500e-01, -2.5578e-01, -2.7893e-01, -2.9377e-01, -2.9985e-01, -2.9700e-01, -2.8530e-01, -2.6509e-01, -2.3716e-01, -2.0181e-01, -1.6038e-01, -1.1466e-01, -6.5267e-02, -1.3933e-02, 3.7817e-02, 8.8159e-02, 1.3616e-01, 1.8035e-01, 2.1889e-01, 2.5075e-01, 2.7534e-01, 2.9172e-01, 2.9939e-01, 2.9821e-01, 2.8806e-01, 2.6922e-01, 2.4261e-01, 2.0865e-01, 1.6846e-01, 1.2353e-01, 7.4666e-02, 2.3287e-02, -2.8502e-02, -7.9159e-02, -1.2775e-01, -1.7253e-01, -2.1217e-01, -2.4532e-01, -2.7149e-01, -2.8940e-01, -2.9868e-01, -2.9909e-01, -2.9053e-01, -2.7334e-01, -2.4801e-01, -2.1528e-01, -1.7614e-01, -1.3174e-01, -8.3705e-02, -3.2909e-02, 1.8867e-02, 7.0082e-02, 1.1921e-01, 1.6478e-01, 2.0544e-01, 2.3981e-01, 2.6723e-01, 2.8670e-01, 2.9766e-01, 2.9966e-01, 2.9273e-01, 2.7707e-01, 2.5332e-01, 2.2190e-01, 1.8387e-01, 1.4010e-01, 9.2663e-02, 4.2207e-02, -9.5059e-03, -6.0936e-02, -1.1028e-01, -1.5662e-01, -1.9851e-01, -2.3424e-01, -2.6299e-01, -2.8390e-01, -2.9634e-01, -2.9996e-01, -2.9463e-01, -2.8053e-01, -2.5806e-01, -2.2810e-01, -1.9118e-01, -1.4857e-01, -1.0181e-01, -5.1464e-02, 1.3519e-04, 5.1731e-02, 1.0151e-01, 1.4855e-01, 1.9139e-01, 2.2808e-01, 2.5835e-01, 2.8073e-01, 2.9474e-01, 2.9996e-01, 2.9630e-01, 2.8381e-01, 2.6286e-01, 2.3407e-01, 1.9831e-01, 1.5664e-01, 1.1030e-01, 6.0958e-02, 9.5285e-03, -4.2185e-02, -9.2920e-02, -1.4060e-01, -1.8408e-01, -2.2208e-01, -2.5330e-01, -2.7717e-01, -2.9285e-01, -2.9967e-01, -2.9762e-01, -2.8671e-01, -2.6725e-01, -2.3999e-01, -2.0546e-01, -1.6455e-01, -1.1896e-01, -7.0104e-02, -1.8598e-02, 3.3178e-02, 8.3683e-02, 1.3199e-01, 1.7659e-01, 2.1567e-01, 2.4816e-01, 2.7345e-01, 2.9060e-01, 2.9908e-01, 2.9868e-01, 2.8933e-01, 2.7137e-01, 2.4550e-01, 2.1219e-01, 1.7255e-01, 1.2750e-01, 7.9181e-02, 2.7941e-02, -2.3848e-02, -7.4644e-02, -1.2351e-01, -1.6869e-01, -2.0884e-01, -2.4260e-01, -2.6947e-01, -2.8813e-01, -2.9821e-01, -2.9941e-01, -2.9173e-01, -2.7535e-01, -2.5061e-01, -2.1871e-01, -1.7990e-01, -1.3592e-01, -8.8181e-02, -3.7548e-02, 1.4203e-02, 6.5817e-02, 1.1491e-01, 1.6086e-01, 2.0201e-01, 2.3715e-01, 2.6508e-01, 2.8529e-01, 2.9704e-01, 2.9985e-01, 2.9377e-01, 2.7894e-01, 2.5563e-01, 2.2501e-01, 1.8754e-01, 1.4421e-01, 9.7095e-02, 4.6827e-02, -4.8358e-03, -5.6355e-02, -1.0592e-01, -1.5262e-01, -1.9499e-01, -2.3129e-01, -2.6056e-01, -2.8225e-01, -2.9553e-01, -3.0000e-01, -2.9548e-01, -2.8215e-01, -2.6041e-01, -2.3110e-01, -1.9476e-01, -1.5261e-01, -1.0591e-01, -5.6060e-02, -4.5361e-03, 4.7123e-02, 9.7101e-02, 1.4447e-01, 1.8754e-01, 2.2502e-01, 2.5579e-01, 2.7894e-01, 2.9383e-01, 2.9985e-01, 2.9700e-01, 2.8529e-01, 2.6508e-01, 2.3697e-01, 2.0179e-01, 1.6060e-01, 1.1463e-01, 6.5525e-02, 1.4196e-02, -3.7555e-02, -8.8467e-02, -1.3619e-01, -1.8014e-01, -2.1871e-01, -2.5077e-01, -2.7535e-01, -2.9180e-01, -2.9943e-01, -2.9817e-01, -2.8805e-01, -2.6934e-01, -2.4277e-01, -2.0884e-01, -1.6844e-01, -1.2323e-01, -7.4637e-02, -2.3550e-02, 2.8240e-02, 7.9187e-02, 1.2751e-01, 1.7279e-01, 2.1240e-01, 2.4550e-01, 2.7150e-01, 2.8940e-01, 2.9868e-01, 2.9908e-01, 2.9053e-01, 2.7333e-01, 2.4799e-01, 2.1546e-01, 1.7635e-01, 1.3198e-01, 8.3958e-02, 3.2880e-02, -1.8897e-02, -7.0395e-02, -1.1923e-01, -1.6480e-01, -2.0546e-01, -2.4000e-01, -2.6738e-01, -2.8679e-01, -2.9766e-01, -2.9967e-01, -2.9278e-01, -2.7717e-01, -2.5314e-01, -2.2188e-01, -1.8384e-01, -1.4033e-01, -9.2635e-02, -4.2468e-02, 9.5353e-03, 6.1252e-02, 1.1058e-01, 1.5689e-01, 1.9854e-01, 2.3426e-01, 2.6286e-01, 2.8381e-01, 2.9635e-01, 2.9996e-01, 2.9468e-01, 2.8062e-01, 2.5820e-01, 2.2827e-01, 1.9139e-01, 1.4854e-01, 1.0150e-01, 5.1435e-02, -1.6459e-04, -5.1760e-02, -1.0154e-01, -1.4883e-01, -1.9141e-01, -2.2829e-01, -2.5822e-01, -2.8064e-01, -2.9469e-01, -2.9996e-01, -2.9630e-01, -2.8380e-01, -2.6284e-01, -2.3405e-01, -1.9829e-01, -1.5661e-01, -1.1027e-01, -6.0642e-02, -9.2063e-03, 4.2504e-02, 9.2948e-02, 1.4036e-01, 1.8387e-01, 2.2190e-01, 2.5332e-01, 2.7719e-01, 2.9279e-01, 2.9967e-01, 2.9766e-01, 2.8678e-01, 2.6723e-01, 2.3980e-01, 2.0522e-01, 1.6453e-01, 1.1893e-01, 7.0075e-02, 1.8861e-02, -3.3207e-02, -8.3993e-02, -1.3201e-01, -1.7638e-01, -2.1549e-01, -2.4818e-01, -2.7335e-01, -2.9061e-01, -2.9909e-01, -2.9865e-01, -2.8932e-01, -2.7136e-01, -2.4531e-01, -2.1217e-01, -1.7229e-01, -1.2748e-01, -7.9152e-02, -2.8204e-02, 2.3586e-02, 7.4672e-02, 1.2327e-01, 1.6871e-01, 2.0886e-01, 2.4279e-01, 2.6935e-01, 2.8814e-01, 2.9821e-01, 2.9941e-01, 2.9165e-01, 2.7522e-01, 2.5059e-01, 2.1869e-01, 1.8011e-01, 1.3616e-01, 8.7873e-02, 3.7519e-02, -1.4232e-02, -6.5560e-02, -1.1466e-01, -1.6063e-01, -2.0182e-01, -2.3735e-01, -2.6523e-01, -2.8539e-01, -2.9704e-01, -2.9985e-01, -2.9377e-01, -2.7893e-01, -2.5562e-01, -2.2500e-01, -1.8751e-01, -1.4444e-01, -9.7067e-02, -4.7087e-02, 4.5723e-03, 5.6384e-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('/tmp/pytest-of-builduser/pytest-0/test_audio_against_cli_to_file0') capfd = <_pytest.capture.CaptureFixture object at 0xffff7787f9d0> 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", .mark.skipif( IS_WINDOWS and ffmpeg_major_version <= 5, reason="Encoding mp3 on Windows is weirdly buggy", ), ), pytest.param( "wav", .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( ["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_, , ) # Encode with Encoder enc, encoder_output, open_kwargs = self._create_encoder( method, tmp_path, format ) audio = enc.add_audio( sample_, num_, bit_, out_num_, out_sample_, ) 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, ) 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, , , ) E AssertionError: Tensor-likes are not close! E E Mismatched elements: 18 / 32000 (0.1%) E Greatest absolute difference: 0.018557779490947723 at index (0, 31931) (up to 0.01 allowed) E Greatest relative difference: 1.1382719278335571 at index (0, 31950) (up to 0 allowed) test/test_encoders.py:1190: AssertionError ----------------------------- Captured stderr call ----------------------------- [AVFormatContext @ 0xaaaaed7d7ad0] Opening '/tmp/pytest-of-builduser/pytest-0/test_audio_against_cli_to_file0/test.mp3' for reading [file @ 0xaaaaed422320] Setting default whitelist 'file,crypto,data' [mp3 @ 0xaaaaed7d7ad0] Format mp3 probed with and id3v2 ver:4 flags:00 len:34 [mp3 @ 0xaaaaed7d7ad0] pad 576 832 [mp3 @ 0xaaaaed7d7ad0] Skipping 0 bytes of junk at 260. [mp3 @ 0xaaaaed7d7ad0] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0xaaaaed7d7ad0] demuxer injecting skip 1105 / discard 0 [mp3float @ 0xaaaaef41dfb0] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaef41dfb0] skip whole frame, skip left: 529 [mp3 @ 0xaaaaed7d7ad0] All info found [mp3 @ 0xaaaaed7d7ad0] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0xaaaaef41dfb0] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaef41dfb0] skip whole frame, skip left: 529 [mp3float @ 0xaaaaef41dfb0] skip 529/576 samples [mp3 @ 0xaaaaed7d7ad0] demuxer injecting skip 0 / discard 303 [mp3float @ 0xaaaaef41dfb0] skip 0 / discard 303 samples due to side data [mp3float @ 0xaaaaef41dfb0] discard 303/576 samples [AVIOContext @ 0xaaaaeedfb4b0] Statistics: 4436 bytes read, 0 seeks [AVFormatContext @ 0xaaaaed7d7ad0] Opening '/tmp/pytest-of-builduser/pytest-0/test_audio_against_cli_to_file0/ffmpeg_output.mp3' for reading [file @ 0xaaaaee9e98a0] Setting default whitelist 'file,crypto,data' [mp3 @ 0xaaaaed7d7ad0] Format mp3 probed with and id3v2 ver:4 flags:00 len:34 [mp3 @ 0xaaaaed7d7ad0] pad 576 832 [mp3 @ 0xaaaaed7d7ad0] Skipping 0 bytes of junk at 260. [mp3 @ 0xaaaaed7d7ad0] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0xaaaaed7d7ad0] demuxer injecting skip 1105 / discard 0 [mp3float @ 0xaaaaf08cc990] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaf08cc990] skip whole frame, skip left: 529 [mp3 @ 0xaaaaed7d7ad0] All info found [mp3 @ 0xaaaaed7d7ad0] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0xaaaaf08cc990] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaf08cc990] skip whole frame, skip left: 529 [mp3float @ 0xaaaaf08cc990] skip 529/576 samples [mp3 @ 0xaaaaed7d7ad0] demuxer injecting skip 0 / discard 303 [mp3float @ 0xaaaaf08cc990] skip 0 / discard 303 samples due to side data [mp3float @ 0xaaaaf08cc990] discard 303/576 samples [AVIOContext @ 0xaaaaeedfb4b0] 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_, stream_infos={0: TestAudioStreamInfo(sample_, num_, duration_, num_, sample_format='s32')}, frames={0: {0: TestFrameInfo(pts_.0, duration_.064), 1: TestFrameInfo(pts_.064, duration_.064), 2: TestFrameInfo(pts_.128, duration_.064), 3: TestFrameInfo(pts_.192, duration_.064), 4: TestFrameInfo(pts_.256, duration_.064), 5: TestFrameInfo(pts_.32, duration_.064), 6: TestFrameInfo(pts_.384, duration_.064), 7: TestFrameInfo(pts_.448, duration_.064), 8: TestFrameInfo(pts_.512, duration_.064), 9: TestFrameInfo(pts_.576, duration_.064), 10: TestFrameInfo(pts_.64, duration_.064), 11: TestFrameInfo(pts_.704, duration_.064), 12: TestFrameInfo(pts_.768, duration_.064), 13: TestFrameInfo(pts_.832, duration_.064), 14: TestFrameInfo(pts_.896, duration_.064), 15: TestFrameInfo(pts_.96, duration_.064), 16: TestFrameInfo(pts_.024, duration_.064), 17: TestFrameInfo(pts_.088, duration_.064), 18: TestFrameInfo(pts_.152, duration_.064), 19: TestFrameInfo(pts_.216, duration_.064), 20: TestFrameInfo(pts_.28, duration_.064), 21: TestFrameInfo(pts_.344, duration_.064), 22: TestFrameInfo(pts_.408, duration_.064), 23: TestFrameInfo(pts_.472, duration_.064), 24: TestFrameInfo(pts_.536, duration_.064), 25: TestFrameInfo(pts_.6, duration_.064), 26: TestFrameInfo(pts_.664, duration_.064), 27: TestFrameInfo(pts_.728, duration_.064), 28: TestFrameInfo(pts_.792, duration_.064), 29: TestFrameInfo(pts_.856, duration_.064), 30: TestFrameInfo(pts_.92, duration_.064), 31: TestFrameInfo(pts_.984, duration_.064), 32: TestFrameInfo(pts_.048, duration_.064), 33: TestFrameInfo(pts_.112, duration_.064), 34: TestFrameInfo(pts_.176, duration_.064), 35: TestFrameInfo(pts_.24, duration_.064), 36: TestFrameInfo(pts_.304, duration_.064), 37: TestFrameInfo(pts_.368, duration_.064), 38: TestFrameInfo(pts_.432, duration_.064), 39: TestFrameInfo(pts_.496, duration_.064), 40: TestFrameInfo(pts_.56, duration_.064), 41: TestFrameInfo(pts_.624, duration_.064), 42: TestFrameInfo(pts_.688, duration_.064), 43: TestFrameInfo(pts_.752, duration_.064), 44: TestFrameInfo(pts_.816, duration_.064), 45: TestFrameInfo(pts_.88, duration_.064), 46: TestFrameInfo(pts_.944, duration_.064), 47: TestFrameInfo(pts_.008, duration_.064), 48: TestFrameInfo(pts_.072, duration_.064), 49: TestFrameInfo(pts_.136, duration_.064), 50: TestFrameInfo(pts_.2, duration_.064), 51: TestFrameInfo(pts_.264, duration_.064), 52: TestFrameInfo(pts_.328, duration_.064), 53: TestFrameInfo(pts_.392, duration_.064), 54: TestFrameInfo(pts_.456, duration_.064), 55: TestFrameInfo(pts_.52, duration_.064), 56: TestFrameInfo(pts_.584, duration_.064), 57: TestFrameInfo(pts_.648, duration_.064), 58: TestFrameInfo(pts_.712, duration_.064), 59: TestFrameInfo(pts_.776, duration_.064), 60: TestFrameInfo(pts_.84, duration_.064), 61: TestFrameInfo(pts_.904, duration_.064), 62: TestFrameInfo(pts_.968, duration_.032)}}, _custom_frame_mappings_data={}, _reference_frames={0: [tensor([[0.3000, 0.2955, 0.2823, ..., 0.2651, 0.2370, 0.2019]]), tensor([[ 0.1607, 0.1148, 0.0654, ..., 0.0235, -0.0282, -0.0792]]), tensor([[-0.1277, -0.1725, -0.2121, ..., -0.2399, -0.2673, -0.2867]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2582, -0.2281]]), tensor([[-0.1912, -0.1486, -0.1016, ..., -0.0608, -0.0094, 0.0423]]), tensor([[0.0927, 0.1404, 0.1839, ..., 0.2154, 0.2481, 0.2734]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2187, 0.1801, 0.1362, ..., 0.0971, 0.0469, -0.0047]]), tensor([[-0.0562, -0.1061, -0.1527, ..., -0.1876, -0.2250, -0.2558]]), tensor([[-0.2789, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2427, -0.2088, -0.1686, ..., -0.1320, -0.0837, -0.0330]]), tensor([[0.0189, 0.0701, 0.1192, ..., 0.1568, 0.1984, 0.2341]]), tensor([[0.2629, 0.2838, 0.2963, ..., 0.3000, 0.2963, 0.2838]]), tensor([[0.2629, 0.2341, 0.1984, ..., 0.1647, 0.1191, 0.0700]]), tensor([[ 0.0188, -0.0329, -0.0837, ..., -0.1235, -0.1687, -0.2088]]), tensor([[-0.2427, -0.2694, -0.2881, ..., -0.2970, -0.2999, -0.2938]]), tensor([[-0.2789, -0.2558, -0.2250, ..., -0.1948, -0.1527, -0.1060]]), tensor([[-0.0562, -0.0047, 0.0469, ..., 0.0882, 0.1362, 0.1801]]), tensor([[0.2187, 0.2508, 0.2754, ..., 0.2894, 0.2987, 0.2991]]), tensor([[0.2906, 0.2734, 0.2481, ..., 0.2219, 0.1839, 0.1403]]), tensor([[ 0.0927, 0.0423, -0.0094, ..., -0.0515, -0.1016, -0.1487]]), tensor([[-0.1913, -0.2282, -0.2582, ..., -0.2772, -0.2928, -0.2997]]), tensor([[-0.2976, -0.2867, -0.2673, ..., -0.2454, -0.2121, -0.1725]]), tensor([[-0.1277, -0.0791, -0.0281, ..., 0.0143, 0.0655, 0.1147]]), tensor([[0.1608, 0.2019, 0.2370, ..., 0.2607, 0.2823, 0.2955]]), tensor([[0.3000, 0.2955, 0.2823, ..., 0.2651, 0.2370, 0.2018]]), tensor([[ 0.1608, 0.1147, 0.0654, ..., 0.0236, -0.0283, -0.0793]]), tensor([[-0.1277, -0.1725, -0.2122, ..., -0.2399, -0.2673, -0.2868]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2582, -0.2281]]), tensor([[-0.1912, -0.1486, -0.1015, ..., -0.0607, -0.0094, 0.0422]]), tensor([[0.0928, 0.1403, 0.1840, ..., 0.2156, 0.2481, 0.2734]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2187, 0.1800, 0.1362, ..., 0.0972, 0.0468, -0.0048]]), tensor([[-0.0562, -0.1062, -0.1527, ..., -0.1875, -0.2251, -0.2559]]), tensor([[-0.2789, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2426, -0.2087, -0.1685, ..., -0.1319, -0.0837, -0.0329]]), tensor([[0.0189, 0.0700, 0.1192, ..., 0.1569, 0.1984, 0.2342]]), tensor([[0.2629, 0.2839, 0.2963, ..., 0.3000, 0.2963, 0.2838]]), tensor([[0.2628, 0.2341, 0.1984, ..., 0.1645, 0.1191, 0.0699]]), tensor([[ 0.0189, -0.0330, -0.0837, ..., -0.1234, -0.1688, -0.2089]]), tensor([[-0.2427, -0.2695, -0.2881, ..., -0.2970, -0.2998, -0.2938]]), tensor([[-0.2789, -0.2559, -0.2250, ..., -0.1947, -0.1526, -0.1059]]), tensor([[-0.0560, -0.0047, 0.0471, ..., 0.0883, 0.1362, 0.1803]]), tensor([[0.2187, 0.2507, 0.2753, ..., 0.2894, 0.2987, 0.2991]]), tensor([[0.2905, 0.2734, 0.2481, ..., 0.2218, 0.1838, 0.1403]]), tensor([[ 0.0926, 0.0422, -0.0094, ..., -0.0515, -0.1017, -0.1486]]), tensor([[-0.1912, -0.2281, -0.2583, ..., -0.2772, -0.2928, -0.2997]]), tensor([[-0.2976, -0.2867, -0.2672, ..., -0.2454, -0.2123, -0.1726]]), tensor([[-0.1276, -0.0790, -0.0283, ..., 0.0143, 0.0656, 0.1150]]), tensor([[0.1609, 0.2021, 0.2370, ..., 0.2607, 0.2823, 0.2955]]), tensor([[0.3000, 0.2955, 0.2822, ..., 0.2652, 0.2369, 0.2020]]), tensor([[ 0.1606, 0.1146, 0.0652, ..., 0.0234, -0.0284, -0.0791]]), tensor([[-0.1277, -0.1725, -0.2123, ..., -0.2399, -0.2673, -0.2868]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2581, -0.2279]]), tensor([[-0.1912, -0.1486, -0.1016, ..., -0.0609, -0.0094, 0.0423]]), tensor([[0.0930, 0.1404, 0.1839, ..., 0.2154, 0.2483, 0.2735]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2186, 0.1801, 0.1361, ..., 0.0972, 0.0469, -0.0048]]), tensor([[-0.0563, -0.1061, -0.1528, ..., -0.1878, -0.2251, -0.2558]]), tensor([[-0.2790, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2426, -0.2087, -0.1687, ..., -0.1316, -0.0836, -0.0328]]), tensor([[0.0190, 0.0702, 0.1190, ..., 0.1568, 0.1985, 0.2340]]), tensor([[ 2.6297e-01, 2.8389e-01, 2.9634e-01, 2.9996e-01, 2.9470e-01, 2.8064e-01, 2.5823e-01, 2.2793e-01, 1.9098e-01, 1.4834e-01, 1.0156e-01, 5.1493e-02, -1.0579e-04, -5.1413e-02, -1.0176e-01, -1.4878e-01, -1.9137e-01, -2.2806e-01, -2.5819e-01, -2.8061e-01, -2.9468e-01, -2.9996e-01, -2.9626e-01, -2.8372e-01, -2.6287e-01, -2.3409e-01, -1.9833e-01, -1.5641e-01, -1.1033e-01, -6.0700e-02, -9.2651e-03, 4.2446e-02, 9.2613e-02, 1.4031e-01, 1.8406e-01, 2.2186e-01, 2.5329e-01, 2.7716e-01, 2.9284e-01, 2.9967e-01, 2.9763e-01, 2.8663e-01, 2.6726e-01, 2.3984e-01, 2.0527e-01, 1.6458e-01, 1.1926e-01, 7.0132e-02, 1.8627e-02, -3.3149e-02, -8.3655e-02, -1.3196e-01, -1.7633e-01, -2.1545e-01, -2.4814e-01, -2.7356e-01, -2.9067e-01, -2.9908e-01, -2.9866e-01, -2.8933e-01, -2.7139e-01, -2.4552e-01, -2.1200e-01, -1.7233e-01, -1.2753e-01, -7.9209e-02, -2.8262e-02, 2.3527e-02, 7.4615e-02, 1.2348e-01, 1.6866e-01, 2.0903e-01, 2.4276e-01, 2.6945e-01, 2.8812e-01, 2.9820e-01, 2.9940e-01, 2.9167e-01, 2.7525e-01, 2.5078e-01, 2.1873e-01, 1.8015e-01, 1.3595e-01, 8.8209e-02, 3.7578e-02, -1.4174e-02, -6.5503e-02, -1.1488e-01, -1.6083e-01, -2.0221e-01, -2.3713e-01, -2.6520e-01, -2.8537e-01, -2.9703e-01, -2.9985e-01, -2.9378e-01, -2.7884e-01, -2.5580e-01, -2.2503e-01, -1.8756e-01, -1.4449e-01, -9.7399e-02, -4.6856e-02, 5.0994e-03, 5.6326e-02, 1.0617e-01, 1.5284e-01, 1.9496e-01, 2.3109e-01, 2.6069e-01, 2.8234e-01, 2.9558e-01, 3.0000e-01, 2.9553e-01, 2.8226e-01, 2.6057e-01, 2.3112e-01, 1.9478e-01, 1.5264e-01, 1.0594e-01, 5.6089e-02, 4.5655e-03, -4.7094e-02, -9.7350e-02, -1.4471e-01, -1.8775e-01, -2.2500e-01, -2.5578e-01, -2.7893e-01, -2.9377e-01, -2.9985e-01, -2.9700e-01, -2.8530e-01, -2.6509e-01, -2.3716e-01, -2.0181e-01, -1.6038e-01, -1.1466e-01, -6.5267e-02, -1.3933e-02, 3.7817e-02, 8.8159e-02, 1.3616e-01, 1.8035e-01, 2.1889e-01, 2.5075e-01, 2.7534e-01, 2.9172e-01, 2.9939e-01, 2.9821e-01, 2.8806e-01, 2.6922e-01, 2.4261e-01, 2.0865e-01, 1.6846e-01, 1.2353e-01, 7.4666e-02, 2.3287e-02, -2.8502e-02, -7.9159e-02, -1.2775e-01, -1.7253e-01, -2.1217e-01, -2.4532e-01, -2.7149e-01, -2.8940e-01, -2.9868e-01, -2.9909e-01, -2.9053e-01, -2.7334e-01, -2.4801e-01, -2.1528e-01, -1.7614e-01, -1.3174e-01, -8.3705e-02, -3.2909e-02, 1.8867e-02, 7.0082e-02, 1.1921e-01, 1.6478e-01, 2.0544e-01, 2.3981e-01, 2.6723e-01, 2.8670e-01, 2.9766e-01, 2.9966e-01, 2.9273e-01, 2.7707e-01, 2.5332e-01, 2.2190e-01, 1.8387e-01, 1.4010e-01, 9.2663e-02, 4.2207e-02, -9.5059e-03, -6.0936e-02, -1.1028e-01, -1.5662e-01, -1.9851e-01, -2.3424e-01, -2.6299e-01, -2.8390e-01, -2.9634e-01, -2.9996e-01, -2.9463e-01, -2.8053e-01, -2.5806e-01, -2.2810e-01, -1.9118e-01, -1.4857e-01, -1.0181e-01, -5.1464e-02, 1.3519e-04, 5.1731e-02, 1.0151e-01, 1.4855e-01, 1.9139e-01, 2.2808e-01, 2.5835e-01, 2.8073e-01, 2.9474e-01, 2.9996e-01, 2.9630e-01, 2.8381e-01, 2.6286e-01, 2.3407e-01, 1.9831e-01, 1.5664e-01, 1.1030e-01, 6.0958e-02, 9.5285e-03, -4.2185e-02, -9.2920e-02, -1.4060e-01, -1.8408e-01, -2.2208e-01, -2.5330e-01, -2.7717e-01, -2.9285e-01, -2.9967e-01, -2.9762e-01, -2.8671e-01, -2.6725e-01, -2.3999e-01, -2.0546e-01, -1.6455e-01, -1.1896e-01, -7.0104e-02, -1.8598e-02, 3.3178e-02, 8.3683e-02, 1.3199e-01, 1.7659e-01, 2.1567e-01, 2.4816e-01, 2.7345e-01, 2.9060e-01, 2.9908e-01, 2.9868e-01, 2.8933e-01, 2.7137e-01, 2.4550e-01, 2.1219e-01, 1.7255e-01, 1.2750e-01, 7.9181e-02, 2.7941e-02, -2.3848e-02, -7.4644e-02, -1.2351e-01, -1.6869e-01, -2.0884e-01, -2.4260e-01, -2.6947e-01, -2.8813e-01, -2.9821e-01, -2.9941e-01, -2.9173e-01, -2.7535e-01, -2.5061e-01, -2.1871e-01, -1.7990e-01, -1.3592e-01, -8.8181e-02, -3.7548e-02, 1.4203e-02, 6.5817e-02, 1.1491e-01, 1.6086e-01, 2.0201e-01, 2.3715e-01, 2.6508e-01, 2.8529e-01, 2.9704e-01, 2.9985e-01, 2.9377e-01, 2.7894e-01, 2.5563e-01, 2.2501e-01, 1.8754e-01, 1.4421e-01, 9.7095e-02, 4.6827e-02, -4.8358e-03, -5.6355e-02, -1.0592e-01, -1.5262e-01, -1.9499e-01, -2.3129e-01, -2.6056e-01, -2.8225e-01, -2.9553e-01, -3.0000e-01, -2.9548e-01, -2.8215e-01, -2.6041e-01, -2.3110e-01, -1.9476e-01, -1.5261e-01, -1.0591e-01, -5.6060e-02, -4.5361e-03, 4.7123e-02, 9.7101e-02, 1.4447e-01, 1.8754e-01, 2.2502e-01, 2.5579e-01, 2.7894e-01, 2.9383e-01, 2.9985e-01, 2.9700e-01, 2.8529e-01, 2.6508e-01, 2.3697e-01, 2.0179e-01, 1.6060e-01, 1.1463e-01, 6.5525e-02, 1.4196e-02, -3.7555e-02, -8.8467e-02, -1.3619e-01, -1.8014e-01, -2.1871e-01, -2.5077e-01, -2.7535e-01, -2.9180e-01, -2.9943e-01, -2.9817e-01, -2.8805e-01, -2.6934e-01, -2.4277e-01, -2.0884e-01, -1.6844e-01, -1.2323e-01, -7.4637e-02, -2.3550e-02, 2.8240e-02, 7.9187e-02, 1.2751e-01, 1.7279e-01, 2.1240e-01, 2.4550e-01, 2.7150e-01, 2.8940e-01, 2.9868e-01, 2.9908e-01, 2.9053e-01, 2.7333e-01, 2.4799e-01, 2.1546e-01, 1.7635e-01, 1.3198e-01, 8.3958e-02, 3.2880e-02, -1.8897e-02, -7.0395e-02, -1.1923e-01, -1.6480e-01, -2.0546e-01, -2.4000e-01, -2.6738e-01, -2.8679e-01, -2.9766e-01, -2.9967e-01, -2.9278e-01, -2.7717e-01, -2.5314e-01, -2.2188e-01, -1.8384e-01, -1.4033e-01, -9.2635e-02, -4.2468e-02, 9.5353e-03, 6.1252e-02, 1.1058e-01, 1.5689e-01, 1.9854e-01, 2.3426e-01, 2.6286e-01, 2.8381e-01, 2.9635e-01, 2.9996e-01, 2.9468e-01, 2.8062e-01, 2.5820e-01, 2.2827e-01, 1.9139e-01, 1.4854e-01, 1.0150e-01, 5.1435e-02, -1.6459e-04, -5.1760e-02, -1.0154e-01, -1.4883e-01, -1.9141e-01, -2.2829e-01, -2.5822e-01, -2.8064e-01, -2.9469e-01, -2.9996e-01, -2.9630e-01, -2.8380e-01, -2.6284e-01, -2.3405e-01, -1.9829e-01, -1.5661e-01, -1.1027e-01, -6.0642e-02, -9.2063e-03, 4.2504e-02, 9.2948e-02, 1.4036e-01, 1.8387e-01, 2.2190e-01, 2.5332e-01, 2.7719e-01, 2.9279e-01, 2.9967e-01, 2.9766e-01, 2.8678e-01, 2.6723e-01, 2.3980e-01, 2.0522e-01, 1.6453e-01, 1.1893e-01, 7.0075e-02, 1.8861e-02, -3.3207e-02, -8.3993e-02, -1.3201e-01, -1.7638e-01, -2.1549e-01, -2.4818e-01, -2.7335e-01, -2.9061e-01, -2.9909e-01, -2.9865e-01, -2.8932e-01, -2.7136e-01, -2.4531e-01, -2.1217e-01, -1.7229e-01, -1.2748e-01, -7.9152e-02, -2.8204e-02, 2.3586e-02, 7.4672e-02, 1.2327e-01, 1.6871e-01, 2.0886e-01, 2.4279e-01, 2.6935e-01, 2.8814e-01, 2.9821e-01, 2.9941e-01, 2.9165e-01, 2.7522e-01, 2.5059e-01, 2.1869e-01, 1.8011e-01, 1.3616e-01, 8.7873e-02, 3.7519e-02, -1.4232e-02, -6.5560e-02, -1.1466e-01, -1.6063e-01, -2.0182e-01, -2.3735e-01, -2.6523e-01, -2.8539e-01, -2.9704e-01, -2.9985e-01, -2.9377e-01, -2.7893e-01, -2.5562e-01, -2.2500e-01, -1.8751e-01, -1.4444e-01, -9.7067e-02, -4.7087e-02, 4.5723e-03, 5.6384e-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('/tmp/pytest-of-builduser/pytest-0/test_audio_against_cli_to_file1') capfd = <_pytest.capture.CaptureFixture object at 0xffff7613f230> 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", .mark.skipif( IS_WINDOWS and ffmpeg_major_version <= 5, reason="Encoding mp3 on Windows is weirdly buggy", ), ), pytest.param( "wav", .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( ["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_, , ) # Encode with Encoder enc, encoder_output, open_kwargs = self._create_encoder( method, tmp_path, format ) audio = enc.add_audio( sample_, num_, bit_, out_num_, out_sample_, ) 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, ) 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, , , ) E AssertionError: Tensor-likes are not close! E E Mismatched elements: 18 / 32000 (0.1%) E Greatest absolute difference: 0.018557779490947723 at index (0, 31931) (up to 0.01 allowed) E Greatest relative difference: 1.1382719278335571 at index (0, 31950) (up to 0 allowed) test/test_encoders.py:1190: AssertionError ----------------------------- Captured stderr call ----------------------------- [AVFormatContext @ 0xaaaaef0614d0] Opening '/tmp/pytest-of-builduser/pytest-0/test_audio_against_cli_to_file1/test.mp3' for reading [file @ 0xaaaaeeb6df90] Setting default whitelist 'file,crypto,data' [mp3 @ 0xaaaaef0614d0] Format mp3 probed with and id3v2 ver:4 flags:00 len:34 [mp3 @ 0xaaaaef0614d0] pad 576 832 [mp3 @ 0xaaaaef0614d0] Skipping 0 bytes of junk at 260. [mp3 @ 0xaaaaef0614d0] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0xaaaaef0614d0] demuxer injecting skip 1105 / discard 0 [mp3float @ 0xaaaaf08cc990] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaf08cc990] skip whole frame, skip left: 529 [mp3 @ 0xaaaaef0614d0] All info found [mp3 @ 0xaaaaef0614d0] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0xaaaaf08cc990] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaf08cc990] skip whole frame, skip left: 529 [mp3float @ 0xaaaaf08cc990] skip 529/576 samples [mp3 @ 0xaaaaef0614d0] demuxer injecting skip 0 / discard 303 [mp3float @ 0xaaaaf08cc990] skip 0 / discard 303 samples due to side data [mp3float @ 0xaaaaf08cc990] discard 303/576 samples [AVIOContext @ 0xaaaaf0ab3db0] Statistics: 4436 bytes read, 0 seeks [AVFormatContext @ 0xaaaaef0614d0] Opening '/tmp/pytest-of-builduser/pytest-0/test_audio_against_cli_to_file1/ffmpeg_output.mp3' for reading [file @ 0xaaaaef64ee20] Setting default whitelist 'file,crypto,data' [mp3 @ 0xaaaaef0614d0] Format mp3 probed with and id3v2 ver:4 flags:00 len:34 [mp3 @ 0xaaaaef0614d0] pad 576 832 [mp3 @ 0xaaaaef0614d0] Skipping 0 bytes of junk at 260. [mp3 @ 0xaaaaef0614d0] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0xaaaaef0614d0] demuxer injecting skip 1105 / discard 0 [mp3float @ 0xaaaaee3397c0] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaee3397c0] skip whole frame, skip left: 529 [mp3 @ 0xaaaaef0614d0] All info found [mp3 @ 0xaaaaef0614d0] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0xaaaaee3397c0] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaee3397c0] skip whole frame, skip left: 529 [mp3float @ 0xaaaaee3397c0] skip 529/576 samples [mp3 @ 0xaaaaef0614d0] demuxer injecting skip 0 / discard 303 [mp3float @ 0xaaaaee3397c0] skip 0 / discard 303 samples due to side data [mp3float @ 0xaaaaee3397c0] discard 303/576 samples [AVIOContext @ 0xaaaaf0ab3db0] 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_, stream_infos={0: TestAudioStreamInfo(sample_, num_, duration_, num_, sample_format='s32')}, frames={0: {0: TestFrameInfo(pts_.0, duration_.064), 1: TestFrameInfo(pts_.064, duration_.064), 2: TestFrameInfo(pts_.128, duration_.064), 3: TestFrameInfo(pts_.192, duration_.064), 4: TestFrameInfo(pts_.256, duration_.064), 5: TestFrameInfo(pts_.32, duration_.064), 6: TestFrameInfo(pts_.384, duration_.064), 7: TestFrameInfo(pts_.448, duration_.064), 8: TestFrameInfo(pts_.512, duration_.064), 9: TestFrameInfo(pts_.576, duration_.064), 10: TestFrameInfo(pts_.64, duration_.064), 11: TestFrameInfo(pts_.704, duration_.064), 12: TestFrameInfo(pts_.768, duration_.064), 13: TestFrameInfo(pts_.832, duration_.064), 14: TestFrameInfo(pts_.896, duration_.064), 15: TestFrameInfo(pts_.96, duration_.064), 16: TestFrameInfo(pts_.024, duration_.064), 17: TestFrameInfo(pts_.088, duration_.064), 18: TestFrameInfo(pts_.152, duration_.064), 19: TestFrameInfo(pts_.216, duration_.064), 20: TestFrameInfo(pts_.28, duration_.064), 21: TestFrameInfo(pts_.344, duration_.064), 22: TestFrameInfo(pts_.408, duration_.064), 23: TestFrameInfo(pts_.472, duration_.064), 24: TestFrameInfo(pts_.536, duration_.064), 25: TestFrameInfo(pts_.6, duration_.064), 26: TestFrameInfo(pts_.664, duration_.064), 27: TestFrameInfo(pts_.728, duration_.064), 28: TestFrameInfo(pts_.792, duration_.064), 29: TestFrameInfo(pts_.856, duration_.064), 30: TestFrameInfo(pts_.92, duration_.064), 31: TestFrameInfo(pts_.984, duration_.064), 32: TestFrameInfo(pts_.048, duration_.064), 33: TestFrameInfo(pts_.112, duration_.064), 34: TestFrameInfo(pts_.176, duration_.064), 35: TestFrameInfo(pts_.24, duration_.064), 36: TestFrameInfo(pts_.304, duration_.064), 37: TestFrameInfo(pts_.368, duration_.064), 38: TestFrameInfo(pts_.432, duration_.064), 39: TestFrameInfo(pts_.496, duration_.064), 40: TestFrameInfo(pts_.56, duration_.064), 41: TestFrameInfo(pts_.624, duration_.064), 42: TestFrameInfo(pts_.688, duration_.064), 43: TestFrameInfo(pts_.752, duration_.064), 44: TestFrameInfo(pts_.816, duration_.064), 45: TestFrameInfo(pts_.88, duration_.064), 46: TestFrameInfo(pts_.944, duration_.064), 47: TestFrameInfo(pts_.008, duration_.064), 48: TestFrameInfo(pts_.072, duration_.064), 49: TestFrameInfo(pts_.136, duration_.064), 50: TestFrameInfo(pts_.2, duration_.064), 51: TestFrameInfo(pts_.264, duration_.064), 52: TestFrameInfo(pts_.328, duration_.064), 53: TestFrameInfo(pts_.392, duration_.064), 54: TestFrameInfo(pts_.456, duration_.064), 55: TestFrameInfo(pts_.52, duration_.064), 56: TestFrameInfo(pts_.584, duration_.064), 57: TestFrameInfo(pts_.648, duration_.064), 58: TestFrameInfo(pts_.712, duration_.064), 59: TestFrameInfo(pts_.776, duration_.064), 60: TestFrameInfo(pts_.84, duration_.064), 61: TestFrameInfo(pts_.904, duration_.064), 62: TestFrameInfo(pts_.968, duration_.032)}}, _custom_frame_mappings_data={}, _reference_frames={0: [tensor([[0.3000, 0.2955, 0.2823, ..., 0.2651, 0.2370, 0.2019]]), tensor([[ 0.1607, 0.1148, 0.0654, ..., 0.0235, -0.0282, -0.0792]]), tensor([[-0.1277, -0.1725, -0.2121, ..., -0.2399, -0.2673, -0.2867]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2582, -0.2281]]), tensor([[-0.1912, -0.1486, -0.1016, ..., -0.0608, -0.0094, 0.0423]]), tensor([[0.0927, 0.1404, 0.1839, ..., 0.2154, 0.2481, 0.2734]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2187, 0.1801, 0.1362, ..., 0.0971, 0.0469, -0.0047]]), tensor([[-0.0562, -0.1061, -0.1527, ..., -0.1876, -0.2250, -0.2558]]), tensor([[-0.2789, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2427, -0.2088, -0.1686, ..., -0.1320, -0.0837, -0.0330]]), tensor([[0.0189, 0.0701, 0.1192, ..., 0.1568, 0.1984, 0.2341]]), tensor([[0.2629, 0.2838, 0.2963, ..., 0.3000, 0.2963, 0.2838]]), tensor([[0.2629, 0.2341, 0.1984, ..., 0.1647, 0.1191, 0.0700]]), tensor([[ 0.0188, -0.0329, -0.0837, ..., -0.1235, -0.1687, -0.2088]]), tensor([[-0.2427, -0.2694, -0.2881, ..., -0.2970, -0.2999, -0.2938]]), tensor([[-0.2789, -0.2558, -0.2250, ..., -0.1948, -0.1527, -0.1060]]), tensor([[-0.0562, -0.0047, 0.0469, ..., 0.0882, 0.1362, 0.1801]]), tensor([[0.2187, 0.2508, 0.2754, ..., 0.2894, 0.2987, 0.2991]]), tensor([[0.2906, 0.2734, 0.2481, ..., 0.2219, 0.1839, 0.1403]]), tensor([[ 0.0927, 0.0423, -0.0094, ..., -0.0515, -0.1016, -0.1487]]), tensor([[-0.1913, -0.2282, -0.2582, ..., -0.2772, -0.2928, -0.2997]]), tensor([[-0.2976, -0.2867, -0.2673, ..., -0.2454, -0.2121, -0.1725]]), tensor([[-0.1277, -0.0791, -0.0281, ..., 0.0143, 0.0655, 0.1147]]), tensor([[0.1608, 0.2019, 0.2370, ..., 0.2607, 0.2823, 0.2955]]), tensor([[0.3000, 0.2955, 0.2823, ..., 0.2651, 0.2370, 0.2018]]), tensor([[ 0.1608, 0.1147, 0.0654, ..., 0.0236, -0.0283, -0.0793]]), tensor([[-0.1277, -0.1725, -0.2122, ..., -0.2399, -0.2673, -0.2868]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2582, -0.2281]]), tensor([[-0.1912, -0.1486, -0.1015, ..., -0.0607, -0.0094, 0.0422]]), tensor([[0.0928, 0.1403, 0.1840, ..., 0.2156, 0.2481, 0.2734]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2187, 0.1800, 0.1362, ..., 0.0972, 0.0468, -0.0048]]), tensor([[-0.0562, -0.1062, -0.1527, ..., -0.1875, -0.2251, -0.2559]]), tensor([[-0.2789, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2426, -0.2087, -0.1685, ..., -0.1319, -0.0837, -0.0329]]), tensor([[0.0189, 0.0700, 0.1192, ..., 0.1569, 0.1984, 0.2342]]), tensor([[0.2629, 0.2839, 0.2963, ..., 0.3000, 0.2963, 0.2838]]), tensor([[0.2628, 0.2341, 0.1984, ..., 0.1645, 0.1191, 0.0699]]), tensor([[ 0.0189, -0.0330, -0.0837, ..., -0.1234, -0.1688, -0.2089]]), tensor([[-0.2427, -0.2695, -0.2881, ..., -0.2970, -0.2998, -0.2938]]), tensor([[-0.2789, -0.2559, -0.2250, ..., -0.1947, -0.1526, -0.1059]]), tensor([[-0.0560, -0.0047, 0.0471, ..., 0.0883, 0.1362, 0.1803]]), tensor([[0.2187, 0.2507, 0.2753, ..., 0.2894, 0.2987, 0.2991]]), tensor([[0.2905, 0.2734, 0.2481, ..., 0.2218, 0.1838, 0.1403]]), tensor([[ 0.0926, 0.0422, -0.0094, ..., -0.0515, -0.1017, -0.1486]]), tensor([[-0.1912, -0.2281, -0.2583, ..., -0.2772, -0.2928, -0.2997]]), tensor([[-0.2976, -0.2867, -0.2672, ..., -0.2454, -0.2123, -0.1726]]), tensor([[-0.1276, -0.0790, -0.0283, ..., 0.0143, 0.0656, 0.1150]]), tensor([[0.1609, 0.2021, 0.2370, ..., 0.2607, 0.2823, 0.2955]]), tensor([[0.3000, 0.2955, 0.2822, ..., 0.2652, 0.2369, 0.2020]]), tensor([[ 0.1606, 0.1146, 0.0652, ..., 0.0234, -0.0284, -0.0791]]), tensor([[-0.1277, -0.1725, -0.2123, ..., -0.2399, -0.2673, -0.2868]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2581, -0.2279]]), tensor([[-0.1912, -0.1486, -0.1016, ..., -0.0609, -0.0094, 0.0423]]), tensor([[0.0930, 0.1404, 0.1839, ..., 0.2154, 0.2483, 0.2735]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2186, 0.1801, 0.1361, ..., 0.0972, 0.0469, -0.0048]]), tensor([[-0.0563, -0.1061, -0.1528, ..., -0.1878, -0.2251, -0.2558]]), tensor([[-0.2790, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2426, -0.2087, -0.1687, ..., -0.1316, -0.0836, -0.0328]]), tensor([[0.0190, 0.0702, 0.1190, ..., 0.1568, 0.1985, 0.2340]]), tensor([[ 2.6297e-01, 2.8389e-01, 2.9634e-01, 2.9996e-01, 2.9470e-01, 2.8064e-01, 2.5823e-01, 2.2793e-01, 1.9098e-01, 1.4834e-01, 1.0156e-01, 5.1493e-02, -1.0579e-04, -5.1413e-02, -1.0176e-01, -1.4878e-01, -1.9137e-01, -2.2806e-01, -2.5819e-01, -2.8061e-01, -2.9468e-01, -2.9996e-01, -2.9626e-01, -2.8372e-01, -2.6287e-01, -2.3409e-01, -1.9833e-01, -1.5641e-01, -1.1033e-01, -6.0700e-02, -9.2651e-03, 4.2446e-02, 9.2613e-02, 1.4031e-01, 1.8406e-01, 2.2186e-01, 2.5329e-01, 2.7716e-01, 2.9284e-01, 2.9967e-01, 2.9763e-01, 2.8663e-01, 2.6726e-01, 2.3984e-01, 2.0527e-01, 1.6458e-01, 1.1926e-01, 7.0132e-02, 1.8627e-02, -3.3149e-02, -8.3655e-02, -1.3196e-01, -1.7633e-01, -2.1545e-01, -2.4814e-01, -2.7356e-01, -2.9067e-01, -2.9908e-01, -2.9866e-01, -2.8933e-01, -2.7139e-01, -2.4552e-01, -2.1200e-01, -1.7233e-01, -1.2753e-01, -7.9209e-02, -2.8262e-02, 2.3527e-02, 7.4615e-02, 1.2348e-01, 1.6866e-01, 2.0903e-01, 2.4276e-01, 2.6945e-01, 2.8812e-01, 2.9820e-01, 2.9940e-01, 2.9167e-01, 2.7525e-01, 2.5078e-01, 2.1873e-01, 1.8015e-01, 1.3595e-01, 8.8209e-02, 3.7578e-02, -1.4174e-02, -6.5503e-02, -1.1488e-01, -1.6083e-01, -2.0221e-01, -2.3713e-01, -2.6520e-01, -2.8537e-01, -2.9703e-01, -2.9985e-01, -2.9378e-01, -2.7884e-01, -2.5580e-01, -2.2503e-01, -1.8756e-01, -1.4449e-01, -9.7399e-02, -4.6856e-02, 5.0994e-03, 5.6326e-02, 1.0617e-01, 1.5284e-01, 1.9496e-01, 2.3109e-01, 2.6069e-01, 2.8234e-01, 2.9558e-01, 3.0000e-01, 2.9553e-01, 2.8226e-01, 2.6057e-01, 2.3112e-01, 1.9478e-01, 1.5264e-01, 1.0594e-01, 5.6089e-02, 4.5655e-03, -4.7094e-02, -9.7350e-02, -1.4471e-01, -1.8775e-01, -2.2500e-01, -2.5578e-01, -2.7893e-01, -2.9377e-01, -2.9985e-01, -2.9700e-01, -2.8530e-01, -2.6509e-01, -2.3716e-01, -2.0181e-01, -1.6038e-01, -1.1466e-01, -6.5267e-02, -1.3933e-02, 3.7817e-02, 8.8159e-02, 1.3616e-01, 1.8035e-01, 2.1889e-01, 2.5075e-01, 2.7534e-01, 2.9172e-01, 2.9939e-01, 2.9821e-01, 2.8806e-01, 2.6922e-01, 2.4261e-01, 2.0865e-01, 1.6846e-01, 1.2353e-01, 7.4666e-02, 2.3287e-02, -2.8502e-02, -7.9159e-02, -1.2775e-01, -1.7253e-01, -2.1217e-01, -2.4532e-01, -2.7149e-01, -2.8940e-01, -2.9868e-01, -2.9909e-01, -2.9053e-01, -2.7334e-01, -2.4801e-01, -2.1528e-01, -1.7614e-01, -1.3174e-01, -8.3705e-02, -3.2909e-02, 1.8867e-02, 7.0082e-02, 1.1921e-01, 1.6478e-01, 2.0544e-01, 2.3981e-01, 2.6723e-01, 2.8670e-01, 2.9766e-01, 2.9966e-01, 2.9273e-01, 2.7707e-01, 2.5332e-01, 2.2190e-01, 1.8387e-01, 1.4010e-01, 9.2663e-02, 4.2207e-02, -9.5059e-03, -6.0936e-02, -1.1028e-01, -1.5662e-01, -1.9851e-01, -2.3424e-01, -2.6299e-01, -2.8390e-01, -2.9634e-01, -2.9996e-01, -2.9463e-01, -2.8053e-01, -2.5806e-01, -2.2810e-01, -1.9118e-01, -1.4857e-01, -1.0181e-01, -5.1464e-02, 1.3519e-04, 5.1731e-02, 1.0151e-01, 1.4855e-01, 1.9139e-01, 2.2808e-01, 2.5835e-01, 2.8073e-01, 2.9474e-01, 2.9996e-01, 2.9630e-01, 2.8381e-01, 2.6286e-01, 2.3407e-01, 1.9831e-01, 1.5664e-01, 1.1030e-01, 6.0958e-02, 9.5285e-03, -4.2185e-02, -9.2920e-02, -1.4060e-01, -1.8408e-01, -2.2208e-01, -2.5330e-01, -2.7717e-01, -2.9285e-01, -2.9967e-01, -2.9762e-01, -2.8671e-01, -2.6725e-01, -2.3999e-01, -2.0546e-01, -1.6455e-01, -1.1896e-01, -7.0104e-02, -1.8598e-02, 3.3178e-02, 8.3683e-02, 1.3199e-01, 1.7659e-01, 2.1567e-01, 2.4816e-01, 2.7345e-01, 2.9060e-01, 2.9908e-01, 2.9868e-01, 2.8933e-01, 2.7137e-01, 2.4550e-01, 2.1219e-01, 1.7255e-01, 1.2750e-01, 7.9181e-02, 2.7941e-02, -2.3848e-02, -7.4644e-02, -1.2351e-01, -1.6869e-01, -2.0884e-01, -2.4260e-01, -2.6947e-01, -2.8813e-01, -2.9821e-01, -2.9941e-01, -2.9173e-01, -2.7535e-01, -2.5061e-01, -2.1871e-01, -1.7990e-01, -1.3592e-01, -8.8181e-02, -3.7548e-02, 1.4203e-02, 6.5817e-02, 1.1491e-01, 1.6086e-01, 2.0201e-01, 2.3715e-01, 2.6508e-01, 2.8529e-01, 2.9704e-01, 2.9985e-01, 2.9377e-01, 2.7894e-01, 2.5563e-01, 2.2501e-01, 1.8754e-01, 1.4421e-01, 9.7095e-02, 4.6827e-02, -4.8358e-03, -5.6355e-02, -1.0592e-01, -1.5262e-01, -1.9499e-01, -2.3129e-01, -2.6056e-01, -2.8225e-01, -2.9553e-01, -3.0000e-01, -2.9548e-01, -2.8215e-01, -2.6041e-01, -2.3110e-01, -1.9476e-01, -1.5261e-01, -1.0591e-01, -5.6060e-02, -4.5361e-03, 4.7123e-02, 9.7101e-02, 1.4447e-01, 1.8754e-01, 2.2502e-01, 2.5579e-01, 2.7894e-01, 2.9383e-01, 2.9985e-01, 2.9700e-01, 2.8529e-01, 2.6508e-01, 2.3697e-01, 2.0179e-01, 1.6060e-01, 1.1463e-01, 6.5525e-02, 1.4196e-02, -3.7555e-02, -8.8467e-02, -1.3619e-01, -1.8014e-01, -2.1871e-01, -2.5077e-01, -2.7535e-01, -2.9180e-01, -2.9943e-01, -2.9817e-01, -2.8805e-01, -2.6934e-01, -2.4277e-01, -2.0884e-01, -1.6844e-01, -1.2323e-01, -7.4637e-02, -2.3550e-02, 2.8240e-02, 7.9187e-02, 1.2751e-01, 1.7279e-01, 2.1240e-01, 2.4550e-01, 2.7150e-01, 2.8940e-01, 2.9868e-01, 2.9908e-01, 2.9053e-01, 2.7333e-01, 2.4799e-01, 2.1546e-01, 1.7635e-01, 1.3198e-01, 8.3958e-02, 3.2880e-02, -1.8897e-02, -7.0395e-02, -1.1923e-01, -1.6480e-01, -2.0546e-01, -2.4000e-01, -2.6738e-01, -2.8679e-01, -2.9766e-01, -2.9967e-01, -2.9278e-01, -2.7717e-01, -2.5314e-01, -2.2188e-01, -1.8384e-01, -1.4033e-01, -9.2635e-02, -4.2468e-02, 9.5353e-03, 6.1252e-02, 1.1058e-01, 1.5689e-01, 1.9854e-01, 2.3426e-01, 2.6286e-01, 2.8381e-01, 2.9635e-01, 2.9996e-01, 2.9468e-01, 2.8062e-01, 2.5820e-01, 2.2827e-01, 1.9139e-01, 1.4854e-01, 1.0150e-01, 5.1435e-02, -1.6459e-04, -5.1760e-02, -1.0154e-01, -1.4883e-01, -1.9141e-01, -2.2829e-01, -2.5822e-01, -2.8064e-01, -2.9469e-01, -2.9996e-01, -2.9630e-01, -2.8380e-01, -2.6284e-01, -2.3405e-01, -1.9829e-01, -1.5661e-01, -1.1027e-01, -6.0642e-02, -9.2063e-03, 4.2504e-02, 9.2948e-02, 1.4036e-01, 1.8387e-01, 2.2190e-01, 2.5332e-01, 2.7719e-01, 2.9279e-01, 2.9967e-01, 2.9766e-01, 2.8678e-01, 2.6723e-01, 2.3980e-01, 2.0522e-01, 1.6453e-01, 1.1893e-01, 7.0075e-02, 1.8861e-02, -3.3207e-02, -8.3993e-02, -1.3201e-01, -1.7638e-01, -2.1549e-01, -2.4818e-01, -2.7335e-01, -2.9061e-01, -2.9909e-01, -2.9865e-01, -2.8932e-01, -2.7136e-01, -2.4531e-01, -2.1217e-01, -1.7229e-01, -1.2748e-01, -7.9152e-02, -2.8204e-02, 2.3586e-02, 7.4672e-02, 1.2327e-01, 1.6871e-01, 2.0886e-01, 2.4279e-01, 2.6935e-01, 2.8814e-01, 2.9821e-01, 2.9941e-01, 2.9165e-01, 2.7522e-01, 2.5059e-01, 2.1869e-01, 1.8011e-01, 1.3616e-01, 8.7873e-02, 3.7519e-02, -1.4232e-02, -6.5560e-02, -1.1466e-01, -1.6063e-01, -2.0182e-01, -2.3735e-01, -2.6523e-01, -2.8539e-01, -2.9704e-01, -2.9985e-01, -2.9377e-01, -2.7893e-01, -2.5562e-01, -2.2500e-01, -1.8751e-01, -1.4444e-01, -9.7067e-02, -4.7087e-02, 4.5723e-03, 5.6384e-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('/tmp/pytest-of-builduser/pytest-0/test_audio_against_cli_to_file2') capfd = <_pytest.capture.CaptureFixture object at 0xffff75fba750> 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", .mark.skipif( IS_WINDOWS and ffmpeg_major_version <= 5, reason="Encoding mp3 on Windows is weirdly buggy", ), ), pytest.param( "wav", .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( ["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_, , ) # Encode with Encoder enc, encoder_output, open_kwargs = self._create_encoder( method, tmp_path, format ) audio = enc.add_audio( sample_, num_, bit_, out_num_, out_sample_, ) 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, ) 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, , , ) E AssertionError: Tensor-likes are not close! E E Mismatched elements: 18 / 32000 (0.1%) E Greatest absolute difference: 0.018557779490947723 at index (0, 31931) (up to 0.01 allowed) E Greatest relative difference: 1.1382719278335571 at index (0, 31950) (up to 0 allowed) test/test_encoders.py:1190: AssertionError ----------------------------- Captured stderr call ----------------------------- [AVFormatContext @ 0xaaaaee9e4ee0] Opening '/tmp/pytest-of-builduser/pytest-0/test_audio_against_cli_to_file2/test.mp3' for reading [file @ 0xaaaaef4ec6c0] Setting default whitelist 'file,crypto,data' [mp3 @ 0xaaaaee9e4ee0] Format mp3 probed with and id3v2 ver:4 flags:00 len:34 [mp3 @ 0xaaaaee9e4ee0] pad 576 832 [mp3 @ 0xaaaaee9e4ee0] Skipping 0 bytes of junk at 260. [mp3 @ 0xaaaaee9e4ee0] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0xaaaaee9e4ee0] demuxer injecting skip 1105 / discard 0 [mp3float @ 0xaaaaefc5cb70] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaefc5cb70] skip whole frame, skip left: 529 [mp3 @ 0xaaaaee9e4ee0] All info found [mp3 @ 0xaaaaee9e4ee0] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0xaaaaefc5cb70] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaefc5cb70] skip whole frame, skip left: 529 [mp3float @ 0xaaaaefc5cb70] skip 529/576 samples [mp3 @ 0xaaaaee9e4ee0] demuxer injecting skip 0 / discard 303 [mp3float @ 0xaaaaefc5cb70] skip 0 / discard 303 samples due to side data [mp3float @ 0xaaaaefc5cb70] discard 303/576 samples [AVIOContext @ 0xaaaaf0ab3db0] Statistics: 4436 bytes read, 0 seeks [AVFormatContext @ 0xaaaaee9e4ee0] Opening '/tmp/pytest-of-builduser/pytest-0/test_audio_against_cli_to_file2/ffmpeg_output.mp3' for reading [file @ 0xaaaaf0ab6b50] Setting default whitelist 'file,crypto,data' [mp3 @ 0xaaaaee9e4ee0] Format mp3 probed with and id3v2 ver:4 flags:00 len:34 [mp3 @ 0xaaaaee9e4ee0] pad 576 832 [mp3 @ 0xaaaaee9e4ee0] Skipping 0 bytes of junk at 260. [mp3 @ 0xaaaaee9e4ee0] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0xaaaaee9e4ee0] demuxer injecting skip 1105 / discard 0 [mp3float @ 0xaaaaee33a340] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaee33a340] skip whole frame, skip left: 529 [mp3 @ 0xaaaaee9e4ee0] All info found [mp3 @ 0xaaaaee9e4ee0] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0xaaaaee33a340] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaee33a340] skip whole frame, skip left: 529 [mp3float @ 0xaaaaee33a340] skip 529/576 samples [mp3 @ 0xaaaaee9e4ee0] demuxer injecting skip 0 / discard 303 [mp3float @ 0xaaaaee33a340] skip 0 / discard 303 samples due to side data [mp3float @ 0xaaaaee33a340] discard 303/576 samples [AVIOContext @ 0xaaaaf0ab3db0] 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_, stream_infos={0: TestAudioStreamInfo(sample_, num_, duration_, num_, sample_format='s32')}, frames={0: {0: TestFrameInfo(pts_.0, duration_.064), 1: TestFrameInfo(pts_.064, duration_.064), 2: TestFrameInfo(pts_.128, duration_.064), 3: TestFrameInfo(pts_.192, duration_.064), 4: TestFrameInfo(pts_.256, duration_.064), 5: TestFrameInfo(pts_.32, duration_.064), 6: TestFrameInfo(pts_.384, duration_.064), 7: TestFrameInfo(pts_.448, duration_.064), 8: TestFrameInfo(pts_.512, duration_.064), 9: TestFrameInfo(pts_.576, duration_.064), 10: TestFrameInfo(pts_.64, duration_.064), 11: TestFrameInfo(pts_.704, duration_.064), 12: TestFrameInfo(pts_.768, duration_.064), 13: TestFrameInfo(pts_.832, duration_.064), 14: TestFrameInfo(pts_.896, duration_.064), 15: TestFrameInfo(pts_.96, duration_.064), 16: TestFrameInfo(pts_.024, duration_.064), 17: TestFrameInfo(pts_.088, duration_.064), 18: TestFrameInfo(pts_.152, duration_.064), 19: TestFrameInfo(pts_.216, duration_.064), 20: TestFrameInfo(pts_.28, duration_.064), 21: TestFrameInfo(pts_.344, duration_.064), 22: TestFrameInfo(pts_.408, duration_.064), 23: TestFrameInfo(pts_.472, duration_.064), 24: TestFrameInfo(pts_.536, duration_.064), 25: TestFrameInfo(pts_.6, duration_.064), 26: TestFrameInfo(pts_.664, duration_.064), 27: TestFrameInfo(pts_.728, duration_.064), 28: TestFrameInfo(pts_.792, duration_.064), 29: TestFrameInfo(pts_.856, duration_.064), 30: TestFrameInfo(pts_.92, duration_.064), 31: TestFrameInfo(pts_.984, duration_.064), 32: TestFrameInfo(pts_.048, duration_.064), 33: TestFrameInfo(pts_.112, duration_.064), 34: TestFrameInfo(pts_.176, duration_.064), 35: TestFrameInfo(pts_.24, duration_.064), 36: TestFrameInfo(pts_.304, duration_.064), 37: TestFrameInfo(pts_.368, duration_.064), 38: TestFrameInfo(pts_.432, duration_.064), 39: TestFrameInfo(pts_.496, duration_.064), 40: TestFrameInfo(pts_.56, duration_.064), 41: TestFrameInfo(pts_.624, duration_.064), 42: TestFrameInfo(pts_.688, duration_.064), 43: TestFrameInfo(pts_.752, duration_.064), 44: TestFrameInfo(pts_.816, duration_.064), 45: TestFrameInfo(pts_.88, duration_.064), 46: TestFrameInfo(pts_.944, duration_.064), 47: TestFrameInfo(pts_.008, duration_.064), 48: TestFrameInfo(pts_.072, duration_.064), 49: TestFrameInfo(pts_.136, duration_.064), 50: TestFrameInfo(pts_.2, duration_.064), 51: TestFrameInfo(pts_.264, duration_.064), 52: TestFrameInfo(pts_.328, duration_.064), 53: TestFrameInfo(pts_.392, duration_.064), 54: TestFrameInfo(pts_.456, duration_.064), 55: TestFrameInfo(pts_.52, duration_.064), 56: TestFrameInfo(pts_.584, duration_.064), 57: TestFrameInfo(pts_.648, duration_.064), 58: TestFrameInfo(pts_.712, duration_.064), 59: TestFrameInfo(pts_.776, duration_.064), 60: TestFrameInfo(pts_.84, duration_.064), 61: TestFrameInfo(pts_.904, duration_.064), 62: TestFrameInfo(pts_.968, duration_.032)}}, _custom_frame_mappings_data={}, _reference_frames={0: [tensor([[0.3000, 0.2955, 0.2823, ..., 0.2651, 0.2370, 0.2019]]), tensor([[ 0.1607, 0.1148, 0.0654, ..., 0.0235, -0.0282, -0.0792]]), tensor([[-0.1277, -0.1725, -0.2121, ..., -0.2399, -0.2673, -0.2867]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2582, -0.2281]]), tensor([[-0.1912, -0.1486, -0.1016, ..., -0.0608, -0.0094, 0.0423]]), tensor([[0.0927, 0.1404, 0.1839, ..., 0.2154, 0.2481, 0.2734]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2187, 0.1801, 0.1362, ..., 0.0971, 0.0469, -0.0047]]), tensor([[-0.0562, -0.1061, -0.1527, ..., -0.1876, -0.2250, -0.2558]]), tensor([[-0.2789, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2427, -0.2088, -0.1686, ..., -0.1320, -0.0837, -0.0330]]), tensor([[0.0189, 0.0701, 0.1192, ..., 0.1568, 0.1984, 0.2341]]), tensor([[0.2629, 0.2838, 0.2963, ..., 0.3000, 0.2963, 0.2838]]), tensor([[0.2629, 0.2341, 0.1984, ..., 0.1647, 0.1191, 0.0700]]), tensor([[ 0.0188, -0.0329, -0.0837, ..., -0.1235, -0.1687, -0.2088]]), tensor([[-0.2427, -0.2694, -0.2881, ..., -0.2970, -0.2999, -0.2938]]), tensor([[-0.2789, -0.2558, -0.2250, ..., -0.1948, -0.1527, -0.1060]]), tensor([[-0.0562, -0.0047, 0.0469, ..., 0.0882, 0.1362, 0.1801]]), tensor([[0.2187, 0.2508, 0.2754, ..., 0.2894, 0.2987, 0.2991]]), tensor([[0.2906, 0.2734, 0.2481, ..., 0.2219, 0.1839, 0.1403]]), tensor([[ 0.0927, 0.0423, -0.0094, ..., -0.0515, -0.1016, -0.1487]]), tensor([[-0.1913, -0.2282, -0.2582, ..., -0.2772, -0.2928, -0.2997]]), tensor([[-0.2976, -0.2867, -0.2673, ..., -0.2454, -0.2121, -0.1725]]), tensor([[-0.1277, -0.0791, -0.0281, ..., 0.0143, 0.0655, 0.1147]]), tensor([[0.1608, 0.2019, 0.2370, ..., 0.2607, 0.2823, 0.2955]]), tensor([[0.3000, 0.2955, 0.2823, ..., 0.2651, 0.2370, 0.2018]]), tensor([[ 0.1608, 0.1147, 0.0654, ..., 0.0236, -0.0283, -0.0793]]), tensor([[-0.1277, -0.1725, -0.2122, ..., -0.2399, -0.2673, -0.2868]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2582, -0.2281]]), tensor([[-0.1912, -0.1486, -0.1015, ..., -0.0607, -0.0094, 0.0422]]), tensor([[0.0928, 0.1403, 0.1840, ..., 0.2156, 0.2481, 0.2734]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2187, 0.1800, 0.1362, ..., 0.0972, 0.0468, -0.0048]]), tensor([[-0.0562, -0.1062, -0.1527, ..., -0.1875, -0.2251, -0.2559]]), tensor([[-0.2789, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2426, -0.2087, -0.1685, ..., -0.1319, -0.0837, -0.0329]]), tensor([[0.0189, 0.0700, 0.1192, ..., 0.1569, 0.1984, 0.2342]]), tensor([[0.2629, 0.2839, 0.2963, ..., 0.3000, 0.2963, 0.2838]]), tensor([[0.2628, 0.2341, 0.1984, ..., 0.1645, 0.1191, 0.0699]]), tensor([[ 0.0189, -0.0330, -0.0837, ..., -0.1234, -0.1688, -0.2089]]), tensor([[-0.2427, -0.2695, -0.2881, ..., -0.2970, -0.2998, -0.2938]]), tensor([[-0.2789, -0.2559, -0.2250, ..., -0.1947, -0.1526, -0.1059]]), tensor([[-0.0560, -0.0047, 0.0471, ..., 0.0883, 0.1362, 0.1803]]), tensor([[0.2187, 0.2507, 0.2753, ..., 0.2894, 0.2987, 0.2991]]), tensor([[0.2905, 0.2734, 0.2481, ..., 0.2218, 0.1838, 0.1403]]), tensor([[ 0.0926, 0.0422, -0.0094, ..., -0.0515, -0.1017, -0.1486]]), tensor([[-0.1912, -0.2281, -0.2583, ..., -0.2772, -0.2928, -0.2997]]), tensor([[-0.2976, -0.2867, -0.2672, ..., -0.2454, -0.2123, -0.1726]]), tensor([[-0.1276, -0.0790, -0.0283, ..., 0.0143, 0.0656, 0.1150]]), tensor([[0.1609, 0.2021, 0.2370, ..., 0.2607, 0.2823, 0.2955]]), tensor([[0.3000, 0.2955, 0.2822, ..., 0.2652, 0.2369, 0.2020]]), tensor([[ 0.1606, 0.1146, 0.0652, ..., 0.0234, -0.0284, -0.0791]]), tensor([[-0.1277, -0.1725, -0.2123, ..., -0.2399, -0.2673, -0.2868]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2581, -0.2279]]), tensor([[-0.1912, -0.1486, -0.1016, ..., -0.0609, -0.0094, 0.0423]]), tensor([[0.0930, 0.1404, 0.1839, ..., 0.2154, 0.2483, 0.2735]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2186, 0.1801, 0.1361, ..., 0.0972, 0.0469, -0.0048]]), tensor([[-0.0563, -0.1061, -0.1528, ..., -0.1878, -0.2251, -0.2558]]), tensor([[-0.2790, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2426, -0.2087, -0.1687, ..., -0.1316, -0.0836, -0.0328]]), tensor([[0.0190, 0.0702, 0.1190, ..., 0.1568, 0.1985, 0.2340]]), tensor([[ 2.6297e-01, 2.8389e-01, 2.9634e-01, 2.9996e-01, 2.9470e-01, 2.8064e-01, 2.5823e-01, 2.2793e-01, 1.9098e-01, 1.4834e-01, 1.0156e-01, 5.1493e-02, -1.0579e-04, -5.1413e-02, -1.0176e-01, -1.4878e-01, -1.9137e-01, -2.2806e-01, -2.5819e-01, -2.8061e-01, -2.9468e-01, -2.9996e-01, -2.9626e-01, -2.8372e-01, -2.6287e-01, -2.3409e-01, -1.9833e-01, -1.5641e-01, -1.1033e-01, -6.0700e-02, -9.2651e-03, 4.2446e-02, 9.2613e-02, 1.4031e-01, 1.8406e-01, 2.2186e-01, 2.5329e-01, 2.7716e-01, 2.9284e-01, 2.9967e-01, 2.9763e-01, 2.8663e-01, 2.6726e-01, 2.3984e-01, 2.0527e-01, 1.6458e-01, 1.1926e-01, 7.0132e-02, 1.8627e-02, -3.3149e-02, -8.3655e-02, -1.3196e-01, -1.7633e-01, -2.1545e-01, -2.4814e-01, -2.7356e-01, -2.9067e-01, -2.9908e-01, -2.9866e-01, -2.8933e-01, -2.7139e-01, -2.4552e-01, -2.1200e-01, -1.7233e-01, -1.2753e-01, -7.9209e-02, -2.8262e-02, 2.3527e-02, 7.4615e-02, 1.2348e-01, 1.6866e-01, 2.0903e-01, 2.4276e-01, 2.6945e-01, 2.8812e-01, 2.9820e-01, 2.9940e-01, 2.9167e-01, 2.7525e-01, 2.5078e-01, 2.1873e-01, 1.8015e-01, 1.3595e-01, 8.8209e-02, 3.7578e-02, -1.4174e-02, -6.5503e-02, -1.1488e-01, -1.6083e-01, -2.0221e-01, -2.3713e-01, -2.6520e-01, -2.8537e-01, -2.9703e-01, -2.9985e-01, -2.9378e-01, -2.7884e-01, -2.5580e-01, -2.2503e-01, -1.8756e-01, -1.4449e-01, -9.7399e-02, -4.6856e-02, 5.0994e-03, 5.6326e-02, 1.0617e-01, 1.5284e-01, 1.9496e-01, 2.3109e-01, 2.6069e-01, 2.8234e-01, 2.9558e-01, 3.0000e-01, 2.9553e-01, 2.8226e-01, 2.6057e-01, 2.3112e-01, 1.9478e-01, 1.5264e-01, 1.0594e-01, 5.6089e-02, 4.5655e-03, -4.7094e-02, -9.7350e-02, -1.4471e-01, -1.8775e-01, -2.2500e-01, -2.5578e-01, -2.7893e-01, -2.9377e-01, -2.9985e-01, -2.9700e-01, -2.8530e-01, -2.6509e-01, -2.3716e-01, -2.0181e-01, -1.6038e-01, -1.1466e-01, -6.5267e-02, -1.3933e-02, 3.7817e-02, 8.8159e-02, 1.3616e-01, 1.8035e-01, 2.1889e-01, 2.5075e-01, 2.7534e-01, 2.9172e-01, 2.9939e-01, 2.9821e-01, 2.8806e-01, 2.6922e-01, 2.4261e-01, 2.0865e-01, 1.6846e-01, 1.2353e-01, 7.4666e-02, 2.3287e-02, -2.8502e-02, -7.9159e-02, -1.2775e-01, -1.7253e-01, -2.1217e-01, -2.4532e-01, -2.7149e-01, -2.8940e-01, -2.9868e-01, -2.9909e-01, -2.9053e-01, -2.7334e-01, -2.4801e-01, -2.1528e-01, -1.7614e-01, -1.3174e-01, -8.3705e-02, -3.2909e-02, 1.8867e-02, 7.0082e-02, 1.1921e-01, 1.6478e-01, 2.0544e-01, 2.3981e-01, 2.6723e-01, 2.8670e-01, 2.9766e-01, 2.9966e-01, 2.9273e-01, 2.7707e-01, 2.5332e-01, 2.2190e-01, 1.8387e-01, 1.4010e-01, 9.2663e-02, 4.2207e-02, -9.5059e-03, -6.0936e-02, -1.1028e-01, -1.5662e-01, -1.9851e-01, -2.3424e-01, -2.6299e-01, -2.8390e-01, -2.9634e-01, -2.9996e-01, -2.9463e-01, -2.8053e-01, -2.5806e-01, -2.2810e-01, -1.9118e-01, -1.4857e-01, -1.0181e-01, -5.1464e-02, 1.3519e-04, 5.1731e-02, 1.0151e-01, 1.4855e-01, 1.9139e-01, 2.2808e-01, 2.5835e-01, 2.8073e-01, 2.9474e-01, 2.9996e-01, 2.9630e-01, 2.8381e-01, 2.6286e-01, 2.3407e-01, 1.9831e-01, 1.5664e-01, 1.1030e-01, 6.0958e-02, 9.5285e-03, -4.2185e-02, -9.2920e-02, -1.4060e-01, -1.8408e-01, -2.2208e-01, -2.5330e-01, -2.7717e-01, -2.9285e-01, -2.9967e-01, -2.9762e-01, -2.8671e-01, -2.6725e-01, -2.3999e-01, -2.0546e-01, -1.6455e-01, -1.1896e-01, -7.0104e-02, -1.8598e-02, 3.3178e-02, 8.3683e-02, 1.3199e-01, 1.7659e-01, 2.1567e-01, 2.4816e-01, 2.7345e-01, 2.9060e-01, 2.9908e-01, 2.9868e-01, 2.8933e-01, 2.7137e-01, 2.4550e-01, 2.1219e-01, 1.7255e-01, 1.2750e-01, 7.9181e-02, 2.7941e-02, -2.3848e-02, -7.4644e-02, -1.2351e-01, -1.6869e-01, -2.0884e-01, -2.4260e-01, -2.6947e-01, -2.8813e-01, -2.9821e-01, -2.9941e-01, -2.9173e-01, -2.7535e-01, -2.5061e-01, -2.1871e-01, -1.7990e-01, -1.3592e-01, -8.8181e-02, -3.7548e-02, 1.4203e-02, 6.5817e-02, 1.1491e-01, 1.6086e-01, 2.0201e-01, 2.3715e-01, 2.6508e-01, 2.8529e-01, 2.9704e-01, 2.9985e-01, 2.9377e-01, 2.7894e-01, 2.5563e-01, 2.2501e-01, 1.8754e-01, 1.4421e-01, 9.7095e-02, 4.6827e-02, -4.8358e-03, -5.6355e-02, -1.0592e-01, -1.5262e-01, -1.9499e-01, -2.3129e-01, -2.6056e-01, -2.8225e-01, -2.9553e-01, -3.0000e-01, -2.9548e-01, -2.8215e-01, -2.6041e-01, -2.3110e-01, -1.9476e-01, -1.5261e-01, -1.0591e-01, -5.6060e-02, -4.5361e-03, 4.7123e-02, 9.7101e-02, 1.4447e-01, 1.8754e-01, 2.2502e-01, 2.5579e-01, 2.7894e-01, 2.9383e-01, 2.9985e-01, 2.9700e-01, 2.8529e-01, 2.6508e-01, 2.3697e-01, 2.0179e-01, 1.6060e-01, 1.1463e-01, 6.5525e-02, 1.4196e-02, -3.7555e-02, -8.8467e-02, -1.3619e-01, -1.8014e-01, -2.1871e-01, -2.5077e-01, -2.7535e-01, -2.9180e-01, -2.9943e-01, -2.9817e-01, -2.8805e-01, -2.6934e-01, -2.4277e-01, -2.0884e-01, -1.6844e-01, -1.2323e-01, -7.4637e-02, -2.3550e-02, 2.8240e-02, 7.9187e-02, 1.2751e-01, 1.7279e-01, 2.1240e-01, 2.4550e-01, 2.7150e-01, 2.8940e-01, 2.9868e-01, 2.9908e-01, 2.9053e-01, 2.7333e-01, 2.4799e-01, 2.1546e-01, 1.7635e-01, 1.3198e-01, 8.3958e-02, 3.2880e-02, -1.8897e-02, -7.0395e-02, -1.1923e-01, -1.6480e-01, -2.0546e-01, -2.4000e-01, -2.6738e-01, -2.8679e-01, -2.9766e-01, -2.9967e-01, -2.9278e-01, -2.7717e-01, -2.5314e-01, -2.2188e-01, -1.8384e-01, -1.4033e-01, -9.2635e-02, -4.2468e-02, 9.5353e-03, 6.1252e-02, 1.1058e-01, 1.5689e-01, 1.9854e-01, 2.3426e-01, 2.6286e-01, 2.8381e-01, 2.9635e-01, 2.9996e-01, 2.9468e-01, 2.8062e-01, 2.5820e-01, 2.2827e-01, 1.9139e-01, 1.4854e-01, 1.0150e-01, 5.1435e-02, -1.6459e-04, -5.1760e-02, -1.0154e-01, -1.4883e-01, -1.9141e-01, -2.2829e-01, -2.5822e-01, -2.8064e-01, -2.9469e-01, -2.9996e-01, -2.9630e-01, -2.8380e-01, -2.6284e-01, -2.3405e-01, -1.9829e-01, -1.5661e-01, -1.1027e-01, -6.0642e-02, -9.2063e-03, 4.2504e-02, 9.2948e-02, 1.4036e-01, 1.8387e-01, 2.2190e-01, 2.5332e-01, 2.7719e-01, 2.9279e-01, 2.9967e-01, 2.9766e-01, 2.8678e-01, 2.6723e-01, 2.3980e-01, 2.0522e-01, 1.6453e-01, 1.1893e-01, 7.0075e-02, 1.8861e-02, -3.3207e-02, -8.3993e-02, -1.3201e-01, -1.7638e-01, -2.1549e-01, -2.4818e-01, -2.7335e-01, -2.9061e-01, -2.9909e-01, -2.9865e-01, -2.8932e-01, -2.7136e-01, -2.4531e-01, -2.1217e-01, -1.7229e-01, -1.2748e-01, -7.9152e-02, -2.8204e-02, 2.3586e-02, 7.4672e-02, 1.2327e-01, 1.6871e-01, 2.0886e-01, 2.4279e-01, 2.6935e-01, 2.8814e-01, 2.9821e-01, 2.9941e-01, 2.9165e-01, 2.7522e-01, 2.5059e-01, 2.1869e-01, 1.8011e-01, 1.3616e-01, 8.7873e-02, 3.7519e-02, -1.4232e-02, -6.5560e-02, -1.1466e-01, -1.6063e-01, -2.0182e-01, -2.3735e-01, -2.6523e-01, -2.8539e-01, -2.9704e-01, -2.9985e-01, -2.9377e-01, -2.7893e-01, -2.5562e-01, -2.2500e-01, -1.8751e-01, -1.4444e-01, -9.7067e-02, -4.7087e-02, 4.5723e-03, 5.6384e-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('/tmp/pytest-of-builduser/pytest-0/test_audio_against_cli_to_file3') capfd = <_pytest.capture.CaptureFixture object at 0xffff75fd6990> 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", .mark.skipif( IS_WINDOWS and ffmpeg_major_version <= 5, reason="Encoding mp3 on Windows is weirdly buggy", ), ), pytest.param( "wav", .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( ["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_, , ) # Encode with Encoder enc, encoder_output, open_kwargs = self._create_encoder( method, tmp_path, format ) audio = enc.add_audio( sample_, num_, bit_, out_num_, out_sample_, ) 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, ) 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, , , ) E AssertionError: Tensor-likes are not close! E E Mismatched elements: 18 / 32000 (0.1%) E Greatest absolute difference: 0.018557779490947723 at index (0, 31931) (up to 0.01 allowed) E Greatest relative difference: 1.1382719278335571 at index (0, 31950) (up to 0 allowed) test/test_encoders.py:1190: AssertionError ----------------------------- Captured stderr call ----------------------------- [AVFormatContext @ 0xaaaaed6147e0] Opening '/tmp/pytest-of-builduser/pytest-0/test_audio_against_cli_to_file3/test.mp3' for reading [file @ 0xaaaaeeeb5240] Setting default whitelist 'file,crypto,data' [mp3 @ 0xaaaaed6147e0] Format mp3 probed with and id3v2 ver:4 flags:00 len:34 [mp3 @ 0xaaaaed6147e0] pad 576 832 [mp3 @ 0xaaaaed6147e0] Skipping 0 bytes of junk at 260. [mp3 @ 0xaaaaed6147e0] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0xaaaaed6147e0] demuxer injecting skip 1105 / discard 0 [mp3float @ 0xaaaaee33a340] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaee33a340] skip whole frame, skip left: 529 [mp3 @ 0xaaaaed6147e0] All info found [mp3 @ 0xaaaaed6147e0] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0xaaaaee33a340] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaee33a340] skip whole frame, skip left: 529 [mp3float @ 0xaaaaee33a340] skip 529/576 samples [mp3 @ 0xaaaaed6147e0] demuxer injecting skip 0 / discard 303 [mp3float @ 0xaaaaee33a340] skip 0 / discard 303 samples due to side data [mp3float @ 0xaaaaee33a340] discard 303/576 samples [AVIOContext @ 0xaaaaf0ab3db0] Statistics: 4436 bytes read, 0 seeks [AVFormatContext @ 0xaaaaed6147e0] Opening '/tmp/pytest-of-builduser/pytest-0/test_audio_against_cli_to_file3/ffmpeg_output.mp3' for reading [file @ 0xaaaaeff8da90] Setting default whitelist 'file,crypto,data' [mp3 @ 0xaaaaed6147e0] Format mp3 probed with and id3v2 ver:4 flags:00 len:34 [mp3 @ 0xaaaaed6147e0] pad 576 832 [mp3 @ 0xaaaaed6147e0] Skipping 0 bytes of junk at 260. [mp3 @ 0xaaaaed6147e0] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0xaaaaed6147e0] demuxer injecting skip 1105 / discard 0 [mp3float @ 0xaaaaed6191c0] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaed6191c0] skip whole frame, skip left: 529 [mp3 @ 0xaaaaed6147e0] All info found [mp3 @ 0xaaaaed6147e0] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0xaaaaed6191c0] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaed6191c0] skip whole frame, skip left: 529 [mp3float @ 0xaaaaed6191c0] skip 529/576 samples [mp3 @ 0xaaaaed6147e0] demuxer injecting skip 0 / discard 303 [mp3float @ 0xaaaaed6191c0] skip 0 / discard 303 samples due to side data [mp3float @ 0xaaaaed6191c0] discard 303/576 samples [AVIOContext @ 0xaaaaf0ab3db0] 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_, stream_infos={0: TestAudioStreamInfo(sample_, num_, duration_, num_, sample_format='s32')}, frames={0: {0: TestFrameInfo(pts_.0, duration_.064), 1: TestFrameInfo(pts_.064, duration_.064), 2: TestFrameInfo(pts_.128, duration_.064), 3: TestFrameInfo(pts_.192, duration_.064), 4: TestFrameInfo(pts_.256, duration_.064), 5: TestFrameInfo(pts_.32, duration_.064), 6: TestFrameInfo(pts_.384, duration_.064), 7: TestFrameInfo(pts_.448, duration_.064), 8: TestFrameInfo(pts_.512, duration_.064), 9: TestFrameInfo(pts_.576, duration_.064), 10: TestFrameInfo(pts_.64, duration_.064), 11: TestFrameInfo(pts_.704, duration_.064), 12: TestFrameInfo(pts_.768, duration_.064), 13: TestFrameInfo(pts_.832, duration_.064), 14: TestFrameInfo(pts_.896, duration_.064), 15: TestFrameInfo(pts_.96, duration_.064), 16: TestFrameInfo(pts_.024, duration_.064), 17: TestFrameInfo(pts_.088, duration_.064), 18: TestFrameInfo(pts_.152, duration_.064), 19: TestFrameInfo(pts_.216, duration_.064), 20: TestFrameInfo(pts_.28, duration_.064), 21: TestFrameInfo(pts_.344, duration_.064), 22: TestFrameInfo(pts_.408, duration_.064), 23: TestFrameInfo(pts_.472, duration_.064), 24: TestFrameInfo(pts_.536, duration_.064), 25: TestFrameInfo(pts_.6, duration_.064), 26: TestFrameInfo(pts_.664, duration_.064), 27: TestFrameInfo(pts_.728, duration_.064), 28: TestFrameInfo(pts_.792, duration_.064), 29: TestFrameInfo(pts_.856, duration_.064), 30: TestFrameInfo(pts_.92, duration_.064), 31: TestFrameInfo(pts_.984, duration_.064), 32: TestFrameInfo(pts_.048, duration_.064), 33: TestFrameInfo(pts_.112, duration_.064), 34: TestFrameInfo(pts_.176, duration_.064), 35: TestFrameInfo(pts_.24, duration_.064), 36: TestFrameInfo(pts_.304, duration_.064), 37: TestFrameInfo(pts_.368, duration_.064), 38: TestFrameInfo(pts_.432, duration_.064), 39: TestFrameInfo(pts_.496, duration_.064), 40: TestFrameInfo(pts_.56, duration_.064), 41: TestFrameInfo(pts_.624, duration_.064), 42: TestFrameInfo(pts_.688, duration_.064), 43: TestFrameInfo(pts_.752, duration_.064), 44: TestFrameInfo(pts_.816, duration_.064), 45: TestFrameInfo(pts_.88, duration_.064), 46: TestFrameInfo(pts_.944, duration_.064), 47: TestFrameInfo(pts_.008, duration_.064), 48: TestFrameInfo(pts_.072, duration_.064), 49: TestFrameInfo(pts_.136, duration_.064), 50: TestFrameInfo(pts_.2, duration_.064), 51: TestFrameInfo(pts_.264, duration_.064), 52: TestFrameInfo(pts_.328, duration_.064), 53: TestFrameInfo(pts_.392, duration_.064), 54: TestFrameInfo(pts_.456, duration_.064), 55: TestFrameInfo(pts_.52, duration_.064), 56: TestFrameInfo(pts_.584, duration_.064), 57: TestFrameInfo(pts_.648, duration_.064), 58: TestFrameInfo(pts_.712, duration_.064), 59: TestFrameInfo(pts_.776, duration_.064), 60: TestFrameInfo(pts_.84, duration_.064), 61: TestFrameInfo(pts_.904, duration_.064), 62: TestFrameInfo(pts_.968, duration_.032)}}, _custom_frame_mappings_data={}, _reference_frames={0: [tensor([[0.3000, 0.2955, 0.2823, ..., 0.2651, 0.2370, 0.2019]]), tensor([[ 0.1607, 0.1148, 0.0654, ..., 0.0235, -0.0282, -0.0792]]), tensor([[-0.1277, -0.1725, -0.2121, ..., -0.2399, -0.2673, -0.2867]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2582, -0.2281]]), tensor([[-0.1912, -0.1486, -0.1016, ..., -0.0608, -0.0094, 0.0423]]), tensor([[0.0927, 0.1404, 0.1839, ..., 0.2154, 0.2481, 0.2734]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2187, 0.1801, 0.1362, ..., 0.0971, 0.0469, -0.0047]]), tensor([[-0.0562, -0.1061, -0.1527, ..., -0.1876, -0.2250, -0.2558]]), tensor([[-0.2789, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2427, -0.2088, -0.1686, ..., -0.1320, -0.0837, -0.0330]]), tensor([[0.0189, 0.0701, 0.1192, ..., 0.1568, 0.1984, 0.2341]]), tensor([[0.2629, 0.2838, 0.2963, ..., 0.3000, 0.2963, 0.2838]]), tensor([[0.2629, 0.2341, 0.1984, ..., 0.1647, 0.1191, 0.0700]]), tensor([[ 0.0188, -0.0329, -0.0837, ..., -0.1235, -0.1687, -0.2088]]), tensor([[-0.2427, -0.2694, -0.2881, ..., -0.2970, -0.2999, -0.2938]]), tensor([[-0.2789, -0.2558, -0.2250, ..., -0.1948, -0.1527, -0.1060]]), tensor([[-0.0562, -0.0047, 0.0469, ..., 0.0882, 0.1362, 0.1801]]), tensor([[0.2187, 0.2508, 0.2754, ..., 0.2894, 0.2987, 0.2991]]), tensor([[0.2906, 0.2734, 0.2481, ..., 0.2219, 0.1839, 0.1403]]), tensor([[ 0.0927, 0.0423, -0.0094, ..., -0.0515, -0.1016, -0.1487]]), tensor([[-0.1913, -0.2282, -0.2582, ..., -0.2772, -0.2928, -0.2997]]), tensor([[-0.2976, -0.2867, -0.2673, ..., -0.2454, -0.2121, -0.1725]]), tensor([[-0.1277, -0.0791, -0.0281, ..., 0.0143, 0.0655, 0.1147]]), tensor([[0.1608, 0.2019, 0.2370, ..., 0.2607, 0.2823, 0.2955]]), tensor([[0.3000, 0.2955, 0.2823, ..., 0.2651, 0.2370, 0.2018]]), tensor([[ 0.1608, 0.1147, 0.0654, ..., 0.0236, -0.0283, -0.0793]]), tensor([[-0.1277, -0.1725, -0.2122, ..., -0.2399, -0.2673, -0.2868]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2582, -0.2281]]), tensor([[-0.1912, -0.1486, -0.1015, ..., -0.0607, -0.0094, 0.0422]]), tensor([[0.0928, 0.1403, 0.1840, ..., 0.2156, 0.2481, 0.2734]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2187, 0.1800, 0.1362, ..., 0.0972, 0.0468, -0.0048]]), tensor([[-0.0562, -0.1062, -0.1527, ..., -0.1875, -0.2251, -0.2559]]), tensor([[-0.2789, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2426, -0.2087, -0.1685, ..., -0.1319, -0.0837, -0.0329]]), tensor([[0.0189, 0.0700, 0.1192, ..., 0.1569, 0.1984, 0.2342]]), tensor([[0.2629, 0.2839, 0.2963, ..., 0.3000, 0.2963, 0.2838]]), tensor([[0.2628, 0.2341, 0.1984, ..., 0.1645, 0.1191, 0.0699]]), tensor([[ 0.0189, -0.0330, -0.0837, ..., -0.1234, -0.1688, -0.2089]]), tensor([[-0.2427, -0.2695, -0.2881, ..., -0.2970, -0.2998, -0.2938]]), tensor([[-0.2789, -0.2559, -0.2250, ..., -0.1947, -0.1526, -0.1059]]), tensor([[-0.0560, -0.0047, 0.0471, ..., 0.0883, 0.1362, 0.1803]]), tensor([[0.2187, 0.2507, 0.2753, ..., 0.2894, 0.2987, 0.2991]]), tensor([[0.2905, 0.2734, 0.2481, ..., 0.2218, 0.1838, 0.1403]]), tensor([[ 0.0926, 0.0422, -0.0094, ..., -0.0515, -0.1017, -0.1486]]), tensor([[-0.1912, -0.2281, -0.2583, ..., -0.2772, -0.2928, -0.2997]]), tensor([[-0.2976, -0.2867, -0.2672, ..., -0.2454, -0.2123, -0.1726]]), tensor([[-0.1276, -0.0790, -0.0283, ..., 0.0143, 0.0656, 0.1150]]), tensor([[0.1609, 0.2021, 0.2370, ..., 0.2607, 0.2823, 0.2955]]), tensor([[0.3000, 0.2955, 0.2822, ..., 0.2652, 0.2369, 0.2020]]), tensor([[ 0.1606, 0.1146, 0.0652, ..., 0.0234, -0.0284, -0.0791]]), tensor([[-0.1277, -0.1725, -0.2123, ..., -0.2399, -0.2673, -0.2868]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2581, -0.2279]]), tensor([[-0.1912, -0.1486, -0.1016, ..., -0.0609, -0.0094, 0.0423]]), tensor([[0.0930, 0.1404, 0.1839, ..., 0.2154, 0.2483, 0.2735]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2186, 0.1801, 0.1361, ..., 0.0972, 0.0469, -0.0048]]), tensor([[-0.0563, -0.1061, -0.1528, ..., -0.1878, -0.2251, -0.2558]]), tensor([[-0.2790, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2426, -0.2087, -0.1687, ..., -0.1316, -0.0836, -0.0328]]), tensor([[0.0190, 0.0702, 0.1190, ..., 0.1568, 0.1985, 0.2340]]), tensor([[ 2.6297e-01, 2.8389e-01, 2.9634e-01, 2.9996e-01, 2.9470e-01, 2.8064e-01, 2.5823e-01, 2.2793e-01, 1.9098e-01, 1.4834e-01, 1.0156e-01, 5.1493e-02, -1.0579e-04, -5.1413e-02, -1.0176e-01, -1.4878e-01, -1.9137e-01, -2.2806e-01, -2.5819e-01, -2.8061e-01, -2.9468e-01, -2.9996e-01, -2.9626e-01, -2.8372e-01, -2.6287e-01, -2.3409e-01, -1.9833e-01, -1.5641e-01, -1.1033e-01, -6.0700e-02, -9.2651e-03, 4.2446e-02, 9.2613e-02, 1.4031e-01, 1.8406e-01, 2.2186e-01, 2.5329e-01, 2.7716e-01, 2.9284e-01, 2.9967e-01, 2.9763e-01, 2.8663e-01, 2.6726e-01, 2.3984e-01, 2.0527e-01, 1.6458e-01, 1.1926e-01, 7.0132e-02, 1.8627e-02, -3.3149e-02, -8.3655e-02, -1.3196e-01, -1.7633e-01, -2.1545e-01, -2.4814e-01, -2.7356e-01, -2.9067e-01, -2.9908e-01, -2.9866e-01, -2.8933e-01, -2.7139e-01, -2.4552e-01, -2.1200e-01, -1.7233e-01, -1.2753e-01, -7.9209e-02, -2.8262e-02, 2.3527e-02, 7.4615e-02, 1.2348e-01, 1.6866e-01, 2.0903e-01, 2.4276e-01, 2.6945e-01, 2.8812e-01, 2.9820e-01, 2.9940e-01, 2.9167e-01, 2.7525e-01, 2.5078e-01, 2.1873e-01, 1.8015e-01, 1.3595e-01, 8.8209e-02, 3.7578e-02, -1.4174e-02, -6.5503e-02, -1.1488e-01, -1.6083e-01, -2.0221e-01, -2.3713e-01, -2.6520e-01, -2.8537e-01, -2.9703e-01, -2.9985e-01, -2.9378e-01, -2.7884e-01, -2.5580e-01, -2.2503e-01, -1.8756e-01, -1.4449e-01, -9.7399e-02, -4.6856e-02, 5.0994e-03, 5.6326e-02, 1.0617e-01, 1.5284e-01, 1.9496e-01, 2.3109e-01, 2.6069e-01, 2.8234e-01, 2.9558e-01, 3.0000e-01, 2.9553e-01, 2.8226e-01, 2.6057e-01, 2.3112e-01, 1.9478e-01, 1.5264e-01, 1.0594e-01, 5.6089e-02, 4.5655e-03, -4.7094e-02, -9.7350e-02, -1.4471e-01, -1.8775e-01, -2.2500e-01, -2.5578e-01, -2.7893e-01, -2.9377e-01, -2.9985e-01, -2.9700e-01, -2.8530e-01, -2.6509e-01, -2.3716e-01, -2.0181e-01, -1.6038e-01, -1.1466e-01, -6.5267e-02, -1.3933e-02, 3.7817e-02, 8.8159e-02, 1.3616e-01, 1.8035e-01, 2.1889e-01, 2.5075e-01, 2.7534e-01, 2.9172e-01, 2.9939e-01, 2.9821e-01, 2.8806e-01, 2.6922e-01, 2.4261e-01, 2.0865e-01, 1.6846e-01, 1.2353e-01, 7.4666e-02, 2.3287e-02, -2.8502e-02, -7.9159e-02, -1.2775e-01, -1.7253e-01, -2.1217e-01, -2.4532e-01, -2.7149e-01, -2.8940e-01, -2.9868e-01, -2.9909e-01, -2.9053e-01, -2.7334e-01, -2.4801e-01, -2.1528e-01, -1.7614e-01, -1.3174e-01, -8.3705e-02, -3.2909e-02, 1.8867e-02, 7.0082e-02, 1.1921e-01, 1.6478e-01, 2.0544e-01, 2.3981e-01, 2.6723e-01, 2.8670e-01, 2.9766e-01, 2.9966e-01, 2.9273e-01, 2.7707e-01, 2.5332e-01, 2.2190e-01, 1.8387e-01, 1.4010e-01, 9.2663e-02, 4.2207e-02, -9.5059e-03, -6.0936e-02, -1.1028e-01, -1.5662e-01, -1.9851e-01, -2.3424e-01, -2.6299e-01, -2.8390e-01, -2.9634e-01, -2.9996e-01, -2.9463e-01, -2.8053e-01, -2.5806e-01, -2.2810e-01, -1.9118e-01, -1.4857e-01, -1.0181e-01, -5.1464e-02, 1.3519e-04, 5.1731e-02, 1.0151e-01, 1.4855e-01, 1.9139e-01, 2.2808e-01, 2.5835e-01, 2.8073e-01, 2.9474e-01, 2.9996e-01, 2.9630e-01, 2.8381e-01, 2.6286e-01, 2.3407e-01, 1.9831e-01, 1.5664e-01, 1.1030e-01, 6.0958e-02, 9.5285e-03, -4.2185e-02, -9.2920e-02, -1.4060e-01, -1.8408e-01, -2.2208e-01, -2.5330e-01, -2.7717e-01, -2.9285e-01, -2.9967e-01, -2.9762e-01, -2.8671e-01, -2.6725e-01, -2.3999e-01, -2.0546e-01, -1.6455e-01, -1.1896e-01, -7.0104e-02, -1.8598e-02, 3.3178e-02, 8.3683e-02, 1.3199e-01, 1.7659e-01, 2.1567e-01, 2.4816e-01, 2.7345e-01, 2.9060e-01, 2.9908e-01, 2.9868e-01, 2.8933e-01, 2.7137e-01, 2.4550e-01, 2.1219e-01, 1.7255e-01, 1.2750e-01, 7.9181e-02, 2.7941e-02, -2.3848e-02, -7.4644e-02, -1.2351e-01, -1.6869e-01, -2.0884e-01, -2.4260e-01, -2.6947e-01, -2.8813e-01, -2.9821e-01, -2.9941e-01, -2.9173e-01, -2.7535e-01, -2.5061e-01, -2.1871e-01, -1.7990e-01, -1.3592e-01, -8.8181e-02, -3.7548e-02, 1.4203e-02, 6.5817e-02, 1.1491e-01, 1.6086e-01, 2.0201e-01, 2.3715e-01, 2.6508e-01, 2.8529e-01, 2.9704e-01, 2.9985e-01, 2.9377e-01, 2.7894e-01, 2.5563e-01, 2.2501e-01, 1.8754e-01, 1.4421e-01, 9.7095e-02, 4.6827e-02, -4.8358e-03, -5.6355e-02, -1.0592e-01, -1.5262e-01, -1.9499e-01, -2.3129e-01, -2.6056e-01, -2.8225e-01, -2.9553e-01, -3.0000e-01, -2.9548e-01, -2.8215e-01, -2.6041e-01, -2.3110e-01, -1.9476e-01, -1.5261e-01, -1.0591e-01, -5.6060e-02, -4.5361e-03, 4.7123e-02, 9.7101e-02, 1.4447e-01, 1.8754e-01, 2.2502e-01, 2.5579e-01, 2.7894e-01, 2.9383e-01, 2.9985e-01, 2.9700e-01, 2.8529e-01, 2.6508e-01, 2.3697e-01, 2.0179e-01, 1.6060e-01, 1.1463e-01, 6.5525e-02, 1.4196e-02, -3.7555e-02, -8.8467e-02, -1.3619e-01, -1.8014e-01, -2.1871e-01, -2.5077e-01, -2.7535e-01, -2.9180e-01, -2.9943e-01, -2.9817e-01, -2.8805e-01, -2.6934e-01, -2.4277e-01, -2.0884e-01, -1.6844e-01, -1.2323e-01, -7.4637e-02, -2.3550e-02, 2.8240e-02, 7.9187e-02, 1.2751e-01, 1.7279e-01, 2.1240e-01, 2.4550e-01, 2.7150e-01, 2.8940e-01, 2.9868e-01, 2.9908e-01, 2.9053e-01, 2.7333e-01, 2.4799e-01, 2.1546e-01, 1.7635e-01, 1.3198e-01, 8.3958e-02, 3.2880e-02, -1.8897e-02, -7.0395e-02, -1.1923e-01, -1.6480e-01, -2.0546e-01, -2.4000e-01, -2.6738e-01, -2.8679e-01, -2.9766e-01, -2.9967e-01, -2.9278e-01, -2.7717e-01, -2.5314e-01, -2.2188e-01, -1.8384e-01, -1.4033e-01, -9.2635e-02, -4.2468e-02, 9.5353e-03, 6.1252e-02, 1.1058e-01, 1.5689e-01, 1.9854e-01, 2.3426e-01, 2.6286e-01, 2.8381e-01, 2.9635e-01, 2.9996e-01, 2.9468e-01, 2.8062e-01, 2.5820e-01, 2.2827e-01, 1.9139e-01, 1.4854e-01, 1.0150e-01, 5.1435e-02, -1.6459e-04, -5.1760e-02, -1.0154e-01, -1.4883e-01, -1.9141e-01, -2.2829e-01, -2.5822e-01, -2.8064e-01, -2.9469e-01, -2.9996e-01, -2.9630e-01, -2.8380e-01, -2.6284e-01, -2.3405e-01, -1.9829e-01, -1.5661e-01, -1.1027e-01, -6.0642e-02, -9.2063e-03, 4.2504e-02, 9.2948e-02, 1.4036e-01, 1.8387e-01, 2.2190e-01, 2.5332e-01, 2.7719e-01, 2.9279e-01, 2.9967e-01, 2.9766e-01, 2.8678e-01, 2.6723e-01, 2.3980e-01, 2.0522e-01, 1.6453e-01, 1.1893e-01, 7.0075e-02, 1.8861e-02, -3.3207e-02, -8.3993e-02, -1.3201e-01, -1.7638e-01, -2.1549e-01, -2.4818e-01, -2.7335e-01, -2.9061e-01, -2.9909e-01, -2.9865e-01, -2.8932e-01, -2.7136e-01, -2.4531e-01, -2.1217e-01, -1.7229e-01, -1.2748e-01, -7.9152e-02, -2.8204e-02, 2.3586e-02, 7.4672e-02, 1.2327e-01, 1.6871e-01, 2.0886e-01, 2.4279e-01, 2.6935e-01, 2.8814e-01, 2.9821e-01, 2.9941e-01, 2.9165e-01, 2.7522e-01, 2.5059e-01, 2.1869e-01, 1.8011e-01, 1.3616e-01, 8.7873e-02, 3.7519e-02, -1.4232e-02, -6.5560e-02, -1.1466e-01, -1.6063e-01, -2.0182e-01, -2.3735e-01, -2.6523e-01, -2.8539e-01, -2.9704e-01, -2.9985e-01, -2.9377e-01, -2.7893e-01, -2.5562e-01, -2.2500e-01, -1.8751e-01, -1.4444e-01, -9.7067e-02, -4.7087e-02, 4.5723e-03, 5.6384e-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('/tmp/pytest-of-builduser/pytest-0/test_audio_against_cli_to_file4') capfd = <_pytest.capture.CaptureFixture object at 0xffff75bedf50> 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", .mark.skipif( IS_WINDOWS and ffmpeg_major_version <= 5, reason="Encoding mp3 on Windows is weirdly buggy", ), ), pytest.param( "wav", .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( ["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_, , ) # Encode with Encoder enc, encoder_output, open_kwargs = self._create_encoder( method, tmp_path, format ) audio = enc.add_audio( sample_, num_, bit_, out_num_, out_sample_, ) 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, ) 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, , , ) E AssertionError: Tensor-likes are not close! E E Mismatched elements: 18 / 32000 (0.1%) E Greatest absolute difference: 0.018557779490947723 at index (0, 31931) (up to 0.01 allowed) E Greatest relative difference: 1.1382719278335571 at index (0, 31950) (up to 0 allowed) test/test_encoders.py:1190: AssertionError ----------------------------- Captured stderr call ----------------------------- [mp3 @ 0xffff58013280] Format mp3 probed with and id3v2 ver:4 flags:00 len:34 [mp3 @ 0xffff58013280] pad 576 832 [mp3 @ 0xffff58013280] Skipping 0 bytes of junk at 260. [mp3 @ 0xffff58013280] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0xffff58013280] demuxer injecting skip 1105 / discard 0 [mp3float @ 0xaaaaef0140b0] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaef0140b0] skip whole frame, skip left: 529 [mp3 @ 0xffff58013280] All info found [mp3 @ 0xffff58013280] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0xaaaaef0140b0] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaef0140b0] skip whole frame, skip left: 529 [mp3float @ 0xaaaaef0140b0] skip 529/576 samples [mp3 @ 0xffff58013280] demuxer injecting skip 0 / discard 303 [mp3float @ 0xaaaaef0140b0] skip 0 / discard 303 samples due to side data [mp3float @ 0xaaaaef0140b0] discard 303/576 samples [AVFormatContext @ 0xffff58013280] Opening '/tmp/pytest-of-builduser/pytest-0/test_audio_against_cli_to_file4/ffmpeg_output.mp3' for reading [file @ 0xaaaaef619ca0] Setting default whitelist 'file,crypto,data' [mp3 @ 0xffff58013280] Format mp3 probed with and id3v2 ver:4 flags:00 len:34 [mp3 @ 0xffff58013280] pad 576 832 [mp3 @ 0xffff58013280] Skipping 0 bytes of junk at 260. [mp3 @ 0xffff58013280] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0xffff58013280] demuxer injecting skip 1105 / discard 0 [mp3float @ 0xaaaaf0ab6b50] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaf0ab6b50] skip whole frame, skip left: 529 [mp3 @ 0xffff58013280] All info found [mp3 @ 0xffff58013280] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0xaaaaf0ab6b50] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaf0ab6b50] skip whole frame, skip left: 529 [mp3float @ 0xaaaaf0ab6b50] skip 529/576 samples [mp3 @ 0xffff58013280] demuxer injecting skip 0 / discard 303 [mp3float @ 0xaaaaf0ab6b50] skip 0 / discard 303 samples due to side data [mp3float @ 0xaaaaf0ab6b50] discard 303/576 samples [AVIOContext @ 0xaaaaeed82b30] 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_, stream_infos={0: TestAudioStreamInfo(sample_, num_, duration_, num_, sample_format='s32')}, frames={0: {0: TestFrameInfo(pts_.0, duration_.064), 1: TestFrameInfo(pts_.064, duration_.064), 2: TestFrameInfo(pts_.128, duration_.064), 3: TestFrameInfo(pts_.192, duration_.064), 4: TestFrameInfo(pts_.256, duration_.064), 5: TestFrameInfo(pts_.32, duration_.064), 6: TestFrameInfo(pts_.384, duration_.064), 7: TestFrameInfo(pts_.448, duration_.064), 8: TestFrameInfo(pts_.512, duration_.064), 9: TestFrameInfo(pts_.576, duration_.064), 10: TestFrameInfo(pts_.64, duration_.064), 11: TestFrameInfo(pts_.704, duration_.064), 12: TestFrameInfo(pts_.768, duration_.064), 13: TestFrameInfo(pts_.832, duration_.064), 14: TestFrameInfo(pts_.896, duration_.064), 15: TestFrameInfo(pts_.96, duration_.064), 16: TestFrameInfo(pts_.024, duration_.064), 17: TestFrameInfo(pts_.088, duration_.064), 18: TestFrameInfo(pts_.152, duration_.064), 19: TestFrameInfo(pts_.216, duration_.064), 20: TestFrameInfo(pts_.28, duration_.064), 21: TestFrameInfo(pts_.344, duration_.064), 22: TestFrameInfo(pts_.408, duration_.064), 23: TestFrameInfo(pts_.472, duration_.064), 24: TestFrameInfo(pts_.536, duration_.064), 25: TestFrameInfo(pts_.6, duration_.064), 26: TestFrameInfo(pts_.664, duration_.064), 27: TestFrameInfo(pts_.728, duration_.064), 28: TestFrameInfo(pts_.792, duration_.064), 29: TestFrameInfo(pts_.856, duration_.064), 30: TestFrameInfo(pts_.92, duration_.064), 31: TestFrameInfo(pts_.984, duration_.064), 32: TestFrameInfo(pts_.048, duration_.064), 33: TestFrameInfo(pts_.112, duration_.064), 34: TestFrameInfo(pts_.176, duration_.064), 35: TestFrameInfo(pts_.24, duration_.064), 36: TestFrameInfo(pts_.304, duration_.064), 37: TestFrameInfo(pts_.368, duration_.064), 38: TestFrameInfo(pts_.432, duration_.064), 39: TestFrameInfo(pts_.496, duration_.064), 40: TestFrameInfo(pts_.56, duration_.064), 41: TestFrameInfo(pts_.624, duration_.064), 42: TestFrameInfo(pts_.688, duration_.064), 43: TestFrameInfo(pts_.752, duration_.064), 44: TestFrameInfo(pts_.816, duration_.064), 45: TestFrameInfo(pts_.88, duration_.064), 46: TestFrameInfo(pts_.944, duration_.064), 47: TestFrameInfo(pts_.008, duration_.064), 48: TestFrameInfo(pts_.072, duration_.064), 49: TestFrameInfo(pts_.136, duration_.064), 50: TestFrameInfo(pts_.2, duration_.064), 51: TestFrameInfo(pts_.264, duration_.064), 52: TestFrameInfo(pts_.328, duration_.064), 53: TestFrameInfo(pts_.392, duration_.064), 54: TestFrameInfo(pts_.456, duration_.064), 55: TestFrameInfo(pts_.52, duration_.064), 56: TestFrameInfo(pts_.584, duration_.064), 57: TestFrameInfo(pts_.648, duration_.064), 58: TestFrameInfo(pts_.712, duration_.064), 59: TestFrameInfo(pts_.776, duration_.064), 60: TestFrameInfo(pts_.84, duration_.064), 61: TestFrameInfo(pts_.904, duration_.064), 62: TestFrameInfo(pts_.968, duration_.032)}}, _custom_frame_mappings_data={}, _reference_frames={0: [tensor([[0.3000, 0.2955, 0.2823, ..., 0.2651, 0.2370, 0.2019]]), tensor([[ 0.1607, 0.1148, 0.0654, ..., 0.0235, -0.0282, -0.0792]]), tensor([[-0.1277, -0.1725, -0.2121, ..., -0.2399, -0.2673, -0.2867]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2582, -0.2281]]), tensor([[-0.1912, -0.1486, -0.1016, ..., -0.0608, -0.0094, 0.0423]]), tensor([[0.0927, 0.1404, 0.1839, ..., 0.2154, 0.2481, 0.2734]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2187, 0.1801, 0.1362, ..., 0.0971, 0.0469, -0.0047]]), tensor([[-0.0562, -0.1061, -0.1527, ..., -0.1876, -0.2250, -0.2558]]), tensor([[-0.2789, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2427, -0.2088, -0.1686, ..., -0.1320, -0.0837, -0.0330]]), tensor([[0.0189, 0.0701, 0.1192, ..., 0.1568, 0.1984, 0.2341]]), tensor([[0.2629, 0.2838, 0.2963, ..., 0.3000, 0.2963, 0.2838]]), tensor([[0.2629, 0.2341, 0.1984, ..., 0.1647, 0.1191, 0.0700]]), tensor([[ 0.0188, -0.0329, -0.0837, ..., -0.1235, -0.1687, -0.2088]]), tensor([[-0.2427, -0.2694, -0.2881, ..., -0.2970, -0.2999, -0.2938]]), tensor([[-0.2789, -0.2558, -0.2250, ..., -0.1948, -0.1527, -0.1060]]), tensor([[-0.0562, -0.0047, 0.0469, ..., 0.0882, 0.1362, 0.1801]]), tensor([[0.2187, 0.2508, 0.2754, ..., 0.2894, 0.2987, 0.2991]]), tensor([[0.2906, 0.2734, 0.2481, ..., 0.2219, 0.1839, 0.1403]]), tensor([[ 0.0927, 0.0423, -0.0094, ..., -0.0515, -0.1016, -0.1487]]), tensor([[-0.1913, -0.2282, -0.2582, ..., -0.2772, -0.2928, -0.2997]]), tensor([[-0.2976, -0.2867, -0.2673, ..., -0.2454, -0.2121, -0.1725]]), tensor([[-0.1277, -0.0791, -0.0281, ..., 0.0143, 0.0655, 0.1147]]), tensor([[0.1608, 0.2019, 0.2370, ..., 0.2607, 0.2823, 0.2955]]), tensor([[0.3000, 0.2955, 0.2823, ..., 0.2651, 0.2370, 0.2018]]), tensor([[ 0.1608, 0.1147, 0.0654, ..., 0.0236, -0.0283, -0.0793]]), tensor([[-0.1277, -0.1725, -0.2122, ..., -0.2399, -0.2673, -0.2868]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2582, -0.2281]]), tensor([[-0.1912, -0.1486, -0.1015, ..., -0.0607, -0.0094, 0.0422]]), tensor([[0.0928, 0.1403, 0.1840, ..., 0.2156, 0.2481, 0.2734]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2187, 0.1800, 0.1362, ..., 0.0972, 0.0468, -0.0048]]), tensor([[-0.0562, -0.1062, -0.1527, ..., -0.1875, -0.2251, -0.2559]]), tensor([[-0.2789, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2426, -0.2087, -0.1685, ..., -0.1319, -0.0837, -0.0329]]), tensor([[0.0189, 0.0700, 0.1192, ..., 0.1569, 0.1984, 0.2342]]), tensor([[0.2629, 0.2839, 0.2963, ..., 0.3000, 0.2963, 0.2838]]), tensor([[0.2628, 0.2341, 0.1984, ..., 0.1645, 0.1191, 0.0699]]), tensor([[ 0.0189, -0.0330, -0.0837, ..., -0.1234, -0.1688, -0.2089]]), tensor([[-0.2427, -0.2695, -0.2881, ..., -0.2970, -0.2998, -0.2938]]), tensor([[-0.2789, -0.2559, -0.2250, ..., -0.1947, -0.1526, -0.1059]]), tensor([[-0.0560, -0.0047, 0.0471, ..., 0.0883, 0.1362, 0.1803]]), tensor([[0.2187, 0.2507, 0.2753, ..., 0.2894, 0.2987, 0.2991]]), tensor([[0.2905, 0.2734, 0.2481, ..., 0.2218, 0.1838, 0.1403]]), tensor([[ 0.0926, 0.0422, -0.0094, ..., -0.0515, -0.1017, -0.1486]]), tensor([[-0.1912, -0.2281, -0.2583, ..., -0.2772, -0.2928, -0.2997]]), tensor([[-0.2976, -0.2867, -0.2672, ..., -0.2454, -0.2123, -0.1726]]), tensor([[-0.1276, -0.0790, -0.0283, ..., 0.0143, 0.0656, 0.1150]]), tensor([[0.1609, 0.2021, 0.2370, ..., 0.2607, 0.2823, 0.2955]]), tensor([[0.3000, 0.2955, 0.2822, ..., 0.2652, 0.2369, 0.2020]]), tensor([[ 0.1606, 0.1146, 0.0652, ..., 0.0234, -0.0284, -0.0791]]), tensor([[-0.1277, -0.1725, -0.2123, ..., -0.2399, -0.2673, -0.2868]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2581, -0.2279]]), tensor([[-0.1912, -0.1486, -0.1016, ..., -0.0609, -0.0094, 0.0423]]), tensor([[0.0930, 0.1404, 0.1839, ..., 0.2154, 0.2483, 0.2735]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2186, 0.1801, 0.1361, ..., 0.0972, 0.0469, -0.0048]]), tensor([[-0.0563, -0.1061, -0.1528, ..., -0.1878, -0.2251, -0.2558]]), tensor([[-0.2790, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2426, -0.2087, -0.1687, ..., -0.1316, -0.0836, -0.0328]]), tensor([[0.0190, 0.0702, 0.1190, ..., 0.1568, 0.1985, 0.2340]]), tensor([[ 2.6297e-01, 2.8389e-01, 2.9634e-01, 2.9996e-01, 2.9470e-01, 2.8064e-01, 2.5823e-01, 2.2793e-01, 1.9098e-01, 1.4834e-01, 1.0156e-01, 5.1493e-02, -1.0579e-04, -5.1413e-02, -1.0176e-01, -1.4878e-01, -1.9137e-01, -2.2806e-01, -2.5819e-01, -2.8061e-01, -2.9468e-01, -2.9996e-01, -2.9626e-01, -2.8372e-01, -2.6287e-01, -2.3409e-01, -1.9833e-01, -1.5641e-01, -1.1033e-01, -6.0700e-02, -9.2651e-03, 4.2446e-02, 9.2613e-02, 1.4031e-01, 1.8406e-01, 2.2186e-01, 2.5329e-01, 2.7716e-01, 2.9284e-01, 2.9967e-01, 2.9763e-01, 2.8663e-01, 2.6726e-01, 2.3984e-01, 2.0527e-01, 1.6458e-01, 1.1926e-01, 7.0132e-02, 1.8627e-02, -3.3149e-02, -8.3655e-02, -1.3196e-01, -1.7633e-01, -2.1545e-01, -2.4814e-01, -2.7356e-01, -2.9067e-01, -2.9908e-01, -2.9866e-01, -2.8933e-01, -2.7139e-01, -2.4552e-01, -2.1200e-01, -1.7233e-01, -1.2753e-01, -7.9209e-02, -2.8262e-02, 2.3527e-02, 7.4615e-02, 1.2348e-01, 1.6866e-01, 2.0903e-01, 2.4276e-01, 2.6945e-01, 2.8812e-01, 2.9820e-01, 2.9940e-01, 2.9167e-01, 2.7525e-01, 2.5078e-01, 2.1873e-01, 1.8015e-01, 1.3595e-01, 8.8209e-02, 3.7578e-02, -1.4174e-02, -6.5503e-02, -1.1488e-01, -1.6083e-01, -2.0221e-01, -2.3713e-01, -2.6520e-01, -2.8537e-01, -2.9703e-01, -2.9985e-01, -2.9378e-01, -2.7884e-01, -2.5580e-01, -2.2503e-01, -1.8756e-01, -1.4449e-01, -9.7399e-02, -4.6856e-02, 5.0994e-03, 5.6326e-02, 1.0617e-01, 1.5284e-01, 1.9496e-01, 2.3109e-01, 2.6069e-01, 2.8234e-01, 2.9558e-01, 3.0000e-01, 2.9553e-01, 2.8226e-01, 2.6057e-01, 2.3112e-01, 1.9478e-01, 1.5264e-01, 1.0594e-01, 5.6089e-02, 4.5655e-03, -4.7094e-02, -9.7350e-02, -1.4471e-01, -1.8775e-01, -2.2500e-01, -2.5578e-01, -2.7893e-01, -2.9377e-01, -2.9985e-01, -2.9700e-01, -2.8530e-01, -2.6509e-01, -2.3716e-01, -2.0181e-01, -1.6038e-01, -1.1466e-01, -6.5267e-02, -1.3933e-02, 3.7817e-02, 8.8159e-02, 1.3616e-01, 1.8035e-01, 2.1889e-01, 2.5075e-01, 2.7534e-01, 2.9172e-01, 2.9939e-01, 2.9821e-01, 2.8806e-01, 2.6922e-01, 2.4261e-01, 2.0865e-01, 1.6846e-01, 1.2353e-01, 7.4666e-02, 2.3287e-02, -2.8502e-02, -7.9159e-02, -1.2775e-01, -1.7253e-01, -2.1217e-01, -2.4532e-01, -2.7149e-01, -2.8940e-01, -2.9868e-01, -2.9909e-01, -2.9053e-01, -2.7334e-01, -2.4801e-01, -2.1528e-01, -1.7614e-01, -1.3174e-01, -8.3705e-02, -3.2909e-02, 1.8867e-02, 7.0082e-02, 1.1921e-01, 1.6478e-01, 2.0544e-01, 2.3981e-01, 2.6723e-01, 2.8670e-01, 2.9766e-01, 2.9966e-01, 2.9273e-01, 2.7707e-01, 2.5332e-01, 2.2190e-01, 1.8387e-01, 1.4010e-01, 9.2663e-02, 4.2207e-02, -9.5059e-03, -6.0936e-02, -1.1028e-01, -1.5662e-01, -1.9851e-01, -2.3424e-01, -2.6299e-01, -2.8390e-01, -2.9634e-01, -2.9996e-01, -2.9463e-01, -2.8053e-01, -2.5806e-01, -2.2810e-01, -1.9118e-01, -1.4857e-01, -1.0181e-01, -5.1464e-02, 1.3519e-04, 5.1731e-02, 1.0151e-01, 1.4855e-01, 1.9139e-01, 2.2808e-01, 2.5835e-01, 2.8073e-01, 2.9474e-01, 2.9996e-01, 2.9630e-01, 2.8381e-01, 2.6286e-01, 2.3407e-01, 1.9831e-01, 1.5664e-01, 1.1030e-01, 6.0958e-02, 9.5285e-03, -4.2185e-02, -9.2920e-02, -1.4060e-01, -1.8408e-01, -2.2208e-01, -2.5330e-01, -2.7717e-01, -2.9285e-01, -2.9967e-01, -2.9762e-01, -2.8671e-01, -2.6725e-01, -2.3999e-01, -2.0546e-01, -1.6455e-01, -1.1896e-01, -7.0104e-02, -1.8598e-02, 3.3178e-02, 8.3683e-02, 1.3199e-01, 1.7659e-01, 2.1567e-01, 2.4816e-01, 2.7345e-01, 2.9060e-01, 2.9908e-01, 2.9868e-01, 2.8933e-01, 2.7137e-01, 2.4550e-01, 2.1219e-01, 1.7255e-01, 1.2750e-01, 7.9181e-02, 2.7941e-02, -2.3848e-02, -7.4644e-02, -1.2351e-01, -1.6869e-01, -2.0884e-01, -2.4260e-01, -2.6947e-01, -2.8813e-01, -2.9821e-01, -2.9941e-01, -2.9173e-01, -2.7535e-01, -2.5061e-01, -2.1871e-01, -1.7990e-01, -1.3592e-01, -8.8181e-02, -3.7548e-02, 1.4203e-02, 6.5817e-02, 1.1491e-01, 1.6086e-01, 2.0201e-01, 2.3715e-01, 2.6508e-01, 2.8529e-01, 2.9704e-01, 2.9985e-01, 2.9377e-01, 2.7894e-01, 2.5563e-01, 2.2501e-01, 1.8754e-01, 1.4421e-01, 9.7095e-02, 4.6827e-02, -4.8358e-03, -5.6355e-02, -1.0592e-01, -1.5262e-01, -1.9499e-01, -2.3129e-01, -2.6056e-01, -2.8225e-01, -2.9553e-01, -3.0000e-01, -2.9548e-01, -2.8215e-01, -2.6041e-01, -2.3110e-01, -1.9476e-01, -1.5261e-01, -1.0591e-01, -5.6060e-02, -4.5361e-03, 4.7123e-02, 9.7101e-02, 1.4447e-01, 1.8754e-01, 2.2502e-01, 2.5579e-01, 2.7894e-01, 2.9383e-01, 2.9985e-01, 2.9700e-01, 2.8529e-01, 2.6508e-01, 2.3697e-01, 2.0179e-01, 1.6060e-01, 1.1463e-01, 6.5525e-02, 1.4196e-02, -3.7555e-02, -8.8467e-02, -1.3619e-01, -1.8014e-01, -2.1871e-01, -2.5077e-01, -2.7535e-01, -2.9180e-01, -2.9943e-01, -2.9817e-01, -2.8805e-01, -2.6934e-01, -2.4277e-01, -2.0884e-01, -1.6844e-01, -1.2323e-01, -7.4637e-02, -2.3550e-02, 2.8240e-02, 7.9187e-02, 1.2751e-01, 1.7279e-01, 2.1240e-01, 2.4550e-01, 2.7150e-01, 2.8940e-01, 2.9868e-01, 2.9908e-01, 2.9053e-01, 2.7333e-01, 2.4799e-01, 2.1546e-01, 1.7635e-01, 1.3198e-01, 8.3958e-02, 3.2880e-02, -1.8897e-02, -7.0395e-02, -1.1923e-01, -1.6480e-01, -2.0546e-01, -2.4000e-01, -2.6738e-01, -2.8679e-01, -2.9766e-01, -2.9967e-01, -2.9278e-01, -2.7717e-01, -2.5314e-01, -2.2188e-01, -1.8384e-01, -1.4033e-01, -9.2635e-02, -4.2468e-02, 9.5353e-03, 6.1252e-02, 1.1058e-01, 1.5689e-01, 1.9854e-01, 2.3426e-01, 2.6286e-01, 2.8381e-01, 2.9635e-01, 2.9996e-01, 2.9468e-01, 2.8062e-01, 2.5820e-01, 2.2827e-01, 1.9139e-01, 1.4854e-01, 1.0150e-01, 5.1435e-02, -1.6459e-04, -5.1760e-02, -1.0154e-01, -1.4883e-01, -1.9141e-01, -2.2829e-01, -2.5822e-01, -2.8064e-01, -2.9469e-01, -2.9996e-01, -2.9630e-01, -2.8380e-01, -2.6284e-01, -2.3405e-01, -1.9829e-01, -1.5661e-01, -1.1027e-01, -6.0642e-02, -9.2063e-03, 4.2504e-02, 9.2948e-02, 1.4036e-01, 1.8387e-01, 2.2190e-01, 2.5332e-01, 2.7719e-01, 2.9279e-01, 2.9967e-01, 2.9766e-01, 2.8678e-01, 2.6723e-01, 2.3980e-01, 2.0522e-01, 1.6453e-01, 1.1893e-01, 7.0075e-02, 1.8861e-02, -3.3207e-02, -8.3993e-02, -1.3201e-01, -1.7638e-01, -2.1549e-01, -2.4818e-01, -2.7335e-01, -2.9061e-01, -2.9909e-01, -2.9865e-01, -2.8932e-01, -2.7136e-01, -2.4531e-01, -2.1217e-01, -1.7229e-01, -1.2748e-01, -7.9152e-02, -2.8204e-02, 2.3586e-02, 7.4672e-02, 1.2327e-01, 1.6871e-01, 2.0886e-01, 2.4279e-01, 2.6935e-01, 2.8814e-01, 2.9821e-01, 2.9941e-01, 2.9165e-01, 2.7522e-01, 2.5059e-01, 2.1869e-01, 1.8011e-01, 1.3616e-01, 8.7873e-02, 3.7519e-02, -1.4232e-02, -6.5560e-02, -1.1466e-01, -1.6063e-01, -2.0182e-01, -2.3735e-01, -2.6523e-01, -2.8539e-01, -2.9704e-01, -2.9985e-01, -2.9377e-01, -2.7893e-01, -2.5562e-01, -2.2500e-01, -1.8751e-01, -1.4444e-01, -9.7067e-02, -4.7087e-02, 4.5723e-03, 5.6384e-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('/tmp/pytest-of-builduser/pytest-0/test_audio_against_cli_to_file5') capfd = <_pytest.capture.CaptureFixture object at 0xffff74e99a50> 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", .mark.skipif( IS_WINDOWS and ffmpeg_major_version <= 5, reason="Encoding mp3 on Windows is weirdly buggy", ), ), pytest.param( "wav", .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( ["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_, , ) # Encode with Encoder enc, encoder_output, open_kwargs = self._create_encoder( method, tmp_path, format ) audio = enc.add_audio( sample_, num_, bit_, out_num_, out_sample_, ) 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, ) 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, , , ) E AssertionError: Tensor-likes are not close! E E Mismatched elements: 18 / 32000 (0.1%) E Greatest absolute difference: 0.018557779490947723 at index (0, 31931) (up to 0.01 allowed) E Greatest relative difference: 1.1382719278335571 at index (0, 31950) (up to 0 allowed) test/test_encoders.py:1190: AssertionError ----------------------------- Captured stderr call ----------------------------- [mp3 @ 0xaaaaef42dd30] Format mp3 probed with and id3v2 ver:4 flags:00 len:34 [mp3 @ 0xaaaaef42dd30] pad 576 832 [mp3 @ 0xaaaaef42dd30] Skipping 0 bytes of junk at 260. [mp3 @ 0xaaaaef42dd30] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0xaaaaef42dd30] demuxer injecting skip 1105 / discard 0 [mp3float @ 0xaaaaef0140b0] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaef0140b0] skip whole frame, skip left: 529 [mp3 @ 0xaaaaef42dd30] All info found [mp3 @ 0xaaaaef42dd30] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0xaaaaef0140b0] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaef0140b0] skip whole frame, skip left: 529 [mp3float @ 0xaaaaef0140b0] skip 529/576 samples [mp3 @ 0xaaaaef42dd30] demuxer injecting skip 0 / discard 303 [mp3float @ 0xaaaaef0140b0] skip 0 / discard 303 samples due to side data [mp3float @ 0xaaaaef0140b0] discard 303/576 samples [AVFormatContext @ 0xaaaaef42dd30] Opening '/tmp/pytest-of-builduser/pytest-0/test_audio_against_cli_to_file5/ffmpeg_output.mp3' for reading [file @ 0xaaaaeff8d320] Setting default whitelist 'file,crypto,data' [mp3 @ 0xaaaaef42dd30] Format mp3 probed with and id3v2 ver:4 flags:00 len:34 [mp3 @ 0xaaaaef42dd30] pad 576 832 [mp3 @ 0xaaaaef42dd30] Skipping 0 bytes of junk at 260. [mp3 @ 0xaaaaef42dd30] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0xaaaaef42dd30] demuxer injecting skip 1105 / discard 0 [mp3float @ 0xaaaaf0ab6b50] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaf0ab6b50] skip whole frame, skip left: 529 [mp3 @ 0xaaaaef42dd30] All info found [mp3 @ 0xaaaaef42dd30] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0xaaaaf0ab6b50] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaf0ab6b50] skip whole frame, skip left: 529 [mp3float @ 0xaaaaf0ab6b50] skip 529/576 samples [mp3 @ 0xaaaaef42dd30] demuxer injecting skip 0 / discard 303 [mp3float @ 0xaaaaf0ab6b50] skip 0 / discard 303 samples due to side data [mp3float @ 0xaaaaf0ab6b50] discard 303/576 samples [AVIOContext @ 0xaaaaef1184c0] 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_, stream_infos={0: TestAudioStreamInfo(sample_, num_, duration_, num_, sample_format='s32')}, frames={0: {0: TestFrameInfo(pts_.0, duration_.064), 1: TestFrameInfo(pts_.064, duration_.064), 2: TestFrameInfo(pts_.128, duration_.064), 3: TestFrameInfo(pts_.192, duration_.064), 4: TestFrameInfo(pts_.256, duration_.064), 5: TestFrameInfo(pts_.32, duration_.064), 6: TestFrameInfo(pts_.384, duration_.064), 7: TestFrameInfo(pts_.448, duration_.064), 8: TestFrameInfo(pts_.512, duration_.064), 9: TestFrameInfo(pts_.576, duration_.064), 10: TestFrameInfo(pts_.64, duration_.064), 11: TestFrameInfo(pts_.704, duration_.064), 12: TestFrameInfo(pts_.768, duration_.064), 13: TestFrameInfo(pts_.832, duration_.064), 14: TestFrameInfo(pts_.896, duration_.064), 15: TestFrameInfo(pts_.96, duration_.064), 16: TestFrameInfo(pts_.024, duration_.064), 17: TestFrameInfo(pts_.088, duration_.064), 18: TestFrameInfo(pts_.152, duration_.064), 19: TestFrameInfo(pts_.216, duration_.064), 20: TestFrameInfo(pts_.28, duration_.064), 21: TestFrameInfo(pts_.344, duration_.064), 22: TestFrameInfo(pts_.408, duration_.064), 23: TestFrameInfo(pts_.472, duration_.064), 24: TestFrameInfo(pts_.536, duration_.064), 25: TestFrameInfo(pts_.6, duration_.064), 26: TestFrameInfo(pts_.664, duration_.064), 27: TestFrameInfo(pts_.728, duration_.064), 28: TestFrameInfo(pts_.792, duration_.064), 29: TestFrameInfo(pts_.856, duration_.064), 30: TestFrameInfo(pts_.92, duration_.064), 31: TestFrameInfo(pts_.984, duration_.064), 32: TestFrameInfo(pts_.048, duration_.064), 33: TestFrameInfo(pts_.112, duration_.064), 34: TestFrameInfo(pts_.176, duration_.064), 35: TestFrameInfo(pts_.24, duration_.064), 36: TestFrameInfo(pts_.304, duration_.064), 37: TestFrameInfo(pts_.368, duration_.064), 38: TestFrameInfo(pts_.432, duration_.064), 39: TestFrameInfo(pts_.496, duration_.064), 40: TestFrameInfo(pts_.56, duration_.064), 41: TestFrameInfo(pts_.624, duration_.064), 42: TestFrameInfo(pts_.688, duration_.064), 43: TestFrameInfo(pts_.752, duration_.064), 44: TestFrameInfo(pts_.816, duration_.064), 45: TestFrameInfo(pts_.88, duration_.064), 46: TestFrameInfo(pts_.944, duration_.064), 47: TestFrameInfo(pts_.008, duration_.064), 48: TestFrameInfo(pts_.072, duration_.064), 49: TestFrameInfo(pts_.136, duration_.064), 50: TestFrameInfo(pts_.2, duration_.064), 51: TestFrameInfo(pts_.264, duration_.064), 52: TestFrameInfo(pts_.328, duration_.064), 53: TestFrameInfo(pts_.392, duration_.064), 54: TestFrameInfo(pts_.456, duration_.064), 55: TestFrameInfo(pts_.52, duration_.064), 56: TestFrameInfo(pts_.584, duration_.064), 57: TestFrameInfo(pts_.648, duration_.064), 58: TestFrameInfo(pts_.712, duration_.064), 59: TestFrameInfo(pts_.776, duration_.064), 60: TestFrameInfo(pts_.84, duration_.064), 61: TestFrameInfo(pts_.904, duration_.064), 62: TestFrameInfo(pts_.968, duration_.032)}}, _custom_frame_mappings_data={}, _reference_frames={0: [tensor([[0.3000, 0.2955, 0.2823, ..., 0.2651, 0.2370, 0.2019]]), tensor([[ 0.1607, 0.1148, 0.0654, ..., 0.0235, -0.0282, -0.0792]]), tensor([[-0.1277, -0.1725, -0.2121, ..., -0.2399, -0.2673, -0.2867]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2582, -0.2281]]), tensor([[-0.1912, -0.1486, -0.1016, ..., -0.0608, -0.0094, 0.0423]]), tensor([[0.0927, 0.1404, 0.1839, ..., 0.2154, 0.2481, 0.2734]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2187, 0.1801, 0.1362, ..., 0.0971, 0.0469, -0.0047]]), tensor([[-0.0562, -0.1061, -0.1527, ..., -0.1876, -0.2250, -0.2558]]), tensor([[-0.2789, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2427, -0.2088, -0.1686, ..., -0.1320, -0.0837, -0.0330]]), tensor([[0.0189, 0.0701, 0.1192, ..., 0.1568, 0.1984, 0.2341]]), tensor([[0.2629, 0.2838, 0.2963, ..., 0.3000, 0.2963, 0.2838]]), tensor([[0.2629, 0.2341, 0.1984, ..., 0.1647, 0.1191, 0.0700]]), tensor([[ 0.0188, -0.0329, -0.0837, ..., -0.1235, -0.1687, -0.2088]]), tensor([[-0.2427, -0.2694, -0.2881, ..., -0.2970, -0.2999, -0.2938]]), tensor([[-0.2789, -0.2558, -0.2250, ..., -0.1948, -0.1527, -0.1060]]), tensor([[-0.0562, -0.0047, 0.0469, ..., 0.0882, 0.1362, 0.1801]]), tensor([[0.2187, 0.2508, 0.2754, ..., 0.2894, 0.2987, 0.2991]]), tensor([[0.2906, 0.2734, 0.2481, ..., 0.2219, 0.1839, 0.1403]]), tensor([[ 0.0927, 0.0423, -0.0094, ..., -0.0515, -0.1016, -0.1487]]), tensor([[-0.1913, -0.2282, -0.2582, ..., -0.2772, -0.2928, -0.2997]]), tensor([[-0.2976, -0.2867, -0.2673, ..., -0.2454, -0.2121, -0.1725]]), tensor([[-0.1277, -0.0791, -0.0281, ..., 0.0143, 0.0655, 0.1147]]), tensor([[0.1608, 0.2019, 0.2370, ..., 0.2607, 0.2823, 0.2955]]), tensor([[0.3000, 0.2955, 0.2823, ..., 0.2651, 0.2370, 0.2018]]), tensor([[ 0.1608, 0.1147, 0.0654, ..., 0.0236, -0.0283, -0.0793]]), tensor([[-0.1277, -0.1725, -0.2122, ..., -0.2399, -0.2673, -0.2868]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2582, -0.2281]]), tensor([[-0.1912, -0.1486, -0.1015, ..., -0.0607, -0.0094, 0.0422]]), tensor([[0.0928, 0.1403, 0.1840, ..., 0.2156, 0.2481, 0.2734]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2187, 0.1800, 0.1362, ..., 0.0972, 0.0468, -0.0048]]), tensor([[-0.0562, -0.1062, -0.1527, ..., -0.1875, -0.2251, -0.2559]]), tensor([[-0.2789, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2426, -0.2087, -0.1685, ..., -0.1319, -0.0837, -0.0329]]), tensor([[0.0189, 0.0700, 0.1192, ..., 0.1569, 0.1984, 0.2342]]), tensor([[0.2629, 0.2839, 0.2963, ..., 0.3000, 0.2963, 0.2838]]), tensor([[0.2628, 0.2341, 0.1984, ..., 0.1645, 0.1191, 0.0699]]), tensor([[ 0.0189, -0.0330, -0.0837, ..., -0.1234, -0.1688, -0.2089]]), tensor([[-0.2427, -0.2695, -0.2881, ..., -0.2970, -0.2998, -0.2938]]), tensor([[-0.2789, -0.2559, -0.2250, ..., -0.1947, -0.1526, -0.1059]]), tensor([[-0.0560, -0.0047, 0.0471, ..., 0.0883, 0.1362, 0.1803]]), tensor([[0.2187, 0.2507, 0.2753, ..., 0.2894, 0.2987, 0.2991]]), tensor([[0.2905, 0.2734, 0.2481, ..., 0.2218, 0.1838, 0.1403]]), tensor([[ 0.0926, 0.0422, -0.0094, ..., -0.0515, -0.1017, -0.1486]]), tensor([[-0.1912, -0.2281, -0.2583, ..., -0.2772, -0.2928, -0.2997]]), tensor([[-0.2976, -0.2867, -0.2672, ..., -0.2454, -0.2123, -0.1726]]), tensor([[-0.1276, -0.0790, -0.0283, ..., 0.0143, 0.0656, 0.1150]]), tensor([[0.1609, 0.2021, 0.2370, ..., 0.2607, 0.2823, 0.2955]]), tensor([[0.3000, 0.2955, 0.2822, ..., 0.2652, 0.2369, 0.2020]]), tensor([[ 0.1606, 0.1146, 0.0652, ..., 0.0234, -0.0284, -0.0791]]), tensor([[-0.1277, -0.1725, -0.2123, ..., -0.2399, -0.2673, -0.2868]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2581, -0.2279]]), tensor([[-0.1912, -0.1486, -0.1016, ..., -0.0609, -0.0094, 0.0423]]), tensor([[0.0930, 0.1404, 0.1839, ..., 0.2154, 0.2483, 0.2735]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2186, 0.1801, 0.1361, ..., 0.0972, 0.0469, -0.0048]]), tensor([[-0.0563, -0.1061, -0.1528, ..., -0.1878, -0.2251, -0.2558]]), tensor([[-0.2790, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2426, -0.2087, -0.1687, ..., -0.1316, -0.0836, -0.0328]]), tensor([[0.0190, 0.0702, 0.1190, ..., 0.1568, 0.1985, 0.2340]]), tensor([[ 2.6297e-01, 2.8389e-01, 2.9634e-01, 2.9996e-01, 2.9470e-01, 2.8064e-01, 2.5823e-01, 2.2793e-01, 1.9098e-01, 1.4834e-01, 1.0156e-01, 5.1493e-02, -1.0579e-04, -5.1413e-02, -1.0176e-01, -1.4878e-01, -1.9137e-01, -2.2806e-01, -2.5819e-01, -2.8061e-01, -2.9468e-01, -2.9996e-01, -2.9626e-01, -2.8372e-01, -2.6287e-01, -2.3409e-01, -1.9833e-01, -1.5641e-01, -1.1033e-01, -6.0700e-02, -9.2651e-03, 4.2446e-02, 9.2613e-02, 1.4031e-01, 1.8406e-01, 2.2186e-01, 2.5329e-01, 2.7716e-01, 2.9284e-01, 2.9967e-01, 2.9763e-01, 2.8663e-01, 2.6726e-01, 2.3984e-01, 2.0527e-01, 1.6458e-01, 1.1926e-01, 7.0132e-02, 1.8627e-02, -3.3149e-02, -8.3655e-02, -1.3196e-01, -1.7633e-01, -2.1545e-01, -2.4814e-01, -2.7356e-01, -2.9067e-01, -2.9908e-01, -2.9866e-01, -2.8933e-01, -2.7139e-01, -2.4552e-01, -2.1200e-01, -1.7233e-01, -1.2753e-01, -7.9209e-02, -2.8262e-02, 2.3527e-02, 7.4615e-02, 1.2348e-01, 1.6866e-01, 2.0903e-01, 2.4276e-01, 2.6945e-01, 2.8812e-01, 2.9820e-01, 2.9940e-01, 2.9167e-01, 2.7525e-01, 2.5078e-01, 2.1873e-01, 1.8015e-01, 1.3595e-01, 8.8209e-02, 3.7578e-02, -1.4174e-02, -6.5503e-02, -1.1488e-01, -1.6083e-01, -2.0221e-01, -2.3713e-01, -2.6520e-01, -2.8537e-01, -2.9703e-01, -2.9985e-01, -2.9378e-01, -2.7884e-01, -2.5580e-01, -2.2503e-01, -1.8756e-01, -1.4449e-01, -9.7399e-02, -4.6856e-02, 5.0994e-03, 5.6326e-02, 1.0617e-01, 1.5284e-01, 1.9496e-01, 2.3109e-01, 2.6069e-01, 2.8234e-01, 2.9558e-01, 3.0000e-01, 2.9553e-01, 2.8226e-01, 2.6057e-01, 2.3112e-01, 1.9478e-01, 1.5264e-01, 1.0594e-01, 5.6089e-02, 4.5655e-03, -4.7094e-02, -9.7350e-02, -1.4471e-01, -1.8775e-01, -2.2500e-01, -2.5578e-01, -2.7893e-01, -2.9377e-01, -2.9985e-01, -2.9700e-01, -2.8530e-01, -2.6509e-01, -2.3716e-01, -2.0181e-01, -1.6038e-01, -1.1466e-01, -6.5267e-02, -1.3933e-02, 3.7817e-02, 8.8159e-02, 1.3616e-01, 1.8035e-01, 2.1889e-01, 2.5075e-01, 2.7534e-01, 2.9172e-01, 2.9939e-01, 2.9821e-01, 2.8806e-01, 2.6922e-01, 2.4261e-01, 2.0865e-01, 1.6846e-01, 1.2353e-01, 7.4666e-02, 2.3287e-02, -2.8502e-02, -7.9159e-02, -1.2775e-01, -1.7253e-01, -2.1217e-01, -2.4532e-01, -2.7149e-01, -2.8940e-01, -2.9868e-01, -2.9909e-01, -2.9053e-01, -2.7334e-01, -2.4801e-01, -2.1528e-01, -1.7614e-01, -1.3174e-01, -8.3705e-02, -3.2909e-02, 1.8867e-02, 7.0082e-02, 1.1921e-01, 1.6478e-01, 2.0544e-01, 2.3981e-01, 2.6723e-01, 2.8670e-01, 2.9766e-01, 2.9966e-01, 2.9273e-01, 2.7707e-01, 2.5332e-01, 2.2190e-01, 1.8387e-01, 1.4010e-01, 9.2663e-02, 4.2207e-02, -9.5059e-03, -6.0936e-02, -1.1028e-01, -1.5662e-01, -1.9851e-01, -2.3424e-01, -2.6299e-01, -2.8390e-01, -2.9634e-01, -2.9996e-01, -2.9463e-01, -2.8053e-01, -2.5806e-01, -2.2810e-01, -1.9118e-01, -1.4857e-01, -1.0181e-01, -5.1464e-02, 1.3519e-04, 5.1731e-02, 1.0151e-01, 1.4855e-01, 1.9139e-01, 2.2808e-01, 2.5835e-01, 2.8073e-01, 2.9474e-01, 2.9996e-01, 2.9630e-01, 2.8381e-01, 2.6286e-01, 2.3407e-01, 1.9831e-01, 1.5664e-01, 1.1030e-01, 6.0958e-02, 9.5285e-03, -4.2185e-02, -9.2920e-02, -1.4060e-01, -1.8408e-01, -2.2208e-01, -2.5330e-01, -2.7717e-01, -2.9285e-01, -2.9967e-01, -2.9762e-01, -2.8671e-01, -2.6725e-01, -2.3999e-01, -2.0546e-01, -1.6455e-01, -1.1896e-01, -7.0104e-02, -1.8598e-02, 3.3178e-02, 8.3683e-02, 1.3199e-01, 1.7659e-01, 2.1567e-01, 2.4816e-01, 2.7345e-01, 2.9060e-01, 2.9908e-01, 2.9868e-01, 2.8933e-01, 2.7137e-01, 2.4550e-01, 2.1219e-01, 1.7255e-01, 1.2750e-01, 7.9181e-02, 2.7941e-02, -2.3848e-02, -7.4644e-02, -1.2351e-01, -1.6869e-01, -2.0884e-01, -2.4260e-01, -2.6947e-01, -2.8813e-01, -2.9821e-01, -2.9941e-01, -2.9173e-01, -2.7535e-01, -2.5061e-01, -2.1871e-01, -1.7990e-01, -1.3592e-01, -8.8181e-02, -3.7548e-02, 1.4203e-02, 6.5817e-02, 1.1491e-01, 1.6086e-01, 2.0201e-01, 2.3715e-01, 2.6508e-01, 2.8529e-01, 2.9704e-01, 2.9985e-01, 2.9377e-01, 2.7894e-01, 2.5563e-01, 2.2501e-01, 1.8754e-01, 1.4421e-01, 9.7095e-02, 4.6827e-02, -4.8358e-03, -5.6355e-02, -1.0592e-01, -1.5262e-01, -1.9499e-01, -2.3129e-01, -2.6056e-01, -2.8225e-01, -2.9553e-01, -3.0000e-01, -2.9548e-01, -2.8215e-01, -2.6041e-01, -2.3110e-01, -1.9476e-01, -1.5261e-01, -1.0591e-01, -5.6060e-02, -4.5361e-03, 4.7123e-02, 9.7101e-02, 1.4447e-01, 1.8754e-01, 2.2502e-01, 2.5579e-01, 2.7894e-01, 2.9383e-01, 2.9985e-01, 2.9700e-01, 2.8529e-01, 2.6508e-01, 2.3697e-01, 2.0179e-01, 1.6060e-01, 1.1463e-01, 6.5525e-02, 1.4196e-02, -3.7555e-02, -8.8467e-02, -1.3619e-01, -1.8014e-01, -2.1871e-01, -2.5077e-01, -2.7535e-01, -2.9180e-01, -2.9943e-01, -2.9817e-01, -2.8805e-01, -2.6934e-01, -2.4277e-01, -2.0884e-01, -1.6844e-01, -1.2323e-01, -7.4637e-02, -2.3550e-02, 2.8240e-02, 7.9187e-02, 1.2751e-01, 1.7279e-01, 2.1240e-01, 2.4550e-01, 2.7150e-01, 2.8940e-01, 2.9868e-01, 2.9908e-01, 2.9053e-01, 2.7333e-01, 2.4799e-01, 2.1546e-01, 1.7635e-01, 1.3198e-01, 8.3958e-02, 3.2880e-02, -1.8897e-02, -7.0395e-02, -1.1923e-01, -1.6480e-01, -2.0546e-01, -2.4000e-01, -2.6738e-01, -2.8679e-01, -2.9766e-01, -2.9967e-01, -2.9278e-01, -2.7717e-01, -2.5314e-01, -2.2188e-01, -1.8384e-01, -1.4033e-01, -9.2635e-02, -4.2468e-02, 9.5353e-03, 6.1252e-02, 1.1058e-01, 1.5689e-01, 1.9854e-01, 2.3426e-01, 2.6286e-01, 2.8381e-01, 2.9635e-01, 2.9996e-01, 2.9468e-01, 2.8062e-01, 2.5820e-01, 2.2827e-01, 1.9139e-01, 1.4854e-01, 1.0150e-01, 5.1435e-02, -1.6459e-04, -5.1760e-02, -1.0154e-01, -1.4883e-01, -1.9141e-01, -2.2829e-01, -2.5822e-01, -2.8064e-01, -2.9469e-01, -2.9996e-01, -2.9630e-01, -2.8380e-01, -2.6284e-01, -2.3405e-01, -1.9829e-01, -1.5661e-01, -1.1027e-01, -6.0642e-02, -9.2063e-03, 4.2504e-02, 9.2948e-02, 1.4036e-01, 1.8387e-01, 2.2190e-01, 2.5332e-01, 2.7719e-01, 2.9279e-01, 2.9967e-01, 2.9766e-01, 2.8678e-01, 2.6723e-01, 2.3980e-01, 2.0522e-01, 1.6453e-01, 1.1893e-01, 7.0075e-02, 1.8861e-02, -3.3207e-02, -8.3993e-02, -1.3201e-01, -1.7638e-01, -2.1549e-01, -2.4818e-01, -2.7335e-01, -2.9061e-01, -2.9909e-01, -2.9865e-01, -2.8932e-01, -2.7136e-01, -2.4531e-01, -2.1217e-01, -1.7229e-01, -1.2748e-01, -7.9152e-02, -2.8204e-02, 2.3586e-02, 7.4672e-02, 1.2327e-01, 1.6871e-01, 2.0886e-01, 2.4279e-01, 2.6935e-01, 2.8814e-01, 2.9821e-01, 2.9941e-01, 2.9165e-01, 2.7522e-01, 2.5059e-01, 2.1869e-01, 1.8011e-01, 1.3616e-01, 8.7873e-02, 3.7519e-02, -1.4232e-02, -6.5560e-02, -1.1466e-01, -1.6063e-01, -2.0182e-01, -2.3735e-01, -2.6523e-01, -2.8539e-01, -2.9704e-01, -2.9985e-01, -2.9377e-01, -2.7893e-01, -2.5562e-01, -2.2500e-01, -1.8751e-01, -1.4444e-01, -9.7067e-02, -4.7087e-02, 4.5723e-03, 5.6384e-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('/tmp/pytest-of-builduser/pytest-0/test_audio_against_cli_to_file6') capfd = <_pytest.capture.CaptureFixture object at 0xffff74e9b550> 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", .mark.skipif( IS_WINDOWS and ffmpeg_major_version <= 5, reason="Encoding mp3 on Windows is weirdly buggy", ), ), pytest.param( "wav", .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( ["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_, , ) # Encode with Encoder enc, encoder_output, open_kwargs = self._create_encoder( method, tmp_path, format ) audio = enc.add_audio( sample_, num_, bit_, out_num_, out_sample_, ) 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, ) 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, , , ) E AssertionError: Tensor-likes are not close! E E Mismatched elements: 18 / 32000 (0.1%) E Greatest absolute difference: 0.018557779490947723 at index (0, 31931) (up to 0.01 allowed) E Greatest relative difference: 1.1382719278335571 at index (0, 31950) (up to 0 allowed) test/test_encoders.py:1190: AssertionError ----------------------------- Captured stderr call ----------------------------- [mp3 @ 0xaaaaf0aaf5e0] Format mp3 probed with and id3v2 ver:4 flags:00 len:34 [mp3 @ 0xaaaaf0aaf5e0] pad 576 832 [mp3 @ 0xaaaaf0aaf5e0] Skipping 0 bytes of junk at 260. [mp3 @ 0xaaaaf0aaf5e0] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0xaaaaf0aaf5e0] demuxer injecting skip 1105 / discard 0 [mp3float @ 0xaaaaee33a340] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaee33a340] skip whole frame, skip left: 529 [mp3 @ 0xaaaaf0aaf5e0] All info found [mp3 @ 0xaaaaf0aaf5e0] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0xaaaaee33a340] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaee33a340] skip whole frame, skip left: 529 [mp3float @ 0xaaaaee33a340] skip 529/576 samples [mp3 @ 0xaaaaf0aaf5e0] demuxer injecting skip 0 / discard 303 [mp3float @ 0xaaaaee33a340] skip 0 / discard 303 samples due to side data [mp3float @ 0xaaaaee33a340] discard 303/576 samples [AVFormatContext @ 0xaaaaf0aaf5e0] Opening '/tmp/pytest-of-builduser/pytest-0/test_audio_against_cli_to_file6/ffmpeg_output.mp3' for reading [file @ 0xaaaaef2dd9d0] Setting default whitelist 'file,crypto,data' [mp3 @ 0xaaaaf0aaf5e0] Format mp3 probed with and id3v2 ver:4 flags:00 len:34 [mp3 @ 0xaaaaf0aaf5e0] pad 576 832 [mp3 @ 0xaaaaf0aaf5e0] Skipping 0 bytes of junk at 260. [mp3 @ 0xaaaaf0aaf5e0] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0xaaaaf0aaf5e0] demuxer injecting skip 1105 / discard 0 [mp3float @ 0xaaaaef061160] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaef061160] skip whole frame, skip left: 529 [mp3 @ 0xaaaaf0aaf5e0] All info found [mp3 @ 0xaaaaf0aaf5e0] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0xaaaaef061160] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaef061160] skip whole frame, skip left: 529 [mp3float @ 0xaaaaef061160] skip 529/576 samples [mp3 @ 0xaaaaf0aaf5e0] demuxer injecting skip 0 / discard 303 [mp3float @ 0xaaaaef061160] skip 0 / discard 303 samples due to side data [mp3float @ 0xaaaaef061160] discard 303/576 samples [AVIOContext @ 0xaaaaef1184c0] 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_, stream_infos={0: TestAudioStreamInfo(sample_, num_, duration_, num_, sample_format='s32')}, frames={0: {0: TestFrameInfo(pts_.0, duration_.064), 1: TestFrameInfo(pts_.064, duration_.064), 2: TestFrameInfo(pts_.128, duration_.064), 3: TestFrameInfo(pts_.192, duration_.064), 4: TestFrameInfo(pts_.256, duration_.064), 5: TestFrameInfo(pts_.32, duration_.064), 6: TestFrameInfo(pts_.384, duration_.064), 7: TestFrameInfo(pts_.448, duration_.064), 8: TestFrameInfo(pts_.512, duration_.064), 9: TestFrameInfo(pts_.576, duration_.064), 10: TestFrameInfo(pts_.64, duration_.064), 11: TestFrameInfo(pts_.704, duration_.064), 12: TestFrameInfo(pts_.768, duration_.064), 13: TestFrameInfo(pts_.832, duration_.064), 14: TestFrameInfo(pts_.896, duration_.064), 15: TestFrameInfo(pts_.96, duration_.064), 16: TestFrameInfo(pts_.024, duration_.064), 17: TestFrameInfo(pts_.088, duration_.064), 18: TestFrameInfo(pts_.152, duration_.064), 19: TestFrameInfo(pts_.216, duration_.064), 20: TestFrameInfo(pts_.28, duration_.064), 21: TestFrameInfo(pts_.344, duration_.064), 22: TestFrameInfo(pts_.408, duration_.064), 23: TestFrameInfo(pts_.472, duration_.064), 24: TestFrameInfo(pts_.536, duration_.064), 25: TestFrameInfo(pts_.6, duration_.064), 26: TestFrameInfo(pts_.664, duration_.064), 27: TestFrameInfo(pts_.728, duration_.064), 28: TestFrameInfo(pts_.792, duration_.064), 29: TestFrameInfo(pts_.856, duration_.064), 30: TestFrameInfo(pts_.92, duration_.064), 31: TestFrameInfo(pts_.984, duration_.064), 32: TestFrameInfo(pts_.048, duration_.064), 33: TestFrameInfo(pts_.112, duration_.064), 34: TestFrameInfo(pts_.176, duration_.064), 35: TestFrameInfo(pts_.24, duration_.064), 36: TestFrameInfo(pts_.304, duration_.064), 37: TestFrameInfo(pts_.368, duration_.064), 38: TestFrameInfo(pts_.432, duration_.064), 39: TestFrameInfo(pts_.496, duration_.064), 40: TestFrameInfo(pts_.56, duration_.064), 41: TestFrameInfo(pts_.624, duration_.064), 42: TestFrameInfo(pts_.688, duration_.064), 43: TestFrameInfo(pts_.752, duration_.064), 44: TestFrameInfo(pts_.816, duration_.064), 45: TestFrameInfo(pts_.88, duration_.064), 46: TestFrameInfo(pts_.944, duration_.064), 47: TestFrameInfo(pts_.008, duration_.064), 48: TestFrameInfo(pts_.072, duration_.064), 49: TestFrameInfo(pts_.136, duration_.064), 50: TestFrameInfo(pts_.2, duration_.064), 51: TestFrameInfo(pts_.264, duration_.064), 52: TestFrameInfo(pts_.328, duration_.064), 53: TestFrameInfo(pts_.392, duration_.064), 54: TestFrameInfo(pts_.456, duration_.064), 55: TestFrameInfo(pts_.52, duration_.064), 56: TestFrameInfo(pts_.584, duration_.064), 57: TestFrameInfo(pts_.648, duration_.064), 58: TestFrameInfo(pts_.712, duration_.064), 59: TestFrameInfo(pts_.776, duration_.064), 60: TestFrameInfo(pts_.84, duration_.064), 61: TestFrameInfo(pts_.904, duration_.064), 62: TestFrameInfo(pts_.968, duration_.032)}}, _custom_frame_mappings_data={}, _reference_frames={0: [tensor([[0.3000, 0.2955, 0.2823, ..., 0.2651, 0.2370, 0.2019]]), tensor([[ 0.1607, 0.1148, 0.0654, ..., 0.0235, -0.0282, -0.0792]]), tensor([[-0.1277, -0.1725, -0.2121, ..., -0.2399, -0.2673, -0.2867]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2582, -0.2281]]), tensor([[-0.1912, -0.1486, -0.1016, ..., -0.0608, -0.0094, 0.0423]]), tensor([[0.0927, 0.1404, 0.1839, ..., 0.2154, 0.2481, 0.2734]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2187, 0.1801, 0.1362, ..., 0.0971, 0.0469, -0.0047]]), tensor([[-0.0562, -0.1061, -0.1527, ..., -0.1876, -0.2250, -0.2558]]), tensor([[-0.2789, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2427, -0.2088, -0.1686, ..., -0.1320, -0.0837, -0.0330]]), tensor([[0.0189, 0.0701, 0.1192, ..., 0.1568, 0.1984, 0.2341]]), tensor([[0.2629, 0.2838, 0.2963, ..., 0.3000, 0.2963, 0.2838]]), tensor([[0.2629, 0.2341, 0.1984, ..., 0.1647, 0.1191, 0.0700]]), tensor([[ 0.0188, -0.0329, -0.0837, ..., -0.1235, -0.1687, -0.2088]]), tensor([[-0.2427, -0.2694, -0.2881, ..., -0.2970, -0.2999, -0.2938]]), tensor([[-0.2789, -0.2558, -0.2250, ..., -0.1948, -0.1527, -0.1060]]), tensor([[-0.0562, -0.0047, 0.0469, ..., 0.0882, 0.1362, 0.1801]]), tensor([[0.2187, 0.2508, 0.2754, ..., 0.2894, 0.2987, 0.2991]]), tensor([[0.2906, 0.2734, 0.2481, ..., 0.2219, 0.1839, 0.1403]]), tensor([[ 0.0927, 0.0423, -0.0094, ..., -0.0515, -0.1016, -0.1487]]), tensor([[-0.1913, -0.2282, -0.2582, ..., -0.2772, -0.2928, -0.2997]]), tensor([[-0.2976, -0.2867, -0.2673, ..., -0.2454, -0.2121, -0.1725]]), tensor([[-0.1277, -0.0791, -0.0281, ..., 0.0143, 0.0655, 0.1147]]), tensor([[0.1608, 0.2019, 0.2370, ..., 0.2607, 0.2823, 0.2955]]), tensor([[0.3000, 0.2955, 0.2823, ..., 0.2651, 0.2370, 0.2018]]), tensor([[ 0.1608, 0.1147, 0.0654, ..., 0.0236, -0.0283, -0.0793]]), tensor([[-0.1277, -0.1725, -0.2122, ..., -0.2399, -0.2673, -0.2868]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2582, -0.2281]]), tensor([[-0.1912, -0.1486, -0.1015, ..., -0.0607, -0.0094, 0.0422]]), tensor([[0.0928, 0.1403, 0.1840, ..., 0.2156, 0.2481, 0.2734]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2187, 0.1800, 0.1362, ..., 0.0972, 0.0468, -0.0048]]), tensor([[-0.0562, -0.1062, -0.1527, ..., -0.1875, -0.2251, -0.2559]]), tensor([[-0.2789, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2426, -0.2087, -0.1685, ..., -0.1319, -0.0837, -0.0329]]), tensor([[0.0189, 0.0700, 0.1192, ..., 0.1569, 0.1984, 0.2342]]), tensor([[0.2629, 0.2839, 0.2963, ..., 0.3000, 0.2963, 0.2838]]), tensor([[0.2628, 0.2341, 0.1984, ..., 0.1645, 0.1191, 0.0699]]), tensor([[ 0.0189, -0.0330, -0.0837, ..., -0.1234, -0.1688, -0.2089]]), tensor([[-0.2427, -0.2695, -0.2881, ..., -0.2970, -0.2998, -0.2938]]), tensor([[-0.2789, -0.2559, -0.2250, ..., -0.1947, -0.1526, -0.1059]]), tensor([[-0.0560, -0.0047, 0.0471, ..., 0.0883, 0.1362, 0.1803]]), tensor([[0.2187, 0.2507, 0.2753, ..., 0.2894, 0.2987, 0.2991]]), tensor([[0.2905, 0.2734, 0.2481, ..., 0.2218, 0.1838, 0.1403]]), tensor([[ 0.0926, 0.0422, -0.0094, ..., -0.0515, -0.1017, -0.1486]]), tensor([[-0.1912, -0.2281, -0.2583, ..., -0.2772, -0.2928, -0.2997]]), tensor([[-0.2976, -0.2867, -0.2672, ..., -0.2454, -0.2123, -0.1726]]), tensor([[-0.1276, -0.0790, -0.0283, ..., 0.0143, 0.0656, 0.1150]]), tensor([[0.1609, 0.2021, 0.2370, ..., 0.2607, 0.2823, 0.2955]]), tensor([[0.3000, 0.2955, 0.2822, ..., 0.2652, 0.2369, 0.2020]]), tensor([[ 0.1606, 0.1146, 0.0652, ..., 0.0234, -0.0284, -0.0791]]), tensor([[-0.1277, -0.1725, -0.2123, ..., -0.2399, -0.2673, -0.2868]]), tensor([[-0.2976, -0.2997, -0.2928, ..., -0.2806, -0.2581, -0.2279]]), tensor([[-0.1912, -0.1486, -0.1016, ..., -0.0609, -0.0094, 0.0423]]), tensor([[0.0930, 0.1404, 0.1839, ..., 0.2154, 0.2483, 0.2735]]), tensor([[0.2906, 0.2991, 0.2987, ..., 0.2917, 0.2753, 0.2507]]), tensor([[ 0.2186, 0.1801, 0.1361, ..., 0.0972, 0.0469, -0.0048]]), tensor([[-0.0563, -0.1061, -0.1528, ..., -0.1878, -0.2251, -0.2558]]), tensor([[-0.2790, -0.2938, -0.2999, ..., -0.2982, -0.2881, -0.2694]]), tensor([[-0.2426, -0.2087, -0.1687, ..., -0.1316, -0.0836, -0.0328]]), tensor([[0.0190, 0.0702, 0.1190, ..., 0.1568, 0.1985, 0.2340]]), tensor([[ 2.6297e-01, 2.8389e-01, 2.9634e-01, 2.9996e-01, 2.9470e-01, 2.8064e-01, 2.5823e-01, 2.2793e-01, 1.9098e-01, 1.4834e-01, 1.0156e-01, 5.1493e-02, -1.0579e-04, -5.1413e-02, -1.0176e-01, -1.4878e-01, -1.9137e-01, -2.2806e-01, -2.5819e-01, -2.8061e-01, -2.9468e-01, -2.9996e-01, -2.9626e-01, -2.8372e-01, -2.6287e-01, -2.3409e-01, -1.9833e-01, -1.5641e-01, -1.1033e-01, -6.0700e-02, -9.2651e-03, 4.2446e-02, 9.2613e-02, 1.4031e-01, 1.8406e-01, 2.2186e-01, 2.5329e-01, 2.7716e-01, 2.9284e-01, 2.9967e-01, 2.9763e-01, 2.8663e-01, 2.6726e-01, 2.3984e-01, 2.0527e-01, 1.6458e-01, 1.1926e-01, 7.0132e-02, 1.8627e-02, -3.3149e-02, -8.3655e-02, -1.3196e-01, -1.7633e-01, -2.1545e-01, -2.4814e-01, -2.7356e-01, -2.9067e-01, -2.9908e-01, -2.9866e-01, -2.8933e-01, -2.7139e-01, -2.4552e-01, -2.1200e-01, -1.7233e-01, -1.2753e-01, -7.9209e-02, -2.8262e-02, 2.3527e-02, 7.4615e-02, 1.2348e-01, 1.6866e-01, 2.0903e-01, 2.4276e-01, 2.6945e-01, 2.8812e-01, 2.9820e-01, 2.9940e-01, 2.9167e-01, 2.7525e-01, 2.5078e-01, 2.1873e-01, 1.8015e-01, 1.3595e-01, 8.8209e-02, 3.7578e-02, -1.4174e-02, -6.5503e-02, -1.1488e-01, -1.6083e-01, -2.0221e-01, -2.3713e-01, -2.6520e-01, -2.8537e-01, -2.9703e-01, -2.9985e-01, -2.9378e-01, -2.7884e-01, -2.5580e-01, -2.2503e-01, -1.8756e-01, -1.4449e-01, -9.7399e-02, -4.6856e-02, 5.0994e-03, 5.6326e-02, 1.0617e-01, 1.5284e-01, 1.9496e-01, 2.3109e-01, 2.6069e-01, 2.8234e-01, 2.9558e-01, 3.0000e-01, 2.9553e-01, 2.8226e-01, 2.6057e-01, 2.3112e-01, 1.9478e-01, 1.5264e-01, 1.0594e-01, 5.6089e-02, 4.5655e-03, -4.7094e-02, -9.7350e-02, -1.4471e-01, -1.8775e-01, -2.2500e-01, -2.5578e-01, -2.7893e-01, -2.9377e-01, -2.9985e-01, -2.9700e-01, -2.8530e-01, -2.6509e-01, -2.3716e-01, -2.0181e-01, -1.6038e-01, -1.1466e-01, -6.5267e-02, -1.3933e-02, 3.7817e-02, 8.8159e-02, 1.3616e-01, 1.8035e-01, 2.1889e-01, 2.5075e-01, 2.7534e-01, 2.9172e-01, 2.9939e-01, 2.9821e-01, 2.8806e-01, 2.6922e-01, 2.4261e-01, 2.0865e-01, 1.6846e-01, 1.2353e-01, 7.4666e-02, 2.3287e-02, -2.8502e-02, -7.9159e-02, -1.2775e-01, -1.7253e-01, -2.1217e-01, -2.4532e-01, -2.7149e-01, -2.8940e-01, -2.9868e-01, -2.9909e-01, -2.9053e-01, -2.7334e-01, -2.4801e-01, -2.1528e-01, -1.7614e-01, -1.3174e-01, -8.3705e-02, -3.2909e-02, 1.8867e-02, 7.0082e-02, 1.1921e-01, 1.6478e-01, 2.0544e-01, 2.3981e-01, 2.6723e-01, 2.8670e-01, 2.9766e-01, 2.9966e-01, 2.9273e-01, 2.7707e-01, 2.5332e-01, 2.2190e-01, 1.8387e-01, 1.4010e-01, 9.2663e-02, 4.2207e-02, -9.5059e-03, -6.0936e-02, -1.1028e-01, -1.5662e-01, -1.9851e-01, -2.3424e-01, -2.6299e-01, -2.8390e-01, -2.9634e-01, -2.9996e-01, -2.9463e-01, -2.8053e-01, -2.5806e-01, -2.2810e-01, -1.9118e-01, -1.4857e-01, -1.0181e-01, -5.1464e-02, 1.3519e-04, 5.1731e-02, 1.0151e-01, 1.4855e-01, 1.9139e-01, 2.2808e-01, 2.5835e-01, 2.8073e-01, 2.9474e-01, 2.9996e-01, 2.9630e-01, 2.8381e-01, 2.6286e-01, 2.3407e-01, 1.9831e-01, 1.5664e-01, 1.1030e-01, 6.0958e-02, 9.5285e-03, -4.2185e-02, -9.2920e-02, -1.4060e-01, -1.8408e-01, -2.2208e-01, -2.5330e-01, -2.7717e-01, -2.9285e-01, -2.9967e-01, -2.9762e-01, -2.8671e-01, -2.6725e-01, -2.3999e-01, -2.0546e-01, -1.6455e-01, -1.1896e-01, -7.0104e-02, -1.8598e-02, 3.3178e-02, 8.3683e-02, 1.3199e-01, 1.7659e-01, 2.1567e-01, 2.4816e-01, 2.7345e-01, 2.9060e-01, 2.9908e-01, 2.9868e-01, 2.8933e-01, 2.7137e-01, 2.4550e-01, 2.1219e-01, 1.7255e-01, 1.2750e-01, 7.9181e-02, 2.7941e-02, -2.3848e-02, -7.4644e-02, -1.2351e-01, -1.6869e-01, -2.0884e-01, -2.4260e-01, -2.6947e-01, -2.8813e-01, -2.9821e-01, -2.9941e-01, -2.9173e-01, -2.7535e-01, -2.5061e-01, -2.1871e-01, -1.7990e-01, -1.3592e-01, -8.8181e-02, -3.7548e-02, 1.4203e-02, 6.5817e-02, 1.1491e-01, 1.6086e-01, 2.0201e-01, 2.3715e-01, 2.6508e-01, 2.8529e-01, 2.9704e-01, 2.9985e-01, 2.9377e-01, 2.7894e-01, 2.5563e-01, 2.2501e-01, 1.8754e-01, 1.4421e-01, 9.7095e-02, 4.6827e-02, -4.8358e-03, -5.6355e-02, -1.0592e-01, -1.5262e-01, -1.9499e-01, -2.3129e-01, -2.6056e-01, -2.8225e-01, -2.9553e-01, -3.0000e-01, -2.9548e-01, -2.8215e-01, -2.6041e-01, -2.3110e-01, -1.9476e-01, -1.5261e-01, -1.0591e-01, -5.6060e-02, -4.5361e-03, 4.7123e-02, 9.7101e-02, 1.4447e-01, 1.8754e-01, 2.2502e-01, 2.5579e-01, 2.7894e-01, 2.9383e-01, 2.9985e-01, 2.9700e-01, 2.8529e-01, 2.6508e-01, 2.3697e-01, 2.0179e-01, 1.6060e-01, 1.1463e-01, 6.5525e-02, 1.4196e-02, -3.7555e-02, -8.8467e-02, -1.3619e-01, -1.8014e-01, -2.1871e-01, -2.5077e-01, -2.7535e-01, -2.9180e-01, -2.9943e-01, -2.9817e-01, -2.8805e-01, -2.6934e-01, -2.4277e-01, -2.0884e-01, -1.6844e-01, -1.2323e-01, -7.4637e-02, -2.3550e-02, 2.8240e-02, 7.9187e-02, 1.2751e-01, 1.7279e-01, 2.1240e-01, 2.4550e-01, 2.7150e-01, 2.8940e-01, 2.9868e-01, 2.9908e-01, 2.9053e-01, 2.7333e-01, 2.4799e-01, 2.1546e-01, 1.7635e-01, 1.3198e-01, 8.3958e-02, 3.2880e-02, -1.8897e-02, -7.0395e-02, -1.1923e-01, -1.6480e-01, -2.0546e-01, -2.4000e-01, -2.6738e-01, -2.8679e-01, -2.9766e-01, -2.9967e-01, -2.9278e-01, -2.7717e-01, -2.5314e-01, -2.2188e-01, -1.8384e-01, -1.4033e-01, -9.2635e-02, -4.2468e-02, 9.5353e-03, 6.1252e-02, 1.1058e-01, 1.5689e-01, 1.9854e-01, 2.3426e-01, 2.6286e-01, 2.8381e-01, 2.9635e-01, 2.9996e-01, 2.9468e-01, 2.8062e-01, 2.5820e-01, 2.2827e-01, 1.9139e-01, 1.4854e-01, 1.0150e-01, 5.1435e-02, -1.6459e-04, -5.1760e-02, -1.0154e-01, -1.4883e-01, -1.9141e-01, -2.2829e-01, -2.5822e-01, -2.8064e-01, -2.9469e-01, -2.9996e-01, -2.9630e-01, -2.8380e-01, -2.6284e-01, -2.3405e-01, -1.9829e-01, -1.5661e-01, -1.1027e-01, -6.0642e-02, -9.2063e-03, 4.2504e-02, 9.2948e-02, 1.4036e-01, 1.8387e-01, 2.2190e-01, 2.5332e-01, 2.7719e-01, 2.9279e-01, 2.9967e-01, 2.9766e-01, 2.8678e-01, 2.6723e-01, 2.3980e-01, 2.0522e-01, 1.6453e-01, 1.1893e-01, 7.0075e-02, 1.8861e-02, -3.3207e-02, -8.3993e-02, -1.3201e-01, -1.7638e-01, -2.1549e-01, -2.4818e-01, -2.7335e-01, -2.9061e-01, -2.9909e-01, -2.9865e-01, -2.8932e-01, -2.7136e-01, -2.4531e-01, -2.1217e-01, -1.7229e-01, -1.2748e-01, -7.9152e-02, -2.8204e-02, 2.3586e-02, 7.4672e-02, 1.2327e-01, 1.6871e-01, 2.0886e-01, 2.4279e-01, 2.6935e-01, 2.8814e-01, 2.9821e-01, 2.9941e-01, 2.9165e-01, 2.7522e-01, 2.5059e-01, 2.1869e-01, 1.8011e-01, 1.3616e-01, 8.7873e-02, 3.7519e-02, -1.4232e-02, -6.5560e-02, -1.1466e-01, -1.6063e-01, -2.0182e-01, -2.3735e-01, -2.6523e-01, -2.8539e-01, -2.9704e-01, -2.9985e-01, -2.9377e-01, -2.7893e-01, -2.5562e-01, -2.2500e-01, -1.8751e-01, -1.4444e-01, -9.7067e-02, -4.7087e-02, 4.5723e-03, 5.6384e-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('/tmp/pytest-of-builduser/pytest-0/test_audio_against_cli_to_file7') capfd = <_pytest.capture.CaptureFixture object at 0xffff74e9bb50> 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", .mark.skipif( IS_WINDOWS and ffmpeg_major_version <= 5, reason="Encoding mp3 on Windows is weirdly buggy", ), ), pytest.param( "wav", .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( ["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_, , ) # Encode with Encoder enc, encoder_output, open_kwargs = self._create_encoder( method, tmp_path, format ) audio = enc.add_audio( sample_, num_, bit_, out_num_, out_sample_, ) 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, ) 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, , , ) E AssertionError: Tensor-likes are not close! E E Mismatched elements: 18 / 32000 (0.1%) E Greatest absolute difference: 0.018557779490947723 at index (0, 31931) (up to 0.01 allowed) E Greatest relative difference: 1.1382719278335571 at index (0, 31950) (up to 0 allowed) test/test_encoders.py:1190: AssertionError ----------------------------- Captured stderr call ----------------------------- [mp3 @ 0xaaaaeee9ea60] Format mp3 probed with and id3v2 ver:4 flags:00 len:34 [mp3 @ 0xaaaaeee9ea60] pad 576 832 [mp3 @ 0xaaaaeee9ea60] Skipping 0 bytes of junk at 260. [mp3 @ 0xaaaaeee9ea60] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0xaaaaeee9ea60] demuxer injecting skip 1105 / discard 0 [mp3float @ 0xaaaaee33a340] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaee33a340] skip whole frame, skip left: 529 [mp3 @ 0xaaaaeee9ea60] All info found [mp3 @ 0xaaaaeee9ea60] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0xaaaaee33a340] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaee33a340] skip whole frame, skip left: 529 [mp3float @ 0xaaaaee33a340] skip 529/576 samples [mp3 @ 0xaaaaeee9ea60] demuxer injecting skip 0 / discard 303 [mp3float @ 0xaaaaee33a340] skip 0 / discard 303 samples due to side data [mp3float @ 0xaaaaee33a340] discard 303/576 samples [AVFormatContext @ 0xaaaaeee9ea60] Opening '/tmp/pytest-of-builduser/pytest-0/test_audio_against_cli_to_file7/ffmpeg_output.mp3' for reading [file @ 0xaaaaef308e40] Setting default whitelist 'file,crypto,data' [mp3 @ 0xaaaaeee9ea60] Format mp3 probed with and id3v2 ver:4 flags:00 len:34 [mp3 @ 0xaaaaeee9ea60] pad 576 832 [mp3 @ 0xaaaaeee9ea60] Skipping 0 bytes of junk at 260. [mp3 @ 0xaaaaeee9ea60] Before avformat_find_stream_info() pos: 260 bytes read:4436 seeks:0 nb_streams:1 [mp3 @ 0xaaaaeee9ea60] demuxer injecting skip 1105 / discard 0 [mp3float @ 0xaaaaef061160] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaef061160] skip whole frame, skip left: 529 [mp3 @ 0xaaaaeee9ea60] All info found [mp3 @ 0xaaaaeee9ea60] After avformat_find_stream_info() pos: 4356 bytes read:4436 seeks:0 frames:50 [mp3float @ 0xaaaaef061160] skip 1105 / discard 0 samples due to side data [mp3float @ 0xaaaaef061160] skip whole frame, skip left: 529 [mp3float @ 0xaaaaef061160] skip 529/576 samples [mp3 @ 0xaaaaeee9ea60] demuxer injecting skip 0 / discard 303 [mp3float @ 0xaaaaef061160] skip 0 / discard 303 samples due to side data [mp3float @ 0xaaaaef061160] discard 303/576 samples [AVIOContext @ 0xaaaaeeb71e40] 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] /usr/lib/python3.14/site-packages/torch/jit/_script.py:1485: FutureWarning: `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! Mismatched elements: 18 / 32000 (0.1%) Greatest absolute difference: 0.018557779490947723 at index (0, 31931) (up to 0.01 allowed) Greatest relative difference: 1.1382719278335571 at index (0, 31950) (up to 0 allowed) FAILED test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-None-0-asset1] - AssertionError: Tensor-likes are not close! Mismatched elements: 18 / 32000 (0.1%) Greatest absolute difference: 0.018557779490947723 at index (0, 31931) (up to 0.01 allowed) Greatest relative difference: 1.1382719278335571 at index (0, 31950) (up to 0 allowed) FAILED test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-1-None-asset1] - AssertionError: Tensor-likes are not close! Mismatched elements: 18 / 32000 (0.1%) Greatest absolute difference: 0.018557779490947723 at index (0, 31931) (up to 0.01 allowed) Greatest relative difference: 1.1382719278335571 at index (0, 31950) (up to 0 allowed) FAILED test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file-mp3-8000-1-0-asset1] - AssertionError: Tensor-likes are not close! Mismatched elements: 18 / 32000 (0.1%) Greatest absolute difference: 0.018557779490947723 at index (0, 31931) (up to 0.01 allowed) Greatest relative difference: 1.1382719278335571 at index (0, 31950) (up to 0 allowed) FAILED test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-None-None-asset1] - AssertionError: Tensor-likes are not close! Mismatched elements: 18 / 32000 (0.1%) Greatest absolute difference: 0.018557779490947723 at index (0, 31931) (up to 0.01 allowed) Greatest relative difference: 1.1382719278335571 at index (0, 31950) (up to 0 allowed) FAILED test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-None-0-asset1] - AssertionError: Tensor-likes are not close! Mismatched elements: 18 / 32000 (0.1%) Greatest absolute difference: 0.018557779490947723 at index (0, 31931) (up to 0.01 allowed) Greatest relative difference: 1.1382719278335571 at index (0, 31950) (up to 0 allowed) FAILED test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-1-None-asset1] - AssertionError: Tensor-likes are not close! Mismatched elements: 18 / 32000 (0.1%) Greatest absolute difference: 0.018557779490947723 at index (0, 31931) (up to 0.01 allowed) Greatest relative difference: 1.1382719278335571 at index (0, 31950) (up to 0 allowed) FAILED test/test_encoders.py::TestEncoder::test_audio_against_cli[to_file_like-mp3-8000-1-0-asset1] - AssertionError: Tensor-likes are not close! Mismatched elements: 18 / 32000 (0.1%) Greatest absolute difference: 0.018557779490947723 at index (0, 31931) (up to 0.01 allowed) Greatest relative difference: 1.1382719278335571 at index (0, 31950) (up to 0 allowed) = 8 failed, 1937 passed, 737 skipped, 1 deselected, 5 warnings in 298.14s (0:04:58) = ==> ERROR: A failure occurred in check(). Aborting... ==> ERROR: Build failed, check /var/lib/archbuild/extra-staging-aarch64/ben-5/build