Network Working Group                                          B. Burman
Internet-Draft                                             M. Westerlund
Intended status: Informational                                  Ericsson
Expires: August 4, 2013                                 January 31, 2013


                   Multi-Media Concepts and Relations
             draft-burman-rtcweb-mmusic-media-structure-00

Abstract

   There are currently significant efforts ongoing in IETF regarding
   more advanced multi-media functionalities, such as the work related
   to RTCWEB and CLUE.  This work includes use cases for both multi-
   party communication and multiple media streams from an individual
   end-point.  The usage of scalable encoding or simulcast encoding as
   well as different types of transport mechanisms have created
   additional needs to correctly identify different types of resources
   and describe their relations to achieve intended functionalities.

   The different usages have both commonalities and differences in needs
   and behavior.  This document attempts to review some usages and
   identify commonalities and needs.  It then continues to highlight
   important aspects that need to be considered in the definition of
   these usages.

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on August 4, 2013.

Copyright Notice

   Copyright (c) 2013 IETF Trust and the persons identified as the
   document authors.  All rights reserved.




Burman & Westerlund      Expires August 4, 2013                 [Page 1]


Internet-Draft        Media Concepts and Relations          January 2013


   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Motivation . . . . . . . . . . . . . . . . . . . . . . . . . .  3
   3.  Use Cases  . . . . . . . . . . . . . . . . . . . . . . . . . .  4
     3.1.  Existing RTP Usages  . . . . . . . . . . . . . . . . . . .  4
       3.1.1.  Basic VoIP call  . . . . . . . . . . . . . . . . . . .  4
       3.1.2.  Audio and Video Conference . . . . . . . . . . . . . .  5
       3.1.3.  Audio and Video Switched Conference  . . . . . . . . .  7
     3.2.  WebRTC . . . . . . . . . . . . . . . . . . . . . . . . . .  8
       3.2.1.  Mesh-based Multi-party . . . . . . . . . . . . . . . .  9
       3.2.2.  Multi-source Endpoints . . . . . . . . . . . . . . . . 10
       3.2.3.  Media Relaying . . . . . . . . . . . . . . . . . . . . 11
       3.2.4.  Usage of Simulcast . . . . . . . . . . . . . . . . . . 11
     3.3.  CLUE Telepresence  . . . . . . . . . . . . . . . . . . . . 13
       3.3.1.  Telepresence Functionality . . . . . . . . . . . . . . 13
       3.3.2.  Distributed Endpoint . . . . . . . . . . . . . . . . . 14
   4.  Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . 14
     4.1.  Commonalities in Use Cases . . . . . . . . . . . . . . . . 14
       4.1.1.  Media Source . . . . . . . . . . . . . . . . . . . . . 14
       4.1.2.  Encodings  . . . . . . . . . . . . . . . . . . . . . . 16
       4.1.3.  Synchronization contexts . . . . . . . . . . . . . . . 17
       4.1.4.  Distributed Endpoints  . . . . . . . . . . . . . . . . 18
     4.2.  Identified WebRTC issues . . . . . . . . . . . . . . . . . 18
     4.3.  Relevant to SDP evolution  . . . . . . . . . . . . . . . . 19
   5.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 20
   6.  Security Considerations  . . . . . . . . . . . . . . . . . . . 21
   7.  Informative References . . . . . . . . . . . . . . . . . . . . 21
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 22











Burman & Westerlund      Expires August 4, 2013                 [Page 2]


Internet-Draft        Media Concepts and Relations          January 2013


1.  Introduction

   This document concerns itself with the conceptual structures that can
   be found in different logical levels of a multi-media communication,
   from transport aspects to high-level needs of the communication
   application.  The intention is to provide considerations and guidance
   that can be used when discussing how to resolve issues in the RTCWEB
   and CLUE related standardization.  Typical use cases for those WG
   have commonalities that likely should be addressed similarly and in a
   way that allows to align them.

   The document starts with going deeper in the motivation why this has
   become an important problem at this time.  This is followed by
   studies of some use cases and what concepts they contain, and
   concludes with a discussion of observed commonalities and important
   aspects to consider.


2.  Motivation

   There has arisen a number of new needs and requirements lately from
   work such as WebRTC/RTCWEB [I-D.ietf-rtcweb-overview] and CLUE
   [I-D.ietf-clue-framework].  The applications considered in those WG
   has surfaced new requirements on the usage of both RTP [RFC3550] and
   existing signalling solutions.

   The main application aspects that have created new needs are:

   o  Multiple Media Streams from an end-point.  The fact that an end-
      point may have multiple media capture devices, such as cameras or
      microphone mixes.

   o  Group communications involving multiple end-points.  This is
      realized using both mesh based connections as well as centralized
      conference nodes.  These creating a need for dealing with multiple
      endpoints and/or multiple streams with different origins from a
      transport peer.

   o  Media Stream Adaptation, both to adjust network resource
      consumption as well as to handle varying end-point capabilities in
      group communication.

   o  Transport mechanisms including both higher levels of aggregation
      [I-D.ietf-mmusic-sdp-bundle-negotiation]
      [I-D.ietf-avtcore-multi-media-rtp-session] and the use of
      application-level transport repair mechanisms such as forward
      error correction (FEC) and/or retransmission.




Burman & Westerlund      Expires August 4, 2013                 [Page 3]


Internet-Draft        Media Concepts and Relations          January 2013


   The presence of multiple media resources or components creates a need
   to identify, handle and group those resources across multiple
   different instantiations or alternatives.


3.  Use Cases

