summaryrefslogtreecommitdiffhomepage
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/subliminal_patch/providers/embeddedsubtitles.py31
1 files changed, 19 insertions, 12 deletions
diff --git a/libs/subliminal_patch/providers/embeddedsubtitles.py b/libs/subliminal_patch/providers/embeddedsubtitles.py
index 63e7c8fde..0cff01a8e 100644
--- a/libs/subliminal_patch/providers/embeddedsubtitles.py
+++ b/libs/subliminal_patch/providers/embeddedsubtitles.py
@@ -245,21 +245,28 @@ def _check_allowed_extensions(subtitle: FFprobeSubtitleStream):
def _check_hi_fallback(streams, languages):
for language in languages:
- compatible_streams = [
- stream for stream in streams if stream.language == language
- ]
- if len(compatible_streams) == 1:
- stream = compatible_streams[0]
- logger.debug("HI fallback: updating %s HI to False", stream)
- stream.disposition.hearing_impaired = False
-
- elif all(stream.disposition.hearing_impaired for stream in streams):
- for stream in streams:
- logger.debug("HI fallback: updating %s HI to False", stream)
+ logger.debug("Checking HI fallback for '%s' language", language)
+
+ streams_ = [stream for stream in streams if stream.language == language]
+ if len(streams_) == 1 and streams_[0].disposition.hearing_impaired:
+ logger.debug(
+ "HI fallback: updating %s HI to False (only subtitle found is HI)",
+ streams_[0],
+ )
+ streams_[0].disposition.hearing_impaired = False
+ streams_[0].disposition.generic = True
+
+ elif all(stream.disposition.hearing_impaired for stream in streams_):
+ for stream in streams_:
+ logger.debug(
+ "HI fallback: updating %s HI to False (all subtitles are HI)",
+ stream,
+ )
stream.disposition.hearing_impaired = False
+ stream.disposition.generic = True
else:
- logger.debug("HI fallback not needed: %s", compatible_streams)
+ logger.debug("HI fallback not needed: %s", streams_)
def _discard_possible_incomplete_subtitles(streams):