---
spec/Call_Content_Interface_Media.xml | 72 ++++++++++++++++++++++++++++-------
1 file changed, 58 insertions(+), 14 deletions(-)
(limited to 'spec/Call_Content_Interface_Media.xml')
diff --git a/spec/Call_Content_Interface_Media.xml b/spec/Call_Content_Interface_Media.xml
index 0552111a..470e6d0d 100644
--- a/spec/Call_Content_Interface_Media.xml
+++ b/spec/Call_Content_Interface_Media.xml
@@ -29,25 +29,69 @@
Interface to use by a software implementation of media
streaming.
- On new Call.DRAFT channels,
- handlers should wait for Codec negotiation
+
+ When a new Call.DRAFT channel
+ appears, whether it was requested or not, a CodecOffer.DRAFT
- objects to appear (one will either already be present, or will
- appear at some point in the channel's lifetime).
+ will either be waiting in the
+ CodecOffer property, or will
+ appear at some point via the
+ NewCodecOffer signal.
- If the Call is incoming, then the codec offer's The RemoteContactCodecMap
- will already be filled with the codec information of the
- remote contacts. Depending on the protocol, an outgoing call's
-
+
+ For incoming calls on protocols where codecs are proposed when
+ starting the call (for example, Jingle), the RemoteContactCodecMap
- will either be filled with remote contact codec information, or
- it will be empty. If empty, then this SHOULD be interpreted to
- mean that all codecs are supported. Once a compatible list of
- codecs has been decided,
+
+ The streaming implementation should look at the remote codec
+ map and the codecs known by the local user and call
+ CodecOffer.DRAFT.Accept
- should be called with the details of these codecs.
+ on the intersection of these two codec lists.
+
+ This means that in practice, outgoing calls will have a codec
+ offer pop up with no information in the RemoteContactCodecMap,
+ so the local user will call Accept
+ with the list of all codecs supported. If this codec offer is
+ accepted, then CodecsChanged
+ will fire with the details of the codecs passed into
+ Accept. If
+ the call is incoming, then the RemoteContactCodecMap
+ will contain details of the remote contact's codecs and the
+ local user will call Accept
+ with the codecs that both sides understand. After the codec
+ set is accepted, CodecsChanged
+ will fire to signal this change.
+
+ Changing codecs mid-call
+
+ To update the codec list used mid-call, the
+ UpdateCodecs method should be
+ called with details of the new codec list. If this is
+ accepted, then CodecsChanged
+ will be emitted with the new codec set.
+
+ If the other side decides to update his or her codec list
+ during a call, a new CodecOffer.DRAFT
+ object will appear through
+ NewCodecOffer which should be
+ acted on as documented above.
--
cgit v1.2.3
From 71ddf93f2ec6635189bd1bfc419c4ab41b0f1b6e Mon Sep 17 00:00:00 2001
From: Jonny Lamb
Date: Wed, 20 Oct 2010 14:22:55 +0100
Subject: Call_Content_Interface_Media: documented when not to use UpdateCodecs
Signed-off-by: Jonny Lamb
---
spec/Call_Content_Interface_Media.xml | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
(limited to 'spec/Call_Content_Interface_Media.xml')
diff --git a/spec/Call_Content_Interface_Media.xml b/spec/Call_Content_Interface_Media.xml
index 470e6d0d..6df2f2de 100644
--- a/spec/Call_Content_Interface_Media.xml
+++ b/spec/Call_Content_Interface_Media.xml
@@ -204,7 +204,14 @@
- Raised when not used during an existing call to update the codec mapping.
+ Raised when a CodecOffer.DRAFT
+ object exists and is referred to in the
+ CodecOffer property which
+ should be used instead of calling this method, or before
+ the content's initial CodecOffer.DRAFT
+ object has appeared.
--
cgit v1.2.3
From cd03fba66d879d792aa8794251745da4a14a08eb Mon Sep 17 00:00:00 2001
From: Jonny Lamb
Date: Thu, 21 Oct 2010 18:22:35 +0100
Subject: Call_Content_Interface_Media: add note about non-negotiable codecs
Signed-off-by: Jonny Lamb
---
spec/Call_Content_Interface_Media.xml | 10 ++++++++++
1 file changed, 10 insertions(+)
(limited to 'spec/Call_Content_Interface_Media.xml')
diff --git a/spec/Call_Content_Interface_Media.xml b/spec/Call_Content_Interface_Media.xml
index 6df2f2de..5b895010 100644
--- a/spec/Call_Content_Interface_Media.xml
+++ b/spec/Call_Content_Interface_Media.xml
@@ -78,6 +78,16 @@
set is accepted, CodecsChanged
will fire to signal this change.
+ Protocols without codec negotiation
+
+ For protocols where the codecs are not negotiable, instead of
+ popping up the initial content's CodecOffer.DRAFT
+ object with an empty RemoteContactCodecMap,
+ the CM should set the supported codec values to known codec
+ values in the said object's codec map.
+
Changing codecs mid-call
To update the codec list used mid-call, the
--
cgit v1.2.3
From 33bcfba2cbce2059ebd9303875d4dcd53daf91b6 Mon Sep 17 00:00:00 2001
From: Jonny Lamb
Date: Tue, 26 Oct 2010 16:14:20 +0100
Subject: Codec_Offer: make it one per contact
Fixes: fd.o#28695
Signed-off-by: Jonny Lamb
---
spec/Call_Content_Codec_Offer.xml | 17 ++++++++++++-----
spec/Call_Content_Interface_Media.xml | 20 ++++++++++----------
2 files changed, 22 insertions(+), 15 deletions(-)
(limited to 'spec/Call_Content_Interface_Media.xml')
diff --git a/spec/Call_Content_Codec_Offer.xml b/spec/Call_Content_Codec_Offer.xml
index e0a791f3..f88143f6 100644
--- a/spec/Call_Content_Codec_Offer.xml
+++ b/spec/Call_Content_Codec_Offer.xml
@@ -65,16 +65,23 @@
-
- A map from remote contact to the list of codecs he or she
- supports.
+ A list of codecs the remote contact supports.
+
+
+ The contact handle that this codec offer applies to.
+
+
+
+
diff --git a/spec/Call_Content_Interface_Media.xml b/spec/Call_Content_Interface_Media.xml
index 5b895010..2d023572 100644
--- a/spec/Call_Content_Interface_Media.xml
+++ b/spec/Call_Content_Interface_Media.xml
@@ -41,14 +41,14 @@
NewCodecOffer signal.
The RemoteContactCodecMap
+ namespace="ofdT.Call.Content.CodecOffer.DRAFT">RemoteContactCodecs
property on the codec offer will determine the codecs that
should be proposed by the local user's streaming
implementation. An empty list means all codecs are available.
For incoming calls on protocols where codecs are proposed when
starting the call (for example, Jingle), the RemoteContactCodecMap
+ namespace="ofdT.Call.Content.CodecOffer.DRAFT">RemoteContactCodecs
will contain information on the codecs that have already been
proposed by the remote contact, otherwise the codec map will
be the empty list.
@@ -61,7 +61,7 @@
This means that in practice, outgoing calls will have a codec
offer pop up with no information in the RemoteContactCodecMap,
+ namespace="ofdT.Call.Content.CodecOffer.DRAFT">RemoteContactCodecs,
so the local user will call Accept
with the list of all codecs supported. If this codec offer is
@@ -70,7 +70,7 @@
Accept. If
the call is incoming, then the RemoteContactCodecMap
+ namespace="ofdT.Call.Content.CodecOffer.DRAFT">RemoteContactCodecs
will contain details of the remote contact's codecs and the
local user will call Accept
@@ -84,7 +84,7 @@
popping up the initial content's CodecOffer.DRAFT
object with an empty RemoteContactCodecMap,
+ namespace="ofdT.Call.Content.CodecOffer.DRAFT">RemoteContactCodecs,
the CM should set the supported codec values to known codec
values in the said object's codec map.
@@ -167,7 +167,7 @@
tp:type="Contact_Codec_Map">
The CodecOffer.DRAFT.RemoteContactCodecMap property
+ >CodecOffer.DRAFT.RemoteContactCodecs property
of the codec offer.
@@ -261,12 +261,12 @@
The CodecOffer.DRAFT.RemoteContactCodecMap property
+ >CodecOffer.DRAFT.RemoteContactCodecs property
of the codec offer.
Having the RemoteContactCodecMap
+ namespace="ofdT.Call.Content.CodecOffer.DRAFT">RemoteContactCodecs
property here saves a D-Bus round-trip - it shouldn't be
necessary to get the property from the CodecOffer object, in
practice.
@@ -282,13 +282,13 @@
CodecOffer.DRAFT object, and its
CodecOffer.DRAFT.RemoteContactCodecMap property.
+ >CodecOffer.DRAFT.RemoteContactCodecs property.
If the object path is "/" then there isn't an outstanding
codec offer, and the mapping MUST be empty.