ffmpeg | branch: master | Timo Rothenpieler <t...@rothenpieler.org> | Fri Jul 4 18:52:25 2025 +0200| [8304a1abc79a00b846be534bdc4056a11ded8e8e] | committer: Timo Rothenpieler
avcodec/nvenc: add support for new 10 bit MSB pixel formats > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8304a1abc79a00b846be534bdc4056a11ded8e8e --- libavcodec/nvenc.c | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c index a2457523b1..d81be00314 100644 --- a/libavcodec/nvenc.c +++ b/libavcodec/nvenc.c @@ -68,6 +68,7 @@ const enum AVPixelFormat ff_nvenc_pix_fmts[] = { AV_PIX_FMT_P210, AV_PIX_FMT_P216, #endif + AV_PIX_FMT_YUV444P10MSB, AV_PIX_FMT_YUV444P16, // Truncated to 10bits AV_PIX_FMT_0RGB32, AV_PIX_FMT_RGB32, @@ -76,6 +77,7 @@ const enum AVPixelFormat ff_nvenc_pix_fmts[] = { AV_PIX_FMT_X2RGB10, AV_PIX_FMT_X2BGR10, AV_PIX_FMT_GBRP, + AV_PIX_FMT_GBRP10MSB, AV_PIX_FMT_GBRP16, // Truncated to 10bits AV_PIX_FMT_CUDA, #if CONFIG_D3D11VA @@ -94,13 +96,15 @@ const AVCodecHWConfigInternal *const ff_nvenc_hw_configs[] = { NULL, }; -#define IS_10BIT(pix_fmt) (pix_fmt == AV_PIX_FMT_P010 || \ - pix_fmt == AV_PIX_FMT_P016 || \ - pix_fmt == AV_PIX_FMT_P210 || \ - pix_fmt == AV_PIX_FMT_P216 || \ - pix_fmt == AV_PIX_FMT_YUV444P16 || \ - pix_fmt == AV_PIX_FMT_X2RGB10 || \ - pix_fmt == AV_PIX_FMT_X2BGR10 || \ +#define IS_10BIT(pix_fmt) (pix_fmt == AV_PIX_FMT_P010 || \ + pix_fmt == AV_PIX_FMT_P016 || \ + pix_fmt == AV_PIX_FMT_P210 || \ + pix_fmt == AV_PIX_FMT_P216 || \ + pix_fmt == AV_PIX_FMT_YUV444P10MSB || \ + pix_fmt == AV_PIX_FMT_YUV444P16 || \ + pix_fmt == AV_PIX_FMT_X2RGB10 || \ + pix_fmt == AV_PIX_FMT_X2BGR10 || \ + pix_fmt == AV_PIX_FMT_GBRP10MSB || \ pix_fmt == AV_PIX_FMT_GBRP16) #define IS_RGB(pix_fmt) (pix_fmt == AV_PIX_FMT_0RGB32 || \ @@ -110,17 +114,20 @@ const AVCodecHWConfigInternal *const ff_nvenc_hw_configs[] = { pix_fmt == AV_PIX_FMT_X2RGB10 || \ pix_fmt == AV_PIX_FMT_X2BGR10) -#define IS_YUV444(pix_fmt) (pix_fmt == AV_PIX_FMT_YUV444P || \ - pix_fmt == AV_PIX_FMT_YUV444P16 || \ - pix_fmt == AV_PIX_FMT_GBRP || \ - pix_fmt == AV_PIX_FMT_GBRP16 || \ +#define IS_YUV444(pix_fmt) (pix_fmt == AV_PIX_FMT_YUV444P || \ + pix_fmt == AV_PIX_FMT_YUV444P10MSB || \ + pix_fmt == AV_PIX_FMT_YUV444P16 || \ + pix_fmt == AV_PIX_FMT_GBRP || \ + pix_fmt == AV_PIX_FMT_GBRP10MSB || \ + pix_fmt == AV_PIX_FMT_GBRP16 || \ (ctx->rgb_mode == NVENC_RGB_MODE_444 && IS_RGB(pix_fmt))) #define IS_YUV422(pix_fmt) (pix_fmt == AV_PIX_FMT_NV16 || \ pix_fmt == AV_PIX_FMT_P210 || \ pix_fmt == AV_PIX_FMT_P216) -#define IS_GBRP(pix_fmt) (pix_fmt == AV_PIX_FMT_GBRP || \ +#define IS_GBRP(pix_fmt) (pix_fmt == AV_PIX_FMT_GBRP || \ + pix_fmt == AV_PIX_FMT_GBRP10MSB || \ pix_fmt == AV_PIX_FMT_GBRP16) static const struct { @@ -1991,7 +1998,9 @@ static NV_ENC_BUFFER_FORMAT nvenc_map_buffer_format(enum AVPixelFormat pix_fmt) case AV_PIX_FMT_YUV444P: return NV_ENC_BUFFER_FORMAT_YUV444; case AV_PIX_FMT_GBRP16: + case AV_PIX_FMT_GBRP10MSB: case AV_PIX_FMT_YUV444P16: + case AV_PIX_FMT_YUV444P10MSB: return NV_ENC_BUFFER_FORMAT_YUV444_10BIT; case AV_PIX_FMT_0RGB32: case AV_PIX_FMT_RGB32: _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog To unsubscribe, visit link above, or email ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".