acked out 4 changesets (bug 1632489) for android crashes at test_peerConnection_maxFsConstraint.html. CLOSED TREE

Backed out changeset 22ef19e55421 (bug 1632489)
Backed out changeset 8e0260c41854 (bug 1632489)
Backed out changeset cc52615f7682 (bug 1632489)
Backed out changeset 45ad6b848a8f (bug 1632489)
This commit is contained in:
Brindusan Cristian 2020-05-14 00:15:50 +03:00
parent f6e0d86cb5
commit 1b5de135bc
5 changed files with 12 additions and 88 deletions

View File

@ -238,10 +238,6 @@ var sdputils = {
.replace(
/a=extmap:[^\s]* urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id.*\r\n/g,
""
)
.replace(
/a=extmap:[^\s]* urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id.*\r\n/g,
""
);
},
@ -269,16 +265,6 @@ var sdputils = {
"a=extmap:" +
extmap_id[1] +
"/recvonly urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\n";
var extmap_id = offer_sdp.match(
"a=extmap:([0-9+])/sendonly urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id"
);
ok(extmap_id != null, "Offer contains RID RTP header extension");
new_answer_sdp =
new_answer_sdp +
"a=extmap:" +
extmap_id[1] +
"/recvonly urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id\r\n";
return new_answer_sdp;
},

View File

@ -406,8 +406,6 @@ std::vector<SdpExtmapAttributeList::Extmap> JsepSessionImpl::GetRtpExtensions(
// TODO: Would it be worth checking that the direction is sane?
AddVideoRtpExtension(webrtc::RtpExtension::kRtpStreamIdUri,
SdpDirectionAttribute::kSendonly);
AddVideoRtpExtension(webrtc::RtpExtension::kRepairedRtpStreamIdUri,
SdpDirectionAttribute::kSendonly);
}
break;
default:;

View File