3.1.  Existing RTP Usages

   There are many different existing RTP usages.  This section brings up
   some that we deem interesting in comparison to the other use cases.

3.1.1.  Basic VoIP call

   This use case is intended to function as a base-line to contrast
   against the rest of the use cases.

   The communication context is an audio-only bi-directional
   communication between two users, Alice and Bob. This communication
   uses a single multi-media session that can be established in a number
   of ways, but let's assume SIP/SDP [RFC3261][RFC3264].  This multi-
   media session contains two end-points, one for Alice and one for Bob.
   Each end-point has an audio capture device that is used to create a
   single audio media source at each end-point.

                        +-------+         +-------+
                        | Alice |<------->|  Bob  |
                        +-------+         +-------+

                      Figure 1: Point-to-point Audio

   The session establishment (SIP/SDP) negotiates the intent to
   communicate over RTP using only the audio media type.  Inherent in
   the application is an assumption of only a single media source in
   each direction.  The boundaries for the encodings are represented
   using RTP Payload types in conjunction with the SDP bandwidth
   parameter (b=).  The session establishment is also used to negotiate
   that RTP will be used, thus resulting in that an RTP session will be
   created for the audio.  The underlying transport flows, in this case
   a single bi-directional UDP flow for RTP, another for RTCP, is
   configured by each end-point providing its' IP address and port,
   which becomes source or destination depending on in which direction
   the packet is sent.

   The RTP session will have two RTP media streams, one in each
   direction, which carries the encoding of the media source the sending
   implementation has chosen based on the boundaries established by the
   RTP payload types and other SDP parameters, e.g. codec, and bit-



Burman & Westerlund      Expires August 4, 2013                 [Page 4]


Internet-Draft        Media Concepts and Relations          January 2013


   rates.  The streams are in the RTP context identified by their SSRCs.

3.1.2.  Audio and Video Conference

   This use case is a multi-party use case with a central conference
   node performing media mixing.  It also includes two media types, both
   audio and video.  The high level topology of the communication
   session is the following:

            +-------+         +------------+           +-------+
            |       |<-Audio->|            |<--Audio-->|       |
            | Alice |         |            |           |  Bob  |
            |       |<-Video->|            |<--Video-->|       |
            +-------+         |            |           +-------+
                              |   Mixer    |
            +-------+         |            |           +-------+
            |       |<-Audio->|            |<--Audio-->|       |
            |Charlie|         |            |           | David |
            |       |<-Video->|            |<--Video-->|       |
            +-------+         +------------+           +-------+

       Figure 2: Audio and Video Conference with Centralized Mixing

   The communication session is a multi-party conference including the
   four users Alice, Bob, Charlie, and David.  This communication
   session contains four end-points and one middlebox (the Mixer).  The
   communication session is established using four different multi-media
   sessions; one each between the user's endpoints and the middlebox.
   Each of these multi-media sessions uses a session establishment
   method, like SIP/SDP.

   Looking at a single multi-media session between a user, e.g.  Alice,
   and the Mixer, there exist two media types, audio and video.  Alice
   has two capture devices, one video camera giving her a video media
   source, and an audio capture device giving an audio media source.
   These two media sources are captured in the same room by the same
   end-point and thus have a strong timing relationship, requiring
   inter-media synchronization at playback to provide the correct
   fidelity.  Thus Alice's endpoint has a synchronization context that
   both her media sources use.

   These two media sources are encoded using encoding parameters within
   the boundaries that has been agreed between the end-point and the
   Mixer using the session establishment.  As has been common practice,
   each media type will use its own RTP session between the end-point
   and the mixer.  Thus a single audio stream using a single SSRC will
   flow from Alice to the Mixer in the Audio RTP session and a single
   video stream will flow in the Video RTP session.  Using this division



Burman & Westerlund      Expires August 4, 2013                 [Page 5]


Internet-Draft        Media Concepts and Relations          January 2013


   in separate RTP sessions, the bandwidth of both audio and video can
   be unambiguously and separately negotiated by the SDP bandwidth
   attributes exchanged between the end-points and the mixer.  Each RTP
   session is using its own Transport Flows.  The common synchronization
   context across Alice's two media streams is identified by binding
   both streams to the same CNAME, generated by Alice's endpoint.

   The mixer does not have any physical capture devices, instead it
   creates conceptual media sources.  It provides two media sources
   towards Alice; one audio being a mix of the audio from Bob, Charlie
   and David, the second one being a conceptual video source that
   contains a selection of one of the other video sources received from
   Bob, Charlie, or David depending on who is speaking.  The Mixer's
   audio and video sources are provided in an encoding using a codec
   that is supported by both Alice's endpoint and the mixer.  These
   streams are identified by a single SSRC in the respective RTP
   session.

   The mixer will have its own synchronization context and it will
   inject the media from Bob, Charlie and David in a synchronized way
   into the mixer's synchronization context to maintain the inter-media
   synchronization of the original media sources.

   The mixer establishes independent multimedia sessions with each of
   the participant's endpoints.  The mixer will in most cases also have
   unique conceptual media sources for each of the endpoints.  This as
   audio mixes and video selections typically exclude media sources
   originating from the receiving end-point.  For example, Bob's audio
   mix will be a mix of Alice, Charlie and David, and will not contain
   Bob's own audio.

   This use case may need unique user identities across the whole
   communication session.  An example functionality of this is a
   participant list which includes audio energy levels showing who is
   speaking within the audio mix.  If that information is carried in RTP
   using the RTP header extension for Mixer to audio clients [RFC6465]
   then contributing source identities in the form of CSRC need to be
   bound to the other end-point's media sources or user identities.
   This despite the fact that each RTP session towards a particular
   user's endpoint is terminated in the RTP mixer.  This points out the
   need for identifiers that exist in multiple multi-media session
   contexts.  In most cases this can easily be solved by the application
   having identities tailored specifically for its own needs, but some
   applications will benefit from having access to some commonly defined
   structure for media source identities.






