From a9b6d46bef8500ad77cd0cfded557bdee47d738d Mon Sep 17 00:00:00 2001 From: Nicolas Hug Date: Sun, 13 Jul 2025 06:25:09 -0700 Subject: [PATCH 1/2] Add proper checks for 10bit videos on CUDA --- src/torchcodec/_core/CudaDeviceInterface.cpp | 35 ++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/src/torchcodec/_core/CudaDeviceInterface.cpp b/src/torchcodec/_core/CudaDeviceInterface.cpp index 8086d0b4..f3e936e3 100644 --- a/src/torchcodec/_core/CudaDeviceInterface.cpp +++ b/src/torchcodec/_core/CudaDeviceInterface.cpp @@ -196,10 +196,41 @@ void CudaDeviceInterface::convertAVFrameToFrameOutput( UniqueAVFrame& avFrame, FrameOutput& frameOutput, std::optional preAllocatedOutputTensor) { + // We check that avFrame->format == AV_PIX_FMT_CUDA. This only ensures the + // AVFrame is on GPU memory. It can be on CPU memory if the video isn't + // supported by NVDEC for whatever reason: NVDEC falls back to CPU decoding in + // this case, and our check fails. + // TODO: we could send the frame back into the CPU path, and rely on + // swscale/filtergraph to run the color conversion to properly output the + // frame. TORCH_CHECK( avFrame->format == AV_PIX_FMT_CUDA, - "Expected format to be AV_PIX_FMT_CUDA, got " + - std::string(av_get_pix_fmt_name((AVPixelFormat)avFrame->format))); + "Expected format to be AV_PIX_FMT_CUDA, got ", + std::string(av_get_pix_fmt_name((AVPixelFormat)avFrame->format)), + ". When that happens, it is probably because the video is not supported by NVDEC. " + "Try using the CPU device instead."); + + // Above we checked that the AVFrame was on GPU, but that's not enough, we + // also need to check that the AVFrame is in AV_PIX_FMT_NV12 format (8 bits), + // because this is what the NPP color conversion routines expect. + // TODO: we should investigate how to can perform color conversion for + // non-8bit videos. This is supported on CPU. + TORCH_CHECK( + avFrame->hw_frames_ctx != nullptr, + "The AVFrame does not have a hw_frames_ctx. " + "That's unexpected, please report this to the TorchCodec repo."); + + AVPixelFormat actualFormat = + reinterpret_cast(avFrame->hw_frames_ctx->data) + ->sw_format; + TORCH_CHECK( + actualFormat == AV_PIX_FMT_NV12, + "The AVFrame is ", + std::string(av_get_pix_fmt_name(actualFormat)), + ", but we expected AV_PIX_FMT_NV12. This typically happens when " + "the video isn't 8bit, which is not supported on CUDA at the moment. " + "Try using the CPU device instead."); + auto frameDims = getHeightAndWidthFromOptionsOrAVFrame(videoStreamOptions, avFrame); int height = frameDims.height; From 0ea6f40975dd194a0e55a1826335df7b1f268176 Mon Sep 17 00:00:00 2001 From: Nicolas Hug Date: Sun, 13 Jul 2025 06:54:17 -0700 Subject: [PATCH 2/2] Avoid silently wrong results on 10bit CUDA --- src/torchcodec/_core/CudaDeviceInterface.cpp | 15 +++++++--- test/resources/h264_10bits.mp4 | Bin 0 -> 34737 bytes test/resources/h265_10bits.mp4 | Bin 0 -> 38567 bytes test/test_decoders.py | 28 +++++++++++++++++++ test/utils.py | 22 +++++++++++++++ 5 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 test/resources/h264_10bits.mp4 create mode 100644 test/resources/h265_10bits.mp4 diff --git a/src/torchcodec/_core/CudaDeviceInterface.cpp b/src/torchcodec/_core/CudaDeviceInterface.cpp index f3e936e3..90cd2cc9 100644 --- a/src/torchcodec/_core/CudaDeviceInterface.cpp +++ b/src/torchcodec/_core/CudaDeviceInterface.cpp @@ -206,9 +206,13 @@ void CudaDeviceInterface::convertAVFrameToFrameOutput( TORCH_CHECK( avFrame->format == AV_PIX_FMT_CUDA, "Expected format to be AV_PIX_FMT_CUDA, got ", - std::string(av_get_pix_fmt_name((AVPixelFormat)avFrame->format)), + (av_get_pix_fmt_name((AVPixelFormat)avFrame->format) + ? av_get_pix_fmt_name((AVPixelFormat)avFrame->format) + : "unknown"), ". When that happens, it is probably because the video is not supported by NVDEC. " - "Try using the CPU device instead."); + "Try using the CPU device instead. " + "If the video is 10bit, we are tracking 10bit support in " + "https://github.com/pytorch/torchcodec/issues/776"); // Above we checked that the AVFrame was on GPU, but that's not enough, we // also need to check that the AVFrame is in AV_PIX_FMT_NV12 format (8 bits), @@ -226,10 +230,13 @@ void CudaDeviceInterface::convertAVFrameToFrameOutput( TORCH_CHECK( actualFormat == AV_PIX_FMT_NV12, "The AVFrame is ", - std::string(av_get_pix_fmt_name(actualFormat)), + (av_get_pix_fmt_name(actualFormat) ? av_get_pix_fmt_name(actualFormat) + : "unknown"), ", but we expected AV_PIX_FMT_NV12. This typically happens when " "the video isn't 8bit, which is not supported on CUDA at the moment. " - "Try using the CPU device instead."); + "Try using the CPU device instead. " + "If the video is 10bit, we are tracking 10bit support in " + "https://github.com/pytorch/torchcodec/issues/776"); auto frameDims = getHeightAndWidthFromOptionsOrAVFrame(videoStreamOptions, avFrame); diff --git a/test/resources/h264_10bits.mp4 b/test/resources/h264_10bits.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..804362a352f1dee8df10c0a8ae22f71d4b16a879 GIT binary patch literal 34737 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%0DG!(_Rf$aVYwoC)H?DD?jZrwL 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 n1k1uR!M6*i4No torch.Tensor: frames={}, # Automatically loaded from json file ) +# Video generated with: +# ffmpeg -f lavfi -i testsrc2=duration=1:size=200x200:rate=30 -c:v libx265 -pix_fmt yuv420p10le -preset fast -crf 23 h265_10bits.mp4 +H265_10BITS = TestVideo( + filename="h265_10bits.mp4", + default_stream_index=0, + stream_infos={ + 0: TestVideoStreamInfo(width=200, height=200, num_color_channels=3), + }, + frames={0: {}}, # Not needed yet +) + +# Video generated with: +# peg -f lavfi -i testsrc2=duration=1:size=200x200:rate=30 -c:v libx264 -pix_fmt yuv420p10le -preset fast -crf 23 h264_10bits.mp4 +H264_10BITS = TestVideo( + filename="h264_10bits.mp4", + default_stream_index=0, + stream_infos={ + 0: TestVideoStreamInfo(width=200, height=200, num_color_channels=3), + }, + frames={0: {}}, # Not needed yet +) + @dataclass class TestAudio(TestContainerFile):