Chromium Code Reviews| Index: talk/media/webrtc/webrtcvideoengine2.cc |
| diff --git a/talk/media/webrtc/webrtcvideoengine2.cc b/talk/media/webrtc/webrtcvideoengine2.cc |
| index 2f0768771154eb182565bffc583eecf06faaa5c6..8d48c63bb03350b40f4cecd49bf2e8cb5832c36d 100644 |
| --- a/talk/media/webrtc/webrtcvideoengine2.cc |
| +++ b/talk/media/webrtc/webrtcvideoengine2.cc |
| @@ -243,20 +243,6 @@ static bool ValidateStreamParams(const StreamParams& sp) { |
| return true; |
| } |
| -static std::string RtpExtensionsToString( |
| - const std::vector<RtpHeaderExtension>& extensions) { |
| - std::stringstream out; |
| - out << '{'; |
| - for (size_t i = 0; i < extensions.size(); ++i) { |
| - out << "{" << extensions[i].uri << ": " << extensions[i].id << "}"; |
| - if (i != extensions.size() - 1) { |
| - out << ", "; |
| - } |
| - } |
| - out << '}'; |
| - return out.str(); |
| -} |
| - |
| inline const webrtc::RtpExtension* FindHeaderExtension( |
| const std::vector<webrtc::RtpExtension>& extensions, |
| const std::string& name) { |
| @@ -370,60 +356,6 @@ static bool FindFirstMatchingCodec(const std::vector<VideoCodec>& codecs, |
| return false; |
| } |
| -static bool ValidateRtpHeaderExtensionIds( |
| - const std::vector<RtpHeaderExtension>& extensions) { |
| - std::set<int> extensions_used; |
| - for (size_t i = 0; i < extensions.size(); ++i) { |
| - if (extensions[i].id <= 0 || extensions[i].id >= 15 || |
| - !extensions_used.insert(extensions[i].id).second) { |
| - LOG(LS_ERROR) << "RTP extensions are with incorrect or duplicate ids."; |
| - return false; |
| - } |
| - } |
| - return true; |
| -} |
| - |
| -static bool CompareRtpHeaderExtensionIds( |
| - const webrtc::RtpExtension& extension1, |
| - const webrtc::RtpExtension& extension2) { |
| - // Sorting on ID is sufficient, more than one extension per ID is unsupported. |
| - return extension1.id > extension2.id; |
| -} |
| - |
| -static std::vector<webrtc::RtpExtension> FilterRtpExtensions( |
| - const std::vector<RtpHeaderExtension>& extensions) { |
| - std::vector<webrtc::RtpExtension> webrtc_extensions; |
| - for (size_t i = 0; i < extensions.size(); ++i) { |
| - // Unsupported extensions will be ignored. |
| - if (webrtc::RtpExtension::IsSupportedForVideo(extensions[i].uri)) { |
| - webrtc_extensions.push_back(webrtc::RtpExtension( |
| - extensions[i].uri, extensions[i].id)); |
| - } else { |
| - LOG(LS_WARNING) << "Unsupported RTP extension: " << extensions[i].uri; |
| - } |
| - } |
| - |
| - // Sort filtered headers to make sure that they can later be compared |
| - // regardless of in which order they were entered. |
| - std::sort(webrtc_extensions.begin(), webrtc_extensions.end(), |
| - CompareRtpHeaderExtensionIds); |
| - return webrtc_extensions; |
| -} |
| - |
| -static bool RtpExtensionsHaveChanged( |
| - const std::vector<webrtc::RtpExtension>& before, |
| - const std::vector<webrtc::RtpExtension>& after) { |
| - if (before.size() != after.size()) |
| - return true; |
| - for (size_t i = 0; i < before.size(); ++i) { |
| - if (before[i].id != after[i].id) |
| - return true; |
| - if (before[i].name != after[i].name) |
| - return true; |
| - } |
| - return false; |
| -} |
| - |
| std::vector<webrtc::VideoStream> |
| WebRtcVideoChannel2::WebRtcVideoSendStream::CreateSimulcastVideoStreams( |
| const VideoCodec& codec, |
| @@ -1507,20 +1439,17 @@ bool WebRtcVideoChannel2::MuteStream(uint32_t ssrc, bool mute) { |
| bool WebRtcVideoChannel2::SetRecvRtpHeaderExtensions( |
| const std::vector<RtpHeaderExtension>& extensions) { |
| TRACE_EVENT0("webrtc", "WebRtcVideoChannel2::SetRecvRtpHeaderExtensions"); |
| - LOG(LS_INFO) << "SetRecvRtpHeaderExtensions: " |
| - << RtpExtensionsToString(extensions); |
|
stefan-webrtc
2015/12/01 15:36:57
There might be a point to keep this since all API
the sun
2015/12/01 16:34:45
I've added log statements in Set[Recv|Send]Paramet
|
| - if (!ValidateRtpHeaderExtensionIds(extensions)) |
| + if (!ValidateRtpExtensions(extensions)) { |
| return false; |
| - |
| - std::vector<webrtc::RtpExtension> filtered_extensions = |
| - FilterRtpExtensions(extensions); |
| - if (!RtpExtensionsHaveChanged(recv_rtp_extensions_, filtered_extensions)) { |
| + } |
| + std::vector<webrtc::RtpExtension> filtered_extensions = FilterRtpExtensions( |
| + extensions, webrtc::RtpExtension::IsSupportedForVideo, false); |
| + if (recv_rtp_extensions_ == filtered_extensions) { |
| LOG(LS_INFO) << "Ignoring call to SetRecvRtpHeaderExtensions because " |
| "header extensions haven't changed."; |
| return true; |
| } |
| - |
| - recv_rtp_extensions_ = filtered_extensions; |
| + recv_rtp_extensions_.swap(filtered_extensions); |
| rtc::CritScope stream_lock(&stream_crit_); |
| for (std::map<uint32_t, WebRtcVideoReceiveStream*>::iterator it = |
| @@ -1534,21 +1463,17 @@ bool WebRtcVideoChannel2::SetRecvRtpHeaderExtensions( |
| bool WebRtcVideoChannel2::SetSendRtpHeaderExtensions( |
| const std::vector<RtpHeaderExtension>& extensions) { |
| TRACE_EVENT0("webrtc", "WebRtcVideoChannel2::SetSendRtpHeaderExtensions"); |
| - LOG(LS_INFO) << "SetSendRtpHeaderExtensions: " |
| - << RtpExtensionsToString(extensions); |
| - if (!ValidateRtpHeaderExtensionIds(extensions)) |
| + if (!ValidateRtpExtensions(extensions)) { |
| return false; |
| - |
| - std::vector<webrtc::RtpExtension> filtered_extensions = |
| - FilterRtpExtensions(FilterRedundantRtpExtensions( |
| - extensions, kBweExtensionPriorities, kBweExtensionPrioritiesLength)); |
| - if (!RtpExtensionsHaveChanged(send_rtp_extensions_, filtered_extensions)) { |
| - LOG(LS_INFO) << "Ignoring call to SetSendRtpHeaderExtensions because " |
| + } |
| + std::vector<webrtc::RtpExtension> filtered_extensions = FilterRtpExtensions( |
| + extensions, webrtc::RtpExtension::IsSupportedForVideo, true); |
| + if (send_rtp_extensions_ == filtered_extensions) { |
| + LOG(LS_INFO) << "Ignoring call to SetRecvRtpHeaderExtensions because " |
| "header extensions haven't changed."; |
| return true; |
| } |
| - |
| - send_rtp_extensions_ = filtered_extensions; |
| + send_rtp_extensions_.swap(filtered_extensions); |
| const webrtc::RtpExtension* cvo_extension = FindHeaderExtension( |
| send_rtp_extensions_, kRtpVideoRotationHeaderExtension); |