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 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
84 const Config& config, | 84 const Config& config, |
85 Transport* transport, | 85 Transport* transport, |
86 ProcessThread* module_process_thread, | 86 ProcessThread* module_process_thread, |
87 RtcpIntraFrameObserver* intra_frame_observer, | 87 RtcpIntraFrameObserver* intra_frame_observer, |
88 RtcpBandwidthObserver* bandwidth_observer, | 88 RtcpBandwidthObserver* bandwidth_observer, |
89 RemoteBitrateEstimator* remote_bitrate_estimator, | 89 RemoteBitrateEstimator* remote_bitrate_estimator, |
90 RtcpRttStats* rtt_stats, | 90 RtcpRttStats* rtt_stats, |
91 PacedSender* paced_sender, | 91 PacedSender* paced_sender, |
92 PacketRouter* packet_router, | 92 PacketRouter* packet_router, |
93 size_t max_rtp_streams, | 93 size_t max_rtp_streams, |
94 bool sender, | 94 bool sender) |
95 bool disable_default_encoder) | |
96 : channel_id_(channel_id), | 95 : channel_id_(channel_id), |
97 engine_id_(engine_id), | 96 engine_id_(engine_id), |
98 number_of_cores_(number_of_cores), | 97 number_of_cores_(number_of_cores), |
99 sender_(sender), | 98 sender_(sender), |
100 module_process_thread_(module_process_thread), | 99 module_process_thread_(module_process_thread), |
101 crit_(CriticalSectionWrapper::CreateCriticalSection()), | 100 crit_(CriticalSectionWrapper::CreateCriticalSection()), |
102 send_payload_router_(new PayloadRouter()), | 101 send_payload_router_(new PayloadRouter()), |
103 vcm_protection_callback_(new ViEChannelProtectionCallback(this)), | 102 vcm_protection_callback_(new ViEChannelProtectionCallback(this)), |
104 vcm_(VideoCodingModule::Create(Clock::GetRealTimeClock(), | 103 vcm_(VideoCodingModule::Create(Clock::GetRealTimeClock(), |
105 nullptr, | 104 nullptr, |
106 nullptr)), | 105 nullptr)), |
107 vie_receiver_(channel_id, vcm_, remote_bitrate_estimator, this), | 106 vie_receiver_(channel_id, vcm_, remote_bitrate_estimator, this), |
108 vie_sync_(vcm_), | 107 vie_sync_(vcm_), |
109 stats_observer_(new ChannelStatsObserver(this)), | 108 stats_observer_(new ChannelStatsObserver(this)), |
110 vcm_receive_stats_callback_(NULL), | 109 vcm_receive_stats_callback_(NULL), |
111 incoming_video_stream_(nullptr), | 110 incoming_video_stream_(nullptr), |
112 codec_observer_(NULL), | 111 codec_observer_(NULL), |
113 intra_frame_observer_(intra_frame_observer), | 112 intra_frame_observer_(intra_frame_observer), |
114 rtt_stats_(rtt_stats), | 113 rtt_stats_(rtt_stats), |
115 paced_sender_(paced_sender), | 114 paced_sender_(paced_sender), |
116 packet_router_(packet_router), | 115 packet_router_(packet_router), |
117 bandwidth_observer_(bandwidth_observer), | 116 bandwidth_observer_(bandwidth_observer), |
118 decoder_reset_(true), | 117 decoder_reset_(true), |
119 disable_default_encoder_(disable_default_encoder), | |
120 nack_history_size_sender_(kSendSidePacketHistorySize), | 118 nack_history_size_sender_(kSendSidePacketHistorySize), |
121 max_nack_reordering_threshold_(kMaxPacketAgeToNack), | 119 max_nack_reordering_threshold_(kMaxPacketAgeToNack), |
122 pre_render_callback_(NULL), | 120 pre_render_callback_(NULL), |
123 report_block_stats_sender_(new ReportBlockStats()), | 121 report_block_stats_sender_(new ReportBlockStats()), |
124 rtp_rtcp_modules_( | 122 rtp_rtcp_modules_( |
125 CreateRtpRtcpModules(ViEModuleId(engine_id_, channel_id_), | 123 CreateRtpRtcpModules(ViEModuleId(engine_id_, channel_id_), |
126 !sender, | 124 !sender, |
127 vie_receiver_.GetReceiveStatistics(), | 125 vie_receiver_.GetReceiveStatistics(), |
128 transport, | 126 transport, |
129 sender ? intra_frame_observer_ : nullptr, | 127 sender ? intra_frame_observer_ : nullptr, |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
165 return -1; | 163 return -1; |
166 } | 164 } |
167 vcm_->RegisterFrameTypeCallback(this); | 165 vcm_->RegisterFrameTypeCallback(this); |
168 vcm_->RegisterReceiveStatisticsCallback(this); | 166 vcm_->RegisterReceiveStatisticsCallback(this); |
169 vcm_->RegisterDecoderTimingCallback(this); | 167 vcm_->RegisterDecoderTimingCallback(this); |
170 vcm_->SetRenderDelay(kViEDefaultRenderDelayMs); | 168 vcm_->SetRenderDelay(kViEDefaultRenderDelayMs); |
171 | 169 |
172 module_process_thread_->RegisterModule(vcm_); | 170 module_process_thread_->RegisterModule(vcm_); |
173 module_process_thread_->RegisterModule(&vie_sync_); | 171 module_process_thread_->RegisterModule(&vie_sync_); |
174 | 172 |
175 #ifdef VIDEOCODEC_VP8 | |
stefan-webrtc
2015/07/23 08:34:38
I don't fully understand how this is related to th
pbos-webrtc
2015/07/23 08:51:09
All call sites (of CreateSendChannel and CreateRec
stefan-webrtc
2015/07/23 12:43:46
Thanks
| |
176 if (!disable_default_encoder_) { | |
177 VideoCodec video_codec; | |
178 if (vcm_->Codec(kVideoCodecVP8, &video_codec) == VCM_OK) { | |
179 rtp_rtcp_modules_[0]->RegisterSendPayload(video_codec); | |
180 // TODO(holmer): Can we call SetReceiveCodec() here instead? | |
181 if (!vie_receiver_.RegisterPayload(video_codec)) { | |
182 return -1; | |
183 } | |
184 vcm_->RegisterReceiveCodec(&video_codec, number_of_cores_); | |
185 vcm_->RegisterSendCodec(&video_codec, number_of_cores_, | |
186 rtp_rtcp_modules_[0]->MaxDataPayloadLength()); | |
187 } else { | |
188 RTC_NOTREACHED(); | |
189 } | |
190 } | |
191 #endif | |
192 | |
193 return 0; | 173 return 0; |
194 } | 174 } |
195 | 175 |
196 ViEChannel::~ViEChannel() { | 176 ViEChannel::~ViEChannel() { |
197 UpdateHistograms(); | 177 UpdateHistograms(); |
198 // Make sure we don't get more callbacks from the RTP module. | 178 // Make sure we don't get more callbacks from the RTP module. |
199 module_process_thread_->DeRegisterModule( | 179 module_process_thread_->DeRegisterModule( |
200 vie_receiver_.GetReceiveStatistics()); | 180 vie_receiver_.GetReceiveStatistics()); |
201 module_process_thread_->DeRegisterModule(vcm_); | 181 module_process_thread_->DeRegisterModule(vcm_); |
202 module_process_thread_->DeRegisterModule(&vie_sync_); | 182 module_process_thread_->DeRegisterModule(&vie_sync_); |
(...skipping 1065 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1268 CriticalSectionScoped cs(crit_.get()); | 1248 CriticalSectionScoped cs(crit_.get()); |
1269 vcm_receive_stats_callback_ = receive_statistics_proxy; | 1249 vcm_receive_stats_callback_ = receive_statistics_proxy; |
1270 } | 1250 } |
1271 | 1251 |
1272 void ViEChannel::SetIncomingVideoStream( | 1252 void ViEChannel::SetIncomingVideoStream( |
1273 IncomingVideoStream* incoming_video_stream) { | 1253 IncomingVideoStream* incoming_video_stream) { |
1274 CriticalSectionScoped cs(crit_.get()); | 1254 CriticalSectionScoped cs(crit_.get()); |
1275 incoming_video_stream_ = incoming_video_stream; | 1255 incoming_video_stream_ = incoming_video_stream; |
1276 } | 1256 } |
1277 } // namespace webrtc | 1257 } // namespace webrtc |
OLD | NEW |