Burman & Westerlund      Expires August 4, 2013                 [Page 6]


Internet-Draft        Media Concepts and Relations          January 2013


3.1.3.  Audio and Video Switched Conference

   This use case is similar to the one above (Section 3.1.2), with the
   difference that the mixer does not mix media streams by decoding,
   mixing and re-encoding them, but rather switches a selection of
   received media more or less unmodified towards receiving end-points.
   This difference may not be very apparent to the end-user, but the
   main motivations to eliminate the mixing operation and switch rather
   than mix are:

   o  Lower processing requirements in the mixer.

   o  Lower complexity in the mixer.

   o  Higher media quality at the receiver given a certain media
      bitrate.

   o  Lower end-to-end media delay.

   Without the mixing operation, the mixer has limited ability to create
   conceptual media sources that are customized for each receiver.  The
   reasons for such customizations comes from sender and receiver
   differences in available resources and preferences:

   o  Presenting multiple conference users simultaneously, like in a
      video mosaic.

   o  Alignment of sent media quality to receivers presentation needs.

   o  Alignment of codec type and configuration between sender and
      receiver.

   o  Alignment of encoded bitrate to the available end-to-end link
      bandwidth.

   To enable elimination of the mixing operation, media sent to the
   mixer must sufficiently well meet the above constraints for all
   intended receivers.  There are several ways to achieve this.  One way
   is to, by some system-wide design, ensure that all senders and
   receivers are basically identical in all the above aspects.  This may
   however prove unrealistic when variations in conditions and end-
   points are too large.  Another way is to let a sender provide a
   (small) set of alternative representations for each sent media
   source, enough to sufficiently well cover the expected range of
   variation.  If those media source representations, encodings, are
   independent from one another, they constitute a Simulcast of the
   media source.  If an encoding is instead dependent on and thus
   requires reception of one or more other encodings, the representation



Burman & Westerlund      Expires August 4, 2013                 [Page 7]


Internet-Draft        Media Concepts and Relations          January 2013


   of the media source jointly achieved by all dependent encodings is
   said to be Scalable.  Simulcast and Scalable encoding can also be
   combined.

   Both Simulcast and Scalable encodings result in that a single media
   source generates multiple RTP media streams of the same media type.
   The division of bandwidth between the Simulcast or Scalable streams
   for a single media source is application specific and will vary.  The
   total bandwidth for a Simulcast or a Scalable source is the sum of
   all included RTP media streams.  Since all streams in a Simulcast or
   Scalable source originate from the same capture device, they are
   closely related and should thus share synchronization context.

   The first and second customizations listed above, presenting multiple
   conference users simultaneously, aligned with the presentation needs
   in the receiver, can also be achieved without mixing operation by
   simply sending appropriate quality media from those users
   individually to each receiver.  The total bandwidth of this user
   presentation aggregate is the sum of all included RTP media streams.
   Audio and video from a single user share synchronization context and
   can be synchronized.  Streams that originate from different users do
   not have the same synchronization context, which is acceptable since
   they do not need to be synchronized, but just presented jointly.

   An actual mixer device need not be either mixing-only or switching-
   only, but may implement both mixing and switching and may also choose
   dynamically what to do for a specific media and a specific receiving
   user on a case-by-case basis or based on some policy.

3.2.  WebRTC

   This section brings up two different instantiations of WebRTC
   [ref-webrtc10] that stresses different aspects.  But let's start with
   reviewing some important aspects of WebRTC and the MediaStream
   [ref-media-capture] API.

   In WebRTC, an application gets access to a media source by calling
   getUserMedia(), which creates a MediaStream [ref-media-capture] (note
   the capitalization).  A MediaStream consists of zero or more
   MediaStreamTracks, where each MediaStreamTrack is associated with a
   media source.  These locally generated MediaStreams and their tracks
   are connected to local media sources, which can be media devices such
   as video cameras or microphones, but can also be files.

   An WebRTC PeerConnection (PC) is an association between two endpoints
   that is capable of communicating media from one end to the other.
   The PC concept includes establishment procedures, including media
   negotiation.  Thus a PC is an instantiation of a Multimedia Session.



Burman & Westerlund      Expires August 4, 2013                 [Page 8]


Internet-Draft        Media Concepts and Relations          January 2013


   When one end-point adds a MediaStream to a PC, the other endpoint
   will by default receive an encoded representation of the MediaStream
   and the active MediaStreamTracks.

