Quoting John Cox (2022-05-27 15:51:17) > Hwaccel doesn't use any of the block strength, pcm, slice address, etc. > arrays which can be >100k each for 4k video. Patch to avoid initial > allocation and zeroing at the start of every frame. On a Pi4 the memsets > can use 10% CPU on 4k 60Hz decode, this fixes that. > > Signed-off-by: John Cox <j...@kynesim.co.uk> > --- > libavcodec/hevc_refs.c | 35 +++++++++++++++++++++-------------- > libavcodec/hevcdec.c | 42 +++++++++++++++++++++++++++++------------- > 2 files changed, 50 insertions(+), 27 deletions(-) > > diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c > index f782ea6394..48b059ce45 100644 > --- a/libavcodec/hevcdec.c > +++ b/libavcodec/hevcdec.c > @@ -504,6 +504,16 @@ static int set_sps(HEVCContext *s, const HEVCSPS *sps, > if (!sps) > return 0; > > + // If hwaccel then we don't need all the s/w decode helper arrays > + if (s->avctx->hwaccel) { > + export_stream_params(s, sps); > + > + s->avctx->pix_fmt = pix_fmt; > + s->ps.sps = sps; > + s->ps.vps = (HEVCVPS*) s->ps.vps_list[s->ps.sps->vps_id]->data;
This duplication is ugly. This code should be commutative, so you can either move it all above pic_arrays_init() and add an early return after, or move it all to the end and jump to it with goto. Otherwise looks reasonable. -- Anton Khirnov _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".