[pitivi/ges: 90/287] ui: Handle encoder settings on rendering



commit 4e02da0cb7a5875ec33cafe8a50fc1a4013db763
Author: Mathieu Duponchelle <seeed laposte net>
Date:   Fri Dec 9 20:38:16 2011 +0100

    ui: Handle encoder settings on rendering
    
    What we are doing here is catching the encoder gst.Element, and set it property
    right after it has been created
    
    In the case the element we chose in the UI is different from the encoder
    gst.Encodebin chose... we are currently screwed, and settings won't be set.

 pitivi/ui/encodingdialog.py |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)
---
diff --git a/pitivi/ui/encodingdialog.py b/pitivi/ui/encodingdialog.py
index 2e34284..86dfe8c 100644
--- a/pitivi/ui/encodingdialog.py
+++ b/pitivi/ui/encodingdialog.py
@@ -225,6 +225,14 @@ class EncodingDialog(Loggable):
 
         self.createNoPreset(self.render_presets)
 
+    def _elementAddedCb(self, bin, element):
+        if element.get_factory() == get_combo_value(self.video_encoder_combo):
+            for setting in self.settings.vcodecsettings:
+                element.set_property(setting, self.settings.vcodecsettings[setting])
+        elif element.get_factory() == get_combo_value(self.audio_encoder_combo):
+            for setting in self.settings.acodecsettings:
+                element.set_property(setting, self.settings.vcodecsettings[setting])
+
     def createNoPreset(self, mgr):
         mgr.prependPreset(_("No preset"), {
             "depth": int(get_combo_value(self.sample_depth_combo)),
@@ -718,6 +726,8 @@ class EncodingDialog(Loggable):
         pipeline.set_state(gst.STATE_NULL)
         pipeline.set_render_settings(self.outfile, self.containerprofile)
         pipeline.set_mode("render")
+        bin = pipeline.get_by_name("internal-encodebin")
+        bin.connect("element-added", self._elementAddedCb)
         pipeline.set_state(gst.STATE_PLAYING)
         #self.progress.window.show()
         #self.startAction()



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]