3.2.1.  Mesh-based Multi-party

   This is a use case of WebRTC which establishes a multi-party
   communication session by establishing an individual PC with each
   participant in the communication session.

                              +---+      +---+
                              | A |<---->| B |
                              +---+      +---+
                                ^         ^
                                 \       /
                                  \     /
                                   v   v
                                   +---+
                                   | C |
                                   +---+

                  Figure 3: WebRTC Mesh-based Multi-party

   Users A, B and C want to have a joint communication session.  This
   communication session is created using a Web-application without any
   central conference functionality.  Instead, it uses a mesh of
   PeerConnections to connect each participant's endpoint with the other
   endpoints.  In this example, three double-ended connections are
   required to connect the three participants, and each endpoint has two
   PCs.

   This is an audio and video communication and each end-point has one
   video camera and one microphone as media sources.  Each endpoint
   creates its own MediaStream with one video MediaStreamTrack and one
   audio MediaStreamTrack.  The endpoints add their MediaStream to both
   of their PCs.

   Let's now focus on a single PC; in this case the one established
   between A and B. During the establishment of this PC, the two
   endpoints agree to use only a single transport flow for all media
   types, thus a single RTP session is created between A and B. A's
   MediaStream has one audio media source that is encoded according to
   the boundaries established by the PeerConnection establishment
   signalling, which includes the RTP payload types and thus Codecs
   supported as well as bit-rate boundaries.  The encoding of A's media
   source is then sent in an RTP stream identified by a unique SSRC.  In
   this case, as there are two media sources at A, two encodings will be
   created which will be transmitted using two different RTP streams



Burman & Westerlund      Expires August 4, 2013                 [Page 9]


Internet-Draft        Media Concepts and Relations          January 2013


   with their respective SSRC.  Both these streams will reference the
   same synchronization context through a common CNAME identifier used
   by A. B will have the same configuration, thus resulting in at least
   four SSRC being used in the RTP session part of the A-B PC.

   Depending on the configuration of the two PCs that A has, i.e. the
   A-B and the A-C ones, A could potentially reuse the encoding of a
   media source in both contexts, under certain conditions.  First, a
   common codec and configuration needs to exist and the boundaries for
   these configurations must allow a common work point.  In addition,
   the required bandwidth capacity needs to be available over the paths
   used by the different PCs.  Both of those conditions are not always
   true.  Thus it is quite likely that the endpoint will sometimes
   instead be required to produce two different encodings of the same
   media source.

   If an application needs to reference the media from a particular
   endpoint, it can use the MediaStream and MediaStreamTrack as they
   point back to the media sources at a particular endpoint.  This as
   the MediaStream has a scope that is not PeerConnection specific.

   The programmer can however implement this differently while
   supporting the same use case.  In this case the programmer creates
   two MediaStreams that each have MediaStreamTracks that share common
   media sources.  This can be done either by calling getUserMedia()
   twice, or by cloning the MediaStream obtained by the only
   getUserMedia() call.  In this example the result is two MediaStreams
   that are connected to different PCs.  From an identity perspective,
   the two MediaStreams are different but share common media sources.
   This fact is currently not made explicit in the API.

3.2.2.  Multi-source Endpoints

   This section concerns itself with endpoints that have more than one
   media source for a particular media type.  A straightforward example
   would be a laptop with a built in video camera used to capture the
   user and a second video camera, for example attached by USB, that is
   used to capture something else the user wants to show.  Both these
   cameras are typically present in the same sound field, so it will be
   common to have only a single audio media source.

   A possible way of representing this is to have two MediaStreams, one
   with the built in camera and the audio, and a second one with the USB
   camera and the audio.  Each MediaStream is intended to be played with
   audio and video synchronized, but the user (local or remote) or
   application is likely to switch between the two captures.

   It becomes important for a receiving endpoint that it can determine



Burman & Westerlund      Expires August 4, 2013                [Page 10]


Internet-Draft        Media Concepts and Relations          January 2013


   that the audio in the two MediaStreams have the same synchronization
   context.  Otherwise a receiver may playback the same media source
   twice, with some time overlap, at a switch between playing the two
   MediaStreams.  Being able to determine that they are the same media
   source further allow for removing redundancy by having a single
   encoding if appropriate for both MediaStreamTracks.

3.2.3.  Media Relaying

   WebRTC endpoints can relay a received MediaStream from one PC to
   another by the simple API level maneuver of adding the received
   MediaStream to the other PC.  To realize this in the implementation
   is more complex.  This can also cause some issues from a media
   perspective.  If an application spanning across multiple endpoints
   that relay media between each other makes a mistake, a media loop can
   be created.  Media Loops could become a significant issue.  For
   example could an audio echo be created, i.e. an endpoint receives its
   own media without detecting that it is its own media and plays it
   back with some delay.  In case a WebRTC endpoint produces a
   conceptual media source by mixing incoming MediaStreams, if there is
   no loop detection, a feedback loop can be created.

   RTP has loop detection to detect and handle such cases within a
   single RTP session.  However, in the context of WebRTC, the RTP
   session is local to the PC and thus cannot rely on the RTP level loop
   detection.  Instead, if this protection is needed on the WebRTC
   MediaStream level, it could for example be achieved by having media
   source identifiers that can be preserved between the different
   MediaStreams in the PCs.

   When relaying media and in case one receives multiple encodings of
   the same source it is beneficial to know that.  For example, if one
   encoding arrives with a delay of 80 ms and another with 450 ms, being
   able to choose the one with 80 ms and not be forced to delay all
   media sources from the same synchronization context to the most
   delayed source improves performance.

3.2.4.  Usage of Simulcast

   In this section we look at a use case applying simulcast from each
   user's endpoint to a central conference node to avoid the need for an
   individual encoding to each receiving endpoint.  Instead, the central
   node chooses which of the available encodings that is forwarded to a
   particular receiver, like in Section 3.1.3.







Burman & Westerlund      Expires August 4, 2013                [Page 11]


