// Copyright 2019 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_SESSION_H_ #define CAST_STREAMING_PUBLIC_RECEIVER_SESSION_H_ #include <memory> #include <string> #include <utility> #include <vector> #include "cast/common/public/message_port.h" #include "cast/streaming/capture_configs.h" #include "cast/streaming/impl/receiver_packet_router.h" #include "cast/streaming/impl/session_config.h" #include "cast/streaming/public/constants.h" #include "cast/streaming/public/offer_messages.h" #include "cast/streaming/public/receiver_constraints.h" #include "cast/streaming/public/rpc_messenger.h" #include "cast/streaming/public/session_messenger.h" #include "cast/streaming/resolution.h" #include "cast/streaming/sender_message.h" namespace openscreen::cast { class Environment; class Receiver; // This class is responsible for listening for streaming requests from Cast // Sender devices, then negotiating capture constraints and instantiating audio // and video Receiver objects. // The owner of this session is expected to provide a client for // updates, an environment for getting UDP socket information (as well as // other OS dependencies), and a set of constraints to be used for // negotiation. // // NOTE: In some cases, the session initialization may be pending waiting for // the UDP socket to be ready. In this case, the receivers and the answer // message will not be configured and sent until the UDP socket has finished // binding. class ReceiverSession final : public Environment::SocketSubscriber { … }; } // namespace openscreen::cast #endif // CAST_STREAMING_PUBLIC_RECEIVER_SESSION_H_