From 5474442fa826cd749c9fd02c1e6c4dca9e90b6eb Mon Sep 17 00:00:00 2001 From: Sergio Costas Date: Sat, 27 Dec 2014 21:20:33 +0100 Subject: [PATCH] Added MPV support Fixed the class renaming --- src/devede/avconv.py | 13 +++++---- src/devede/converter.py | 3 ++- src/devede/ffmpeg.py | 13 +++++---- src/devede/mpv.py | 60 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 74 insertions(+), 15 deletions(-) create mode 100644 src/devede/mpv.py diff --git a/src/devede/avconv.py b/src/devede/avconv.py index d98b25f..61f9c48 100644 --- a/src/devede/avconv.py +++ b/src/devede/avconv.py @@ -22,7 +22,6 @@ import os import devede.configuration_data import devede.executor import devede.mux_dvd_menu -import devede.avconv_converter class avconv(devede.executor.executor): @@ -83,16 +82,16 @@ class avconv(devede.executor.executor): continue if (mpeg1 and mp2): - devede.avconv_converter.avconv_converter.disc_types.append("vcd") + devede.avconv.avconv.disc_types.append("vcd") if (mpeg2 and mp2): - devede.avconv_converter.avconv_converter.disc_types.append("svcd") - devede.avconv_converter.avconv_converter.disc_types.append("cvd") + devede.avconv.avconv.disc_types.append("svcd") + devede.avconv.avconv.disc_types.append("cvd") if (mpeg2 and mp2 and ac3): - devede.avconv_converter.avconv_converter.disc_types.append("dvd") + devede.avconv.avconv.disc_types.append("dvd") if (divx and mp3): - devede.avconv_converter.avconv_converter.disc_types.append("divx") + devede.avconv.avconv.disc_types.append("divx") if (h264 and mp3): - devede.avconv_converter.avconv_converter.disc_types.append("mkv") + devede.avconv.avconv.disc_types.append("mkv") return True else: diff --git a/src/devede/converter.py b/src/devede/converter.py index c609a75..f77c5b8 100644 --- a/src/devede/converter.py +++ b/src/devede/converter.py @@ -24,6 +24,7 @@ import devede.brasero import devede.k3b import devede.mkisofs import devede.genisoimage +import devede.mpv class converter: @@ -40,7 +41,7 @@ class converter: self.config = devede.configuration_data.configuration.get_config() # List of classes with conversion capabilities, in order of preference - self.c = [devede.vlc.vlc, devede.ffmpeg.ffmpeg, devede.avconv.avconv, + self.c = [devede.vlc.vlc, devede.mpv.mpv, devede.ffmpeg.ffmpeg, devede.avconv.avconv, devede.brasero.brasero, devede.k3b.k3b, devede.mkisofs.mkisofs, devede.genisoimage.genisoimage, devede.mplayer.mplayer] self.analizers = {} diff --git a/src/devede/ffmpeg.py b/src/devede/ffmpeg.py index f8e897d..dc1a548 100644 --- a/src/devede/ffmpeg.py +++ b/src/devede/ffmpeg.py @@ -22,7 +22,6 @@ import os import devede.configuration_data import devede.executor import devede.mux_dvd_menu -import devede.ffmpeg_converter class ffmpeg(devede.executor.executor): @@ -83,16 +82,16 @@ class ffmpeg(devede.executor.executor): continue if (mpeg1 and mp2): - devede.ffmpeg_converter.ffmpeg_converter.disc_types.append("vcd") + devede.ffmpeg.ffmpeg.disc_types.append("vcd") if (mpeg2 and mp2): - devede.ffmpeg_converter.ffmpeg_converter.disc_types.append("svcd") - devede.ffmpeg_converter.ffmpeg_converter.disc_types.append("cvd") + devede.ffmpeg.ffmpeg.disc_types.append("svcd") + devede.ffmpeg.ffmpeg.disc_types.append("cvd") if (mpeg2 and mp2 and ac3): - devede.ffmpeg_converter.ffmpeg_converter.disc_types.append("dvd") + devede.ffmpeg.ffmpeg.disc_types.append("dvd") if (divx and mp3): - devede.ffmpeg_converter.ffmpeg_converter.disc_types.append("divx") + devede.ffmpeg.ffmpeg.disc_types.append("divx") if (h264 and mp3): - devede.ffmpeg_converter.ffmpeg_converter.disc_types.append("mkv") + devede.ffmpeg.ffmpeg.disc_types.append("mkv") return True else: diff --git a/src/devede/mpv.py b/src/devede/mpv.py new file mode 100644 index 0000000..0bc85cc --- /dev/null +++ b/src/devede/mpv.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 + +# Copyright 2014 (C) Raster Software Vigo (Sergio Costas) +# +# This file is part of DeVeDe-NG +# +# DeVeDe-NG is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# DeVeDe-NG is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see + +import subprocess +import devede.configuration_data +import devede.executor + +class mpv(devede.executor.executor): + + supports_analize = False + supports_play = True + supports_convert = False + supports_menu = False + supports_mkiso = False + supports_burn = False + display_name = "MPV" + + @staticmethod + def check_is_installed(): + try: + handle = subprocess.Popen(["mpv","-v"], stdout = subprocess.PIPE, stderr = subprocess.PIPE) + (stdout, stderr) = handle.communicate() + if 0==handle.wait(): + return True + else: + return False + except: + return False + + def __init__(self): + + devede.executor.executor.__init__(self) + self.config = devede.configuration_data.configuration.get_config() + + def play_film(self,file_name): + + command_line = ["mpv", file_name] + self.launch_process(command_line) + + def process_stdout(self,data): + return + + def process_stderr(self,data): + return