Internet-Draft        Media Concepts and Relations          January 2013


                +-----------+      +------------+ Enc2 +---+
                | A   +-Enc1|----->|            |----->| B |
                |     |     |      |            |      +---+
                | Src-+-Enc2|----->|            | Enc1 +---+
                +-----------+      |   Mixer    |----->| C |
                                   |            |      +---+
                                   |            | Enc2 +---+
                                   |            |----->| D |
                                   +------------+      +---+

                                 Figure 4

   In this Communication Session there are four users with endpoints and
   one middlebox (The Mixer).  This is an audio and video communication
   session.  The audio source is not simulcasted and the endpoint only
   needs to produce a single encoding.  For the video source, each
   endpoint will produce multiple encodings (Enc1 and Enc2 in Figure 4)
   and transfer them simultaneously to the mixer.  The mixer picks the
   most appropriate encoding for the path from the mixer to each
   receiving client.

   Currently there exists no specified way in WebRTC to realise the
   above, although use-cases and requirements discuss simulcast
   functionality.  The authors believe there exist two possible solution
   alternatives in the WebRTC context:

   Multiple Encodings within a PeerConnection:  The endpoint that wants
      to provide a simulcast creates one or more MediaStreams with the
      media sources it wants to transmit over a particular PC.  The
      WebRTC API provides functionality to enable multiple encodings to
      be produced for a particular MediaStreamTrack and have possibility
      to configure the desired quality levels and/or differences for
      each of the encodings.

   Using Multiple PeerConnections:  There exist capabilities to both
      negotiate and control the codec, bit-rate, video resolution,
      frame-rate, etc of a particular MediaStreamTrack in the context of
      one PeerConnection.  Thus one method to provide multiple encodings
      is to establish multiple PeerConnections between A and the Mixer,
      where each PC is configured to provide the desired quality.  Note
      that this solution comes in two flavors from an application
      perspective.  One is that the same MediaStream object is added to
      the two PeerConnections.  The second is that two different
      MediaStream objects, with the same number of MediaStreamTracks and
      representing the same sources, are created (e.g by cloning), one
      of them added to the first PeerConnection and the second one to
      the second PeerConnection.




Burman & Westerlund      Expires August 4, 2013                [Page 12]


Internet-Draft        Media Concepts and Relations          January 2013


   Both of these solutions share a common requirement, the need to
   separate the received RTP streams not only based on media source, but
   also on the encoding.  However, on an API level the solutions appear
   different.  For Multiple Encodings within the context of a PC, the
   receiver will need new access methods for accessing and manipulating
   the different encodings.  Using multiple PC instead requires that one
   can easily determine the shared (simulcasted) media source despite
   receiving it in multiple MediaStreams on different PCs.  If the same
   MediaStream is added to both PC's the id's of the MediaStream and
   MediaStreamTracks will be the same, while they will be different if
   different MediaStream's (but representing the same sources) are added
   to the two PC's.

3.3.  CLUE Telepresence

   The CLUE framework [I-D.ietf-clue-framework] and use case
   [I-D.ietf-clue-telepresence-use-cases] documents make use of most, if
   not all, media concepts that were already discussed in previous
   sections, and adds a few more.

3.3.1.  Telepresence Functionality

   A communicating CLUE Endpoint can, compared to other types of
   Endpoints, be characterized by using multiple media resources:

   o  Multiple capture devices, such as cameras or microphones,
      generating the media for a media source.

   o  Multiple render devices, such as displays or speakers.

   o  Multiple Media Types, such as audio, video and presentation
      streams.

   o  Multiple remote Endpoints, since conference is a typical use case.

   o  Multiple Encodings (encoded representations) of a media source.

   o  Multiple Media Streams representing multiple media sources.

   To make the multitude of resources more manageable, CLUE introduces
   some additional structures.  For example, related media sources in a
   multimedia session are grouped into Scenes, which can generally be
   represented in different ways, described by alternative Scene
   Entries.  CLUE explicitly separates the concept of a media source
   from the encoded representations of it and a single media source can
   be used to create multiple Encodings.  It is also possible in CLUE to
   account for constraints in resource handling, like limitations in
   possible Encoding combinations due to physical device implementation.



Burman & Westerlund      Expires August 4, 2013                [Page 13]


Internet-Draft        Media Concepts and Relations          January 2013


   The number of media resources typically differ between Endpoints.
   Specifically, the number of available media resources of a certain
   type used for sending at the sender side typically does not match the
   number of corresponding media resources used for receiving at the
   receiver side.  Some selection process must thus be applied either at
   the sender or the receiver to select a subset of resources to be
   used.  Hence, each resource that need to be part of that selection
   process must have some identification and characterization that can
   be understood by the selecting party.  In the CLUE model, the sender
   (Provider) announces available resources and the receiver (Consumer)
   chooses what to receive.  This choice is made independently in the
   two directions of a bi-directional communication.

3.3.2.  Distributed Endpoint

   The definition of a single CLUE Endpoint in the framework
   [I-D.ietf-clue-framework] says it can consist of several physical
   devices with source and sink media streams.  This means that each
   logical node of such distributed Endpoint can have a separate
   transport interface, and thus that media sources originating from the
   same Endpoint can have different transport addresses.


4.  Discussion

   This section discusses some conclusions the authors make based on the
   use cases.  First we will discuss commonalities between use cases.
   Secondly we will provide a summary of issues we see affect WebRTC.
   Lastly we consider aspects that need to be considered in the SDP
   evolution that is ongoing.

4.1.  Commonalities in Use Cases

   The above use cases illustrate a couple of concepts that are not well
   defined, nor have they fully specified standard mechanisms or
   behaviors.  This section contains a discussion of such concepts,
   which the authors believe are useful in more than one context and
   thus should be defined to provide a common function when needed by
   multi-media communication applications.

