Fix test_support_unittests with enable_iterator_debugging=true

Fix test_support_unittests with enable_iterator_debugging=true when
compiling on Windows.

gn gen out\Debug --args="is_debug=true enable_iterator_debugging=true
use_custom_libcxx=false ffmpeg_branding=\"Chrome\""
ninja -C out\Debug test_support_unittests
out\Debug\test_support_unittests

Bug: webrtc:10927
Change-Id: Ie24dbdd5c7700615525db6b00efc85dc384a8173
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150797
Reviewed-by: Yves Gerey <yvesg@google.com>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Kimmo Kinnunen FI <kkinnunen@nvidia.com>
Cr-Commit-Position: refs/heads/master@{#29019}
This commit is contained in:
Kimmo Kinnunen
2019-08-29 16:14:58 +03:00
committed by Commit Bot
parent 9f00f0e533
commit 4894fdeba2

View File

@ -211,12 +211,12 @@ LocalAndRemoteSdp SignalingInterceptor::PatchVp8Offer(
for (auto ext_it = extensions.begin(); ext_it != extensions.end();) {
if (ext_it->uri == RtpExtension::kRidUri) {
// We don't need rid extension for remote peer.
extensions.erase(ext_it);
ext_it = extensions.erase(ext_it);
continue;
}
if (ext_it->uri == RtpExtension::kRepairedRidUri) {
// We don't support RTX in simulcast.
extensions.erase(ext_it);
ext_it = extensions.erase(ext_it);
continue;
}
if (ext_it->uri == RtpExtension::kMidUri) {
@ -224,6 +224,7 @@ LocalAndRemoteSdp SignalingInterceptor::PatchVp8Offer(
}
++ext_it;
}
prototype_media_desc->ClearRtpHeaderExtensions();
prototype_media_desc->set_rtp_header_extensions(extensions);
@ -256,16 +257,13 @@ LocalAndRemoteSdp SignalingInterceptor::PatchVp8Offer(
// Update transport_infos to add TransportInfo for each new media section.
std::vector<cricket::TransportInfo> transport_infos = desc->transport_infos();
for (auto info_it = transport_infos.begin();
info_it != transport_infos.end();) {
if (context_.simulcast_infos_by_mid.find(info_it->content_name) !=
context_.simulcast_infos_by_mid.end()) {
transport_infos.erase(std::remove_if(
transport_infos.begin(), transport_infos.end(),
[this](const cricket::TransportInfo& ti) {
// Remove transport infos that correspond to simulcast video sections.
transport_infos.erase(info_it);
} else {
++info_it;
}
}
return context_.simulcast_infos_by_mid.find(ti.content_name) !=
context_.simulcast_infos_by_mid.end();
}));
for (auto& info : context_.simulcast_infos) {
for (auto& rid : info.rids) {
transport_infos.emplace_back(rid, info.transport_description);
@ -395,15 +393,14 @@ LocalAndRemoteSdp SignalingInterceptor::PatchVp8Answer(
std::vector<webrtc::RtpExtension> extensions =
media_desc->rtp_header_extensions();
// First remove existing rid/mid header extensions.
for (auto ext_it = extensions.begin(); ext_it != extensions.end();) {
if (ext_it->uri == RtpExtension::kMidUri ||
ext_it->uri == RtpExtension::kRidUri ||
ext_it->uri == RtpExtension::kRepairedRidUri) {
extensions.erase(ext_it);
continue;
}
++ext_it;
}
extensions.erase(std::remove_if(extensions.begin(), extensions.end(),
[](const webrtc::RtpExtension& e) {
return e.uri == RtpExtension::kMidUri ||
e.uri == RtpExtension::kRidUri ||
e.uri ==
RtpExtension::kRepairedRidUri;
}));
// Then add right ones.
extensions.push_back(info.mid_extension);
extensions.push_back(info.rid_extension);
@ -457,7 +454,7 @@ LocalAndRemoteSdp SignalingInterceptor::PatchVp8Answer(
// This transport info correspond to some extra added media section.
mid_to_transport_description.insert(
{it->second->mid, info_it->description});
transport_infos.erase(info_it);
info_it = transport_infos.erase(info_it);
} else {
++info_it;
}