| Index: webrtc/modules/rtp_rtcp/source/rtp_receiver_impl.cc
|
| diff --git a/webrtc/modules/rtp_rtcp/source/rtp_receiver_impl.cc b/webrtc/modules/rtp_rtcp/source/rtp_receiver_impl.cc
|
| index 9dd43c416abd02112087364eb925f5600d8e4cae..79e43ef073536d17e58d6f7b8200e0a7d79be743 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/rtp_receiver_impl.cc
|
| +++ b/webrtc/modules/rtp_rtcp/source/rtp_receiver_impl.cc
|
| @@ -15,9 +15,6 @@
|
| #include <stdlib.h>
|
| #include <string.h>
|
|
|
| -#include <set>
|
| -#include <vector>
|
| -
|
| #include "webrtc/base/logging.h"
|
| #include "webrtc/common_types.h"
|
| #include "webrtc/modules/rtp_rtcp/include/rtp_payload_registry.h"
|
| @@ -27,9 +24,6 @@
|
| namespace webrtc {
|
|
|
| using RtpUtility::Payload;
|
| -
|
| -// Only return the sources in the last 10 seconds.
|
| -const int64_t kGetSourcesTimeoutMs = 10000;
|
|
|
| RtpReceiver* RtpReceiver::CreateVideoReceiver(
|
| Clock* clock,
|
| @@ -59,10 +53,11 @@
|
| RTPReceiverStrategy::CreateAudioStrategy(incoming_payload_callback));
|
| }
|
|
|
| -RtpReceiverImpl::RtpReceiverImpl(Clock* clock,
|
| - RtpFeedback* incoming_messages_callback,
|
| - RTPPayloadRegistry* rtp_payload_registry,
|
| - RTPReceiverStrategy* rtp_media_receiver)
|
| +RtpReceiverImpl::RtpReceiverImpl(
|
| + Clock* clock,
|
| + RtpFeedback* incoming_messages_callback,
|
| + RTPPayloadRegistry* rtp_payload_registry,
|
| + RTPReceiverStrategy* rtp_media_receiver)
|
| : clock_(clock),
|
| rtp_payload_registry_(rtp_payload_registry),
|
| rtp_media_receiver_(rtp_media_receiver),
|
| @@ -165,8 +160,6 @@
|
| webrtc_rtp_header.header = rtp_header;
|
| CheckCSRC(webrtc_rtp_header);
|
|
|
| - UpdateSources();
|
| -
|
| size_t payload_data_length = payload_length - rtp_header.paddingLength;
|
|
|
| bool is_first_packet_in_frame = false;
|
| @@ -208,45 +201,6 @@
|
|
|
| TelephoneEventHandler* RtpReceiverImpl::GetTelephoneEventHandler() {
|
| return rtp_media_receiver_->GetTelephoneEventHandler();
|
| -}
|
| -
|
| -std::vector<RtpSource> RtpReceiverImpl::GetSources() const {
|
| - int64_t now_ms = clock_->TimeInMilliseconds();
|
| - std::vector<RtpSource> sources;
|
| -
|
| - {
|
| - rtc::CritScope lock(&critical_section_rtp_receiver_);
|
| -
|
| - RTC_DCHECK(std::is_sorted(ssrc_sources_.begin(), ssrc_sources_.end(),
|
| - [](const RtpSource& lhs, const RtpSource& rhs) {
|
| - return lhs.timestamp_ms() < rhs.timestamp_ms();
|
| - }));
|
| - RTC_DCHECK(std::is_sorted(csrc_sources_.begin(), csrc_sources_.end(),
|
| - [](const RtpSource& lhs, const RtpSource& rhs) {
|
| - return lhs.timestamp_ms() < rhs.timestamp_ms();
|
| - }));
|
| -
|
| - std::set<uint32_t> selected_ssrcs;
|
| - for (auto rit = ssrc_sources_.rbegin(); rit != ssrc_sources_.rend();
|
| - ++rit) {
|
| - if ((now_ms - rit->timestamp_ms()) > kGetSourcesTimeoutMs) {
|
| - break;
|
| - }
|
| - if (selected_ssrcs.insert(rit->source_id()).second) {
|
| - sources.push_back(*rit);
|
| - }
|
| - }
|
| -
|
| - for (auto rit = csrc_sources_.rbegin(); rit != csrc_sources_.rend();
|
| - ++rit) {
|
| - if ((now_ms - rit->timestamp_ms()) > kGetSourcesTimeoutMs) {
|
| - break;
|
| - }
|
| - sources.push_back(*rit);
|
| - }
|
| - } // End critsect.
|
| -
|
| - return sources;
|
| }
|
|
|
| bool RtpReceiverImpl::Timestamp(uint32_t* timestamp) const {
|
| @@ -507,54 +461,4 @@
|
| }
|
| }
|
|
|
| -void RtpReceiverImpl::UpdateSources() {
|
| - rtc::CritScope lock(&critical_section_rtp_receiver_);
|
| - int64_t now_ms = clock_->TimeInMilliseconds();
|
| -
|
| - for (size_t i = 0; i < num_csrcs_; ++i) {
|
| - auto map_it = iterator_by_csrc_.find(current_remote_csrc_[i]);
|
| - if (map_it == iterator_by_csrc_.end()) {
|
| - // If it is a new CSRC, append a new object to the end of the list.
|
| - csrc_sources_.emplace_back(now_ms, current_remote_csrc_[i],
|
| - RtpSourceType::CSRC);
|
| - } else {
|
| - // If it is an existing CSRC, move the object to the end of the list.
|
| - map_it->second->update_timestamp_ms(now_ms);
|
| - csrc_sources_.splice(csrc_sources_.end(), csrc_sources_, map_it->second);
|
| - }
|
| - // Update the unordered_map.
|
| - iterator_by_csrc_[current_remote_csrc_[i]] = std::prev(csrc_sources_.end());
|
| - }
|
| -
|
| - // If this is the first packet or the SSRC is changed, insert a new
|
| - // contributing source that uses the SSRC.
|
| - if (ssrc_sources_.empty() || ssrc_sources_.rbegin()->source_id() != ssrc_) {
|
| - ssrc_sources_.emplace_back(now_ms, ssrc_, RtpSourceType::SSRC);
|
| - } else {
|
| - ssrc_sources_.rbegin()->update_timestamp_ms(now_ms);
|
| - }
|
| -
|
| - RemoveOutdatedSources(now_ms);
|
| -}
|
| -
|
| -void RtpReceiverImpl::RemoveOutdatedSources(int64_t now_ms) {
|
| - std::list<RtpSource>::iterator it;
|
| - for (it = csrc_sources_.begin(); it != csrc_sources_.end(); ++it) {
|
| - if ((now_ms - it->timestamp_ms()) <= kGetSourcesTimeoutMs) {
|
| - break;
|
| - }
|
| - iterator_by_csrc_.erase(it->source_id());
|
| - }
|
| - csrc_sources_.erase(csrc_sources_.begin(), it);
|
| -
|
| - std::vector<RtpSource>::iterator vec_it;
|
| - for (vec_it = ssrc_sources_.begin(); vec_it != ssrc_sources_.end();
|
| - ++vec_it) {
|
| - if ((now_ms - vec_it->timestamp_ms()) <= kGetSourcesTimeoutMs) {
|
| - break;
|
| - }
|
| - }
|
| - ssrc_sources_.erase(ssrc_sources_.begin(), vec_it);
|
| -}
|
| -
|
| } // namespace webrtc
|
|
|