You are on page 1of 15

Media Control

IETF 62 - XCON WG
Cullen Jennings
Basic Example - Template
Template BasicAudio
PhysicalStream dir=input type=audio name=main-audio-in
control type=bool name=mute label="Mute"

PhysicalStream dir=output type=audio name=main-audio-out


control type=real name=gain label="Volume”
Basic Example - Conference
Conference BasicAudio
PhysicalStream name=main-audio-in stream-id=1
control bool mute=false

PhysicalStream name=main-audio-out stream-id=3


control bool mute=false

PhysicalStream name=main-oudio-out stream-id=2


control real gain=0.0

PhysicalStream name=main-audio-out stream-id=4


control real gain=0.0
Physical Streams
• Actual media that can be sent or received
from the client
• Named with a label
• Label may corresponds to SDP label
Controls
• Specify the things the client can change
about the conference
Roles
• Template has Roles
• Each Roles defines control and streams
available to it
• Roles can be nested
• Things like “Participant” and “Moderator”
Logical Streams
• Correspond to streams that the mixer
produces
• Things like “active speaker”
Floors
Label the floors that are available
Control Array
• Defines an array of controls
• Is index by media streams of a particular
type (ie each main-audio-in stream)
Layout Control
• Describes media layout - typically video
• Contains Panels
– Each panel has a group of streams
Complex Example - Part 1

Template basicAudioVideo
LogicalStream type=video label=activeSpeaker-video
LogicalStream type=video label=presenter-video
LogicalStream type=video label=presentation-video

Floor name=presenter-floor

Control type=bool name=eCan label="Echo Cancellation”

Role name=listener
PhysicalStream dir=out type=audio label=main-audio-out
PhysicalStream dir=out type=video label=main-video-out
Complex Example - Part 2
PhysicalStream dir=input type=video label=main-video-in
Control type=choice name=video-mute
choices="normal,blank,freeze”

PhysicalStream dir=input type=video label=presentation


Control type=choice name=video-mute
choices="normal, blank, freeze”

PhysicalStream dir=output type=audio label=main-audio-out


Control type=real name=gain label="Volume”

PhysicalStream dir=output type=video label=main-video-out


Control name=main-layout type=layout choices=1x1,2x2,1x2,
Complex Example - Part 3
Sidebar
Control name=mainConfVolume type=real
PhysicalStream dir=input type=audio label=side-audio-in
control type=bool name=mute label="Mute"
PhysicalStream dir=output type=audio label=side-audio-out
control type=real name=gain label="Volume"

Role name=moderator
controlArray index=main-audio
control type=bool name=mute label="Mute”
Complex Conference Object
ConferenceObject type=basicAudioVideo name=conf1234
Role Participant
PhysicalStream name=main-audio-in stream-id=22
Control name=mute value=false
PhysicalStream name=main-video-in stream-id=23
Control name=video-mute value=normal
PhysicalStream name=main-audio-out stream-id=24
Control name=gain value=0
PhysicalStream name=main-video-out stream-id=25
PhysicalStream name=main-audio-in stream-id=32
Control name=mute value=false
PhysicalStream name=main-video-in stream-id=33
Control name=video-mute value=normal
PhysicalStream name=main-audio-out stream-id=34
Control name=gain value=0
PhysicalStream name=main-video-out stream-id=35

PhysicalStream name=main-audio-in stream-id=42


Control name=mute value=false
PhysicalStream name=main-video-in stream-id=43
Control name=video-mute value=normal
PhysicalStream name=main-audio-out stream-id=44
Control name=gain value=0
PhysicalStream name=main-video-out stream-id=45
Complex Conference Object
Control name=main-layout value="3x1+16"
Panel input=presenter-video position=1
selectionQ=0.8 exGroup=1
Panel input=presentation position=2
selectionQ=1.0 exGroup=1
Panel input=active-speaker position=3
selectionQ=0.9 exGroup=1
Panel input=main-video-in position=4
selectionQ=0.5 exGroup=2

You might also like