diff --git a/cista/preview.py b/cista/preview.py index e456599..dbb2893 100644 --- a/cista/preview.py +++ b/cista/preview.py @@ -1,4 +1,5 @@ import asyncio +import gc import io import mimetypes import urllib.parse @@ -105,10 +106,13 @@ def process_video(path, *, maxsize, quality): container.seek(container.duration // 8) frame = next(container.decode(stream)) img = frame.to_image() + del frame, stream img.thumbnail((maxsize, maxsize)) imgdata = io.BytesIO() if rotation: img = img.rotate(rotation, expand=True) img.save(imgdata, format="webp", quality=quality, method=4) - return imgdata.getvalue() + ret = imgdata.getvalue() + gc.collect() + return ret