From 6337c1cc1423e3a7c8e82bb39b04055ee102663c Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 21 Feb 2020 14:29:55 +0100 Subject: ytdl_hook: make codec mapping more declarative --- player/lua/ytdl_hook.lua | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) (limited to 'player') diff --git a/player/lua/ytdl_hook.lua b/player/lua/ytdl_hook.lua index 28600530da..05e7624221 100644 --- a/player/lua/ytdl_hook.lua +++ b/player/lua/ytdl_hook.lua @@ -40,9 +40,13 @@ local safe_protos = Set { } local codec_map = { + -- src pattern = mpv codec ["vtt"] = "webvtt", ["opus"] = "opus", ["vp9"] = "vp9", + ["avc1\..*"] = "h264", + ["av01\..*"] = "av1", + ["mp4a\..*"] = "aac", } -- Codec name as reported by youtube-dl mapped to mpv internal codec names. @@ -54,18 +58,11 @@ local function map_codec_to_mpv(codec) if codec == nil then return nil end - local mc = codec_map[codec] - if mc then - return mc - end - if codec:sub(1, 5) == "avc1." then - return "h264" - end - if codec:sub(1, 5) == "av01." then - return "av1" - end - if codec:sub(1, 5) == "mp4a." then - return "aac" + for k, v in pairs(codec_map) do + local s, e = codec:find(k) + if s == 1 and e == #codec then + return v + end end return nil end -- cgit v1.2.3