// Copyright 2017 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. module media.mojom; enum RemotingStopReason { ROUTE_TERMINATED, // User-initiated disconnect, etc. LOCAL_PLAYBACK, // Media switched back to local playback. SOURCE_GONE, // RemotingSource has been destroyed. MESSAGE_SEND_FAILED, // Failed to send a message to the sink. DATA_SEND_FAILED, // Failed to consume from a data pipe or send to the sink. UNEXPECTED_FAILURE, // Unexpected failure or inconsistent state encountered. SERVICE_GONE, // Mirror service disconnected. USER_DISABLED, // Media Remoting was disabled by user. }; // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. enum RemotingStartFailReason { CANNOT_START_MULTIPLE = 0, // Remoting was already active. ROUTE_TERMINATED = 1, // User-initated disconnect while starting remoting. INVALID_ANSWER_MESSAGE = 2, // Invalid ANSWER message. REMOTING_NOT_PERMITTED = 3, // Remoter does not have dialog permission. }; enum RemotingSinkFeature { RENDERING, CONTENT_DECRYPTION, }; enum RemotingSinkAudioCapability { CODEC_BASELINE_SET, CODEC_AAC, CODEC_OPUS, }; enum RemotingSinkVideoCapability { SUPPORT_4K, CODEC_BASELINE_SET, CODEC_H264, CODEC_VP8, CODEC_VP9, CODEC_HEVC, }; struct RemotingSinkMetadata { array features; array audio_capabilities; array video_capabilities; string friendly_name; };