From: Mark Wooding Date: Sun, 25 Sep 2022 23:37:55 +0000 (+0100) Subject: mkm3u: Add support for individual MPEG4 video files. X-Git-Url: https://git.distorted.org.uk/~mdw/epls/commitdiff_plain/eaa841b2ec645ad52b8f534b6856bbb114b4e955 mkm3u: Add support for individual MPEG4 video files. --- 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")