aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/vaapi_encode_mjpeg.c
diff options
context:
space:
mode:
authorLynne <dev@lynne.ee>2024-08-21 23:27:15 +0800
committerLynne <dev@lynne.ee>2024-09-09 07:05:24 +0200
commit9db68ed042a9043362d57c79945f6a8d936f9dba (patch)
tree887988d3bf3186cbf552be7a233880fd5c96840a /libavcodec/vaapi_encode_mjpeg.c
parentfdf8025eb64c99567eadbebfd488a8e04c028a10 (diff)
downloadffmpeg-9db68ed042a9043362d57c79945f6a8d936f9dba.tar.gz
hw_base_encode: refactor picture allocation/freeing
This commit cleans up and refactors the mess of private state upon private state that used to be. Now, FFHWBaseEncodePicture is fully initialized upon call-time, and, most importantly, this lets APIs which require initialization data for frames (VkImageViews) to initialize this for both the input image, and the reconstruction (DPB) image. Signed-off-by: Tong Wu <wutong1208@outlook.com>
Diffstat (limited to 'libavcodec/vaapi_encode_mjpeg.c')
-rw-r--r--libavcodec/vaapi_encode_mjpeg.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/libavcodec/vaapi_encode_mjpeg.c b/libavcodec/vaapi_encode_mjpeg.c
index 7667845c3d..5f8266e98a 100644
--- a/libavcodec/vaapi_encode_mjpeg.c
+++ b/libavcodec/vaapi_encode_mjpeg.c
@@ -147,7 +147,7 @@ fail:
}
static int vaapi_encode_mjpeg_write_extra_buffer(AVCodecContext *avctx,
- VAAPIEncodePicture *pic,
+ FFHWBaseEncodePicture *base,
int index, int *type,
char *data, size_t *data_len)
{
@@ -220,11 +220,11 @@ static int vaapi_encode_mjpeg_write_extra_buffer(AVCodecContext *avctx,
}
static int vaapi_encode_mjpeg_init_picture_params(AVCodecContext *avctx,
- VAAPIEncodePicture *vaapi_pic)
+ FFHWBaseEncodePicture *pic)
{
FFHWBaseEncodeContext *base_ctx = avctx->priv_data;
VAAPIEncodeMJPEGContext *priv = avctx->priv_data;
- const FFHWBaseEncodePicture *pic = &vaapi_pic->base;
+ VAAPIEncodePicture *vaapi_pic = pic->priv;
JPEGRawFrameHeader *fh = &priv->frame_header;
JPEGRawScanHeader *sh = &priv->scan.header;
VAEncPictureParameterBufferJPEG *vpic = vaapi_pic->codec_picture_params;
@@ -414,7 +414,7 @@ static int vaapi_encode_mjpeg_init_picture_params(AVCodecContext *avctx,
}
static int vaapi_encode_mjpeg_init_slice_params(AVCodecContext *avctx,
- VAAPIEncodePicture *pic,
+ FFHWBaseEncodePicture *base,
VAAPIEncodeSlice *slice)
{
VAAPIEncodeMJPEGContext *priv = avctx->priv_data;