[FFmpeg-cvslog] avcodec/nvdec: fix 10bit output pixel formats
Timo Rothenpieler
git at videolan.org
Fri Jul 4 18:36:25 EEST 2025
ffmpeg | branch: master | Timo Rothenpieler <timo at rothenpieler.org> | Fri Jul 4 17:20:40 2025 +0200| [bf5f3f1f2e6ef56b060c454de9d27c6aabf30b78] | committer: Timo Rothenpieler
avcodec/nvdec: fix 10bit output pixel formats
Fixes #11655
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=bf5f3f1f2e6ef56b060c454de9d27c6aabf30b78
---
libavcodec/nvdec.c | 14 ++++++++++++--
libavutil/hwcontext_cuda.c | 3 ++-
2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/libavcodec/nvdec.c b/libavcodec/nvdec.c
index d444135fd7..3a71d9d97e 100644
--- a/libavcodec/nvdec.c
+++ b/libavcodec/nvdec.c
@@ -754,15 +754,25 @@ int ff_nvdec_frame_params(AVCodecContext *avctx,
}
break;
case 10:
+ if (chroma_444) {
+ frames_ctx->sw_format = AV_PIX_FMT_YUV444P16;
+#ifdef NVDEC_HAVE_422_SUPPORT
+ } else if (cuvid_chroma_format == cudaVideoChromaFormat_422) {
+ frames_ctx->sw_format = AV_PIX_FMT_P210;
+#endif
+ } else {
+ frames_ctx->sw_format = AV_PIX_FMT_P010;
+ }
+ break;
case 12:
if (chroma_444) {
frames_ctx->sw_format = AV_PIX_FMT_YUV444P16;
#ifdef NVDEC_HAVE_422_SUPPORT
} else if (cuvid_chroma_format == cudaVideoChromaFormat_422) {
- frames_ctx->sw_format = AV_PIX_FMT_P216LE;
+ frames_ctx->sw_format = AV_PIX_FMT_P216;
#endif
} else {
- frames_ctx->sw_format = AV_PIX_FMT_P016LE;
+ frames_ctx->sw_format = AV_PIX_FMT_P016;
}
break;
default:
diff --git a/libavutil/hwcontext_cuda.c b/libavutil/hwcontext_cuda.c
index 5721612225..ce2ded597f 100644
--- a/libavutil/hwcontext_cuda.c
+++ b/libavutil/hwcontext_cuda.c
@@ -48,7 +48,8 @@ static const enum AVPixelFormat supported_formats[] = {
AV_PIX_FMT_YUV444P,
AV_PIX_FMT_P010,
AV_PIX_FMT_P016,
- AV_PIX_FMT_P216LE,
+ AV_PIX_FMT_P210,
+ AV_PIX_FMT_P216,
AV_PIX_FMT_YUV444P16,
AV_PIX_FMT_0RGB32,
AV_PIX_FMT_0BGR32,
More information about the ffmpeg-cvslog
mailing list