| // Copyright 2018 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| module mirroring.mojom; |
| |
| import "services/network/public/mojom/ip_address.mojom"; |
| import "mojo/public/mojom/base/time.mojom"; |
| |
| // What kind of content the session is configured for. Used by the session |
| // to determine what senders to initialize. |
| enum SessionType { |
| AUDIO_ONLY, |
| VIDEO_ONLY, |
| AUDIO_AND_VIDEO, |
| }; |
| |
| // Represents all of the information necessary to instantiate a session. |
| // Specific sender properties, such as codecs, are determined directly |
| // by the senders as part of construction. |
| struct SessionParameters { |
| SessionType type; |
| network.mojom.IPAddress receiver_address; |
| |
| // Used to display on the UI surface. e.g. "Living Room TV". |
| string receiver_friendly_name; |
| |
| // Used to route Cast messages (like OFFER and GET_CAPABILITIES) between this |
| // mirroring session and the Cast receiver over the Cast V2 (TLS) socket |
| // between Chrome and the receiver. |
| // |
| // NOTE: |source_id| and |destination_id| do not have to be globally unique, |
| // however the pair must uniquely identify the streaming session. This is |
| // because a single Cast V2 connection may be used to manage multiple Cast |
| // sessions. |
| string source_id; |
| string destination_id; |
| |
| // Used to set both the min and max playout delays for both the audio and |
| // video senders. Omission of this parameter instructs the session to use |
| // the default configured value. |
| mojo_base.mojom.TimeDelta? target_playout_delay; |
| |
| // Used to inform Session that it should initialize the MediaRemoter without |
| // querying the receiver device for its capabilities. |
| bool is_remote_playback; |
| |
| // If true, all video frames sent will be letterboxed/pillarboxed to fit the |
| // aspect ratio of the negotiated resolution. This is to allow letterboxing |
| // to be selectively applied to receivers that have outstanding bugs with |
| // rendering variable aspect ratio frames. |
| // |
| // TODO(crbug.com/1363512): Remove support for sender side letterboxing. |
| bool force_letterboxing; |
| |
| // If this is set to true, the Mirroring Service will fetch, analyze, and |
| // store information on the quality of the session using RTCP logs. |
| bool enable_rtcp_reporting; |
| }; |