2 #Copyright 2009 Paul Hänsch
4 #This file is part of Viper.
6 #Viper is free software: you can redistribute it and/or modify
7 #it under the terms of the GNU General Public License as published by
8 #the Free Software Foundation, either version 3 of the License, or
9 #(at your option) any later version.
11 #Viper is distributed in the hope that it will be useful,
12 #but WITHOUT ANY WARRANTY; without even the implied warranty of
13 #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 #GNU General Public License for more details.
16 #You should have received a copy of the GNU General Public License
17 #along with Viper. If not, see <http://www.gnu.org/licenses/>
21 class V_Custom(V_Plugin):
22 def build_dialog(self):
23 self.subgets['desc'] = Label(self, text = 'Enter a piece of mplayer command line\n'+
24 'specifying a video encoder. I.e.:\n' +
26 self.subgets['desc'].pack(side = TOP, expand = True, fill = BOTH)
27 self.subgets['line'] = Entry(self)
28 self.subgets['line'].pack(side = TOP, expand = True, fill = X)
34 return self.line.split(' ')
36 class V_Copy(V_Plugin):
37 def build_dialog(self):
38 self.subgets['desc'] = Label(self, text = 'This will copy an existing video stream.')
39 self.subgets['desc'].pack(side = TOP, expand = True, fill = BOTH)
45 return ['-ovc', 'copy']
47 def is_available(self):
49 slave = os.popen2(['mencoder', '-ovc', 'help'])
52 line = slave[1].readline()
53 if line.lstrip().find('copy') == 0:
57 class V_Raw(V_Plugin):
58 def build_dialog(self):
59 slave = os.popen2(['mencoder', '-vf', 'format=fmt=help'])
63 line = slave[1].readline()
64 if line.lstrip().find('Available formats:') > -1:
65 formatstr = line.split(':', 1)[1]
66 formats = formatstr.split(' ')[1:]
68 init = formats.index('rgb24')
72 self.subgets['desc'] = Label(self,
73 text = 'This will output an uncompressed video stream.\n'+
74 'The resulting file will be VERY large!!!')
75 self.subgets['desc'].grid(row = 0, column = 0, columnspan = 4)
77 self.subgets['l_format'] = Label(self, text = 'Format:')
78 self.subgets['l_format'].grid(row = 1, column = 1)
79 self.subgets['format'] = Pmw.OptionMenu(self, initialitem = init,
81 self.subgets['format'].grid(row = 1, column = 2)
87 return ['-ovc', 'raw', '-vf', 'format='+self.subgets['format'].getvalue()]
89 def is_available(self):
91 slave = os.popen2(['mencoder', '-ovc', 'help'])
94 line = slave[1].readline()
95 if line.lstrip().find('raw') == 0: