summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/flufigut.py20
-rw-r--r--templates/example/planet.xml5
-rw-r--r--templates/example/repeater.xml11
-rw-r--r--templates/example/soundcard.xml17
4 files changed, 49 insertions, 4 deletions
diff --git a/src/flufigut.py b/src/flufigut.py
index 88e49c4..2f3b2c2 100755
--- a/src/flufigut.py
+++ b/src/flufigut.py
@@ -243,9 +243,9 @@ for mux_name in mux.keys():
'properties': {},
}
-
### generate streamer components ################################
flow['streamer'] = {}
+flow['repeater'] = {}
for cluster in stream.keys():
streamer_cnt = stream[cluster]['count']
@@ -288,7 +288,23 @@ for cluster in stream.keys():
for mux_name in stream[cluster]['muxes']:
for format in mux[mux_name]['formats'].keys():
for profile in mux[mux_name]['formats'][format]:
- feeder = 'muxer-%s-%s-%s' % (mux_name, format, profile)
+ muxer_feed = 'muxer-%s-%s-%s' % (mux_name, format, profile)
+ if 'repeater' in stream[cluster]:
+ repeater_worker = stream[cluster]['repeater']
+ if repeater_worker not in worker:
+ worker[repeater_worker] = -1
+ else:
+ worker[repeater_worker] = 1
+ repeater_name = '%s-%s-%s-%s' % (stream[cluster]['repeater'], mux_name, format, profile)
+ flow['repeater'][repeater_name] = {
+ 'type': "repeater",
+ 'desc': "%s for %s %s-%s" % (stream[cluster]['repeater'], mux_name, format, profile),
+ 'worker': repeater_worker,
+ 'feeder': muxer_feed }
+ feeder = repeater_name
+ else:
+ feeder = muxer_feed
+
name = '%s-%s%i-%s-%s-%s' % (stream[cluster]['type'], cluster, idx+1, mux_name, format, profile)
mount_point = '/%s-%s-%s.%s' % (mux_name, format, profile, globals['formats'][format]['muxer'])
if streamer_cnt > 1:
diff --git a/templates/example/planet.xml b/templates/example/planet.xml
index 5ee260d..c1633ee 100644
--- a/templates/example/planet.xml
+++ b/templates/example/planet.xml
@@ -39,6 +39,11 @@
{% include '%s.xml' % component.type %}
{% endfor %}
+<!-- repeater -->
+{% for name, component in flow['repeater'].items() %}
+{% include '%s.xml' % component.type %}
+{% endfor %}
+
<!-- streaming -->
{% for name, component in flow['streamer'].items() %}
{% include '%s.xml' % component.type %}
diff --git a/templates/example/repeater.xml b/templates/example/repeater.xml
new file mode 100644
index 0000000..aa469ec
--- /dev/null
+++ b/templates/example/repeater.xml
@@ -0,0 +1,11 @@
+ <component name="{{ name }}"
+ type="repeater"
+ label="{{ component.desc }}"
+ worker="{{ component.worker }}"
+ project="flumotion"
+ version="{{ globals.version }}">
+ <eater name="default">
+ <feed alias="default">{{ component.feeder }}</feed>
+ </eater>
+ <clock-master>false</clock-master>
+ </component>
diff --git a/templates/example/soundcard.xml b/templates/example/soundcard.xml
index 07f4c99..23df8a4 100644
--- a/templates/example/soundcard.xml
+++ b/templates/example/soundcard.xml
@@ -1,6 +1,6 @@
- <component name="{{ name }}"
+ <component name="{{ name }}_raw"
type="soundcard-producer"
- label="{{ component.desc }}"
+ label="{{ component.desc }} (raw)"
worker="{{ component.worker }}"
project="flumotion"
version="{{ globals.version }}">
@@ -9,3 +9,16 @@
%% endfor
<clock-master>{{ component.master }}</clock-master>
</component>
+
+ <component name="{{ name }}"
+ type="pipeline-converter"
+ label="{{ component.desc }} (normalized)"
+ worker="{{ component.worker }}"
+ project="flumotion"
+ version="{{ globals.version }}">
+ <eater name="default">
+ <feed alias="default">{{ name }}_raw</feed>
+ </eater>
+ <property name="pipeline">audioconvert ! audio/x-raw-int,rate=(int)48000,width=16,depth=16,channels=2</property>
+ <clock-master>false</clock-master>
+ </component>