mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-06 07:56:52 +08:00
Fix EAC3 audio codec detection (#6312)
This commit is contained in:
@@ -90,7 +90,7 @@ class MetaVideo(MetaBase):
|
|||||||
_resources_pix_re = r"^[SBUHD]*(\d{3,4}[PI]+)|\d{3,4}X(\d{3,4})"
|
_resources_pix_re = r"^[SBUHD]*(\d{3,4}[PI]+)|\d{3,4}X(\d{3,4})"
|
||||||
_resources_pix_re2 = r"(^[248]+K)"
|
_resources_pix_re2 = r"(^[248]+K)"
|
||||||
_video_encode_re = r"^(H26[45])$|^(x26[45])$|^AVC$|^HEVC$|^VC\d?$|^MPEG\d?$|^Xvid$|^DivX$|^AV1$|^HDR\d*$|^AVS(\+|[23])$"
|
_video_encode_re = r"^(H26[45])$|^(x26[45])$|^AVC$|^HEVC$|^VC\d?$|^MPEG\d?$|^Xvid$|^DivX$|^AV1$|^HDR\d*$|^AVS(\+|[23])$"
|
||||||
_audio_encode_re = r"^DTS\d?$|^DTSHD$|^DTSHDMA$|^Atmos$|^TrueHD\d?$|^AC3$|^\dAudios?$|^DDP\d?$|^DD\+\d?$|^DD\d?$|^LPCM\d?$|^AAC\d?$|^FLAC\d?$|^HD\d?$|^MA\d?$|^HR\d?$|^Opus\d?$|^Vorbis\d?$|^AV[3S]A$"
|
_audio_encode_re = r"^DTS\d?$|^DTSHD$|^DTSHDMA$|^Atmos$|^TrueHD\d?$|^AC3$|^EAC3\d?$|^\dAudios?$|^DDP\d?$|^DD\+\d?$|^DD\d?$|^LPCM\d?$|^AAC\d?$|^FLAC\d?$|^HD\d?$|^MA\d?$|^HR\d?$|^Opus\d?$|^Vorbis\d?$|^AV[3S]A$"
|
||||||
_fps_re = r"(\d{2,3})(?=FPS)"
|
_fps_re = r"(\d{2,3})(?=FPS)"
|
||||||
_season_pattern = re.compile(_season_re, re.IGNORECASE)
|
_season_pattern = re.compile(_season_re, re.IGNORECASE)
|
||||||
_episode_pattern = re.compile(_episode_re, re.IGNORECASE)
|
_episode_pattern = re.compile(_episode_re, re.IGNORECASE)
|
||||||
@@ -809,7 +809,7 @@ class MetaVideo(MetaBase):
|
|||||||
if self.audio_encode:
|
if self.audio_encode:
|
||||||
if self._last_token.isdigit():
|
if self._last_token.isdigit():
|
||||||
self.audio_encode = "%s.%s" % (self.audio_encode, token)
|
self.audio_encode = "%s.%s" % (self.audio_encode, token)
|
||||||
elif self.audio_encode[-1].isdigit():
|
elif self.audio_encode[-1].isdigit() and self.audio_encode.upper() not in {"AC3", "EAC3"}:
|
||||||
self.audio_encode = "%s %s.%s" % (self.audio_encode[:-1], self.audio_encode[-1], token)
|
self.audio_encode = "%s %s.%s" % (self.audio_encode[:-1], self.audio_encode[-1], token)
|
||||||
else:
|
else:
|
||||||
self.audio_encode = "%s %s" % (self.audio_encode, token)
|
self.audio_encode = "%s %s" % (self.audio_encode, token)
|
||||||
|
|||||||
@@ -171,6 +171,16 @@ def test_python_metainfo_fallback_preserves_xxx_movie_title():
|
|||||||
assert meta.audio_encode == "DDP 5.1"
|
assert meta.audio_encode == "DDP 5.1"
|
||||||
|
|
||||||
|
|
||||||
|
def test_python_metainfo_fallback_recognizes_eac3_audio_codec():
|
||||||
|
"""Python 兜底解析应识别 EAC3 及其声道信息。"""
|
||||||
|
with patch("app.core.metainfo.rust_accel.parse_metainfo", return_value=None):
|
||||||
|
meta = MetaInfo("Test.Movie.2026.1080p.BluRay.x264.EAC3.5.1-GROUP")
|
||||||
|
|
||||||
|
assert meta.resource_pix == "1080p"
|
||||||
|
assert meta.video_encode == "x264"
|
||||||
|
assert meta.audio_encode == "EAC3 5.1"
|
||||||
|
|
||||||
|
|
||||||
RESOURCE_TYPE_CASES = [
|
RESOURCE_TYPE_CASES = [
|
||||||
(
|
(
|
||||||
"They.Will.Kill.You.2026.2160p.UHD.BluRay.Remux."
|
"They.Will.Kill.You.2026.2160p.UHD.BluRay.Remux."
|
||||||
|
|||||||
Reference in New Issue
Block a user