diff options
Diffstat (limited to 'libavcodec/av1dec.c')
-rw-r--r-- | libavcodec/av1dec.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c index d7b2ac9d46..bc897af9cf 100644 --- a/libavcodec/av1dec.c +++ b/libavcodec/av1dec.c @@ -387,9 +387,12 @@ static int get_pixel_format(AVCodecContext *avctx) av_log(avctx, AV_LOG_WARNING, "Unknown AV1 pixel format.\n"); } } else { - if (seq->color_config.subsampling_x == 1 && - seq->color_config.subsampling_y == 1) - pix_fmt = AV_PIX_FMT_YUV440P; + if (bit_depth == 8) + pix_fmt = AV_PIX_FMT_GRAY8; + else if (bit_depth == 10) + pix_fmt = AV_PIX_FMT_GRAY10; + else if (bit_depth == 12) + pix_fmt = AV_PIX_FMT_GRAY12; else av_log(avctx, AV_LOG_WARNING, "Unknown AV1 pixel format.\n"); } @@ -432,6 +435,16 @@ static int get_pixel_format(AVCodecContext *avctx) *fmtp++ = AV_PIX_FMT_VAAPI; #endif break; + case AV_PIX_FMT_GRAY8: +#if CONFIG_AV1_NVDEC_HWACCEL + *fmtp++ = AV_PIX_FMT_CUDA; +#endif + break; + case AV_PIX_FMT_GRAY10: +#if CONFIG_AV1_NVDEC_HWACCEL + *fmtp++ = AV_PIX_FMT_CUDA; +#endif + break; } *fmtp++ = s->pix_fmt; |