tattle-made / DAU

MCA Tipline for Deepfakes
GNU General Public License v3.0
6 stars 0 forks source link

Cleanup downloaded files in the video operator #66

Closed aatmanvaidya closed 4 months ago

aatmanvaidya commented 4 months ago
aatmanvaidya commented 4 months ago

https://stackoverflow.com/questions/38005298/context-manager-to-remove-tempfile

aatmanvaidya commented 4 months ago
import os
import cv2
from contextlib import contextmanager

@contextmanager
def video_capture(fname):
    video = cv2.VideoCapture(fname)
    try:
        yield video
    finally:
        video.release()
        os.remove(fname)

def run(file):
    fname = file["path"]
    fsize = os.path.getsize(fname) / 1e6
    print("original size: ", fsize)

    if fsize > 10:
        raise Exception("Video too large")

    with video_capture(fname) as video:
        vid_analyzer = VideoAnalyzer(video)
        vid_analyzer.set_fsize(fsize)

        doable, error_msg = vid_analyzer.check_constraints()

        if not doable:
            raise Exception("Unsupported Video. Cannot index video.")

        return gendata(vid_analyzer)
aatmanvaidya commented 4 months ago

https://realpython.com/python-with-statement/