Skip to content

Commit

Permalink
Added support for AVconv
Browse files Browse the repository at this point in the history
Added support for AC3_FIX in Mencoder, FFmpeg and AVconv
  • Loading branch information
Sergio Costas committed Aug 12, 2012
1 parent 239ab68 commit 24b54c4
Show file tree
Hide file tree
Showing 11 changed files with 352 additions and 81 deletions.
22 changes: 15 additions & 7 deletions devede
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ import shutil
import pickle
import cairo

print "DeVeDe 3.22.1"
print "DeVeDe 3.23.0 beta1"
if (sys.platform!="win32") and (sys.platform!="win64"):
try:
print "Locale: "+str(os.environ["LANG"])
Expand Down Expand Up @@ -293,18 +293,21 @@ global_vars["sub_codepage"]="ISO-8859-1"
global_vars["sub_language"]="EN (ENGLISH)"
global_vars["with_menu"]=True
global_vars["AC3_fix"]=False
global_vars["AC3_fix_ffmpeg"]=False
global_vars["AC3_fix_avconv"]=False
(a,b)=get_cores()
global_vars["cores"]=a
global_vars["hypercores"]=b
global_vars["use_ffmpeg"]=True
global_vars["use_ffmpeg_menu"]=False
global_vars["encoder_video"]="ffmpeg"
global_vars["encoder_menu"]="mencoder"
global_vars["warning_ffmpeg"]=False
global_vars["shutdown_after_disc"]=False

global_vars["menu_top_margin"]=0.125
global_vars["menu_bottom_margin"]=0.125
global_vars["menu_left_margin"]=0.1
global_vars["menu_right_margin"]=0.1
global_vars["encoders"]=[]
#global_vars[""]=""

print "Cores: "+str(global_vars["cores"])+" Virtual cores: "+str(global_vars["hypercores"])
Expand Down Expand Up @@ -366,10 +369,12 @@ else:

if 127==devede_other.check_program("mplayer -v"):
errors+="mplayer\n"
if 127==devede_other.check_program("mencoder -msglevel help"):
errors+="mencoder\n"
if 127==devede_other.check_program("ffmpeg --help"):
errors+="ffmpeg\n"
if 0==devede_other.check_program("mencoder -msglevel help"):
global_vars["encoders"].append("mencoder")
if 0==devede_other.check_program("ffmpeg --help"):
global_vars["encoders"].append("ffmpeg")
if 0==devede_other.check_program("avconv --help"):
global_vars["encoders"].append("avconv")
if 127==devede_other.check_program("dvdauthor --help"):
errors+="dvdauthor\n"
if 127==devede_other.check_program("vcdimager --help"):
Expand All @@ -393,6 +398,9 @@ def program_exit(widget):
gtk.main_quit()


if len(global_vars["encoders"])==0:
errors+="Mencoder, FFmpeg and/or AVconv"

if errors!="":
arbol.add_from_file(os.path.join(glade,"wprograms.ui"))
w=arbol.get_object("programs_label")
Expand Down
15 changes: 10 additions & 5 deletions devede_convert.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
import devede_other
import devede_video_convert
import devede_ffmpeg_convert
import devede_avconv_convert
import devede_subtitles
import devede_xml_menu
import devede_delete
Expand Down Expand Up @@ -184,7 +185,7 @@ def __init__(self,gladefile,structure,global_vars,callback):
self.global_vars=global_vars

self.has_mp3lame=True
if (global_vars["disctocreate"]=="divx") and (global_vars["use_ffmpeg"]):
if (global_vars["disctocreate"]=="divx") and ((global_vars["encoder_video"]=="ffmpeg") or (global_vars["encoder_video"]=="avconv")):
if (False==self.check_mp3lame()):
return

