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