4.1.1.  Media Source

   In several of the above use cases there exist a need for a separation
   between the media source, the particular encoding and its transport
   stream.  In vanilla RTP there exist a one-to-one mapping between
   these; one media source is encoded in one particular way and
   transported as one RTP stream using a single SSRC in a particular RTP
   session.



Burman & Westerlund      Expires August 4, 2013                [Page 14]


Internet-Draft        Media Concepts and Relations          January 2013


   The reason for not keeping a strict one-to-one mapping, allowing the
   media source to be identified separately from the RTP media stream
   (SSRC), varies depending on the application's needs and the desired
   functionalities:

   Simulcast:  Simulcast is a functionality to provide multiple
      simultaneous encodings of the same media source.  As each encoding
      is independent of the other, in contrast to scalable encoding,
      independent transport streams for each encoding is needed.  The
      receiver of a simulcast stream will need to be able to explicitly
      identify each encoding upon reception, as well as which media
      source it is an encoding of.  This is especially important in a
      context of multiple media sources being provided from the same
      endpoint.

   Mesh-based communication:  When a communication application
      implements multi-party communication through a mesh of transport
      flows, there exist a need for tracking the original media source,
      especially when relaying between nodes is possible.  It is likely
      that the encodings provided over the different transports are
      different.  If an application uses relaying between different
      transports, an endpoint may, intentionally or not, receive
      multiple encodings of the same media source over the same or
      different transports.  Some applications can handle the needed
      identification, but some can benefit from a standardized method to
      identify sources.

   The second argument above can be generalized into a common need in
   applications that utilize multiple multimedia sessions, such as
   multiple PeerConnections or multiple SIP/SDP-established RTP
   sessions, to form a larger communication session between multiple
   endpoints.  These applications commonly need to track media sources
   that occur in more than one multimedia session.

   Looking at both CLUE and WebRTC, they appear to contain their own
   variants of the concept that was above denoted a media source.  In
   CLUE it is called Media Capture.  In WebRTC each MediaStreamTrack is
   identifiable, however, several MediaStreamTracks can share the actual
   source, and there is no way for the application to realize this
   currently.  The identification of sources is being discussed, and
   there is a proposal [ref-leithead] that introduces the concept 'Track
   Source'.  Thus, in this document we see the media source as the
   generalized commonality between these two concepts.  Giving each
   media source a unique identifier in the communication session/context
   that is reused in all the PeerConnections or SIP/SDP-established RTP
   sessions would enable loop detection, correctly associate alternative
   encodings and provide a common name across the endpoints for
   application logic to reference the actual media source rather than a



Burman & Westerlund      Expires August 4, 2013                [Page 15]


Internet-Draft        Media Concepts and Relations          January 2013


   particular encoding or transport stream.

   It is arguable if the application should really know a long term
   persistent source identification, such as based on hardware
   identities, for example due to fingerprinting issues, and it would
   likely be better to use an anonymous identification that is still
   unique in a sufficiently wide context, for example within the
   communication application instance.

4.1.2.  Encodings

   An Encoding is a particular encoded representation of a particular
   media source.  In the context of RTP and Signalling, a particular
   encoding must fit the established parameters, such as RTP payload
   types, media bandwidths, and other more or less codec-specific media
   constraints such as resolution, frame-rate, fidelity, audio
   bandwidth, etc.

   In the context of an application, it appears that there are primarily
   two considerations around the use of multiple encodings.

   The first is how many and what their defining parameters are.  This
   may require to be negotiated, something the existing signalling
   solutions, like SDP, currently lack support for.  For example in SDP,
   there exist no way to express that you would like to receive three
   different encodings of a particular video source.  In addition, if
   you for example prefer these three encodings to be 720p/25 Hz,
   360p/25 Hz and 180p/12.5 Hz, and even if you could define RTP payload
   types with these constraints, they must be linked to RTP streams
   carrying the encodings of the particular source.  Also, for some RTP
   payload types there exist difficulties to express encoding
   characteristics with the desired granularity.  The number of RTP
   payload types that can be used for a particular potential encoding
   can also be a constraint, especially as a single RTP payload type
   could well be used for all three target resolutions and frame rates
   in the example.  Using multiple encodings might even be desirable for
   multi-party conferences that switches video, rather than composites
   and re-encodes it.  It might be that SDP is not the most suitable
   place to negotiate this.  From an application perspective, utilizing
   clients that have standardized APIs or protocols to control them,
   there exist a need for the application to express what it prefers in
   number of encodings as well as what their primary target parameters
   are.

   Secondly, some applications may need explicit indication of what
   encoding a particular stream represents.  In some cases this can be
   deduced based on information such as RTP payload types and parameters
   received in the media stream, but such implicit information will not



Burman & Westerlund      Expires August 4, 2013                [Page 16]


Internet-Draft        Media Concepts and Relations          January 2013


   always be detailed enough and it may also be time-consuming to
   extract.  For example, in SDP there is currently limitations for
   binding the relevant information about a particular encoding to the
   corresponding RTP stream, unless only a single RTP stream is defined
   per media description (m= line).

   The CLUE framework explicitly discusses encodings as constraints that
   are applied when transforming a media source (capture) into what CLUE
   calls a capture encoding.  This includes both explicit identification
   as well as a set of boundary parameters such as maximum width,
   height, frame rate as well as bandwidth.  In WebRTC nothing related
   has yet been defined, and we note this as an issue that needs to be
   resolved.  This as the authors expect that support for multiple
   encodings will be required to enable simulcast and scalability.

