diff --git a/media/base/fake_media_engine.h b/media/base/fake_media_engine.h index 3f1c28ba2c..c26095d3a7 100644 --- a/media/base/fake_media_engine.h +++ b/media/base/fake_media_engine.h @@ -267,13 +267,13 @@ class RtpHelper : public Base { void set_recv_rtcp_parameters(const RtcpParameters& params) { recv_rtcp_parameters_ = params; } - virtual void OnPacketReceived(rtc::CopyOnWriteBuffer* packet, + virtual void OnPacketReceived(rtc::CopyOnWriteBuffer packet, int64_t packet_time_us) { - rtp_packets_.push_back(std::string(packet->data(), packet->size())); + rtp_packets_.push_back(std::string(packet.cdata(), packet.size())); } - virtual void OnRtcpReceived(rtc::CopyOnWriteBuffer* packet, + virtual void OnRtcpReceived(rtc::CopyOnWriteBuffer packet, int64_t packet_time_us) { - rtcp_packets_.push_back(std::string(packet->data(), packet->size())); + rtcp_packets_.push_back(std::string(packet.cdata(), packet.size())); } virtual void OnReadyToSend(bool ready) { ready_to_send_ = ready; } diff --git a/media/base/fake_network_interface.h b/media/base/fake_network_interface.h index e61202ffd3..1609f7d3de 100644 --- a/media/base/fake_network_interface.h +++ b/media/base/fake_network_interface.h @@ -169,9 +169,9 @@ class FakeNetworkInterface : public MediaChannel::NetworkInterface, static_cast*>(msg->pdata); if (dest_) { if (msg->message_id == ST_RTP) { - dest_->OnPacketReceived(&msg_data->data(), rtc::TimeMicros()); + dest_->OnPacketReceived(msg_data->data(), rtc::TimeMicros()); } else { - dest_->OnRtcpReceived(&msg_data->data(), rtc::TimeMicros()); + dest_->OnRtcpReceived(msg_data->data(), rtc::TimeMicros()); } } delete msg_data; diff --git a/media/base/media_channel.h b/media/base/media_channel.h index 7891e5569b..617af3292e 100644 --- a/media/base/media_channel.h +++ b/media/base/media_channel.h @@ -196,10 +196,10 @@ class MediaChannel : public sigslot::has_slots<> { virtual void SetInterface(NetworkInterface* iface, webrtc::MediaTransportInterface* media_transport); // Called when a RTP packet is received. - virtual void OnPacketReceived(rtc::CopyOnWriteBuffer* packet, + virtual void OnPacketReceived(rtc::CopyOnWriteBuffer packet, int64_t packet_time_us) = 0; // Called when a RTCP packet is received. - virtual void OnRtcpReceived(rtc::CopyOnWriteBuffer* packet, + virtual void OnRtcpReceived(rtc::CopyOnWriteBuffer packet, int64_t packet_time_us) = 0; // Called when the socket's ability to send has changed. virtual void OnReadyToSend(bool ready) = 0; diff --git a/media/base/rtp_data_engine.cc b/media/base/rtp_data_engine.cc index be71f46b95..33c87cbf1a 100644 --- a/media/base/rtp_data_engine.cc +++ b/media/base/rtp_data_engine.cc @@ -194,20 +194,20 @@ bool RtpDataMediaChannel::RemoveRecvStream(uint32_t ssrc) { return true; } -void RtpDataMediaChannel::OnPacketReceived(rtc::CopyOnWriteBuffer* packet, +void RtpDataMediaChannel::OnPacketReceived(rtc::CopyOnWriteBuffer packet, int64_t /* packet_time_us */) { RtpHeader header; - if (!GetRtpHeader(packet->cdata(), packet->size(), &header)) { + if (!GetRtpHeader(packet.cdata(), packet.size(), &header)) { return; } size_t header_length; - if (!GetRtpHeaderLen(packet->cdata(), packet->size(), &header_length)) { + if (!GetRtpHeaderLen(packet.cdata(), packet.size(), &header_length)) { return; } const char* data = - packet->cdata() + header_length + sizeof(kReservedSpace); - size_t data_len = packet->size() - header_length - sizeof(kReservedSpace); + packet.cdata() + header_length + sizeof(kReservedSpace); + size_t data_len = packet.size() - header_length - sizeof(kReservedSpace); if (!receiving_) { RTC_LOG(LS_WARNING) << "Not receiving packet " << header.ssrc << ":" diff --git a/media/base/rtp_data_engine.h b/media/base/rtp_data_engine.h index 6ac09aa3f4..a4647aef34 100644 --- a/media/base/rtp_data_engine.h +++ b/media/base/rtp_data_engine.h @@ -81,9 +81,9 @@ class RtpDataMediaChannel : public DataMediaChannel { receiving_ = receive; return true; } - virtual void OnPacketReceived(rtc::CopyOnWriteBuffer* packet, + virtual void OnPacketReceived(rtc::CopyOnWriteBuffer packet, int64_t packet_time_us); - virtual void OnRtcpReceived(rtc::CopyOnWriteBuffer* packet, + virtual void OnRtcpReceived(rtc::CopyOnWriteBuffer packet, int64_t packet_time_us) {} virtual void OnReadyToSend(bool ready) {} virtual bool SendData(const SendDataParams& params, diff --git a/media/base/rtp_data_engine_unittest.cc b/media/base/rtp_data_engine_unittest.cc index d0e4e84076..bcba9a4add 100644 --- a/media/base/rtp_data_engine_unittest.cc +++ b/media/base/rtp_data_engine_unittest.cc @@ -319,13 +319,13 @@ TEST_F(RtpDataMediaChannelTest, ReceiveData) { std::unique_ptr dmc(CreateChannel()); // SetReceived not called. - dmc->OnPacketReceived(&packet, /* packet_time_us */ -1); + dmc->OnPacketReceived(packet, /* packet_time_us */ -1); EXPECT_FALSE(HasReceivedData()); dmc->SetReceive(true); // Unknown payload id - dmc->OnPacketReceived(&packet, /* packet_time_us */ -1); + dmc->OnPacketReceived(packet, /* packet_time_us */ -1); EXPECT_FALSE(HasReceivedData()); cricket::DataCodec codec; @@ -336,7 +336,7 @@ TEST_F(RtpDataMediaChannelTest, ReceiveData) { ASSERT_TRUE(dmc->SetRecvParameters(parameters)); // Unknown stream - dmc->OnPacketReceived(&packet, /* packet_time_us */ -1); + dmc->OnPacketReceived(packet, /* packet_time_us */ -1); EXPECT_FALSE(HasReceivedData()); cricket::StreamParams stream; @@ -344,7 +344,7 @@ TEST_F(RtpDataMediaChannelTest, ReceiveData) { ASSERT_TRUE(dmc->AddRecvStream(stream)); // Finally works! - dmc->OnPacketReceived(&packet, /* packet_time_us */ -1); + dmc->OnPacketReceived(packet, /* packet_time_us */ -1); EXPECT_TRUE(HasReceivedData()); EXPECT_EQ("abcde", GetReceivedData()); EXPECT_EQ(5U, GetReceivedDataLen()); @@ -357,6 +357,6 @@ TEST_F(RtpDataMediaChannelTest, InvalidRtpPackets) { std::unique_ptr dmc(CreateChannel()); // Too short - dmc->OnPacketReceived(&packet, /* packet_time_us */ -1); + dmc->OnPacketReceived(packet, /* packet_time_us */ -1); EXPECT_FALSE(HasReceivedData()); } diff --git a/media/engine/webrtc_video_engine.cc b/media/engine/webrtc_video_engine.cc index c0848f6bd5..7ee30848f9 100644 --- a/media/engine/webrtc_video_engine.cc +++ b/media/engine/webrtc_video_engine.cc @@ -1360,11 +1360,11 @@ void WebRtcVideoChannel::FillSendAndReceiveCodecStats( } } -void WebRtcVideoChannel::OnPacketReceived(rtc::CopyOnWriteBuffer* packet, +void WebRtcVideoChannel::OnPacketReceived(rtc::CopyOnWriteBuffer packet, int64_t packet_time_us) { RTC_DCHECK_RUN_ON(&thread_checker_); const webrtc::PacketReceiver::DeliveryStatus delivery_result = - call_->Receiver()->DeliverPacket(webrtc::MediaType::VIDEO, *packet, + call_->Receiver()->DeliverPacket(webrtc::MediaType::VIDEO, packet, packet_time_us); switch (delivery_result) { case webrtc::PacketReceiver::DELIVERY_OK: @@ -1380,12 +1380,12 @@ void WebRtcVideoChannel::OnPacketReceived(rtc::CopyOnWriteBuffer* packet, } uint32_t ssrc = 0; - if (!GetRtpSsrc(packet->cdata(), packet->size(), &ssrc)) { + if (!GetRtpSsrc(packet.cdata(), packet.size(), &ssrc)) { return; } int payload_type = 0; - if (!GetRtpPayloadType(packet->cdata(), packet->size(), &payload_type)) { + if (!GetRtpPayloadType(packet.cdata(), packet.size(), &payload_type)) { return; } @@ -1412,7 +1412,7 @@ void WebRtcVideoChannel::OnPacketReceived(rtc::CopyOnWriteBuffer* packet, break; } - if (call_->Receiver()->DeliverPacket(webrtc::MediaType::VIDEO, *packet, + if (call_->Receiver()->DeliverPacket(webrtc::MediaType::VIDEO, packet, packet_time_us) != webrtc::PacketReceiver::DELIVERY_OK) { RTC_LOG(LS_WARNING) << "Failed to deliver RTP packet on re-delivery."; @@ -1420,14 +1420,14 @@ void WebRtcVideoChannel::OnPacketReceived(rtc::CopyOnWriteBuffer* packet, } } -void WebRtcVideoChannel::OnRtcpReceived(rtc::CopyOnWriteBuffer* packet, +void WebRtcVideoChannel::OnRtcpReceived(rtc::CopyOnWriteBuffer packet, int64_t packet_time_us) { RTC_DCHECK_RUN_ON(&thread_checker_); // TODO(pbos): Check webrtc::PacketReceiver::DELIVERY_OK once we deliver // for both audio and video on the same path. Since BundleFilter doesn't // filter RTCP anymore incoming RTCP packets could've been going to audio (so // logging failures spam the log). - call_->Receiver()->DeliverPacket(webrtc::MediaType::VIDEO, *packet, + call_->Receiver()->DeliverPacket(webrtc::MediaType::VIDEO, packet, packet_time_us); } diff --git a/media/engine/webrtc_video_engine.h b/media/engine/webrtc_video_engine.h index 35e6b855de..f3d4104973 100644 --- a/media/engine/webrtc_video_engine.h +++ b/media/engine/webrtc_video_engine.h @@ -144,9 +144,9 @@ class WebRtcVideoChannel : public VideoMediaChannel, public webrtc::Transport { void FillBitrateInfo(BandwidthEstimationInfo* bwe_info) override; bool GetStats(VideoMediaInfo* info) override; - void OnPacketReceived(rtc::CopyOnWriteBuffer* packet, + void OnPacketReceived(rtc::CopyOnWriteBuffer packet, int64_t packet_time_us) override; - void OnRtcpReceived(rtc::CopyOnWriteBuffer* packet, + void OnRtcpReceived(rtc::CopyOnWriteBuffer packet, int64_t packet_time_us) override; void OnReadyToSend(bool ready) override; void OnNetworkRouteChanged(const std::string& transport_name, diff --git a/media/engine/webrtc_video_engine_unittest.cc b/media/engine/webrtc_video_engine_unittest.cc index 3b14f27e38..1649244fbc 100644 --- a/media/engine/webrtc_video_engine_unittest.cc +++ b/media/engine/webrtc_video_engine_unittest.cc @@ -1729,7 +1729,7 @@ TEST_F(WebRtcVideoChannelBaseTest, SetSink) { EXPECT_TRUE(SetDefaultCodec()); EXPECT_TRUE(SetSend(true)); EXPECT_EQ(0, renderer_.num_rendered_frames()); - channel_->OnPacketReceived(&packet1, /* packet_time_us */ -1); + channel_->OnPacketReceived(packet1, /* packet_time_us */ -1); EXPECT_TRUE(channel_->SetSink(kDefaultReceiveSsrc, &renderer_)); SendFrame(); EXPECT_FRAME_WAIT(1, kVideoWidth, kVideoHeight, kTimeout); @@ -4835,7 +4835,7 @@ TEST_F(WebRtcVideoChannelTest, DefaultReceiveStreamReconfiguresToUseRtx) { memset(data, 0, sizeof(data)); rtc::SetBE32(&data[8], ssrcs[0]); rtc::CopyOnWriteBuffer packet(data, kDataLength); - channel_->OnPacketReceived(&packet, /* packet_time_us */ -1); + channel_->OnPacketReceived(packet, /* packet_time_us */ -1); ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size()) << "No default receive stream created."; @@ -4993,7 +4993,7 @@ TEST_F(WebRtcVideoChannelTest, RecvUnsignaledSsrcWithSignaledStreamId) { memset(data, 0, sizeof(data)); rtc::SetBE32(&data[8], kIncomingUnsignalledSsrc); rtc::CopyOnWriteBuffer packet(data, kDataLength); - channel_->OnPacketReceived(&packet, /* packet_time_us */ -1); + channel_->OnPacketReceived(packet, /* packet_time_us */ -1); // The stream should now be created with the appropriate sync label. EXPECT_EQ(1u, fake_call_->GetVideoReceiveStreams().size()); @@ -5006,7 +5006,7 @@ TEST_F(WebRtcVideoChannelTest, RecvUnsignaledSsrcWithSignaledStreamId) { ASSERT_TRUE(channel_->RemoveRecvStream(kIncomingUnsignalledSsrc)); EXPECT_EQ(0u, fake_call_->GetVideoReceiveStreams().size()); - channel_->OnPacketReceived(&packet, /* packet_time_us */ -1); + channel_->OnPacketReceived(packet, /* packet_time_us */ -1); EXPECT_EQ(1u, fake_call_->GetVideoReceiveStreams().size()); EXPECT_TRUE( fake_call_->GetVideoReceiveStreams()[0]->GetConfig().sync_group.empty()); @@ -5045,7 +5045,7 @@ TEST_F(WebRtcVideoChannelTest, BaseMinimumPlayoutDelayMsUnsignaledRecvStream) { memset(data, 0, sizeof(data)); rtc::SetBE32(&data[8], kIncomingUnsignalledSsrc); rtc::CopyOnWriteBuffer packet(data, kDataLength); - channel_->OnPacketReceived(&packet, /* packet_time_us */ -1); + channel_->OnPacketReceived(packet, /* packet_time_us */ -1); recv_stream = fake_call_->GetVideoReceiveStream(kIncomingUnsignalledSsrc); EXPECT_EQ(recv_stream->base_mininum_playout_delay_ms(), 200); @@ -5082,7 +5082,7 @@ void WebRtcVideoChannelTest::TestReceiveUnsignaledSsrcPacket( rtc::Set8(data, 1, payload_type); rtc::SetBE32(&data[8], kIncomingUnsignalledSsrc); rtc::CopyOnWriteBuffer packet(data, kDataLength); - channel_->OnPacketReceived(&packet, /* packet_time_us */ -1); + channel_->OnPacketReceived(packet, /* packet_time_us */ -1); if (expect_created_receive_stream) { EXPECT_EQ(1u, fake_call_->GetVideoReceiveStreams().size()) @@ -5169,7 +5169,7 @@ TEST_F(WebRtcVideoChannelTest, ReceiveDifferentUnsignaledSsrc) { rtpHeader.ssrc = kIncomingUnsignalledSsrc + 1; cricket::SetRtpHeader(data, sizeof(data), rtpHeader); rtc::CopyOnWriteBuffer packet(data, sizeof(data)); - channel_->OnPacketReceived(&packet, /* packet_time_us */ -1); + channel_->OnPacketReceived(packet, /* packet_time_us */ -1); // VP8 packet should create default receive stream. ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size()); FakeVideoReceiveStream* recv_stream = fake_call_->GetVideoReceiveStreams()[0]; @@ -5190,7 +5190,7 @@ TEST_F(WebRtcVideoChannelTest, ReceiveDifferentUnsignaledSsrc) { rtpHeader.ssrc = kIncomingUnsignalledSsrc + 2; cricket::SetRtpHeader(data, sizeof(data), rtpHeader); rtc::CopyOnWriteBuffer packet2(data, sizeof(data)); - channel_->OnPacketReceived(&packet2, /* packet_time_us */ -1); + channel_->OnPacketReceived(packet2, /* packet_time_us */ -1); // VP9 packet should replace the default receive SSRC. ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size()); recv_stream = fake_call_->GetVideoReceiveStreams()[0]; @@ -5212,7 +5212,7 @@ TEST_F(WebRtcVideoChannelTest, ReceiveDifferentUnsignaledSsrc) { rtpHeader.ssrc = kIncomingUnsignalledSsrc + 3; cricket::SetRtpHeader(data, sizeof(data), rtpHeader); rtc::CopyOnWriteBuffer packet3(data, sizeof(data)); - channel_->OnPacketReceived(&packet3, /* packet_time_us */ -1); + channel_->OnPacketReceived(packet3, /* packet_time_us */ -1); // H264 packet should replace the default receive SSRC. ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size()); recv_stream = fake_call_->GetVideoReceiveStreams()[0]; @@ -5251,7 +5251,7 @@ TEST_F(WebRtcVideoChannelTest, rtp_header.ssrc = kSsrcs3[0]; cricket::SetRtpHeader(data, sizeof(data), rtp_header); rtc::CopyOnWriteBuffer packet(data, sizeof(data)); - channel_->OnPacketReceived(&packet, /* packet_time_us */ -1); + channel_->OnPacketReceived(packet, /* packet_time_us */ -1); // Default receive stream should be created. ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size()); FakeVideoReceiveStream* recv_stream0 = @@ -5269,7 +5269,7 @@ TEST_F(WebRtcVideoChannelTest, rtp_header.ssrc = kSsrcs3[1]; cricket::SetRtpHeader(data, sizeof(data), rtp_header); packet.SetData(data, sizeof(data)); - channel_->OnPacketReceived(&packet, /* packet_time_us */ -1); + channel_->OnPacketReceived(packet, /* packet_time_us */ -1); // New default receive stream should be created, but old stream should remain. ASSERT_EQ(2u, fake_call_->GetVideoReceiveStreams().size()); EXPECT_EQ(recv_stream0, fake_call_->GetVideoReceiveStreams()[0]); @@ -6891,7 +6891,7 @@ TEST_F(WebRtcVideoChannelTest, GetRtpReceiveParametersWithUnsignaledSsrc) { rtpHeader.ssrc = kIncomingUnsignalledSsrc; cricket::SetRtpHeader(data, sizeof(data), rtpHeader); rtc::CopyOnWriteBuffer packet(data, sizeof(data)); - channel_->OnPacketReceived(&packet, /* packet_time_us */ -1); + channel_->OnPacketReceived(packet, /* packet_time_us */ -1); // The |ssrc| member should still be unset. rtp_parameters = channel_->GetRtpReceiveParameters(0); @@ -7191,7 +7191,7 @@ TEST_F(WebRtcVideoChannelTestWithClock, GetSources) { EXPECT_TRUE(SetDefaultCodec()); EXPECT_TRUE(SetSend(true)); EXPECT_EQ(0, renderer_.num_rendered_frames()); - channel_->OnPacketReceived(&packet1, /*packet_time_us=*/-1); + channel_->OnPacketReceived(packet1, /*packet_time_us=*/-1); std::vector sources = channel_->GetSources(kSsrc); EXPECT_EQ(1u, sources.size()); @@ -7201,7 +7201,7 @@ TEST_F(WebRtcVideoChannelTestWithClock, GetSources) { // a new packet. int64_t timeDeltaMs = 1; fake_clock_.AdvanceTime(webrtc::TimeDelta::ms(timeDeltaMs)); - channel_->OnPacketReceived(&packet1, /*packet_time_us=*/-1); + channel_->OnPacketReceived(packet1, /*packet_time_us=*/-1); int64_t timestamp2 = channel_->GetSources(kSsrc)[0].timestamp_ms(); EXPECT_EQ(timestamp2, timestamp1 + timeDeltaMs); @@ -7226,7 +7226,7 @@ TEST_F(WebRtcVideoChannelTestWithClock, GetContributingSources) { EXPECT_TRUE(SetDefaultCodec()); EXPECT_TRUE(SetSend(true)); EXPECT_EQ(0, renderer_.num_rendered_frames()); - channel_->OnPacketReceived(&packet1, /*packet_time_us=*/-1); + channel_->OnPacketReceived(packet1, /*packet_time_us=*/-1); { ASSERT_EQ(2u, channel_->GetSources(kSsrc).size()); @@ -7251,7 +7251,7 @@ TEST_F(WebRtcVideoChannelTestWithClock, GetContributingSources) { int64_t timeDeltaMs = 1; fake_clock_.AdvanceTime(webrtc::TimeDelta::ms(timeDeltaMs)); - channel_->OnPacketReceived(&packet2, /*packet_time_us=*/-1); + channel_->OnPacketReceived(packet2, /*packet_time_us=*/-1); { ASSERT_EQ(2u, channel_->GetSources(kSsrc).size()); diff --git a/media/engine/webrtc_voice_engine.cc b/media/engine/webrtc_voice_engine.cc index b7128faa96..1594849cd9 100644 --- a/media/engine/webrtc_voice_engine.cc +++ b/media/engine/webrtc_voice_engine.cc @@ -2058,12 +2058,12 @@ bool WebRtcVoiceMediaChannel::InsertDtmf(uint32_t ssrc, event, duration); } -void WebRtcVoiceMediaChannel::OnPacketReceived(rtc::CopyOnWriteBuffer* packet, +void WebRtcVoiceMediaChannel::OnPacketReceived(rtc::CopyOnWriteBuffer packet, int64_t packet_time_us) { RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); webrtc::PacketReceiver::DeliveryStatus delivery_result = - call_->Receiver()->DeliverPacket(webrtc::MediaType::AUDIO, *packet, + call_->Receiver()->DeliverPacket(webrtc::MediaType::AUDIO, packet, packet_time_us); if (delivery_result != webrtc::PacketReceiver::DELIVERY_UNKNOWN_SSRC) { @@ -2074,7 +2074,7 @@ void WebRtcVoiceMediaChannel::OnPacketReceived(rtc::CopyOnWriteBuffer* packet, // If there already is N unsignaled receive streams, delete the oldest. // See: https://bugs.chromium.org/p/webrtc/issues/detail?id=5208 uint32_t ssrc = 0; - if (!GetRtpSsrc(packet->cdata(), packet->size(), &ssrc)) { + if (!GetRtpSsrc(packet.cdata(), packet.size(), &ssrc)) { return; } RTC_DCHECK(!absl::c_linear_search(unsignaled_recv_ssrcs_, ssrc)); @@ -2117,16 +2117,16 @@ void WebRtcVoiceMediaChannel::OnPacketReceived(rtc::CopyOnWriteBuffer* packet, } delivery_result = call_->Receiver()->DeliverPacket(webrtc::MediaType::AUDIO, - *packet, packet_time_us); + packet, packet_time_us); RTC_DCHECK_NE(webrtc::PacketReceiver::DELIVERY_UNKNOWN_SSRC, delivery_result); } -void WebRtcVoiceMediaChannel::OnRtcpReceived(rtc::CopyOnWriteBuffer* packet, +void WebRtcVoiceMediaChannel::OnRtcpReceived(rtc::CopyOnWriteBuffer packet, int64_t packet_time_us) { RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); // Forward packet to Call as well. - call_->Receiver()->DeliverPacket(webrtc::MediaType::AUDIO, *packet, + call_->Receiver()->DeliverPacket(webrtc::MediaType::AUDIO, packet, packet_time_us); } diff --git a/media/engine/webrtc_voice_engine.h b/media/engine/webrtc_voice_engine.h index cbec00353d..5b3f864506 100644 --- a/media/engine/webrtc_voice_engine.h +++ b/media/engine/webrtc_voice_engine.h @@ -201,9 +201,9 @@ class WebRtcVoiceMediaChannel final : public VoiceMediaChannel, bool CanInsertDtmf() override; bool InsertDtmf(uint32_t ssrc, int event, int duration) override; - void OnPacketReceived(rtc::CopyOnWriteBuffer* packet, + void OnPacketReceived(rtc::CopyOnWriteBuffer packet, int64_t packet_time_us) override; - void OnRtcpReceived(rtc::CopyOnWriteBuffer* packet, + void OnRtcpReceived(rtc::CopyOnWriteBuffer packet, int64_t packet_time_us) override; void OnNetworkRouteChanged(const std::string& transport_name, const rtc::NetworkRoute& network_route) override; diff --git a/media/engine/webrtc_voice_engine_unittest.cc b/media/engine/webrtc_voice_engine_unittest.cc index 4b1a5287b6..ebb2ec28d3 100644 --- a/media/engine/webrtc_voice_engine_unittest.cc +++ b/media/engine/webrtc_voice_engine_unittest.cc @@ -255,7 +255,7 @@ class WebRtcVoiceEngineTestFake : public testing::Test { void DeliverPacket(const void* data, int len) { rtc::CopyOnWriteBuffer packet(reinterpret_cast(data), len); - channel_->OnPacketReceived(&packet, /* packet_time_us */ -1); + channel_->OnPacketReceived(packet, /* packet_time_us */ -1); } void TearDown() override { delete channel_; } @@ -3322,9 +3322,9 @@ TEST_F(WebRtcVoiceEngineTestFake, DeliverAudioPacket_Call) { const cricket::FakeAudioReceiveStream* s = call_.GetAudioReceiveStream(kAudioSsrc); EXPECT_EQ(0, s->received_packets()); - channel_->OnPacketReceived(&kPcmuPacket, /* packet_time_us */ -1); + channel_->OnPacketReceived(kPcmuPacket, /* packet_time_us */ -1); EXPECT_EQ(1, s->received_packets()); - channel_->OnRtcpReceived(&kRtcpPacket, /* packet_time_us */ -1); + channel_->OnRtcpReceived(kRtcpPacket, /* packet_time_us */ -1); EXPECT_EQ(2, s->received_packets()); } diff --git a/pc/channel.cc b/pc/channel.cc index a408a85729..991e9e338c 100644 --- a/pc/channel.cc +++ b/pc/channel.cc @@ -539,13 +539,10 @@ void BaseChannel::ProcessPacket(bool rtcp, int64_t packet_time_us) { RTC_DCHECK(worker_thread_->IsCurrent()); - // Need to copy variable because OnRtcpReceived/OnPacketReceived - // requires non-const pointer to buffer. This doesn't memcpy the actual data. - rtc::CopyOnWriteBuffer data(packet); if (rtcp) { - media_channel_->OnRtcpReceived(&data, packet_time_us); + media_channel_->OnRtcpReceived(packet, packet_time_us); } else { - media_channel_->OnPacketReceived(&data, packet_time_us); + media_channel_->OnPacketReceived(packet, packet_time_us); } } diff --git a/pc/jsep_transport.cc b/pc/jsep_transport.cc index 28c752575d..aacee66190 100644 --- a/pc/jsep_transport.cc +++ b/pc/jsep_transport.cc @@ -407,8 +407,7 @@ webrtc::RTCError JsepTransport::SetNegotiatedDtlsParameters( // Apply remote fingerprint. if (!remote_fingerprint || !dtls_transport->SetRemoteFingerprint( - remote_fingerprint->algorithm, - reinterpret_cast(remote_fingerprint->digest.data()), + remote_fingerprint->algorithm, remote_fingerprint->digest.cdata(), remote_fingerprint->digest.size())) { return webrtc::RTCError(webrtc::RTCErrorType::INVALID_PARAMETER, "Failed to apply remote fingerprint."); diff --git a/pc/rtp_transport.cc b/pc/rtp_transport.cc index 650015ef83..20559e0907 100644 --- a/pc/rtp_transport.cc +++ b/pc/rtp_transport.cc @@ -129,8 +129,8 @@ bool RtpTransport::SendPacket(bool rtcp, rtc::PacketTransportInternal* transport = rtcp && !rtcp_mux_enabled_ ? rtcp_packet_transport_ : rtp_packet_transport_; - int ret = transport->SendPacket(packet->data(), packet->size(), options, - flags); + int ret = transport->SendPacket(packet->cdata(), packet->size(), + options, flags); if (ret != static_cast(packet->size())) { if (transport->GetError() == ENOTCONN) { RTC_LOG(LS_WARNING) << "Got ENOTCONN from transport.";