chromium/third_party/openscreen/src/cast/streaming/impl/receiver_packet_router.h

// 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_IMPL_RECEIVER_PACKET_ROUTER_H_
#define CAST_STREAMING_IMPL_RECEIVER_PACKET_ROUTER_H_

#include <stdint.h>

#include <utility>
#include <vector>

#include "cast/streaming/public/environment.h"
#include "cast/streaming/ssrc.h"
#include "platform/base/span.h"
#include "util/flat_map.h"

namespace openscreen::cast {

class Receiver;

// Handles all network I/O among multiple Receivers meant for synchronized
// play-out (e.g., one Receiver for audio, one Receiver for video). Incoming
// traffic is dispatched to the appropriate Receiver, based on its corresponding
// sender's SSRC. Also, all traffic not coming from the same source is
// filtered-out.
class ReceiverPacketRouter final : public Environment::PacketConsumer {};

}  // namespace openscreen::cast

#endif  // CAST_STREAMING_IMPL_RECEIVER_PACKET_ROUTER_H_