[FFmpeg-cvslog] avcodec/cuviddec: add av1 support
Roman Arzumanyan
git at videolan.org
Thu Oct 15 22:38:57 EEST 2020
ffmpeg | branch: master | Roman Arzumanyan <rarzumanyan at nvidia.com> | Thu Sep 3 14:52:08 2020 +0300| [b23e6ae8864baaa80d2082dbf16dec9359d2902c] | committer: Timo Rothenpieler
avcodec/cuviddec: add av1 support
Signed-off-by: Timo Rothenpieler <timo at rothenpieler.org>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b23e6ae8864baaa80d2082dbf16dec9359d2902c
---
configure | 1 +
libavcodec/allcodecs.c | 1 +
libavcodec/cuviddec.c | 13 +++++++++++++
libavcodec/version.h | 2 +-
4 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/configure b/configure
index 75f0a0fcaa..273ff4b2c9 100755
--- a/configure
+++ b/configure
@@ -3052,6 +3052,7 @@ nvenc_encoder_deps="nvenc"
aac_mf_encoder_deps="mediafoundation"
ac3_mf_encoder_deps="mediafoundation"
+av1_cuvid_decoder_deps="cuvid"
h263_v4l2m2m_decoder_deps="v4l2_m2m h263_v4l2_m2m"
h263_v4l2m2m_encoder_deps="v4l2_m2m h263_v4l2_m2m"
h264_amf_encoder_deps="amf"
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index fb8b2ad035..30bdf8921d 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -769,6 +769,7 @@ extern AVCodec ff_idf_decoder;
* above is available */
extern AVCodec ff_aac_mf_encoder;
extern AVCodec ff_ac3_mf_encoder;
+extern AVCodec ff_av1_cuvid_decoder;
extern AVCodec ff_h263_v4l2m2m_encoder;
extern AVCodec ff_libaom_av1_decoder;
/* hwaccel hooks only, so prefer external decoders */
diff --git a/libavcodec/cuviddec.c b/libavcodec/cuviddec.c
index 2d6377bc8c..ee2ecc01fe 100644
--- a/libavcodec/cuviddec.c
+++ b/libavcodec/cuviddec.c
@@ -42,6 +42,10 @@
#define cudaVideoSurfaceFormat_YUV444_16Bit 3
#endif
+#if NVDECAPI_CHECK_VERSION(11, 0)
+#define CUVID_HAS_AV1_SUPPORT
+#endif
+
typedef struct CuvidContext
{
AVClass *avclass;
@@ -939,6 +943,11 @@ static av_cold int cuvid_decode_init(AVCodecContext *avctx)
case AV_CODEC_ID_VC1:
ctx->cuparseinfo.CodecType = cudaVideoCodec_VC1;
break;
+#endif
+#if CONFIG_AV1_CUVID_DECODER && defined(CUVID_HAS_AV1_SUPPORT)
+ case AV_CODEC_ID_AV1:
+ ctx->cuparseinfo.CodecType = cudaVideoCodec_AV1;
+ break;
#endif
default:
av_log(avctx, AV_LOG_ERROR, "Invalid CUVID codec!\n");
@@ -1134,6 +1143,10 @@ static const AVCodecHWConfigInternal *cuvid_hw_configs[] = {
.wrapper_name = "cuvid", \
};
+#if CONFIG_AV1_CUVID_DECODER && defined(CUVID_HAS_AV1_SUPPORT)
+DEFINE_CUVID_CODEC(av1, AV1, NULL)
+#endif
+
#if CONFIG_HEVC_CUVID_DECODER
DEFINE_CUVID_CODEC(hevc, HEVC, "hevc_mp4toannexb")
#endif
diff --git a/libavcodec/version.h b/libavcodec/version.h
index c80fc4df86..d03d290379 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -29,7 +29,7 @@
#define LIBAVCODEC_VERSION_MAJOR 58
#define LIBAVCODEC_VERSION_MINOR 111
-#define LIBAVCODEC_VERSION_MICRO 100
+#define LIBAVCODEC_VERSION_MICRO 101
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \
More information about the ffmpeg-cvslog
mailing list