| Index: webrtc/video/video_receive_stream.cc
|
| diff --git a/webrtc/video/video_receive_stream.cc b/webrtc/video/video_receive_stream.cc
|
| index 6e7ea13b2a05de0f7c167bb26a8d5ea84d99a570..aa5c368310adebf7110c33c0d4fd1b7d2a7955fe 100644
|
| --- a/webrtc/video/video_receive_stream.cc
|
| +++ b/webrtc/video/video_receive_stream.cc
|
| @@ -184,16 +184,16 @@ VideoReceiveStream::VideoReceiveStream(
|
| timing_(new VCMTiming(clock_)),
|
| video_receiver_(clock_, nullptr, this, timing_.get(), this, this),
|
| stats_proxy_(&config_, clock_),
|
| - rtp_stream_receiver_(&transport_adapter_,
|
| - call_stats_->rtcp_rtt_stats(),
|
| - packet_router,
|
| - &config_,
|
| - &stats_proxy_,
|
| - process_thread_,
|
| - this, // NackSender
|
| - this, // KeyFrameRequestSender
|
| - this, // OnCompleteFrameCallback
|
| - timing_.get()),
|
| + rtp_video_stream_receiver_(&transport_adapter_,
|
| + call_stats_->rtcp_rtt_stats(),
|
| + packet_router,
|
| + &config_,
|
| + &stats_proxy_,
|
| + process_thread_,
|
| + this, // NackSender
|
| + this, // KeyFrameRequestSender
|
| + this, // OnCompleteFrameCallback
|
| + timing_.get()),
|
| rtp_stream_sync_(this) {
|
| LOG(LS_INFO) << "VideoReceiveStream: " << config_.ToString();
|
|
|
| @@ -234,16 +234,16 @@ VideoReceiveStream::~VideoReceiveStream() {
|
|
|
| void VideoReceiveStream::SignalNetworkState(NetworkState state) {
|
| RTC_DCHECK_RUN_ON(&worker_thread_checker_);
|
| - rtp_stream_receiver_.SignalNetworkState(state);
|
| + rtp_video_stream_receiver_.SignalNetworkState(state);
|
| }
|
|
|
|
|
| bool VideoReceiveStream::DeliverRtcp(const uint8_t* packet, size_t length) {
|
| - return rtp_stream_receiver_.DeliverRtcp(packet, length);
|
| + return rtp_video_stream_receiver_.DeliverRtcp(packet, length);
|
| }
|
|
|
| void VideoReceiveStream::OnRtpPacket(const RtpPacketReceived& packet) {
|
| - rtp_stream_receiver_.OnRtpPacket(packet);
|
| + rtp_video_stream_receiver_.OnRtpPacket(packet);
|
| }
|
|
|
| void VideoReceiveStream::SetSync(Syncable* audio_syncable) {
|
| @@ -257,12 +257,13 @@ void VideoReceiveStream::Start() {
|
| return;
|
|
|
| bool protected_by_fec = config_.rtp.protected_by_flexfec ||
|
| - rtp_stream_receiver_.IsUlpfecEnabled();
|
| + rtp_video_stream_receiver_.IsUlpfecEnabled();
|
|
|
| frame_buffer_->Start();
|
| - call_stats_->RegisterStatsObserver(&rtp_stream_receiver_);
|
| + call_stats_->RegisterStatsObserver(&rtp_video_stream_receiver_);
|
|
|
| - if (rtp_stream_receiver_.IsRetransmissionsEnabled() && protected_by_fec) {
|
| + if (rtp_video_stream_receiver_.IsRetransmissionsEnabled() &&
|
| + protected_by_fec) {
|
| frame_buffer_->SetProtectionMode(kProtectionNackFEC);
|
| }
|
|
|
| @@ -283,34 +284,35 @@ void VideoReceiveStream::Start() {
|
| video_receiver_.RegisterExternalDecoder(decoder.decoder,
|
| decoder.payload_type);
|
| VideoCodec codec = CreateDecoderVideoCodec(decoder);
|
| - RTC_CHECK(
|
| - rtp_stream_receiver_.AddReceiveCodec(codec, decoder.codec_params));
|
| + RTC_CHECK(rtp_video_stream_receiver_.AddReceiveCodec(codec,
|
| + decoder.codec_params));
|
| RTC_CHECK_EQ(VCM_OK, video_receiver_.RegisterReceiveCodec(
|
| &codec, num_cpu_cores_, false));
|
| }
|
|
|
| video_stream_decoder_.reset(new VideoStreamDecoder(
|
| - &video_receiver_, &rtp_stream_receiver_, &rtp_stream_receiver_,
|
| - rtp_stream_receiver_.IsRetransmissionsEnabled(), protected_by_fec,
|
| + &video_receiver_, &rtp_video_stream_receiver_,
|
| + &rtp_video_stream_receiver_,
|
| + rtp_video_stream_receiver_.IsRetransmissionsEnabled(), protected_by_fec,
|
| &stats_proxy_, renderer));
|
| // Register the channel to receive stats updates.
|
| call_stats_->RegisterStatsObserver(video_stream_decoder_.get());
|
| // Start the decode thread
|
| decode_thread_.Start();
|
| decode_thread_.SetPriority(rtc::kHighestPriority);
|
| - rtp_stream_receiver_.StartReceive();
|
| + rtp_video_stream_receiver_.StartReceive();
|
| }
|
|
|
| void VideoReceiveStream::Stop() {
|
| RTC_DCHECK_RUN_ON(&worker_thread_checker_);
|
| - rtp_stream_receiver_.StopReceive();
|
| + rtp_video_stream_receiver_.StopReceive();
|
| // TriggerDecoderShutdown will release any waiting decoder thread and make it
|
| // stop immediately, instead of waiting for a timeout. Needs to be called
|
| // before joining the decoder thread thread.
|
| video_receiver_.TriggerDecoderShutdown();
|
|
|
| frame_buffer_->Stop();
|
| - call_stats_->DeregisterStatsObserver(&rtp_stream_receiver_);
|
| + call_stats_->DeregisterStatsObserver(&rtp_video_stream_receiver_);
|
|
|
| if (decode_thread_.IsRunning()) {
|
| decode_thread_.Stop();
|
| @@ -403,18 +405,18 @@ EncodedImageCallback::Result VideoReceiveStream::OnEncodedImage(
|
|
|
| void VideoReceiveStream::SendNack(
|
| const std::vector<uint16_t>& sequence_numbers) {
|
| - rtp_stream_receiver_.RequestPacketRetransmit(sequence_numbers);
|
| + rtp_video_stream_receiver_.RequestPacketRetransmit(sequence_numbers);
|
| }
|
|
|
| void VideoReceiveStream::RequestKeyFrame() {
|
| - rtp_stream_receiver_.RequestKeyFrame();
|
| + rtp_video_stream_receiver_.RequestKeyFrame();
|
| }
|
|
|
| void VideoReceiveStream::OnCompleteFrame(
|
| std::unique_ptr<video_coding::FrameObject> frame) {
|
| int last_continuous_pid = frame_buffer_->InsertFrame(std::move(frame));
|
| if (last_continuous_pid != -1)
|
| - rtp_stream_receiver_.FrameContinuous(last_continuous_pid);
|
| + rtp_video_stream_receiver_.FrameContinuous(last_continuous_pid);
|
| }
|
|
|
| int VideoReceiveStream::id() const {
|
| @@ -426,14 +428,14 @@ rtc::Optional<Syncable::Info> VideoReceiveStream::GetInfo() const {
|
| RTC_DCHECK_RUN_ON(&module_process_thread_checker_);
|
| Syncable::Info info;
|
|
|
| - RtpReceiver* rtp_receiver = rtp_stream_receiver_.GetRtpReceiver();
|
| + RtpReceiver* rtp_receiver = rtp_video_stream_receiver_.GetRtpReceiver();
|
| RTC_DCHECK(rtp_receiver);
|
| if (!rtp_receiver->Timestamp(&info.latest_received_capture_timestamp))
|
| return rtc::Optional<Syncable::Info>();
|
| if (!rtp_receiver->LastReceivedTimeMs(&info.latest_receive_time_ms))
|
| return rtc::Optional<Syncable::Info>();
|
|
|
| - RtpRtcp* rtp_rtcp = rtp_stream_receiver_.rtp_rtcp();
|
| + RtpRtcp* rtp_rtcp = rtp_video_stream_receiver_.rtp_rtcp();
|
| RTC_DCHECK(rtp_rtcp);
|
| if (rtp_rtcp->RemoteNTP(&info.capture_time_ntp_secs,
|
| &info.capture_time_ntp_frac,
|
| @@ -475,13 +477,13 @@ bool VideoReceiveStream::Decode() {
|
|
|
| if (frame) {
|
| if (video_receiver_.Decode(frame.get()) == VCM_OK)
|
| - rtp_stream_receiver_.FrameDecoded(frame->picture_id);
|
| + rtp_video_stream_receiver_.FrameDecoded(frame->picture_id);
|
| } else {
|
| int64_t now_ms = clock_->TimeInMilliseconds();
|
| rtc::Optional<int64_t> last_packet_ms =
|
| - rtp_stream_receiver_.LastReceivedPacketMs();
|
| + rtp_video_stream_receiver_.LastReceivedPacketMs();
|
| rtc::Optional<int64_t> last_keyframe_packet_ms =
|
| - rtp_stream_receiver_.LastReceivedKeyframePacketMs();
|
| + rtp_video_stream_receiver_.LastReceivedKeyframePacketMs();
|
|
|
| // To avoid spamming keyframe requests for a stream that is not active we
|
| // check if we have received a packet within the last 5 seconds.
|
|
|