4.1.3.  Synchronization contexts

   The shortcomings around synchronization contexts appears rather
   limited.  In RTP, each RTP media stream is associated with a
   particular synchronization context through the CNAME session
   description item.  The main concerns here are likely twofold.

   The first concern is to avoid unnecessary creation of new contexts,
   and rather correctly associate with the contexts that actually exist.
   For example, WebRTC MediaStreams are defined so that all
   MediaStreamTracks within a particular MediaStream shall be
   synchronized.  An easy method for meeting this would be to assign a
   new CNAME for each MediaStream.  However, that would ignore the fact
   that several media sources from the same synchronization context may
   appear in different combinations across several MediaStreams.  Thus
   all these MediaStreams should share synchronization context to avoid
   playback glitches, like playing back different instantiations of a
   single media source out of sync because the media source was shared
   between two different MediaStreams.

   The second problem is that synchronization context identification in
   RTP, i.e.  CNAME, is overloaded as an endpoint identifier.  As an
   example, consider an endpoint that has two synchronization contexts;
   one for audio and video in the room and another for an audio and
   video presentation stream, like the output of an DVD player.  Relying
   on that an endpoint has only a single synchronization context and
   CNAME may be incorrect and could create issues that an application
   designer as well as RTP and signalling extension specifications need
   to watch out for.

   CLUE discusses so far quite little about synchronization, but clearly
   intends to enable lip synchronization between captures that have that
   relation.  The second issue is however quite likely to be encountered



Burman & Westerlund      Expires August 4, 2013                [Page 17]


Internet-Draft        Media Concepts and Relations          January 2013


   in CLUE due to explicit inclusion of the Scene concept, where
   different Scenes do not require to share the same synchronization
   context, but is rather intended for situations where Scenes cannot
   share synchronization context.

4.1.4.  Distributed Endpoints

   When an endpoint consists of multiple nodes, the added complexity is
   often local to that endpoint, which is appropriate.  However, some
   few properties of distributed endpoints needs to be tolerated by all
   entities in a multimedia communication session.  The main item is to
   not assume that a single endpoint will only use a single network
   address.  This is a dangerous assumption even for non-distributed
   endpoints due to multi-homing and the common deployment of NATs,
   especially large scale NATs which in worst case uses multiple
   addresses for a single endpoint's transport flows.

   Distributed endpoints are brought up in the CLUE context.  They are
   not specifically discussed in the WebRTC context, instead the desire
   for transport level aggregation makes such endpoints problematic.
   However, WebRTC does allow for fallback to media type specific
   transport flows and can thus without issues support distributed
   endpoints.

4.2.  Identified WebRTC issues

   In the process of identifying commonalities and differences between
   the different use cases we have identified what to us appears to be
   issues in the current specification of WebRTC that needs to be
   reviewed.

   1.  If simulcast or scalability are to be supported at all, the
       WebRTC API will need to find a method to deal more explicitly
       with the existence of different encodings and how these are
       configured, accessed and referenced.  For simulcast, the authors
       see a quite straightforward solution where each PeerConnection is
       only allowed to contain a single encoding for a specific media
       source and the desired quality level can be negotiated for the
       full PeerConnection.  When multiple encodings are desired,
       multiple PeerConnections with differences in configuration are
       established.  That would only require that the underlying media
       source can explicitly be indicated and tracked by the receiver.

   2.  The current API structure allows to have multiple MediaStreams
       with fully or partially overlapping media sources.  This,
       combined with multiple PeerConnections and the likely possibility
       to do relaying, there appears to exist a significant need to
       determine the underlying media source, despite receiving



Burman & Westerlund      Expires August 4, 2013                [Page 18]


Internet-Draft        Media Concepts and Relations          January 2013


       different MediaStreams with particular media sources encoded in
       different ways.  It is proposed that MediaSources are made
       possible to identify uniquely across multiple PeerConnections in
       the context of the communication application.  It is however
       likely that while being unique in a sufficiently large context,
       the identification should also be anonymous to avoid
       fingerprinting issues, similar to the situation discussed in
       Section 4.1.1.

   3.  Implementations of the MediaStream API must be careful in how
       they name and deal with synchronization contexts, so that the
       actual underlying synchronization context is preserved when
       possible.  It should be noted that cannot be done when a
       MediaStream is created that contains media sources from multiple
       synchronization contexts.  This will instead require
       resynchronization of contributing sources, creation of a new
       synchronization context, and inserting the sources into that
       synchronization context.

   These issues need to be discussed and an appropriate way to resolve
   them must be chosen.

4.3.  Relevant to SDP evolution

   The joint MMUSIC / RTCWeb WGs interim meeting in February 2013 will
   discuss a number of SDP related issues around the handling of
   multiple sources; the aggregation of multiple media types over the
   same RTP session as well as RTP sharing its transport flow not only
   with ICE/STUN but also with the WebRTC data channel using SCTP/DTLS/
   UDP.  These issues will potentially result in a significant impact on
   SDP.  It may also impact other ongoing work as well as existing
   usages and applications, making these discussions difficult.

   The above use cases and discussion points to the existence of a
   number of commonalities between WebRTC and CLUE, and that a solution
   should preferably be usable by both.  It is a very open question how
   much functionality CLUE requires from SDP, as CLUE WG plans to
   develop a protocol with a different usage model.  The appropriate
   division in functionality between SDP and this protocol is currently
   unknown.

   Based on this document, it is possible to express some protocol
   requirements when negotiating multimedia sessions and their media
   configurations.  Note that this is written as requirements to
   consider, given that one believes this functionality is needed in
   SDP.

   The Requirements:



