[FFmpeg-cvslog] avcodec/nvdec: add support for 12 bit formats

Timo Rothenpieler git at videolan.org
Sun Nov 12 16:53:00 EET 2017


ffmpeg | branch: master | Timo Rothenpieler <timo at rothenpieler.org> | Sat Nov 11 15:07:41 2017 +0100| [3f6294a53d58ececeacb42ce2ba8349a8b0a4abb] | committer: Timo Rothenpieler

avcodec/nvdec: add support for 12 bit formats

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3f6294a53d58ececeacb42ce2ba8349a8b0a4abb
---

 libavcodec/nvdec.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/libavcodec/nvdec.c b/libavcodec/nvdec.c
index 6287897343..274f69f997 100644
--- a/libavcodec/nvdec.c
+++ b/libavcodec/nvdec.c
@@ -489,9 +489,21 @@ int ff_nvdec_frame_params(AVCodecContext *avctx,
     frames_ctx->format            = AV_PIX_FMT_CUDA;
     frames_ctx->width             = avctx->coded_width;
     frames_ctx->height            = avctx->coded_height;
-    frames_ctx->sw_format         = sw_desc->comp[0].depth > 8 ?
-                                    AV_PIX_FMT_P010 : AV_PIX_FMT_NV12;
     frames_ctx->initial_pool_size = dpb_size;
 
+    switch (sw_desc->comp[0].depth) {
+    case 8:
+        frames_ctx->sw_format = AV_PIX_FMT_NV12;
+        break;
+    case 10:
+        frames_ctx->sw_format = AV_PIX_FMT_P010;
+        break;
+    case 12:
+        frames_ctx->sw_format = AV_PIX_FMT_P016;
+        break;
+    default:
+        return AVERROR(EINVAL);
+    }
+
     return 0;
 }



More information about the ffmpeg-cvslog mailing list