diff options
-rw-r--r-- | libavcodec/nvdec.c | 16 |
1 files 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; } |