jdahlin - in flumotion/trunk: . flumotion/component/producers/firewire flumotion/test flumotion/wizard

flumotion-commit at lists.fluendo.com flumotion-commit at lists.fluendo.com
Thu Apr 3 21:10:11 CEST 2008


Author: jdahlin
Date: Thu Apr  3 21:10:10 2008
New Revision: 6474

Log:

2008-04-03  Johan Dahlin  <jdahlin at async.com.br>

    Reviewed by: Arek

    * flumotion/component/producers/firewire/firewire_wizard.py:
    * flumotion/test/test_wizard_save.py:
    * flumotion/wizard/save.py:
    Allow the firewire audio & video to be in different workers.
    Fixes #909



Modified:
   flumotion/trunk/ChangeLog
   flumotion/trunk/flumotion/component/producers/firewire/firewire_wizard.py
   flumotion/trunk/flumotion/test/test_wizard_save.py
   flumotion/trunk/flumotion/wizard/save.py

Modified: flumotion/trunk/ChangeLog
==============================================================================
--- flumotion/trunk/ChangeLog	(original)
+++ flumotion/trunk/ChangeLog	Thu Apr  3 21:10:10 2008
@@ -1,3 +1,13 @@
+2008-04-03  Johan Dahlin  <jdahlin at async.com.br>
+
+	Reviewed by: Arek
+
+	* flumotion/component/producers/firewire/firewire_wizard.py:
+	* flumotion/test/test_wizard_save.py:
+	* flumotion/wizard/save.py:
+	Allow the firewire audio & video to be in different workers.
+	Fixes #909
+
 2008-04-03  Thomas Vander Stichele  <thomas at apestaart dot org>
 
 	* po/es.po:

Modified: flumotion/trunk/flumotion/component/producers/firewire/firewire_wizard.py
==============================================================================
--- flumotion/trunk/flumotion/component/producers/firewire/firewire_wizard.py	(original)
+++ flumotion/trunk/flumotion/component/producers/firewire/firewire_wizard.py	Thu Apr  3 21:10:10 2008
@@ -251,7 +251,6 @@
     implements(IProducerPlugin)
     def __init__(self, wizard):
         self.wizard = wizard
-        self.model = FireWireProducer()
 
     def getProductionStep(self, type):
         if type == 'audio':
@@ -259,6 +258,6 @@
             source_step = self.wizard.get_step('Production')
             if source_step.video.get_active() == 'firewire-producer':
                 return
-            return FireWireAudioStep(self.wizard, self.model)
+            return FireWireAudioStep(self.wizard, FireWireProducer())
         elif type == 'video':
-            return FireWireVideoStep(self.wizard, self.model)
+            return FireWireVideoStep(self.wizard, FireWireProducer())

Modified: flumotion/trunk/flumotion/test/test_wizard_save.py
==============================================================================
--- flumotion/trunk/flumotion/test/test_wizard_save.py	(original)
+++ flumotion/trunk/flumotion/test/test_wizard_save.py	Thu Apr  3 21:10:10 2008
@@ -563,5 +563,114 @@
              '</planet>\n' % dict(version=configure.version)),
             configuration)
 
