- return ['-f', 'v4l2', '-i', '/dev/video0']
- return ['-f', 'x11grab', '-i', ':0.0+0,0']
+ return ['-f', 'x11grab', '-i', ':0.0+0,0']
+ return ['-f', 'v4l2', '-i', '/dev/video0']
+
+
+def find_size_display(stack: Gtk.Stack) -> Gtk.Label:
+ return stack.get_child_by_name(
+ 'recording').get_first_child().get_next_sibling()
+
+
+def summarize_size(n: int) -> str:
+ if n > 100_000_000:
+ m = int(n / (1024 * 1024))
+ return f'{m}M'
+ if n > 100_000:
+ k = int(n / 1024)
+ return f'{k}K'
+ return str(n)
+
+
+def begin_monitoring_file_size(size_display: Gtk.Label, filename: str) -> None:
+ def update_size_display() -> Any:
+ try:
+ size = summarize_size(os.stat(filename).st_size)
+ except FileNotFoundError:
+ size = '--'
+ size_display.set_label(f'<big>{size}</big>')
+ return GLib.SOURCE_REMOVE if recording is None else GLib.SOURCE_CONTINUE
+ GLib.timeout_add_seconds(1, update_size_display)