| Index: webrtc/video/video_receive_stream.cc
|
| diff --git a/webrtc/video/video_receive_stream.cc b/webrtc/video/video_receive_stream.cc
|
| index fc98c582e1f34c0b9f072fbee92199c5c417e210..b82fa9a67057662079e5629f4246d3d0efa8eb23 100644
|
| --- a/webrtc/video/video_receive_stream.cc
|
| +++ b/webrtc/video/video_receive_stream.cc
|
| @@ -165,15 +165,15 @@ VideoReceiveStream::VideoReceiveStream(
|
| video_receiver_(clock_, nullptr, this, this, this),
|
| incoming_video_stream_(0, config.disable_prerenderer_smoothing),
|
| stats_proxy_(config_, clock_),
|
| - vie_channel_(&transport_adapter_,
|
| - process_thread,
|
| - &video_receiver_,
|
| - congestion_controller_->GetRemoteBitrateEstimator(
|
| - UseSendSideBwe(config_)),
|
| - call_stats_->rtcp_rtt_stats(),
|
| - congestion_controller_->pacer(),
|
| - congestion_controller_->packet_router()),
|
| - vie_receiver_(vie_channel_.vie_receiver()),
|
| + rtp_stream_receiver_(&video_receiver_,
|
| + congestion_controller_->GetRemoteBitrateEstimator(
|
| + UseSendSideBwe(config_)),
|
| + &transport_adapter_,
|
| + call_stats_->rtcp_rtt_stats(),
|
| + congestion_controller_->pacer(),
|
| + congestion_controller_->packet_router()),
|
| + vie_channel_(&video_receiver_,
|
| + &rtp_stream_receiver_),
|
| vie_sync_(&video_receiver_),
|
| rtp_rtcp_(vie_channel_.rtp_rtcp()) {
|
| LOG(LS_INFO) << "VideoReceiveStream: " << config_.ToString();
|
| @@ -206,12 +206,12 @@ VideoReceiveStream::VideoReceiveStream(
|
| RTC_DCHECK(kv.second.ssrc != 0);
|
| RTC_DCHECK(kv.second.payload_type != 0);
|
|
|
| - vie_receiver_->SetRtxSsrc(kv.second.ssrc);
|
| - vie_receiver_->SetRtxPayloadType(kv.second.payload_type, kv.first);
|
| + rtp_stream_receiver_.SetRtxSsrc(kv.second.ssrc);
|
| + rtp_stream_receiver_.SetRtxPayloadType(kv.second.payload_type, kv.first);
|
| }
|
| // TODO(holmer): When Chrome no longer depends on this being false by default,
|
| // always use the mapping and remove this whole codepath.
|
| - vie_receiver_->SetUseRtxPayloadMappingOnRestore(
|
| + rtp_stream_receiver_.SetUseRtxPayloadMappingOnRestore(
|
| config_.rtp.use_rtx_payload_mapping_on_restore);
|
|
|
| if (config_.rtp.remb) {
|
| @@ -225,7 +225,7 @@ VideoReceiveStream::VideoReceiveStream(
|
| // One-byte-extension local identifiers are in the range 1-14 inclusive.
|
| RTC_DCHECK_GE(id, 1);
|
| RTC_DCHECK_LE(id, 14);
|
| - vie_receiver_->EnableReceiveRtpHeaderExtension(extension, id);
|
| + rtp_stream_receiver_.EnableReceiveRtpHeaderExtension(extension, id);
|
| }
|
|
|
| if (config_.rtp.fec.ulpfec_payload_type != -1) {
|
| @@ -236,7 +236,7 @@ VideoReceiveStream::VideoReceiveStream(
|
| codec.codecType = kVideoCodecULPFEC;
|
| strncpy(codec.plName, "ulpfec", sizeof(codec.plName));
|
| codec.plType = config_.rtp.fec.ulpfec_payload_type;
|
| - RTC_CHECK(vie_receiver_->SetReceiveCodec(codec));
|
| + RTC_CHECK(rtp_stream_receiver_.SetReceiveCodec(codec));
|
| }
|
| if (config_.rtp.fec.red_payload_type != -1) {
|
| VideoCodec codec;
|
| @@ -244,10 +244,11 @@ VideoReceiveStream::VideoReceiveStream(
|
| codec.codecType = kVideoCodecRED;
|
| strncpy(codec.plName, "red", sizeof(codec.plName));
|
| codec.plType = config_.rtp.fec.red_payload_type;
|
| - RTC_CHECK(vie_receiver_->SetReceiveCodec(codec));
|
| + RTC_CHECK(rtp_stream_receiver_.SetReceiveCodec(codec));
|
| if (config_.rtp.fec.red_rtx_payload_type != -1) {
|
| - vie_receiver_->SetRtxPayloadType(config_.rtp.fec.red_rtx_payload_type,
|
| - config_.rtp.fec.red_payload_type);
|
| + rtp_stream_receiver_.SetRtxPayloadType(
|
| + config_.rtp.fec.red_rtx_payload_type,
|
| + config_.rtp.fec.red_payload_type);
|
| }
|
| }
|
|
|
| @@ -255,9 +256,9 @@ VideoReceiveStream::VideoReceiveStream(
|
| rtp_rtcp_->SetRtcpXrRrtrStatus(true);
|
|
|
| vie_channel_.RegisterReceiveStatisticsProxy(&stats_proxy_);
|
| - vie_receiver_->GetReceiveStatistics()->RegisterRtpStatisticsCallback(
|
| + rtp_stream_receiver_.GetReceiveStatistics()->RegisterRtpStatisticsCallback(
|
| &stats_proxy_);
|
| - vie_receiver_->GetReceiveStatistics()->RegisterRtcpStatisticsCallback(
|
| + rtp_stream_receiver_.GetReceiveStatistics()->RegisterRtcpStatisticsCallback(
|
| &stats_proxy_);
|
| // Stats callback for CNAME changes.
|
| rtp_rtcp_->RegisterRtcpStatisticsCallback(&stats_proxy_);
|
| @@ -277,7 +278,7 @@ VideoReceiveStream::VideoReceiveStream(
|
|
|
| VideoCodec codec = CreateDecoderVideoCodec(decoder);
|
|
|
| - RTC_CHECK(vie_receiver_->SetReceiveCodec(codec));
|
| + RTC_CHECK(rtp_stream_receiver_.SetReceiveCodec(codec));
|
| RTC_CHECK_EQ(VCM_OK, video_receiver_.RegisterReceiveCodec(
|
| &codec, num_cpu_cores, false));
|
| }
|
| @@ -288,6 +289,8 @@ VideoReceiveStream::VideoReceiveStream(
|
| vie_channel_.SetIncomingVideoStream(&incoming_video_stream_);
|
| vie_channel_.RegisterPreRenderCallback(this);
|
|
|
| + process_thread_->RegisterModule(rtp_stream_receiver_.GetReceiveStatistics());
|
| + process_thread_->RegisterModule(rtp_stream_receiver_.rtp_rtcp());
|
| process_thread_->RegisterModule(&video_receiver_);
|
| process_thread_->RegisterModule(&vie_sync_);
|
| }
|
| @@ -298,6 +301,9 @@ VideoReceiveStream::~VideoReceiveStream() {
|
|
|
| process_thread_->DeRegisterModule(&vie_sync_);
|
| process_thread_->DeRegisterModule(&video_receiver_);
|
| + process_thread_->DeRegisterModule(rtp_stream_receiver_.rtp_rtcp());
|
| + process_thread_->DeRegisterModule(
|
| + rtp_stream_receiver_.GetReceiveStatistics());
|
|
|
| // Deregister external decoders so that they are no longer running during
|
| // destruction. This effectively stops the VCM since the decoder thread is
|
| @@ -313,7 +319,7 @@ VideoReceiveStream::~VideoReceiveStream() {
|
| remb_->RemoveReceiveChannel(rtp_rtcp_);
|
|
|
| congestion_controller_->GetRemoteBitrateEstimator(UseSendSideBwe(config_))
|
| - ->RemoveStream(vie_receiver_->GetRemoteSsrc());
|
| + ->RemoveStream(rtp_stream_receiver_.GetRemoteSsrc());
|
| }
|
|
|
| void VideoReceiveStream::Start() {
|
| @@ -324,12 +330,12 @@ void VideoReceiveStream::Start() {
|
| // Start the decode thread
|
| decode_thread_.Start();
|
| decode_thread_.SetPriority(rtc::kHighestPriority);
|
| - vie_receiver_->StartReceive();
|
| + rtp_stream_receiver_.StartReceive();
|
| }
|
|
|
| void VideoReceiveStream::Stop() {
|
| incoming_video_stream_.Stop();
|
| - vie_receiver_->StopReceive();
|
| + rtp_stream_receiver_.StopReceive();
|
| video_receiver_.TriggerDecoderShutdown();
|
| decode_thread_.Stop();
|
| transport_adapter_.Disable();
|
| @@ -340,12 +346,12 @@ void VideoReceiveStream::SetSyncChannel(VoiceEngine* voice_engine,
|
| if (voice_engine && audio_channel_id != -1) {
|
| VoEVideoSync* voe_sync_interface = VoEVideoSync::GetInterface(voice_engine);
|
| vie_sync_.ConfigureSync(audio_channel_id, voe_sync_interface, rtp_rtcp_,
|
| - vie_receiver_->GetRtpReceiver());
|
| + rtp_stream_receiver_.GetRtpReceiver());
|
| voe_sync_interface->Release();
|
| return;
|
| }
|
| vie_sync_.ConfigureSync(-1, nullptr, rtp_rtcp_,
|
| - vie_receiver_->GetRtpReceiver());
|
| + rtp_stream_receiver_.GetRtpReceiver());
|
| }
|
|
|
| VideoReceiveStream::Stats VideoReceiveStream::GetStats() const {
|
| @@ -353,13 +359,13 @@ VideoReceiveStream::Stats VideoReceiveStream::GetStats() const {
|
| }
|
|
|
| bool VideoReceiveStream::DeliverRtcp(const uint8_t* packet, size_t length) {
|
| - return vie_receiver_->DeliverRtcp(packet, length);
|
| + return rtp_stream_receiver_.DeliverRtcp(packet, length);
|
| }
|
|
|
| bool VideoReceiveStream::DeliverRtp(const uint8_t* packet,
|
| size_t length,
|
| const PacketTime& packet_time) {
|
| - return vie_receiver_->DeliverRtp(packet, length, packet_time);
|
| + return rtp_stream_receiver_.DeliverRtp(packet, length, packet_time);
|
| }
|
|
|
| void VideoReceiveStream::FrameCallback(VideoFrame* video_frame) {
|
|
|