2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
11 #ifndef WEBRTC_VIDEO_ENGINE_VIE_CHANNEL_GROUP_H_
12 #define WEBRTC_VIDEO_ENGINE_VIE_CHANNEL_GROUP_H_
16 #include "system_wrappers/interface/scoped_ptr.h"
20 class BitrateController
;
21 struct OverUseDetectorOptions
;
23 class RemoteBitrateEstimator
;
24 class RemoteBitrateObserver
;
29 // Channel group contains data common for several channels. All channels in the
30 // group are assumed to send/receive data to the same end-point.
33 ChannelGroup(ProcessThread
* process_thread
,
34 const OverUseDetectorOptions
& options
);
37 void AddChannel(int channel_id
);
38 void RemoveChannel(int channel_id
, unsigned int ssrc
);
39 bool HasChannel(int channel_id
);
42 bool SetChannelRembStatus(int channel_id
,
48 BitrateController
* GetBitrateController();
49 RemoteBitrateEstimator
* GetRemoteBitrateEstimator();
52 typedef std::set
<int> ChannelSet
;
54 scoped_ptr
<VieRemb
> remb_
;
55 scoped_ptr
<BitrateController
> bitrate_controller_
;
56 scoped_ptr
<RemoteBitrateEstimator
> remote_bitrate_estimator_
;
62 #endif // WEBRTC_VIDEO_ENGINE_VIE_CHANNEL_GROUP_H_