From eaa841b2ec645ad52b8f534b6856bbb114b4e955 Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Mon, 26 Sep 2022 00:37:55 +0100 Subject: [PATCH] mkm3u: Add support for individual MPEG4 video files. --- mkm3u | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/mkm3u b/mkm3u index b36d527..b1d9fd2 100755 --- a/mkm3u +++ b/mkm3u @@ -411,6 +411,26 @@ class AudioDir (SingleFileDir): def _mkepisode(me, path, i): return AudioEpisode(path, i) +class VideoFile (Source): + PREFIX = "file://" + TITLEP = CHAPTERP = False + + def _duration(me, title, start_chapter, end_chaptwr): + out = program_output(["mediainfo", "--output=General;%Duration%", + OS.path.join(ROOT, me.fn)]) + return int(out)//1000 + +class VideoEpisode (VideoFile): + def __init__(me, fn, i, *args, **kw): + super().__init__(fn, *args, **kw) + me.i = i + +class VideoDir (SingleFileDir): + _EXT = ".mp4" + _CHECK_COMPLETE = False + + def _mkepisode(me, path, i): + return VideoEpisode(path, i) class Chapter (object): def __init__(me, episode, title, i): @@ -777,6 +797,13 @@ class EpisodeListParser (object): if dir == "-": forget(me._vdirs, series.name) else: me._vdirs[series.name] = DVDDir(dir) + elif cmd == "vdir": + series = me._opts_series(cmd, opts) + dir = ww.rest(); check(dir is not None, "missing directory") + if not series.wantedp: return + if dir == "-": forget(me._sfdirs, series.name) + else: me._sfdirs[series.name] = VideoDir(dir) + elif cmd == "adir": series = me._opts_series(cmd, opts) dir = ww.rest(); check(dir is not None, "missing directory") -- 2.11.0