Expand Down Expand Up @@ -497,17 +498,21 @@ def time_callback(self):
else:
encpass = int(action[0][1])
print "Segundos "+str(self.seconds)
if (self.global_vars["use_ffmpeg"]):
self.runner=devede_ffmpeg_convert.video_converter_ffmpeg(self.global_vars,self.structure[title][chapter+1],self.filename,self.filefolder,self.partial,self.label,self.global_vars["disctocreate"],title+1,chapter+1,cores,self.seconds, encpass,self.global_vars["AC3_fix"])
if (self.global_vars["encoder_video"]=="ffmpeg"):
self.runner=devede_ffmpeg_convert.video_converter_ffmpeg(self.global_vars,self.structure[title][chapter+1],self.filename,self.filefolder,self.partial,self.label,self.global_vars["disctocreate"],title+1,chapter+1,cores,self.seconds, encpass,self.global_vars["AC3_fix_ffmpeg"])
elif (self.global_vars["encoder_video"]=="avconv"):
self.runner=devede_avconv_convert.video_converter_ffmpeg(self.global_vars,self.structure[title][chapter+1],self.filename,self.filefolder,self.partial,self.label,self.global_vars["disctocreate"],title+1,chapter+1,cores,self.seconds, encpass,self.global_vars["AC3_fix_avconv"])
else:
self.runner=devede_video_convert.video_converter(self.global_vars,self.structure[title][chapter+1],self.filename,self.filefolder,self.partial,self.label,self.global_vars["disctocreate"],title+1,chapter+1,cores,self.seconds, encpass,self.global_vars["AC3_fix"])
return True

