mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-02-17 20:37:04 +00:00
avcodec/vaapi_encode: extract a free funtion to base layer
Signed-off-by: Tong Wu <tong1.wu@intel.com>
This commit is contained in:
parent
6403ad77e3
commit
fc25b7866a
@ -745,6 +745,17 @@ fail:
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ff_hw_base_encode_free(FFHWBaseEncodePicture *pic)
|
||||||
|
{
|
||||||
|
av_frame_free(&pic->input_image);
|
||||||
|
av_frame_free(&pic->recon_image);
|
||||||
|
|
||||||
|
av_buffer_unref(&pic->opaque_ref);
|
||||||
|
av_freep(&pic->priv_data);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int ff_hw_base_encode_init(AVCodecContext *avctx)
|
int ff_hw_base_encode_init(AVCodecContext *avctx)
|
||||||
{
|
{
|
||||||
FFHWBaseEncodeContext *ctx = avctx->priv_data;
|
FFHWBaseEncodeContext *ctx = avctx->priv_data;
|
||||||
|
@ -224,6 +224,8 @@ int ff_hw_base_init_gop_structure(AVCodecContext *avctx, uint32_t ref_l0, uint32
|
|||||||
|
|
||||||
int ff_hw_base_get_recon_format(AVCodecContext *avctx, const void *hwconfig, enum AVPixelFormat *fmt);
|
int ff_hw_base_get_recon_format(AVCodecContext *avctx, const void *hwconfig, enum AVPixelFormat *fmt);
|
||||||
|
|
||||||
|
int ff_hw_base_encode_free(FFHWBaseEncodePicture *pic);
|
||||||
|
|
||||||
int ff_hw_base_encode_init(AVCodecContext *avctx);
|
int ff_hw_base_encode_init(AVCodecContext *avctx);
|
||||||
|
|
||||||
int ff_hw_base_encode_close(AVCodecContext *avctx);
|
int ff_hw_base_encode_close(AVCodecContext *avctx);
|
||||||
|
@ -878,17 +878,13 @@ static int vaapi_encode_free(AVCodecContext *avctx,
|
|||||||
av_freep(&pic->slices[i].codec_slice_params);
|
av_freep(&pic->slices[i].codec_slice_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
av_frame_free(&base_pic->input_image);
|
ff_hw_base_encode_free(base_pic);
|
||||||
av_frame_free(&base_pic->recon_image);
|
|
||||||
|
|
||||||
av_buffer_unref(&base_pic->opaque_ref);
|
|
||||||
|
|
||||||
av_freep(&pic->param_buffers);
|
av_freep(&pic->param_buffers);
|
||||||
av_freep(&pic->slices);
|
av_freep(&pic->slices);
|
||||||
// Output buffer should already be destroyed.
|
// Output buffer should already be destroyed.
|
||||||
av_assert0(pic->output_buffer == VA_INVALID_ID);
|
av_assert0(pic->output_buffer == VA_INVALID_ID);
|
||||||
|
|
||||||
av_freep(&base_pic->priv_data);
|
|
||||||
av_freep(&pic->codec_picture_params);
|
av_freep(&pic->codec_picture_params);
|
||||||
av_freep(&pic->roi);
|
av_freep(&pic->roi);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user