From 583838c4f01450a097f0b2abc433f49d40a2031a Mon Sep 17 00:00:00 2001 From: pat-e Date: Thu, 17 Jul 2025 09:54:49 +0200 Subject: [PATCH] Remove unused variables and redundant code. Consider using more robust mapping between ffprobe, mkvmerge, and mediainfo tracks (by language, title, or other tags if possible). --- tv_audio_encoder.py | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/tv_audio_encoder.py b/tv_audio_encoder.py index e5bdb04..8c23389 100644 --- a/tv_audio_encoder.py +++ b/tv_audio_encoder.py @@ -201,31 +201,26 @@ def main(no_downmix=False): audio_tracks_to_remux = [] audio_streams = [s for s in ffprobe_info.get("streams", []) if s.get("codec_type") == "audio"] - # Build mkvmerge track mapping by track ID - mkv_audio_tracks = {t["id"]: t for t in mkv_info.get("tracks", []) if t.get("type") == "audio"} + # Build mkvmerge audio track list + mkv_audio_tracks_list = [t for t in mkv_info.get("tracks", []) if t.get("type") == "audio"] # Build mediainfo track mapping by StreamOrder media_tracks_data = media_info.get("media", {}).get("track", []) mediainfo_audio_tracks = {int(t.get("StreamOrder", -1)): t for t in media_tracks_data if t.get("@type") == "Audio"} - for stream in audio_streams: - # Extract these values once per stream for clarity - stream_index = stream["index"] + for audio_idx, stream in enumerate(audio_streams): stream_index = stream["index"] codec = stream.get("codec_name") channels = stream.get("channels", 2) language = stream.get("tags", {}).get("language", "und") - mkv_track = mkv_info.get("tracks", [])[stream_index] if stream_index < len(mkv_info.get("tracks", [])) else {} + mkv_track = mkv_audio_tracks_list[audio_idx] if audio_idx < len(mkv_audio_tracks_list) else {} track_id = mkv_track.get("id", -1) track_title = mkv_track.get("properties", {}).get("track_name", "") track_delay = 0 - media_tracks_data = media_info.get("media", {}).get("track", []) - audio_track_info = next((t for t in media_tracks_data if t.get("@type") == "Audio" and int(t.get("StreamOrder", -1)) == stream_index), None) + audio_track_info = mediainfo_audio_tracks.get(stream_index) delay_raw = audio_track_info.get("Video_Delay") if audio_track_info else None - track_delay = 0 if delay_raw is not None: try: - # If the value is a float < 1, it's seconds, so convert to ms. delay_val = float(delay_raw) if delay_val < 1: track_delay = int(round(delay_val * 1000)) @@ -238,7 +233,6 @@ def main(no_downmix=False): if codec in REMUX_CODECS: audio_tracks_to_remux.append(str(track_id)) else: - # Convert any codec that is not in REMUX_CODECS opus_file = convert_audio_track( stream_index, channels, language, audio_temp_dir, str(input_file_abs), not no_downmix )