if action[0]=="C2":
title=action[1]
chapter=action[2]
if (self.global_vars["use_ffmpeg"]):
self.runner=devede_ffmpeg_convert.video_converter_ffmpeg(self.structure[title][chapter+1],self.filename,self.filefolder,self.partial,self.label,self.global_vars["disctocreate"],title+1,chapter+1,cores,self.seconds, 2,self.global_vars["AC3_fix"])
if (self.global_vars["encoder_video"]=="ffmpeg"):
self.runner=devede_ffmpeg_convert.video_converter_ffmpeg(self.structure[title][chapter+1],self.filename,self.filefolder,self.partial,self.label,self.global_vars["disctocreate"],title+1,chapter+1,cores,self.seconds, 2,self.global_vars["AC3_fix_ffmpeg"])
elif (self.global_vars["encoder_video"]=="avconv"):
self.runner=devede_avconv_convert.video_converter(self.structure[title][chapter+1],self.filename,self.filefolder,self.partial,self.label,self.global_vars["disctocreate"],title+1,chapter+1,cores,self.seconds, 2,self.global_vars["AC3_fix_avconv"])
else:
self.runner=devede_video_convert.video_converter(self.structure[title][chapter+1],self.filename,self.filefolder,self.partial,self.label,self.global_vars["disctocreate"],title+1,chapter+1,cores,self.seconds, 2,self.global_vars["AC3_fix"])
return True
Expand Down
6 changes: 4 additions & 2 deletions devede_dvdmenu.py
Original file line number Diff line number Diff line change
Expand Up @@ -260,8 +260,10 @@ def on_menu_preview_clicked(self,widget):
global_vars2["PAL"]=self.global_vars["PAL"]
global_vars2["with_menu"]=True
global_vars2["AC3_fix"]=self.global_vars["AC3_fix"]
global_vars2["use_ffmpeg"]=self.global_vars["use_ffmpeg"]
global_vars2["use_ffmpeg_menu"]=self.global_vars["use_ffmpeg_menu"]
global_vars2["AC3_fix_ffmpeg"]=self.global_vars["AC3_fix_ffmpeg"]
global_vars2["AC3_fix_avconv"]=self.global_vars["AC3_fix_avconv"]
global_vars2["encoder_video"]=self.global_vars["encoder_video"]
global_vars2["encoder_menu"]=self.global_vars["encoder_menu"]
self.set_new_bg(global_vars2)
window=menu_preview(self.gladefile,self.structure,global_vars2)
window=None
Expand Down
6 changes: 6 additions & 0 deletions devede_ffmpeg_convert.py
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,12 @@ def __init__(self,global_vars,videofile,filename,filefolder,progresbar,proglabel
command_var.append("film-dvd")
else:
command_var.append("pal-dvd")
if (copy_audio==False):
command_var.append("-acodec")
if fix_ac3:
command_var.append("ac3_fixed")
else:
command_var.append("ac3")
#command_var.append("-maxrate")
#command_var.append("7000k")
#command_var.append("-minrate")
Expand Down
2 changes: 1 addition & 1 deletion devede_newfiles.py
Original file line number Diff line number Diff line change
Expand Up @@ -1309,7 +1309,7 @@ def set_widgets(self):

self.refresh_subtitles()

if (self.global_vars["use_ffmpeg"]):
if ((self.global_vars["encoder_video"]=="ffmpeg") or (self.global_vars["encoder_video"]=="avconv")):
use_ffmpeg=False
else:
use_ffmpeg=True
Expand Down
41 changes: 29 additions & 12 deletions devede_other.py
Original file line number Diff line number Diff line change
Expand Up @@ -482,21 +482,35 @@ def load_config(global_vars):
global_vars["AC3_fix"]=True
else:
global_vars["AC3_fix"]=False
if linea[:15]=="AC3_fix_ffmpeg:":
if linea[15:]=="1":
global_vars["AC3_fix_ffmpeg"]=True
else:
global_vars["AC3_fix_ffmpeg"]=False
if linea[:15]=="AC3_fix_avconv:":
if linea[15:]=="1":
global_vars["AC3_fix_avconv"]=True
else:
global_vars["AC3_fix_avconv"]=False
if linea[:16]=="erase_tmp_files:":
if linea[16:]=="1":
global_vars["erase_files"]=True
else:
global_vars["erase_files"]=False
if linea[:11]=="use_ffmpeg:":
if linea[11:]=="1":
global_vars["use_ffmpeg"]=True
global_vars["encoder_video"]="ffmpeg"
else:
global_vars["use_ffmpeg"]=False
global_vars["encoder_video"]="mencoder"
if linea[:16]=="use_ffmpeg_menu:":
if linea[16:]=="1":
global_vars["use_ffmpeg_menu"]=True
global_vars["encoder_menu"]="ffmpeg"
else:
global_vars["use_ffmpeg_menu"]=False
global_vars["encoder_menu"]="mencoder"
if linea[:13]=="encoder_menu:":
global_vars["encoder_menu"]=linea[13:]
if linea[:14]=="encoder_video:":
global_vars["encoder_video"]=linea[14:]
#if linea[:]==":":
# global_vars[""]=linea[:]
archivo.close()
Expand Down Expand Up @@ -540,20 +554,23 @@ def save_config(global_vars):
archivo.write("AC3_fix:1\n")
else:
archivo.write("AC3_fix:0\n")
if global_vars["AC3_fix_ffmpeg"]:
archivo.write("AC3_fix_ffmpeg:1\n")
else:
archivo.write("AC3_fix_ffmpeg:0\n")
if global_vars["AC3_fix_avconv"]:
archivo.write("AC3_fix_avconv:1\n")
else:
archivo.write("AC3_fix_avconv:0\n")
if global_vars["erase_files"]:
archivo.write("erase_tmp_files:1\n")
else:
archivo.write("erase_tmp_files:0\n")
if global_vars["use_ffmpeg"]:
archivo.write("use_ffmpeg:1\n")
else:
archivo.write("use_ffmpeg:0\n")
if global_vars["use_ffmpeg_menu"]:
archivo.write("use_ffmpeg_menu:1\n")
else:
archivo.write("use_ffmpeg_menu:0\n")
archivo.write("encoder_video:"+global_vars["encoder_video"]+"\n")
archivo.write("encoder_menu:"+global_vars["encoder_menu"]+"\n")
archivo.close()
except IOError:
print "Error when writting configuration"
pass


Expand Down
45 changes: 36 additions & 9 deletions devede_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,23 @@ def on_toggled_cb(self,w):
else:
self.hyper.set_sensitive(False)

def set_model_from_list (self, cb, items, selected):
"""Setup a ComboBox or ComboBoxEntry based on a list of strings."""
model = gtk.ListStore(str)
pos=-1
c=0
for i in items:
model.append([i])
if (i==selected):
pos=c
c+=1
cb.set_model(model)
cell = gtk.CellRendererText()
cb.pack_start(cell, True)
cb.add_attribute(cell, 'text', 0)
if (pos!=-1):
cb.set_active(pos)

def __init__(self,gladefile,structure,global_vars):

self.gladefile=gladefile
Expand All @@ -46,6 +63,12 @@ def __init__(self,gladefile,structure,global_vars):
self.tree.connect_signals(self)
wsettings=self.tree.get_object("wsettings_dialog")

self.videos_combo=self.tree.get_object("combobox_videos")
self.menus_combo=self.tree.get_object("combobox_menus")

self.set_model_from_list(self.videos_combo,global_vars["encoders"],global_vars["encoder_video"])
self.set_model_from_list(self.menus_combo,global_vars["encoders"],global_vars["encoder_menu"])

w=self.tree.get_object("erase_files")
w.set_active(self.global_vars["erase_files"])

Expand All @@ -64,12 +87,14 @@ def __init__(self,gladefile,structure,global_vars):
self.ac3_fix=self.tree.get_object("AC3_fix")
self.ac3_fix.set_sensitive(True)
self.ac3_fix.set_active(self.global_vars["AC3_fix"])

self.use_ffmpeg=self.tree.get_object("use_ffmpeg")
self.use_ffmpeg.set_active(self.global_vars["use_ffmpeg"])
self.use_ffmpeg_menu=self.tree.get_object("use_ffmpeg_menu")
self.use_ffmpeg_menu.set_active(self.global_vars["use_ffmpeg_menu"])


self.ac3_fix_ffmpeg=self.tree.get_object("AC3_fix_ffmpeg")
self.ac3_fix_ffmpeg.set_sensitive(True)
self.ac3_fix_ffmpeg.set_active(self.global_vars["AC3_fix_ffmpeg"])

self.ac3_fix_avconv=self.tree.get_object("AC3_fix_avconv")
self.ac3_fix_avconv.set_sensitive(True)
self.ac3_fix_avconv.set_active(self.global_vars["AC3_fix_avconv"])

print "Path: "+str(global_vars["temp_folder"])
path=self.tree.get_object("temporary_files")
Expand All @@ -95,11 +120,13 @@ def __init__(self,gladefile,structure,global_vars):
self.global_vars["multicore"]=1
self.global_vars["hyperthreading"]=False

self.global_vars["use_ffmpeg"]=self.use_ffmpeg.get_active()
self.global_vars["use_ffmpeg_menu"]=self.use_ffmpeg_menu.get_active()
self.global_vars["encoder_video"]=self.global_vars["encoders"][self.videos_combo.get_active()]
self.global_vars["encoder_menu"]=self.global_vars["encoders"][self.menus_combo.get_active()]

self.global_vars["AC3_fix"]=self.ac3_fix.get_active()

self.global_vars["AC3_fix_ffmpeg"]=self.ac3_fix_ffmpeg.get_active()
self.global_vars["AC3_fix_avconv"]=self.ac3_fix_avconv.get_active()

path=self.tree.get_object("temporary_files")
self.global_vars["temp_folder"]=path.get_current_folder()
print "Path: "+str(self.global_vars["temp_folder"])
Expand Down
Loading

0 comments on commit 24b54c4

Please sign in to comment.