from __future__ import annotations

import os
import sys

import gi

gi.require_version("Gdk", "4.0")
gi.require_version("GLib", "2.0")
gi.require_version("GObject", "2.0")
gi.require_version("Gst", "1.0")
gi.require_version("Gtk", "4.0")
gi.require_version("Pango", "1.0")

from gi.repository import Gst  # NOQA: E402

# Initialize GStreamer
Gst.init(None)

from .application import Application  # NOQA: E402
from .thumbnailer import Thumbnailer  # NOQA: E402


def main():
    if len(sys.argv) >= 2:
        os.chdir(sys.argv[1])

    thumbnailer = Thumbnailer()
    app = Application(thumbnailer=thumbnailer)

    try:
        app.run(None)
    finally:
        thumbnailer.shutdown()