From 4acfff9bda654f9375ddcb86c9516c04bb36609f Mon Sep 17 00:00:00 2001 From: Sergio Costas Date: Mon, 28 Jul 2014 23:41:11 +0200 Subject: [PATCH] Now also crops the video, if desired Now the preview button inside the file properties window works as expected --- src/devede/avconv_converter.py | 9 ++++++--- src/devede/file_movie.py | 32 +++++++++++++++++++++----------- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/src/devede/avconv_converter.py b/src/devede/avconv_converter.py index 50e751b..398581b 100644 --- a/src/devede/avconv_converter.py +++ b/src/devede/avconv_converter.py @@ -117,9 +117,12 @@ class avconv_converter(devede.executor.executor): if (file_project.width_midle != file_project.original_width) or (file_project.height_midle != file_project.original_height): if (cmd_line!=""): cmd_line+=",fifo," - x = (file_project.width_midle - file_project.original_width) /2 - y = (file_project.height_midle - file_project.original_height) /2 - cmd_line+="pad="+str(file_project.width_midle)+":"+str(file_project.height_midle)+":"+str(x)+":"+str(y)+":0x000000" + x = int((file_project.width_midle - file_project.original_width) /2) + y = int((file_project.height_midle - file_project.original_height) /2) + if (x > 0) or (y > 0): + cmd_line+="pad="+str(file_project.width_midle)+":"+str(file_project.height_midle)+":"+str(x)+":"+str(y)+":0x000000" + else: + cmd_line+="crop="+str(file_project.width_midle)+":"+str(file_project.height_midle)+":"+str(x)+":"+str(y) if (file_project.width_final != file_project.width_midle) or (file_project.height_final != file_project.height_midle): if (cmd_line!=""): diff --git a/src/devede/file_movie.py b/src/devede/file_movie.py index 9a5c0a1..9bfe105 100644 --- a/src/devede/file_movie.py +++ b/src/devede/file_movie.py @@ -248,6 +248,9 @@ class file_movie(devede.interface_manager.interface_manager): self.width_final = int(values[0]) self.height_final = int(values[1]) + self.width_final = int(self.width_final) + self.height_final = int(self.height_final) + # finally, calculate the midle size if (self.rotation == "rotation_90") or (self.rotation == "rotation_270"): @@ -256,20 +259,22 @@ class file_movie(devede.interface_manager.interface_manager): midle_aspect_ratio = self.original_aspect_ratio if self.scaling == "scale_picture": - self.width_midle = self.original_width - self.height_midle = self.original_height + self.width_midle = int(self.original_width) + self.height_midle = int(self.original_height) elif self.scaling == "add_black_bars": if midle_aspect_ratio > self.aspect_ratio_final: # add horizontal black bars, at top and bottom - self.width_midle = self.original_width - self.height_midle = self.original_height * midle_aspect_ratio / self.aspect_ratio_final + self.width_midle = int(self.original_width) + self.height_midle = int(self.original_height * midle_aspect_ratio / self.aspect_ratio_final) else: # add vertical black bars, at left and right - self.width_midle = self.original_width * self.aspect_ratio_final / midle_aspect_ratio - self.height_midle = self.original_height + self.width_midle = int(self.original_width * self.aspect_ratio_final / midle_aspect_ratio) + self.height_midle = int(self.original_height) else: # cut picture - #if midle_aspect_ratio > self.aspect_ratio_final: # add horizontal black bars, at top and bottom - self.width_midle = self.width_final - self.height_midle = self.height_final # temporal option, until I do the calculations - + if midle_aspect_ratio > self.aspect_ratio_final: + self.width_midle = int(self.original_width * self.aspect_ratio_final / midle_aspect_ratio) + self.height_midle = int(self.original_height) + else: + self.width_midle = int(self.original_width) + self.height_midle = int(self.original_height * midle_aspect_ratio / self.aspect_ratio_final) def set_type(self,obj = None,disc_type = None): @@ -377,6 +382,7 @@ class file_movie(devede.interface_manager.interface_manager): self.wframe_division_chapters.hide() self.wnotebook.remove_page(5) + self.save_ui() self.update_ui(self.builder) self.on_aspect_classic_toggled(None) self.on_treeview_subtitles_cursor_changed(None) @@ -408,10 +414,13 @@ class file_movie(devede.interface_manager.interface_manager): self.store_ui(self.builder) self.emit('title_changed',self.title_name) - self.on_button_cancel_clicked(None) + self.wfile_properties.destroy() + self.wfile_properties = None + self.builder = None def on_button_cancel_clicked(self,b): + self.restore_ui() self.wfile_properties.destroy() self.wfile_properties = None self.builder = None @@ -457,6 +466,7 @@ class file_movie(devede.interface_manager.interface_manager): return converter def on_button_preview_clicked(self,b): + self.store_ui(self.builder) self.do_preview() def do_preview(self):