diff options
author | Lynne <dev@lynne.ee> | 2024-08-21 23:27:15 +0800 |
---|---|---|
committer | Lynne <dev@lynne.ee> | 2024-09-09 07:05:24 +0200 |
commit | 9db68ed042a9043362d57c79945f6a8d936f9dba (patch) | |
tree | 887988d3bf3186cbf552be7a233880fd5c96840a /libavcodec/vaapi_encode_mjpeg.c | |
parent | fdf8025eb64c99567eadbebfd488a8e04c028a10 (diff) | |
download | ffmpeg-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.c | 8 |
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; |