chromium/third_party/openscreen/src/cast/streaming/public/receiver_constraints.h

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CAST_STREAMING_PUBLIC_RECEIVER_CONSTRAINTS_H_
#define CAST_STREAMING_PUBLIC_RECEIVER_CONSTRAINTS_H_

#include <chrono>
#include <memory>
#include <vector>

#include "cast/streaming/public/constants.h"
#include "cast/streaming/resolution.h"

namespace openscreen::cast {

// Information about the display the receiver is attached to.
struct Display {};

// Codec-specific audio limits for playback.
struct AudioLimits {};

// Codec-specific video limits for playback.
struct VideoLimits {};

// This struct is used to provide constraints for setting up and running
// remoting streams. These properties are based on the current control
// protocol and allow remoting with current senders.
struct RemotingConstraints {};

// Note: embedders are required to implement the following
// codecs to be Cast V2 compliant: H264, VP8, AAC, Opus.
class ReceiverConstraints {};

}  // namespace openscreen::cast

#endif  // CAST_STREAMING_PUBLIC_RECEIVER_CONSTRAINTS_H_