Copyright © 2009 Collabora Ltd. Copyright © 2009 Nokia Corporation

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

(draft 1) Interface to use by a software implementation of media streaming. FIXME: How should the streaming implementation know when it is its turn to set the codecs. A description of a codec. Numeric identifier for the codec. This will be used as the PT in the SDP or content description. The name of the codec. The clockrate of the codec Number of channels of the codec if applicable, otherwise 0 Extra parameters for this codec A map from contacts to the lists of codecs they support. A contact The codecs that the contact supports A codec offer and its corresponding remote contact codec map. The object path to the CodecOffer.DRAFT The CodecOffer.DRAFT.RemoteContactCodecMap property of the codec offer.

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 ('/', {}).

A map from contacts to their codecs. Each pair in this map is added to the ContactCodecMap property, replacing any previous pair with that key. A list of keys which were removed from the ContactCodecMap, probably because those contacts left the call.
Set or update the local codec mapping. The codecs now supported by the local user.

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

Change notification is via CodecsChanged.

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).

The object path of the new codec offer. This replaces any previous codec offer.

The CodecOffer.DRAFT.RemoteContactCodecMap property of the codec offer.

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.

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.

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 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).