diff --git a/data/interface/wfile_properties.ui b/data/interface/wfile_properties.ui index 3b203ea..05d24b8 100644 --- a/data/interface/wfile_properties.ui +++ b/data/interface/wfile_properties.ui @@ -848,23 +848,6 @@ True False - - - Split the file in chapters (for easy seeking) - True - True - False - 0 - True - True - - - 0 - 0 - 2 - 1 - - True @@ -896,6 +879,50 @@ 1 + + + Split the file in chapters (for easy seeking) + True + True + False + 0 + True + True + + + 0 + 0 + 2 + 1 + + + + + True + False + 0 + 4 + Manual chapter list (split by comma in mm:ss format): + + + 0 + 2 + 1 + 1 + + + + + True + True + + + 1 + 2 + 1 + 1 + + diff --git a/src/devedeng/avconv.py b/src/devedeng/avconv.py index 5d59ee1..c1ca4af 100644 --- a/src/devedeng/avconv.py +++ b/src/devedeng/avconv.py @@ -203,7 +203,7 @@ class avconv(devedeng.executor.executor): if (file_project.width_final != file_project.width_midle) or (file_project.height_final != file_project.height_midle): if (cmd_line!=""): cmd_line+=",fifo," - cmd_line+="scale="+str(file_project.width_final)+":"+str(file_project.height_final) + cmd_line+="scale=w="+str(file_project.width_final)+":h="+str(file_project.height_final) if cmd_line!="": self.command_var.append("-vf") @@ -376,6 +376,8 @@ class avconv(devedeng.executor.executor): self.command_var.append("-acodec") if (use_mp2): self.command_var.append("mp2") + if (audio_rate > 384): + audio_rate = 384 #max bitrate for mp2 else: self.command_var.append("ac3") self.command_var.append("-s") diff --git a/src/devedeng/dvdauthor_converter.py b/src/devedeng/dvdauthor_converter.py index 366d85a..906087c 100644 --- a/src/devedeng/dvdauthor_converter.py +++ b/src/devedeng/dvdauthor_converter.py @@ -384,9 +384,19 @@ class dvdauthor_converter(devedeng.executor.executor): xml_file.write('chapters="0') if (element.original_length > 5): if (element.divide_in_chapters): # add chapters + manual_chapter_list = []; + if (element.chapter_list_entry): + manual_chapter_list = element.chapter_list_entry.split(",") toadd = element.chapter_size seconds = toadd*60 while seconds < (element.original_length - 4): + # Check manual_chapter_list for manual entries before set next chapter + for idx, m_chapter in enumerate(manual_chapter_list): + m_chapter = m_chapter.split(":") + m_chapter = int(m_chapter[0])*60+int(m_chapter[1]) # Change from mm:ss to seconds + if (m_chapter < seconds): + seconds = m_chapter + del manual_chapter_list[idx] thetime = self.return_time(seconds,False) xml_file.write(","+thetime) seconds += (toadd*60) diff --git a/src/devedeng/file_movie.py b/src/devedeng/file_movie.py index a4bc1c7..1a5d98c 100644 --- a/src/devedeng/file_movie.py +++ b/src/devedeng/file_movie.py @@ -55,6 +55,8 @@ class file_movie(devedeng.interface_manager.interface_manager): self.add_toggle("show_in_menu", True) else: self.original_aspect_ratio = 1.777 # dummy value + + self.add_text("chapter_list_entry", None); self.add_dualtoggle("format_pal","format_ntsc",self.config.PAL) self.add_toggle("video_rate_automatic", True) @@ -107,7 +109,7 @@ class file_movie(devedeng.interface_manager.interface_manager): self.add_show_hide("format_pal", ["size_pal"], ["size_ntsc"]) - self.add_enable_disable("divide_in_chapters", ["chapter_size_spinbutton"], []) + self.add_enable_disable("divide_in_chapters", ["chapter_size_spinbutton", "chapter_list_entry"], []) self.add_enable_disable("video_rate_automatic", [], ["video_spinbutton"]) self.add_enable_disable("audio_rate_automatic", [], ["audio_spinbutton"]) self.add_enable_disable("sound5_1", ["copy_sound"], []) diff --git a/src/devedeng/interface_manager.py b/src/devedeng/interface_manager.py index ff3c15a..9e51e2f 100644 --- a/src/devedeng/interface_manager.py +++ b/src/devedeng/interface_manager.py @@ -75,7 +75,7 @@ class interface_manager(GObject.GObject): The default value can be a text or None """ if (default_value != None): - exec('self.'+text_name+' = "'+str(default_value)+'"') + exec('self.'+text_name+' = "'+str(default_value).replace('\"','\\"')+'"') else: exec('self.'+text_name+' = None') self.interface_text.append( (text_name, callback) )