PR #20740 opened by ArazIusubov URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20740 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20740.patch
>From 52bdbbc48ba6a35a5ecae850244833635959ea79 Mon Sep 17 00:00:00 2001 From: Araz Iusubov <[email protected]> Date: Thu, 23 Oct 2025 16:40:50 +0200 Subject: [PATCH] avcodec/d3d12va_encode: support pre-codec get codec data --- libavcodec/d3d12va_encode.c | 6 +++++- libavcodec/d3d12va_encode.h | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/libavcodec/d3d12va_encode.c b/libavcodec/d3d12va_encode.c index 4a8672a359..a7151af121 100644 --- a/libavcodec/d3d12va_encode.c +++ b/libavcodec/d3d12va_encode.c @@ -732,6 +732,7 @@ end: static int d3d12va_encode_output(AVCodecContext *avctx, FFHWBaseEncodePicture *base_pic, AVPacket *pkt) { + D3D12VAEncodeContext* ctx = avctx->priv_data; FFHWBaseEncodeContext *base_ctx = avctx->priv_data; D3D12VAEncodePicture *pic = base_pic->priv; AVPacket *pkt_ptr = pkt; @@ -741,7 +742,10 @@ static int d3d12va_encode_output(AVCodecContext *avctx, if (err < 0) return err; - err = d3d12va_encode_get_coded_data(avctx, pic, pkt); + if (ctx->codec->get_coded_data) + err = ctx->codec->get_coded_data(avctx, pic, pkt); + else + err = d3d12va_encode_get_coded_data(avctx, pic, pkt); if (err < 0) return err; diff --git a/libavcodec/d3d12va_encode.h b/libavcodec/d3d12va_encode.h index 5bd1eedb7f..6d175cb028 100644 --- a/libavcodec/d3d12va_encode.h +++ b/libavcodec/d3d12va_encode.h @@ -327,6 +327,11 @@ typedef struct D3D12VAEncodeType { */ int (*write_sequence_header)(AVCodecContext *avctx, char *data, size_t *data_len); + /** + * Fill the coded data into AVPacket + */ + int (*get_coded_data)(AVCodecContext *avctx, + D3D12VAEncodePicture *pic, AVPacket *pkt); } D3D12VAEncodeType; int ff_d3d12va_encode_receive_packet(AVCodecContext *avctx, AVPacket *pkt); -- 2.49.1 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
