From 90397d9aa9f892df1cd67cbe00ffa6b39a5f5e48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= Date: Fri, 27 Oct 2017 10:51:20 +0200 Subject: [PATCH] Remove use of RTPFragmentationHeader from RTPSenderAudio The RTPFragmentationHeader was used when sending audio using RED for loss protection. This feature has been deprecated and gradually removed. This cl removes remnants of support from the RTP send path. Bug: webrtc:6471 Change-Id: Ia1249047b09c16f79498827f74c2ce07aa38b8f7 Reviewed-on: https://webrtc-review.googlesource.com/16427 Commit-Queue: Niels Moller Reviewed-by: Henrik Lundin Cr-Commit-Position: refs/heads/master@{#20473} --- modules/rtp_rtcp/source/rtp_sender.cc | 6 ++++-- modules/rtp_rtcp/source/rtp_sender_audio.cc | 22 +++++---------------- modules/rtp_rtcp/source/rtp_sender_audio.h | 3 +-- 3 files changed, 10 insertions(+), 21 deletions(-) diff --git a/modules/rtp_rtcp/source/rtp_sender.cc b/modules/rtp_rtcp/source/rtp_sender.cc index 5908a23e26..121efea046 100644 --- a/modules/rtp_rtcp/source/rtp_sender.cc +++ b/modules/rtp_rtcp/source/rtp_sender.cc @@ -417,9 +417,11 @@ bool RTPSender::SendOutgoingData(FrameType frame_type, if (audio_configured_) { TRACE_EVENT_ASYNC_STEP1("webrtc", "Audio", rtp_timestamp, "Send", "type", FrameTypeToString(frame_type)); - + // The only known way to produce of RTPFragmentationHeader for audio is + // to use the AudioCodingModule directly. + RTC_DCHECK(fragmentation == nullptr); result = audio_->SendAudio(frame_type, payload_type, rtp_timestamp, - payload_data, payload_size, fragmentation); + payload_data, payload_size); } else { TRACE_EVENT_ASYNC_STEP1("webrtc", "Video", capture_time_ms, "Send", "type", FrameTypeToString(frame_type)); diff --git a/modules/rtp_rtcp/source/rtp_sender_audio.cc b/modules/rtp_rtcp/source/rtp_sender_audio.cc index cc45a284ef..26108ac062 100644 --- a/modules/rtp_rtcp/source/rtp_sender_audio.cc +++ b/modules/rtp_rtcp/source/rtp_sender_audio.cc @@ -119,8 +119,7 @@ bool RTPSenderAudio::SendAudio(FrameType frame_type, int8_t payload_type, uint32_t rtp_timestamp, const uint8_t* payload_data, - size_t payload_size, - const RTPFragmentationHeader* fragmentation) { + size_t payload_size) { // From RFC 4733: // A source has wide latitude as to how often it sends event updates. A // natural interval is the spacing between non-event audio packets. [...] @@ -223,21 +222,10 @@ bool RTPSenderAudio::SendAudio(FrameType frame_type, packet->SetExtension(frame_type == kAudioFrameSpeech, audio_level_dbov); - if (fragmentation && fragmentation->fragmentationVectorSize > 0) { - // Use the fragment info if we have one. - uint8_t* payload = - packet->AllocatePayload(1 + fragmentation->fragmentationLength[0]); - if (!payload) // Too large payload buffer. - return false; - payload[0] = fragmentation->fragmentationPlType[0]; - memcpy(payload + 1, payload_data + fragmentation->fragmentationOffset[0], - fragmentation->fragmentationLength[0]); - } else { - uint8_t* payload = packet->AllocatePayload(payload_size); - if (!payload) // Too large payload buffer. - return false; - memcpy(payload, payload_data, payload_size); - } + uint8_t* payload = packet->AllocatePayload(payload_size); + if (!payload) // Too large payload buffer. + return false; + memcpy(payload, payload_data, payload_size); if (!rtp_sender_->AssignSequenceNumber(packet.get())) return false; diff --git a/modules/rtp_rtcp/source/rtp_sender_audio.h b/modules/rtp_rtcp/source/rtp_sender_audio.h index 92c9615ead..16648cd136 100644 --- a/modules/rtp_rtcp/source/rtp_sender_audio.h +++ b/modules/rtp_rtcp/source/rtp_sender_audio.h @@ -39,8 +39,7 @@ class RTPSenderAudio { int8_t payload_type, uint32_t capture_timestamp, const uint8_t* payload_data, - size_t payload_size, - const RTPFragmentationHeader* fragmentation); + size_t payload_size); // Store the audio level in dBov for // header-extension-for-audio-level-indication.