Burman & Westerlund      Expires August 4, 2013                [Page 19]


Internet-Draft        Media Concepts and Relations          January 2013


   Encoding negotiation:  For Simulcast and Scalability in applications,
      it must be possible to negotiate the number and the boundary
      conditions for the desired encodings created from a particular
      media source.

   Media Resource Identification:  SDP-based applications that need
      explicit information about media sources, multiple encodings and
      their related RTP media streams could benefit from a common way of
      providing this information.  This need can result in multiple
      different actual requirements.  Some require a common, explicit
      identification of media sources across multiple signalling
      contexts.  Some may require explicit indication of which set of
      encodings that has the same media source and thus which sets of
      RTP media streams (SSRCs) that are related to a particular media
      source.

   RTP media stream parameters:  With a greater heterogeneity of the
      possible encodings and their boundary conditions, situations may
      arise where some or sets of RTP media streams will need to have
      specific sets of parameters associated with them, compared to
      other (sets of) RTP media streams.

   The above are general requirements and in some cases the appropriate
   point to address the requirement may not even be SDP.  For example,
   media source identification could primarily be put in an RTCP Session
   Description (SDES) item, and only when so required by the application
   also be included in the signalling.

   The discussion in this document has impact on the high level decision
   regarding how to relate RTP media streams to SDP media descriptions.
   However, as it is currently presenting concepts rather than giving
   concrete proposals on how to enable these concepts as extensions to
   SDP or other protocols, it is difficult to determine the actual
   impact that a high level solution will have.  However, the authors
   are convinced that neither of the directions will prevent the
   definition of suitable concepts in SDP.


5.  IANA Considerations

   This document makes no request of IANA.

   Note to RFC Editor: this section may be removed on publication as an
   RFC.







Burman & Westerlund      Expires August 4, 2013                [Page 20]


Internet-Draft        Media Concepts and Relations          January 2013


6.  Security Considerations

   The realization of the proposed concepts and the resolution will have
   security considerations.  However, at this stage it is unclear if any
   has not already common considerations regarding preserving privacy,
   confidentiality and ensure integrity to prevent denial of service or
   quality degradations.


7.  Informative References

   [I-D.ietf-avtcore-multi-media-rtp-session]
              Westerlund, M., Perkins, C., and J. Lennox, "Multiple
              Media Types in an RTP Session",
              draft-ietf-avtcore-multi-media-rtp-session-01 (work in
              progress), October 2012.

   [I-D.ietf-clue-framework]
              Duckworth, M., Pepperell, A., and S. Wenger, "Framework
              for Telepresence Multi-Streams",
              draft-ietf-clue-framework-08 (work in progress),
              December 2012.

   [I-D.ietf-clue-telepresence-use-cases]
              Romanow, A., Botzko, S., Duckworth, M., Even, R., and I.
              Communications, "Use Cases for Telepresence Multi-
              streams", draft-ietf-clue-telepresence-use-cases-04 (work
              in progress), August 2012.

   [I-D.ietf-mmusic-sdp-bundle-negotiation]
              Holmberg, C. and H. Alvestrand, "Multiplexing Negotiation
              Using Session Description Protocol (SDP) Port Numbers",
              draft-ietf-mmusic-sdp-bundle-negotiation-01 (work in
              progress), August 2012.

   [I-D.ietf-rtcweb-overview]
              Alvestrand, H., "Overview: Real Time Protocols for Brower-
              based Applications", draft-ietf-rtcweb-overview-05 (work
              in progress), December 2012.

   [RFC3261]  Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
              A., Peterson, J., Sparks, R., Handley, M., and E.
              Schooler, "SIP: Session Initiation Protocol", RFC 3261,
              June 2002.

   [RFC3264]  Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
              with Session Description Protocol (SDP)", RFC 3264,
              June 2002.



Burman & Westerlund      Expires August 4, 2013                [Page 21]


Internet-Draft        Media Concepts and Relations          January 2013


   [RFC3550]  Schulzrinne, H., Casner, S., Frederick, R., and V.
              Jacobson, "RTP: A Transport Protocol for Real-Time
              Applications", STD 64, RFC 3550, July 2003.

   [RFC6465]  Ivov, E., Marocco, E., and J. Lennox, "A Real-time
              Transport Protocol (RTP) Header Extension for Mixer-to-
              Client Audio Level Indication", RFC 6465, December 2011.

   [ref-leithead]
              Microsoft, "Proposal: Media Capture and Streams Settings
              API v6, https://dvcs.w3.org/hg/dap/raw-file/tip/
              media-stream-capture/proposals/
              SettingsAPI_proposal_v6.html", December 2012.

   [ref-media-capture]
              "Media Capture and Streams,
              http://dev.w3.org/2011/webrtc/editor/getusermedia.html",
              December 2012.

   [ref-webrtc10]
              "WebRTC 1.0: Real-time Communication Between Browsers,
              http://dev.w3.org/2011/webrtc/editor/webrtc.html",
              January 2013.


Authors' Addresses

   Bo Burman
   Ericsson
   Farogatan 6
   SE-164 80 Kista
   Sweden

   Phone: +46 10 714 13 11
   Email: bo.burman@ericsson.com


   Magnus Westerlund
   Ericsson
   Farogatan 6
   SE-164 80 Kista
   Sweden

   Phone: +46 10 714 82 87
   Email: magnus.westerlund@ericsson.com






Burman & Westerlund      Expires August 4, 2013                [Page 22]