| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  *  Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2  *  Copyright (c) 2013 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 60 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 71       ss << ", "; | 71       ss << ", "; | 
| 72   } | 72   } | 
| 73   ss << ']'; | 73   ss << ']'; | 
| 74   ss << ", rtp: " << rtp.ToString(); | 74   ss << ", rtp: " << rtp.ToString(); | 
| 75   ss << ", renderer: " << (renderer ? "(renderer)" : "nullptr"); | 75   ss << ", renderer: " << (renderer ? "(renderer)" : "nullptr"); | 
| 76   ss << ", render_delay_ms: " << render_delay_ms; | 76   ss << ", render_delay_ms: " << render_delay_ms; | 
| 77   if (!sync_group.empty()) | 77   if (!sync_group.empty()) | 
| 78     ss << ", sync_group: " << sync_group; | 78     ss << ", sync_group: " << sync_group; | 
| 79   ss << ", pre_decode_callback: " | 79   ss << ", pre_decode_callback: " | 
| 80      << (pre_decode_callback ? "(EncodedFrameObserver)" : "nullptr"); | 80      << (pre_decode_callback ? "(EncodedFrameObserver)" : "nullptr"); | 
| 81   ss << ", pre_render_callback: " |  | 
| 82      << (pre_render_callback ? "(I420FrameCallback)" : "nullptr"); |  | 
| 83   ss << ", target_delay_ms: " << target_delay_ms; | 81   ss << ", target_delay_ms: " << target_delay_ms; | 
| 84   ss << '}'; | 82   ss << '}'; | 
| 85 | 83 | 
| 86   return ss.str(); | 84   return ss.str(); | 
| 87 } | 85 } | 
| 88 | 86 | 
| 89 std::string VideoReceiveStream::Config::Rtp::ToString() const { | 87 std::string VideoReceiveStream::Config::Rtp::ToString() const { | 
| 90   std::stringstream ss; | 88   std::stringstream ss; | 
| 91   ss << "{remote_ssrc: " << remote_ssrc; | 89   ss << "{remote_ssrc: " << remote_ssrc; | 
| 92   ss << ", local_ssrc: " << local_ssrc; | 90   ss << ", local_ssrc: " << local_ssrc; | 
| (...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 321     VideoCodec codec = CreateDecoderVideoCodec(decoder); | 319     VideoCodec codec = CreateDecoderVideoCodec(decoder); | 
| 322     RTC_CHECK( | 320     RTC_CHECK( | 
| 323         rtp_stream_receiver_.AddReceiveCodec(codec, decoder.codec_params)); | 321         rtp_stream_receiver_.AddReceiveCodec(codec, decoder.codec_params)); | 
| 324     RTC_CHECK_EQ(VCM_OK, video_receiver_.RegisterReceiveCodec( | 322     RTC_CHECK_EQ(VCM_OK, video_receiver_.RegisterReceiveCodec( | 
| 325                              &codec, num_cpu_cores_, false)); | 323                              &codec, num_cpu_cores_, false)); | 
| 326   } | 324   } | 
| 327 | 325 | 
| 328   video_stream_decoder_.reset(new VideoStreamDecoder( | 326   video_stream_decoder_.reset(new VideoStreamDecoder( | 
| 329       &video_receiver_, &rtp_stream_receiver_, &rtp_stream_receiver_, | 327       &video_receiver_, &rtp_stream_receiver_, &rtp_stream_receiver_, | 
| 330       rtp_stream_receiver_.IsRetransmissionsEnabled(), protected_by_fec, | 328       rtp_stream_receiver_.IsRetransmissionsEnabled(), protected_by_fec, | 
| 331       &stats_proxy_, renderer, config_.pre_render_callback)); | 329       &stats_proxy_, renderer)); | 
| 332   // Register the channel to receive stats updates. | 330   // Register the channel to receive stats updates. | 
| 333   call_stats_->RegisterStatsObserver(video_stream_decoder_.get()); | 331   call_stats_->RegisterStatsObserver(video_stream_decoder_.get()); | 
| 334   // Start the decode thread | 332   // Start the decode thread | 
| 335   decode_thread_.Start(); | 333   decode_thread_.Start(); | 
| 336   decode_thread_.SetPriority(rtc::kHighestPriority); | 334   decode_thread_.SetPriority(rtc::kHighestPriority); | 
| 337   rtp_stream_receiver_.StartReceive(); | 335   rtp_stream_receiver_.StartReceive(); | 
| 338 } | 336 } | 
| 339 | 337 | 
| 340 void VideoReceiveStream::Stop() { | 338 void VideoReceiveStream::Stop() { | 
| 341   RTC_DCHECK_RUN_ON(&worker_thread_checker_); | 339   RTC_DCHECK_RUN_ON(&worker_thread_checker_); | 
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 512     if (video_receiver_.Decode(frame.get()) == VCM_OK) | 510     if (video_receiver_.Decode(frame.get()) == VCM_OK) | 
| 513       rtp_stream_receiver_.FrameDecoded(frame->picture_id); | 511       rtp_stream_receiver_.FrameDecoded(frame->picture_id); | 
| 514   } else { | 512   } else { | 
| 515     LOG(LS_WARNING) << "No decodable frame in " << kMaxWaitForFrameMs | 513     LOG(LS_WARNING) << "No decodable frame in " << kMaxWaitForFrameMs | 
| 516                     << " ms, requesting keyframe."; | 514                     << " ms, requesting keyframe."; | 
| 517     RequestKeyFrame(); | 515     RequestKeyFrame(); | 
| 518   } | 516   } | 
| 519 } | 517 } | 
| 520 }  // namespace internal | 518 }  // namespace internal | 
| 521 }  // namespace webrtc | 519 }  // namespace webrtc | 
| OLD | NEW | 
|---|