@ -118,14 +118,6 @@ class RtpPacket {
// Returns empty arrayview on failure.
rtc::ArrayView<uint8_t> AllocateRawExtension(int id, size_t length);
// Find an extension |type|.
// Returns view of the raw extension or empty view on failure.
rtc::ArrayView<const uint8_t> FindExtension(ExtensionType type) const;
// Find or allocate an extension |type|. Returns view of size |length|
// to write raw extension to or an empty view on failure.
rtc::ArrayView<uint8_t> AllocateExtension(ExtensionType type, size_t length);
// Reserve size_bytes for payload. Returns nullptr on failure.
uint8_t* SetPayloadSize(size_t size_bytes);
// Same as SetPayloadSize but doesn't guarantee to keep current payload.
@ -143,6 +135,14 @@ class RtpPacket {
// but does not touch packet own buffer, leaving packet in invalid state.
bool ParseBuffer(const uint8_t* buffer, size_t size);
// Find an extension |type|.
// Returns view of the raw extension or empty view on failure.
rtc::ArrayView<const uint8_t> FindExtension(ExtensionType type) const;
// Find or allocate an extension |type|. Returns view of size |length|
// to write raw extension to or an empty view on failure.
rtc::ArrayView<uint8_t> AllocateExtension(ExtensionType type, size_t length);
uint8_t* WriteAt(size_t offset);
void WriteAt(size_t offset, uint8_t byte);

View File

@ -1193,63 +1193,14 @@ bool RTPSender::SetFecParameters(const FecProtectionParams& delta_params,
return true;
}
static void CopyHeaderAndExtensionsToRtxPacket(const RtpPacketToSend& packet,
RtpPacketToSend* rtx_packet) {
// Set the relevant fixed packet headers. The following are not set:
// * Payload type - it is replaced in rtx packets.
// * Sequence number - RTX has a separate sequence numbering.
// * SSRC - RTX stream has its own SSRC.
rtx_packet->SetMarker(packet.Marker());
rtx_packet->SetTimestamp(packet.Timestamp());
// Set the variable fields in the packet header:
// * CSRCs - must be set before header extensions.
// * Header extensions - replace Rid header with RepairedRid header.
const std::vector<uint32_t> csrcs = packet.Csrcs();
rtx_packet->SetCsrcs(csrcs);
for (int extension_num = kRtpExtensionNone + 1;
extension_num < kRtpExtensionNumberOfExtensions; ++extension_num) {
auto extension = static_cast<RTPExtensionType>(extension_num);
// Stream ID header extensions (MID, RSID) are sent per-SSRC. Since RTX
// operates on a different SSRC, the presence and values of these header
// extensions should be determined separately and not blindly copied.
if (extension == kRtpExtensionMid ||
extension == kRtpExtensionRtpStreamId) {
continue;
}
rtc::ArrayView<const uint8_t> source = packet.FindExtension(extension);
// Empty extensions should be supported, so not checking |source.empty()|.
// TODO: But this does not work in Mozilla's version of libwebrtc. Remove
// this check with the next update from tip of libwebrtc.
if (source.empty()) {
continue;
}
rtc::ArrayView<uint8_t> destination =
rtx_packet->AllocateExtension(extension, source.size());
// Could happen if any:
// 1. Extension has 0 length.
// 2. Extension is not registered in destination.
// 3. Allocating extension in destination failed.
if (destination.empty() || source.size() != destination.size()) {
continue;
}
std::memcpy(destination.begin(), source.begin(), destination.size());
}
}
std::unique_ptr<RtpPacketToSend> RTPSender::BuildRtxPacket(
const RtpPacketToSend& packet) {
// TODO(danilchap): Create rtx packet with extra capacity for SRTP
// when transport interface would be updated to take buffer class.
std::unique_ptr<RtpPacketToSend> rtx_packet(new RtpPacketToSend(
&rtp_header_extension_map_, max_packet_size_));
&rtp_header_extension_map_, packet.size() + kRtxHeaderSize));
// Add original RTP header.
rtx_packet->CopyHeaderFrom(packet);
{
rtc::CritScope lock(&send_critsect_);
if (!sending_media_)
@ -1268,18 +1219,8 @@ std::unique_ptr<RtpPacketToSend> RTPSender::BuildRtxPacket(
// Replace SSRC.
rtx_packet->SetSsrc(*ssrc_rtx_);
CopyHeaderAndExtensionsToRtxPacket(packet, rtx_packet.get());
// Copy rtp-stream-id from packet to repaired-rtp-stream-id
if (rtp_header_extension_map_.IsRegistered(kRtpExtensionRtpStreamId) &&
rtp_header_extension_map_.IsRegistered(kRtpExtensionRepairedRtpStreamId)) {
std::string rid;
if (packet.GetExtension<RtpStreamId>(&rid)) {
rtx_packet->SetExtension<RepairedRtpStreamId>(rid);
}
}
}
uint8_t* rtx_payload =
rtx_packet->AllocatePayload(packet.payload_size() + kRtxHeaderSize);
RTC_DCHECK(rtx_payload);

View File

@ -427,14 +427,13 @@ pref("media.videocontrols.picture-in-picture.video-toggle.min-video-secs", 45);
pref("media.navigator.video.use_remb", true);
#ifdef EARLY_BETA_OR_EARLIER
pref("media.navigator.video.use_transport_cc", true);
pref("media.peerconnection.video.use_rtx", true);
#else
pref("media.navigator.video.use_transport_cc", false);
pref("media.peerconnection.video.use_rtx", false);
#endif
pref("media.navigator.video.use_tmmbr", false);
pref("media.navigator.audio.use_fec", true);
pref("media.navigator.video.red_ulpfec_enabled", false);
pref("media.peerconnection.video.use_rtx", false);
#ifdef NIGHTLY_BUILD
pref("media.peerconnection.sdp.parser", "sipcc");