@ -86,8 +86,8 @@ static void pic_arrays_free(HEVCContext *s)
av_freep ( & s - > sh . size ) ;
av_freep ( & s - > sh . offset ) ;
av_bu ffer_pool_uninit( & s - > tab_mvf_pool ) ;
av_bu ffer_pool_uninit( & s - > rpl_tab_pool ) ;
ff_r efst ruct _pool_uninit ( & s - > tab_mvf_pool ) ;
ff_r efst ruct _pool_uninit ( & s - > rpl_tab_pool ) ;
}
/* allocate arrays that depend on frame dimensions */
@ -133,10 +133,8 @@ static int pic_arrays_init(HEVCContext *s, const HEVCSPS *sps)
if ( ! s - > horizontal_bs | | ! s - > vertical_bs )
goto fail ;
s - > tab_mvf_pool = av_buffer_pool_init ( min_pu_size * sizeof ( MvField ) ,
av_buffer_allocz ) ;
s - > rpl_tab_pool = av_buffer_pool_init ( ctb_count * sizeof ( RefPicListTab ) ,
av_buffer_allocz ) ;
s - > tab_mvf_pool = ff_refstruct_pool_alloc ( min_pu_size * sizeof ( MvField ) , 0 ) ;
s - > rpl_tab_pool = ff_refstruct_pool_alloc ( ctb_count * sizeof ( RefPicListTab ) , 0 ) ;
if ( ! s - > tab_mvf_pool | | ! s - > rpl_tab_pool )
goto fail ;
@ -3404,16 +3402,8 @@ static int hevc_ref_frame(HEVCFrame *dst, HEVCFrame *src)
dst - > needs_fg = 1 ;
}
dst - > tab_mvf_buf = av_buffer_ref ( src - > tab_mvf_buf ) ;
if ( ! dst - > tab_mvf_buf )
goto fail ;
dst - > tab_mvf = src - > tab_mvf ;
dst - > rpl_tab_buf = av_buffer_ref ( src - > rpl_tab_buf ) ;
if ( ! dst - > rpl_tab_buf )
goto fail ;
dst - > rpl_tab = src - > rpl_tab ;
dst - > tab_mvf = ff_refstruct_ref ( src - > tab_mvf ) ;
dst - > rpl_tab = ff_refstruct_ref ( src - > rpl_tab ) ;
dst - > rpl = ff_refstruct_ref ( src - > rpl ) ;
dst - > nb_rpl_elems = src - > nb_rpl_elems ;
@ -3426,9 +3416,6 @@ static int hevc_ref_frame(HEVCFrame *dst, HEVCFrame *src)
src - > hwaccel_picture_private ) ;
return 0 ;
fail :
ff_hevc_unref_frame ( dst , ~ 0 ) ;
return AVERROR ( ENOMEM ) ;
}
static av_cold int hevc_decode_free ( AVCodecContext * avctx )