#!/usr/bin/env python3 import errno import gc import platform import resource import sys import av import av.filter try: import setproctitle as _setproctitle setproctitle = _setproctitle.setproctitle except ImportError: setproctitle = lambda s: None def leak(file): c = av.open(file, "r") v = c.decode(video=0) g = av.filter.Graph() v_src = g.add_buffer(template=c.streams.video[0]) f_fps = g.add("fps", "fps=%d" % 60) v_src.link_to(f_fps) v_snk = g.add("buffersink") f_fps.link_to(v_snk) n_frames = 0 while True: try: vf = next(v) v_src.push(vf) del vf gc.collect() vf = v_snk.pull() del vf gc.collect() n_frames += 1 except av.AVError as exc: if exc.errno == errno.EAGAIN: continue else: raise except StopIteration: break return n_frames def main(argv): usage = lambda: print("Usage: %s