Interface Call.Content.Interface.Media.DRAFT

Interface Index (Compact) | Summary | Description | Methods | Signals | Properties | Types

Methods

UpdateCodecs (a(usuua{ss}): Codecs) nothing

Signals

CodecsChanged (a{ua(usuua{ss})}: Updated_Codecs, au: Removed_Contacts)
NewCodecOffer (o: Offer, a{ua(usuua{ss})}: Codecs)

Properties

ContactCodecMap a{ua(usuua{ss})} (Contact_Codec_Map) Read only
CodecOffer (oa{ua(usuua{ss})}) (Codec_Offering) Read only

Types

Contact_Codec_Map Mapping a{ua(usuua{ss})}
Codec Struct (usuua{ss})
Codec_Offering Struct (oa{ua(usuua{ss})})
WARNING: This interface is experimental and is likely to cause havoc to your API/ABI if bindings are generated. Do not include this interface in libraries that care about compatibility.
Added in 0.19.0. (draft 1)
Objects implementing this interface must also implement:

Description

Interface to use by a software implementation of media streaming.

On new Call.DRAFT channels, handlers should wait for CodecOffer.DRAFT objects to appear (one will either already be present, or will appear at some point in the channel's lifetime).

If the Call is incoming, then the codec offer's RemoteContactCodecMap will already be filled with the codec information of the remote contacts. Depending on the protocol, an outgoing call's 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, CodecOffer.DRAFT.Accept should be called with the details of these codecs.

Methods

(Permalink)

UpdateCodecs (a(usuua{ss}): Codecs) → nothing

Parameters

  • Codecs — a(usuua{ss}) (Codec_List)
  • The codecs now supported by the local user.
Update the local codec mapping. This method should only be used during an existing call to update the codec mapping.

Possible Errors

  • Not Available
  • Raised when not used during an existing call to update the codec mapping.

Signals

(Permalink)

CodecsChanged (a{ua(usuua{ss})}: Updated_Codecs, au: Removed_Contacts)

Parameters

  • Updated_Codecs — a{ua(usuua{ss})} (Contact_Codec_Map)
  • A map from contact to his or her codecs. Each pair in this map is added to the ContactCodecMap property, replacing any previous pair with that key.
  • Removed_Contacts — au (Contact_Handle_List)
  • A list of keys which were removed from the ContactCodecMap, probably because those contacts left the call.

Emitted when the codecs in use change.

As well as acting as change notification for the ContactCodecMap, emission of this signal implies that the CodecOffer property has changed to ('/', {}).

(Permalink)

NewCodecOffer (o: Offer, a{ua(usuua{ss})}: Codecs)

Parameters

  • Offer — o
  • The object path of the new codec offer. This replaces any previous codec offer.
  • Codecs — a{ua(usuua{ss})} (Contact_Codec_Map)
  • The CodecOffer.DRAFT.RemoteContactCodecMap property of the codec offer.

    Rationale:
    Having the RemoteContactCodecMap property here saves a D-Bus round-trip - it shouldn't be necessary to get the property from the CodecOffer object, in practice.

Emitted when a new CodecOffer.DRAFT appears. The streaming implementation MUST respond by calling the Accept or Reject method on the codec offer object.

Emission of this signal indicates that the CodecOffer property has changed to (Offer, Codecs).

Properties

Accessed using the org.freedesktop.DBus.Properties interface.
(Permalink)

ContactCodecMap — a{ua(usuua{ss})} (Contact_Codec_Map)

Read only

A map from contact handles (including the local user's own handle) to the codecs supported by that contact.

Change notification is via the CodecsChanged signal.

(Permalink)

CodecOffer — (oa{ua(usuua{ss})}) (Codec_Offering)

Read only

The object path to the current CodecOffer.DRAFT object, and its CodecOffer.DRAFT.RemoteContactCodecMap property. If the object path is "/" then there isn't an outstanding codec offer, and the mapping MUST be empty.

Rationale:
Having the RemoteContactCodecMap property here saves a D-Bus round-trip - it shouldn't be necessary to get the property from the CodecOffer object, in practice.

Change notification is via the NewCodecOffer (which replaces the value of this property with a new codec offer), and CodecsChanged (which implies that there is no longer any active codec offer) signals.

Types

Mapping (Permalink)

Contact_Codec_Map — a{ua(usuua{ss})}

A map from contact to the list of codecs he or she supports.
  • Handle — u (Contact_Handle)
  • A contact handle.
  • Codecs — a(usuua{ss}) (Codec_List)
  • The codecs that the contact supports.
Struct (Permalink)

Codec — (usuua{ss})

A description of a codec.
  • Identifier — u
  • Numeric identifier for the codec. This will be used as the PT in the SDP or content description.
  • Name — s
  • The name of the codec.
  • Clockrate — u
  • The clockrate of the codec.
  • Channels — u
  • Number of channels of the codec if applicable, otherwise 0.
  • Parameters — a{ss} (String_String_Map)
  • Extra parameters for this codec.
Struct (Permalink)

Codec_Offering — (oa{ua(usuua{ss})})

A codec offer and its corresponding remote contact codec map.