From 8774cc72b95fd68a0a721c805d7c25bd7f2a0642 Mon Sep 17 00:00:00 2001 From: CalamitousFelicitousness Date: Tue, 18 Aug 2026 00:54:46 +0100 Subject: [PATCH] fix(video): return none when the av package is unavailable check_av returned the module on success and False on failure, so the two callers testing for None treated a failed import as a working av and reached into it anyway. It now returns None, and the guard that had to test for both tests for one. --- modules/video_models/video_save.py | 2 +- modules/video_models/video_utils.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/video_models/video_save.py b/modules/video_models/video_save.py index 70002f185..028964aa6 100644 --- a/modules/video_models/video_save.py +++ b/modules/video_models/video_save.py @@ -205,7 +205,7 @@ def atomic_save_video( if metadata is None: metadata = {} av = check_av() - if av is None or av is False: + if av is None: log.error('Video: ffmpeg/av not available') return savejob = shared.state.begin('Save video') diff --git a/modules/video_models/video_utils.py b/modules/video_models/video_utils.py index e5dee34dc..1444d4782 100644 --- a/modules/video_models/video_utils.py +++ b/modules/video_models/video_utils.py @@ -54,13 +54,14 @@ def supports_last_frame(model): def check_av(): + """The av module, or None when it is unavailable; callers guard on the None.""" install('av') try: import av av.logging.set_level(av.logging.ERROR) # pylint: disable=c-extension-no-member except Exception as e: log.error(f'av package: {e}') - return False + return None return av