History

avcodec/vaapi_encode: extract a free funtion to base layer

Tong Wu committed 2 years ago

Commit fc25b781 parent 6403ad73 files · +14 −5Browse files

Unified · Split

3 files
  1. libavcodec/hw_base_encode.c +11 −0
  2. libavcodec/hw_base_encode.h +2 −0
  3. libavcodec/vaapi_encode.c +1 −5
libavcodec/hw_base_encode.c+11−0
@@ -745,6 +745,17 @@ fail: · 744 unmodified lines
745745 return err;
746746 }
747747
748+int ff_hw_base_encode_free(FFHWBaseEncodePicture *pic)
749+{
750+ av_frame_free(&pic->input_image);
751+ av_frame_free(&pic->recon_image);
752+
753+ av_buffer_unref(&pic->opaque_ref);
754+ av_freep(&pic->priv_data);
755+
756+ return 0;
757+}
758+
748759 int ff_hw_base_encode_init(AVCodecContext *avctx)
749760 {
750761 FFHWBaseEncodeContext *ctx = avctx->priv_data;
libavcodec/hw_base_encode.h+2−0
@@ -224,6 +224,8 @@ int ff_hw_base_init_gop_structure(AVCodecContext *avctx, uint32_t ref_l0, uint32 · 223 unmodified lines
224224
225225 int ff_hw_base_get_recon_format(AVCodecContext *avctx, const void *hwconfig, enum AVPixelFormat *fmt);
226226
227+int ff_hw_base_encode_free(FFHWBaseEncodePicture *pic);
228+
227229 int ff_hw_base_encode_init(AVCodecContext *avctx);
228230
229231 int ff_hw_base_encode_close(AVCodecContext *avctx);
libavcodec/vaapi_encode.c+1−5
@@ -878,17 +878,13 @@ static int vaapi_encode_free(AVCodecContext *avctx, · 877 unmodified lines
878878 av_freep(&pic->slices[i].codec_slice_params);
879879 }
880880
881− av_frame_free(&base_pic->input_image);
882− av_frame_free(&base_pic->recon_image);
883−
884− av_buffer_unref(&base_pic->opaque_ref);
881+ ff_hw_base_encode_free(base_pic);
885882
886883 av_freep(&pic->param_buffers);
887884 av_freep(&pic->slices);
888885 // Output buffer should already be destroyed.
889886 av_assert0(pic->output_buffer == VA_INVALID_ID);
890887
891− av_freep(&base_pic->priv_data);
892888 av_freep(&pic->codec_picture_params);
893889 av_freep(&pic->roi);
894890

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t