mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-12-15 19:40:07 +01:00
lavc/qsvdec: Add VVC decoder
Signed-off-by: Fei Wang <fei.w.wang@intel.com>
This commit is contained in:
@@ -17,6 +17,8 @@ version <next>:
|
|||||||
- perlin video source
|
- perlin video source
|
||||||
- D3D12VA HEVC encoder
|
- D3D12VA HEVC encoder
|
||||||
- Cropping metadata parsing and writing in Matroska and MP4/MOV de/muxers
|
- Cropping metadata parsing and writing in Matroska and MP4/MOV de/muxers
|
||||||
|
- Intel QSV-accelerated VVC decoding
|
||||||
|
|
||||||
|
|
||||||
version 7.0:
|
version 7.0:
|
||||||
- DXV DXT1 encoder
|
- DXV DXT1 encoder
|
||||||
|
|||||||
1
configure
vendored
1
configure
vendored
@@ -3425,6 +3425,7 @@ vp9_vaapi_encoder_select="vaapi_encode"
|
|||||||
vp9_qsv_encoder_deps="libmfx MFX_CODEC_VP9"
|
vp9_qsv_encoder_deps="libmfx MFX_CODEC_VP9"
|
||||||
vp9_qsv_encoder_select="qsvenc"
|
vp9_qsv_encoder_select="qsvenc"
|
||||||
vp9_v4l2m2m_decoder_deps="v4l2_m2m vp9_v4l2_m2m"
|
vp9_v4l2m2m_decoder_deps="v4l2_m2m vp9_v4l2_m2m"
|
||||||
|
vvc_qsv_decoder_select="qsvdec"
|
||||||
|
|
||||||
# parsers
|
# parsers
|
||||||
aac_parser_select="adts_header mpeg4audio"
|
aac_parser_select="adts_header mpeg4audio"
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ Force to use a specific number of threads
|
|||||||
@section QSV Decoders
|
@section QSV Decoders
|
||||||
|
|
||||||
The family of Intel QuickSync Video decoders (VC1, MPEG-2, H.264, HEVC,
|
The family of Intel QuickSync Video decoders (VC1, MPEG-2, H.264, HEVC,
|
||||||
JPEG/MJPEG, VP8, VP9, AV1).
|
JPEG/MJPEG, VP8, VP9, AV1, VVC).
|
||||||
|
|
||||||
@subsection Common Options
|
@subsection Common Options
|
||||||
|
|
||||||
|
|||||||
@@ -887,6 +887,7 @@ extern const FFCodec ff_vp9_mediacodec_encoder;
|
|||||||
extern const FFCodec ff_vp9_qsv_decoder;
|
extern const FFCodec ff_vp9_qsv_decoder;
|
||||||
extern const FFCodec ff_vp9_vaapi_encoder;
|
extern const FFCodec ff_vp9_vaapi_encoder;
|
||||||
extern const FFCodec ff_vp9_qsv_encoder;
|
extern const FFCodec ff_vp9_qsv_encoder;
|
||||||
|
extern const FFCodec ff_vvc_qsv_decoder;
|
||||||
|
|
||||||
// null codecs
|
// null codecs
|
||||||
extern const FFCodec ff_vnull_decoder;
|
extern const FFCodec ff_vnull_decoder;
|
||||||
|
|||||||
@@ -73,6 +73,10 @@ int ff_qsv_codec_id_to_mfx(enum AVCodecID codec_id)
|
|||||||
case AV_CODEC_ID_AV1:
|
case AV_CODEC_ID_AV1:
|
||||||
return MFX_CODEC_AV1;
|
return MFX_CODEC_AV1;
|
||||||
#endif
|
#endif
|
||||||
|
#if QSV_VERSION_ATLEAST(2, 11)
|
||||||
|
case AV_CODEC_ID_VVC:
|
||||||
|
return MFX_CODEC_VVC;
|
||||||
|
#endif
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -933,7 +933,8 @@ static int qsv_decode(AVCodecContext *avctx, QSVContext *q,
|
|||||||
frame->pict_type = ff_qsv_map_pictype(aframe.frame->dec_info.FrameType);
|
frame->pict_type = ff_qsv_map_pictype(aframe.frame->dec_info.FrameType);
|
||||||
|
|
||||||
if (avctx->codec_id == AV_CODEC_ID_H264 ||
|
if (avctx->codec_id == AV_CODEC_ID_H264 ||
|
||||||
avctx->codec_id == AV_CODEC_ID_HEVC) {
|
avctx->codec_id == AV_CODEC_ID_HEVC ||
|
||||||
|
avctx->codec_id == AV_CODEC_ID_VVC) {
|
||||||
if (aframe.frame->dec_info.FrameType & MFX_FRAMETYPE_IDR)
|
if (aframe.frame->dec_info.FrameType & MFX_FRAMETYPE_IDR)
|
||||||
frame->flags |= AV_FRAME_FLAG_KEY;
|
frame->flags |= AV_FRAME_FLAG_KEY;
|
||||||
else
|
else
|
||||||
@@ -1300,3 +1301,7 @@ DEFINE_QSV_DECODER(vp9, VP9, NULL)
|
|||||||
#if CONFIG_AV1_QSV_DECODER
|
#if CONFIG_AV1_QSV_DECODER
|
||||||
DEFINE_QSV_DECODER(av1, AV1, NULL)
|
DEFINE_QSV_DECODER(av1, AV1, NULL)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if CONFIG_VVC_QSV_DECODER
|
||||||
|
DEFINE_QSV_DECODER(vvc, VVC, NULL)
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
#include "version_major.h"
|
#include "version_major.h"
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_MINOR 10
|
#define LIBAVCODEC_VERSION_MINOR 11
|
||||||
#define LIBAVCODEC_VERSION_MICRO 100
|
#define LIBAVCODEC_VERSION_MICRO 100
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||||
|
|||||||
Reference in New Issue
Block a user