OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 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 | 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 | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 25 matching lines...) Expand all Loading... |
36 class EncodedImageCallback; | 36 class EncodedImageCallback; |
37 class I420FrameCallback; | 37 class I420FrameCallback; |
38 class IncomingVideoStream; | 38 class IncomingVideoStream; |
39 class PacedSender; | 39 class PacedSender; |
40 class PacketRouter; | 40 class PacketRouter; |
41 class PayloadRouter; | 41 class PayloadRouter; |
42 class ProcessThread; | 42 class ProcessThread; |
43 class ReceiveStatisticsProxy; | 43 class ReceiveStatisticsProxy; |
44 class RtcpRttStats; | 44 class RtcpRttStats; |
45 class ViERTPObserver; | 45 class ViERTPObserver; |
46 class VideoCodingModule; | |
47 class VideoRenderCallback; | 46 class VideoRenderCallback; |
48 class VoEVideoSync; | 47 class VoEVideoSync; |
49 | 48 |
| 49 namespace vcm { |
| 50 class VideoReceiver; |
| 51 } // namespace vcm |
| 52 |
50 enum StreamType { | 53 enum StreamType { |
51 kViEStreamTypeNormal = 0, // Normal media stream | 54 kViEStreamTypeNormal = 0, // Normal media stream |
52 kViEStreamTypeRtx = 1 // Retransmission media stream | 55 kViEStreamTypeRtx = 1 // Retransmission media stream |
53 }; | 56 }; |
54 | 57 |
55 class ViEChannel : public VCMFrameTypeCallback, | 58 class ViEChannel : public VCMFrameTypeCallback, |
56 public VCMReceiveCallback, | 59 public VCMReceiveCallback, |
57 public VCMReceiveStatisticsCallback, | 60 public VCMReceiveStatisticsCallback, |
58 public VCMDecoderTimingCallback, | 61 public VCMDecoderTimingCallback, |
59 public VCMPacketRequestCallback, | 62 public VCMPacketRequestCallback, |
60 public RtpFeedback { | 63 public RtpFeedback { |
61 public: | 64 public: |
62 friend class ChannelStatsObserver; | 65 friend class ChannelStatsObserver; |
63 | 66 |
64 ViEChannel(Transport* transport, | 67 ViEChannel(Transport* transport, |
65 ProcessThread* module_process_thread, | 68 ProcessThread* module_process_thread, |
66 VideoCodingModule* vcm, | 69 vcm::VideoReceiver* video_receiver, |
67 RemoteBitrateEstimator* remote_bitrate_estimator, | 70 RemoteBitrateEstimator* remote_bitrate_estimator, |
68 RtcpRttStats* rtt_stats, | 71 RtcpRttStats* rtt_stats, |
69 PacedSender* paced_sender, | 72 PacedSender* paced_sender, |
70 PacketRouter* packet_router); | 73 PacketRouter* packet_router); |
71 ~ViEChannel(); | 74 ~ViEChannel(); |
72 | 75 |
73 int32_t Init(); | 76 int32_t Init(); |
74 | 77 |
75 void SetProtectionMode(bool enable_nack, | 78 void SetProtectionMode(bool enable_nack, |
76 bool enable_fec, | 79 bool enable_fec, |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
189 | 192 |
190 private: | 193 private: |
191 } rtcp_packet_type_counter_observer_; | 194 } rtcp_packet_type_counter_observer_; |
192 | 195 |
193 | 196 |
194 ProcessThread* const module_process_thread_; | 197 ProcessThread* const module_process_thread_; |
195 | 198 |
196 // Used for all registered callbacks except rendering. | 199 // Used for all registered callbacks except rendering. |
197 rtc::CriticalSection crit_; | 200 rtc::CriticalSection crit_; |
198 | 201 |
199 VideoCodingModule* const vcm_; | 202 vcm::VideoReceiver* const video_receiver_; |
200 ViEReceiver vie_receiver_; | 203 ViEReceiver vie_receiver_; |
201 | 204 |
202 // Helper to report call statistics. | 205 // Helper to report call statistics. |
203 std::unique_ptr<ChannelStatsObserver> stats_observer_; | 206 std::unique_ptr<ChannelStatsObserver> stats_observer_; |
204 | 207 |
205 // Not owned. | 208 // Not owned. |
206 ReceiveStatisticsProxy* receive_stats_callback_ GUARDED_BY(crit_); | 209 ReceiveStatisticsProxy* receive_stats_callback_ GUARDED_BY(crit_); |
207 FrameCounts receive_frame_counts_ GUARDED_BY(crit_); | 210 FrameCounts receive_frame_counts_ GUARDED_BY(crit_); |
208 IncomingVideoStream* incoming_video_stream_ GUARDED_BY(crit_); | 211 IncomingVideoStream* incoming_video_stream_ GUARDED_BY(crit_); |
209 RtcpRttStats* const rtt_stats_; | 212 RtcpRttStats* const rtt_stats_; |
210 PacedSender* const paced_sender_; | 213 PacedSender* const paced_sender_; |
211 PacketRouter* const packet_router_; | 214 PacketRouter* const packet_router_; |
212 | 215 |
213 int max_nack_reordering_threshold_; | 216 int max_nack_reordering_threshold_; |
214 I420FrameCallback* pre_render_callback_ GUARDED_BY(crit_); | 217 I420FrameCallback* pre_render_callback_ GUARDED_BY(crit_); |
215 | 218 |
216 int64_t last_rtt_ms_ GUARDED_BY(crit_); | 219 int64_t last_rtt_ms_ GUARDED_BY(crit_); |
217 | 220 |
218 // RtpRtcp module, declared last as it use other members on construction. | 221 // RtpRtcp module, declared last as it use other members on construction. |
219 const std::unique_ptr<RtpRtcp> rtp_rtcp_; | 222 const std::unique_ptr<RtpRtcp> rtp_rtcp_; |
220 }; | 223 }; |
221 | 224 |
222 } // namespace webrtc | 225 } // namespace webrtc |
223 | 226 |
224 #endif // WEBRTC_VIDEO_VIE_CHANNEL_H_ | 227 #endif // WEBRTC_VIDEO_VIE_CHANNEL_H_ |
OLD | NEW |