[Telepathy-commits] [mingle/master] Add and parse optional codec parameters

Sjoerd Simons sjoerd at luon.net
Tue Nov 11 10:59:43 PST 2008


---
 jingle.py |   26 ++++++++++++++++++++------
 1 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/jingle.py b/jingle.py
index 5d2c06b..af6e22f 100644
--- a/jingle.py
+++ b/jingle.py
@@ -45,12 +45,17 @@ class JingleBaseDescription:
 
     def add_payloads(self, parent):
         for c in self.codecs:
-           pt = parent.addElement('payload-type')
-           pt['id'] = str(c.id)
-           pt['name'] = c.encoding_name
-           pt['rate'] = str(c.clock_rate)
-           if c.channels > 0:
-             pt['channels'] = str(c.channels)
+            pt = parent.addElement('payload-type')
+            pt['id'] = str(c.id)
+            pt['name'] = c.encoding_name
+            pt['rate'] = str(c.clock_rate)
+            if c.channels > 0:
+                pt['channels'] = str(c.channels)
+
+            for (name, value) in c.optional_params:
+                param = pt.addElement('parameter')
+                param['name'] = name
+                param['value'] = value
 
     def initiate(self, stream):
         self.fsstream = stream
@@ -67,6 +72,15 @@ class JingleBaseDescription:
                                     p["name"],
                                     self.type,
                                     int(p["rate"]))
+
+            params = xpath.queryForNodes("/payload-type/parameter", p)
+            if params !=None:
+                optional_params = []
+                for param in params:
+                    optional_params.append(
+                        (str(param['name']), str(param['value'])))
+                codec.optional_params = optional_params
+
             codecs.append(codec)
         return codecs
 
-- 
1.5.6.5




More information about the Telepathy-commits mailing list