[libav-devel] [PATCH] qsvenc: AV_PIX_FMT_QSV path should release frame

Luca Barbato lu_zero at gentoo.org
Tue Sep 18 18:10:33 CEST 2018


On 18/09/2018 09:54, Maxym Dmytrychenko wrote:
> Fixes high memory usage, now is back to normal.
> 
> Can be checked as:
> -hwaccel qsv -c:v h264_qsv -i ../h264-conformance/CANL2_Sony_E.jsv -c:v
> h264_qsv -b:v 2000k -y qsv.mp4
> ---
>  libavcodec/qsvenc.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
> index 611449cbe..17a0559f3 100644
> --- a/libavcodec/qsvenc.c
> +++ b/libavcodec/qsvenc.c
> @@ -1028,6 +1028,9 @@ static void clear_unused_frames(QSVEncContext *q)
>      QSVFrame *cur = q->work_frames;
>      while (cur) {
>          if (cur->used && !cur->surface.Data.Locked) {
> +            if (cur->frame->format == AV_PIX_FMT_QSV) {
> +                av_frame_unref(cur->frame);
> +            }
>              cur->used = 0;
>          }
>          cur = cur->next;
> 

Please put a note about why this is needed (and safe to do).

lu


More information about the libav-devel mailing list