+    def testFirewireStreamerDifferentWorkers(self):
+        save = WizardSaver()
+        save.setFlowName('flow')
+
+        audioProducer = self._createFirewireProducer()
+        audioProducer.name = 'audio-producer'
+        audioProducer.worker = 'audio-worker'
+        save.setAudioProducer(audioProducer)
+        videoProducer = self._createFirewireProducer()
+        videoProducer.name = 'video-producer'
+        videoProducer.worker = 'video-worker'
+        save.setVideoProducer(videoProducer)
+        save.setVideoOverlay(self._createVideoOverlay(videoProducer))
+        save.setAudioEncoder(self._createAudioEncoder())
+        save.setVideoEncoder(self._createVideoEncoder())
+
+        save.setMuxer('default-muxer', 'muxer-worker')
+
+        streamer = self._createHTTPStreamer()
+        streamer.worker = 'streamer-worker'
+        save.addConsumer(streamer, 'audio-video')
+
+        server = HTTPServer('server-worker', '/mount/')
+        save.addServerConsumer(server, 'audio-video')
+
+        porter = HTTPPorter(streamer)
+        save.addPorter(porter, 'audio-video')
+
+        save.setUseCCLicense(True)
+
+        configuration = save.getXML()
+        testsuite.diffStrings(
+            ('<planet>\n'
+             '  <atmosphere>\n'
+             '    <component name="http-server-audio-video" type="http-server" '
+             'project="flumotion" worker="server-worker" version="%(version)s">\n'
+             '      \n'
+             '      <property name="mount-point">/mount/</property>\n'
+             '    </component>\n'
+             '    <component name="porter-audio-video" type="porter" '
+             'project="flumotion" worker="streamer-worker" version="%(version)s">\n'
+             '      \n'
+             '      <property name="password">password</property>\n'
+             '      <property name="port">8080</property>\n'
+             '      <property name="socket-path">flu-XXXX.socket</property>\n'
+             '      <property name="username">username</property>\n'
+             '    </component>\n'
+             '  </atmosphere>\n'
+             '  <flow name="flow">\n'
+             '    <component name="http-audio-video" type="http-streamer" '
+             'project="flumotion" worker="streamer-worker" version="%(version)s">\n'
+             '      <eater name="default">\n'
+             '        <feed>muxer-audio-video</feed>\n'
+             '      </eater>\n'
+             '      \n'
+             '      <property name="burst-on-connect">False</property>\n'
+             '      <property name="port">8080</property>\n'
+             '    </component>\n'
+             '    <component name="producer-audio" '
+             'type="firewire-producer" project="flumotion" '
+             'worker="audio-worker" version="%(version)s">\n'
+             '      \n'
+             '      <property name="height">480</property>\n'
+             '      <property name="is-square">False</property>\n'
+             '      <property name="width">640</property>\n'
+             '    </component>\n'
+             '    <component name="encoder-audio" type="audio-encoder" '
+             'project="flumotion" worker="audio-encoder-worker" version="%(version)s">\n'
+             '      <eater name="default">\n'
+             '        <feed>producer-audio:audio</feed>\n'
+             '      </eater>\n'
+             '    </component>\n'
+             '    <component name="producer-video" '
+             'type="firewire-producer" project="flumotion" '
+             'worker="video-worker" version="%(version)s">\n'
+             '      \n'
+             '      <property name="height">480</property>\n'
+             '      <property name="is-square">False</property>\n'
+             '      <property name="width">640</property>\n'
+             '    </component>\n'
+             '    <component name="encoder-video" type="video-encoder" '
+             'project="flumotion" worker="video-encoder-worker" version="%(version)s">\n'
+             '      <eater name="default">\n'
+             '        <feed>overlay-video</feed>\n'
+             '      </eater>\n'
+             '    </component>\n'
+             '    <component name="overlay-video" type="overlay-converter" '
+             'project="flumotion" worker="overlay-worker" version="%(version)s">\n'
+             '      <eater name="default">\n'
+             '        <feed>producer-video:video</feed>\n'
+             '      </eater>\n'
+             '      \n'
+             '      <property name="cc-logo">True</property>\n'
+             '      <property name="fluendo-logo">True</property>\n'
+             '      <property name="height">480</property>\n'
+             '      <property name="text">Fluendo</property>\n'
+             '      <property name="width">640</property>\n'
+             '    </component>\n'
+             '    <component name="muxer-audio-video" type="default-muxer" '
+             'project="flumotion" worker="muxer-worker" version="%(version)s">\n'
+             '      <eater name="default">\n'
+             '        <feed>encoder-audio</feed>\n'
+             '        <feed>encoder-video</feed>\n'
+             '      </eater>\n'
+             '    </component>\n'
+             '  </flow>\n'
+             '</planet>\n' % dict(version=configure.version)),
+            configuration)
+
 if __name__ == '__main__':
     unittest.main()

Modified: flumotion/trunk/flumotion/wizard/save.py
==============================================================================
--- flumotion/trunk/flumotion/wizard/save.py	(original)
+++ flumotion/trunk/flumotion/wizard/save.py	Thu Apr  3 21:10:10 2008
@@ -209,12 +209,14 @@
         self._handleVideoOverlay()
 
         # In the case video producer and audio producer is the same
-        # component, remove the audio producer and rename the video
-        # producer.
-        if (self._videoProducer is not None and
-            self._audioProducer is not None and
-            self._videoProducer.component_type ==
-            self._audioProducer.component_type):
+        # component and on the same worker, remove the audio producer and
+        # rename the video producer.
+        video = self._videoProducer
+        audio = self._audioProducer
+        if (video is not None and
+            audio is not None and
+            video.component_type == audio.component_type and
+            video.worker == audio.worker):
             self._flowComponents.remove(self._audioProducer)
             self._audioProducer.name = 'producer-audio-video'
             self._videoProducer.name = 'producer-audio-video'


More information about the flumotion-commit mailing list