diff options
author | Sven C. Dack <sven.c.dack@sky.com> | 2016-09-07 15:35:14 +0200 |
---|---|---|
committer | Timo Rothenpieler <timo@rothenpieler.org> | 2016-09-07 18:44:10 +0200 |
commit | 4aeb7a88ec69aff6490e7f94f5987f7525b7eab7 (patch) | |
tree | 18805c09c8145f34e00d3e110e5cd284c2fffb63 | |
parent | fa3ecad071aadec810fe7fc8e74865778e477c5e (diff) | |
download | ffmpeg-4aeb7a88ec69aff6490e7f94f5987f7525b7eab7.tar.gz |
avcodec/nvenc: support RGB input
nvenc still encodes as yuv, but does the conversion internally which
brings some performance gains.
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
-rw-r--r-- | libavcodec/nvenc.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c index b335116007..bff204d926 100644 --- a/libavcodec/nvenc.c +++ b/libavcodec/nvenc.c @@ -81,6 +81,8 @@ const enum AVPixelFormat ff_nvenc_pix_fmts[] = { AV_PIX_FMT_P010, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV444P16, + AV_PIX_FMT_0RGB32, + AV_PIX_FMT_0BGR32, #if CONFIG_CUDA AV_PIX_FMT_CUDA, #endif @@ -1032,6 +1034,14 @@ static av_cold int nvenc_alloc_surface(AVCodecContext *avctx, int idx) ctx->surfaces[idx].format = NV_ENC_BUFFER_FORMAT_YUV444_10BIT; break; + case AV_PIX_FMT_0RGB32: + ctx->surfaces[idx].format = NV_ENC_BUFFER_FORMAT_ARGB; + break; + + case AV_PIX_FMT_0BGR32: + ctx->surfaces[idx].format = NV_ENC_BUFFER_FORMAT_ABGR; + break; + default: av_log(avctx, AV_LOG_FATAL, "Invalid input pixel format\n"); return AVERROR(EINVAL); |