Refactor the internal API to the rtp/rtcp module.
Combination of previous CLs in revisions 2211, 2212, 2214, 2215, 2216.
Review URL: https://webrtc-codereview.appspot.com/570008
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2231 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/src/modules/rtp_rtcp/source/Bitrate.h b/src/modules/rtp_rtcp/source/Bitrate.h
index ab5637b..3859aaa 100644
--- a/src/modules/rtp_rtcp/source/Bitrate.h
+++ b/src/modules/rtp_rtcp/source/Bitrate.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
+ * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
@@ -25,9 +25,6 @@
public:
Bitrate(RtpRtcpClock* clock);
- // initialize members
- void Init();
-
// calculate rates
void Process();
diff --git a/src/modules/rtp_rtcp/source/bitrate.cc b/src/modules/rtp_rtcp/source/bitrate.cc
index be0c7dd..0fbb7ad 100644
--- a/src/modules/rtp_rtcp/source/bitrate.cc
+++ b/src/modules/rtp_rtcp/source/bitrate.cc
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
+ * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
@@ -29,21 +29,6 @@
}
void
-Bitrate::Init()
-{
- _packetRate = 0;
- _bitrate = 0;
- _timeLastRateUpdate = 0;
- _bytesCount = 0;
- _packetCount = 0;
- _bitrateNextIdx = 0;
-
- memset(_packetRateArray, 0, sizeof(_packetRateArray));
- memset(_bitrateDiffMS, 0, sizeof(_bitrateDiffMS));
- memset(_bitrateArray, 0, sizeof(_bitrateArray));
-}
-
-void
Bitrate::Update(const WebRtc_Word32 bytes)
{
_bytesCount += bytes;
diff --git a/src/modules/rtp_rtcp/source/rtcp_format_remb_unittest.cc b/src/modules/rtp_rtcp/source/rtcp_format_remb_unittest.cc
index 9fdd6ca..d937f35 100644
--- a/src/modules/rtp_rtcp/source/rtcp_format_remb_unittest.cc
+++ b/src/modules/rtp_rtcp/source/rtcp_format_remb_unittest.cc
@@ -70,7 +70,11 @@
void RtcpFormatRembTest::SetUp() {
system_clock_ = ModuleRTPUtility::GetSystemClock();
- dummy_rtp_rtcp_impl_ = new ModuleRtpRtcpImpl(0, false, system_clock_);
+ RtpRtcp::Configuration configuration;
+ configuration.id = 0;
+ configuration.audio = false;
+ configuration.clock = system_clock_;
+ dummy_rtp_rtcp_impl_ = new ModuleRtpRtcpImpl(configuration);
rtcp_sender_ = new RTCPSender(0, false, system_clock_, dummy_rtp_rtcp_impl_);
rtcp_receiver_ = new RTCPReceiver(0, system_clock_, dummy_rtp_rtcp_impl_);
test_transport_ = new TestTransport(rtcp_receiver_);
diff --git a/src/modules/rtp_rtcp/source/rtcp_receiver.cc b/src/modules/rtp_rtcp/source/rtcp_receiver.cc
index 2fc7c83..d9365e9 100644
--- a/src/modules/rtp_rtcp/source/rtcp_receiver.cc
+++ b/src/modules/rtp_rtcp/source/rtcp_receiver.cc
@@ -165,9 +165,6 @@
GetReportBlockInformation(remoteSSRC);
if (reportBlock == NULL) {
- WEBRTC_TRACE(kTraceError, kTraceRtpRtcp, _id,
- "\tfailed to GetReportBlockInformation(%u)",
- remoteSSRC);
return -1;
}
if (RTT) {
@@ -202,16 +199,6 @@
return 0;
}
-void
-RTCPReceiver::UpdateLipSync(const WebRtc_Word32 audioVideoOffset) const
-{
- CriticalSectionScoped lock(_criticalSectionFeedbacks);
- if(_cbRtcpFeedback)
- {
- _cbRtcpFeedback->OnLipSyncUpdate(_id,audioVideoOffset);
- }
-};
-
WebRtc_Word32
RTCPReceiver::NTP(WebRtc_UWord32 *ReceivedNTPsecs,
WebRtc_UWord32 *ReceivedNTPfrac,
@@ -1247,9 +1234,6 @@
// Might trigger a OnReceivedBandwidthEstimateUpdate.
UpdateTMMBR();
}
- if (rtcpPacketInformation.rtcpPacketTypeFlags & kRtcpSr) {
- _rtpRtcp.OnReceivedNTP();
- }
if (rtcpPacketInformation.rtcpPacketTypeFlags & kRtcpSrReq) {
_rtpRtcp.OnRequestSendReport();
}
diff --git a/src/modules/rtp_rtcp/source/rtcp_receiver.h b/src/modules/rtp_rtcp/source/rtcp_receiver.h
index 294e67d..df2d18b4 100644
--- a/src/modules/rtp_rtcp/source/rtcp_receiver.h
+++ b/src/modules/rtp_rtcp/source/rtcp_receiver.h
@@ -76,8 +76,6 @@
WebRtc_Word32 ResetRTT(const WebRtc_UWord32 remoteSSRC);
- void UpdateLipSync(const WebRtc_Word32 audioVideoOffset) const;
-
WebRtc_Word32 SenderInfoReceived(RTCPSenderInfo* senderInfo) const;
// get statistics
diff --git a/src/modules/rtp_rtcp/source/rtcp_receiver_unittest.cc b/src/modules/rtp_rtcp/source/rtcp_receiver_unittest.cc
index 5bfdb73..9598a43 100644
--- a/src/modules/rtp_rtcp/source/rtcp_receiver_unittest.cc
+++ b/src/modules/rtp_rtcp/source/rtcp_receiver_unittest.cc
@@ -151,10 +151,12 @@
class TestTransport : public Transport,
public RtpData {
public:
- explicit TestTransport(RTCPReceiver* rtcp_receiver) :
- rtcp_receiver_(rtcp_receiver) {
+ explicit TestTransport()
+ : rtcp_receiver_(NULL) {
}
-
+ void SetRTCPReceiver(RTCPReceiver* rtcp_receiver) {
+ rtcp_receiver_ = rtcp_receiver;
+ }
virtual int SendPacket(int /*ch*/, const void* /*data*/, int /*len*/) {
ADD_FAILURE(); // FAIL() gives a compile error.
return -1;
@@ -180,10 +182,15 @@
RtcpReceiverTest() {
// system_clock_ = ModuleRTPUtility::GetSystemClock();
system_clock_ = new FakeSystemClock();
- rtp_rtcp_impl_ = new ModuleRtpRtcpImpl(0, false, system_clock_);
+ test_transport_ = new TestTransport();
+ RtpRtcp::Configuration configuration;
+ configuration.id = 0;
+ configuration.audio = false;
+ configuration.clock = system_clock_;
+ configuration.outgoing_transport = test_transport_;
+ rtp_rtcp_impl_ = new ModuleRtpRtcpImpl(configuration);
rtcp_receiver_ = new RTCPReceiver(0, system_clock_, rtp_rtcp_impl_);
- test_transport_ = new TestTransport(rtcp_receiver_);
- EXPECT_EQ(0, rtp_rtcp_impl_->RegisterIncomingDataCallback(test_transport_));
+ test_transport_->SetRTCPReceiver(rtcp_receiver_);
}
~RtcpReceiverTest() {
delete rtcp_receiver_;
diff --git a/src/modules/rtp_rtcp/source/rtcp_sender_unittest.cc b/src/modules/rtp_rtcp/source/rtcp_sender_unittest.cc
index 2d86682..17fbafc 100644
--- a/src/modules/rtp_rtcp/source/rtcp_sender_unittest.cc
+++ b/src/modules/rtp_rtcp/source/rtcp_sender_unittest.cc
@@ -59,10 +59,12 @@
class TestTransport : public Transport,
public RtpData {
public:
- TestTransport(RTCPReceiver* rtcp_receiver) :
- rtcp_receiver_(rtcp_receiver) {
+ TestTransport()
+ : rtcp_receiver_(NULL) {
}
-
+ void SetRTCPReceiver(RTCPReceiver* rtcp_receiver) {
+ rtcp_receiver_ = rtcp_receiver;
+ }
virtual int SendPacket(int /*ch*/, const void* /*data*/, int /*len*/) {
return -1;
}
@@ -83,8 +85,9 @@
virtual int OnReceivedPayloadData(const WebRtc_UWord8* payloadData,
const WebRtc_UWord16 payloadSize,
- const WebRtcRTPHeader* rtpHeader)
- {return 0;}
+ const WebRtcRTPHeader* rtpHeader) {
+ return 0;
+ }
RTCPReceiver* rtcp_receiver_;
RTCPHelp::RTCPPacketInformation rtcp_packet_info_;
};
@@ -93,14 +96,22 @@
protected:
RtcpSenderTest() {
system_clock_ = ModuleRTPUtility::GetSystemClock();
- rtp_rtcp_impl_ = new ModuleRtpRtcpImpl(0, false, system_clock_);
+ test_transport_ = new TestTransport();
+
+ RtpRtcp::Configuration configuration;
+ configuration.id = 0;
+ configuration.audio = false;
+ configuration.clock = system_clock_;
+ configuration.incoming_data = test_transport_;
+ configuration.outgoing_transport = test_transport_;
+
+ rtp_rtcp_impl_ = new ModuleRtpRtcpImpl(configuration);
rtcp_sender_ = new RTCPSender(0, false, system_clock_, rtp_rtcp_impl_);
rtcp_receiver_ = new RTCPReceiver(0, system_clock_, rtp_rtcp_impl_);
- test_transport_ = new TestTransport(rtcp_receiver_);
+ test_transport_->SetRTCPReceiver(rtcp_receiver_);
// Initialize
EXPECT_EQ(0, rtcp_sender_->Init());
EXPECT_EQ(0, rtcp_sender_->RegisterSendTransport(test_transport_));
- EXPECT_EQ(0, rtp_rtcp_impl_->RegisterIncomingDataCallback(test_transport_));
}
~RtcpSenderTest() {
delete rtcp_sender_;
diff --git a/src/modules/rtp_rtcp/source/rtp_receiver.cc b/src/modules/rtp_rtcp/source/rtp_receiver.cc
index ef5e721..40eb6b0 100644
--- a/src/modules/rtp_rtcp/source/rtp_receiver.cc
+++ b/src/modules/rtp_rtcp/source/rtp_receiver.cc
@@ -123,75 +123,6 @@
WEBRTC_TRACE(kTraceMemory, kTraceRtpRtcp, _id, "%s deleted", __FUNCTION__);
}
-void RTPReceiver::Init() {
- CriticalSectionScoped lock(_criticalSectionRTPReceiver);
-
- _lastReceiveTime = 0;
- _lastReceivedPayloadLength = 0;
- _packetTimeOutMS = 0;
- _lastReceivedPayloadType = -1;
- _lastReceivedMediaPayloadType = -1;
- _redPayloadType = -1;
-
- memset(&_lastReceivedAudioSpecific, 0, sizeof(_lastReceivedAudioSpecific));
- _lastReceivedAudioSpecific.channels = 1;
-
- _lastReceivedVideoSpecific.videoCodecType = kRtpNoVideo;
- _lastReceivedVideoSpecific.maxRate = 0;
- _SSRC = 0;
- _numCSRCs = 0;
- _numEnergy = 0;
- _jitterQ4 = 0;
- _jitterMaxQ4 = 0;
- _cumulativeLoss = 0;
- _jitterQ4TransmissionTimeOffset = 0;
- _useSSRCFilter = false;
- _SSRCFilter = 0;
-
- _localTimeLastReceivedTimestamp = 0;
- _lastReceivedTimestamp = 0;
- _lastReceivedSequenceNumber = 0;
- _lastReceivedTransmissionTimeOffset = 0;
-
- _receivedSeqFirst = 0;
- _receivedSeqMax = 0;
- _receivedSeqWraps = 0;
-
- _receivedPacketOH = 12; // RTP header
- _receivedByteCount = 0;
- _receivedOldPacketCount = 0;
- _receivedInorderPacketCount = 0;
-
- _lastReportInorderPackets = 0;
- _lastReportOldPackets = 0;
- _lastReportSeqMax = 0;
- _lastReportFractionLost = 0;
- _lastReportCumulativeLost = 0;
- _lastReportExtendedHighSeqNum = 0;
- _lastReportJitter = 0;
- _lastReportJitterTransmissionTimeOffset = 0;
-
- _rtpHeaderExtensionMap.Erase();
-
- while (!_payloadTypeMap.empty()) {
- std::map<WebRtc_Word8, Payload*>::iterator it = _payloadTypeMap.begin();
- delete it->second;
- _payloadTypeMap.erase(it);
- }
-
- Bitrate::Init();
- RTPReceiverAudio::Init();
- RTPReceiverVideo::Init();
-}
-
-void
-RTPReceiver::ChangeUniqueId(const WebRtc_Word32 id)
-{
- _id = id;
- RTPReceiverAudio::ChangeUniqueId(id);
- RTPReceiverVideo::ChangeUniqueId(id);
-}
-
RtpVideoCodecTypes
RTPReceiver::VideoCodecType() const
{
diff --git a/src/modules/rtp_rtcp/source/rtp_receiver.h b/src/modules/rtp_rtcp/source/rtp_receiver.h
index f283676..d6ecfaa 100644
--- a/src/modules/rtp_rtcp/source/rtp_receiver.h
+++ b/src/modules/rtp_rtcp/source/rtp_receiver.h
@@ -39,10 +39,6 @@
virtual ~RTPReceiver();
- virtual void ChangeUniqueId(const WebRtc_Word32 id);
-
- void Init();
-
RtpVideoCodecTypes VideoCodecType() const;
WebRtc_UWord32 MaxConfiguredBitrate() const;
diff --git a/src/modules/rtp_rtcp/source/rtp_receiver_audio.cc b/src/modules/rtp_rtcp/source/rtp_receiver_audio.cc
index 1b870e2..a57da75 100644
--- a/src/modules/rtp_rtcp/source/rtp_receiver_audio.cc
+++ b/src/modules/rtp_rtcp/source/rtp_receiver_audio.cc
@@ -40,30 +40,6 @@
delete _criticalSectionFeedback;
}
-WebRtc_Word32 RTPReceiverAudio::Init() {
- _lastReceivedFrequency = 8000;
- _telephoneEvent = false;
- _telephoneEventForwardToDecoder = false;
- _telephoneEventDetectEndOfTone = false;
- _telephoneEventPayloadType = -1;
-
- _telephoneEventReported.clear();
-
- _cngNBPayloadType = -1;
- _cngWBPayloadType = -1;
- _cngSWBPayloadType = -1;
- _cngPayloadType = -1;
- _G722PayloadType = -1;
- _lastReceivedG722 = false;
- return 0;
-}
-
-void
-RTPReceiverAudio::ChangeUniqueId(const WebRtc_Word32 id)
-{
- _id = id;
-}
-
WebRtc_Word32
RTPReceiverAudio::RegisterIncomingAudioCallback(RtpAudioFeedback* incomingMessagesCallback)
{
diff --git a/src/modules/rtp_rtcp/source/rtp_receiver_audio.h b/src/modules/rtp_rtcp/source/rtp_receiver_audio.h
index 89cd062..0b0ba30 100644
--- a/src/modules/rtp_rtcp/source/rtp_receiver_audio.h
+++ b/src/modules/rtp_rtcp/source/rtp_receiver_audio.h
@@ -27,10 +27,6 @@
RTPReceiverAudio(const WebRtc_Word32 id);
virtual ~RTPReceiverAudio();
- virtual void ChangeUniqueId(const WebRtc_Word32 id);
-
- WebRtc_Word32 Init();
-
WebRtc_Word32 RegisterIncomingAudioCallback(RtpAudioFeedback* incomingMessagesCallback);
ModuleRTPUtility::Payload* RegisterReceiveAudioPayload(
diff --git a/src/modules/rtp_rtcp/source/rtp_receiver_video.cc b/src/modules/rtp_rtcp/source/rtp_receiver_video.cc
index c5f99bd..94d49e0 100644
--- a/src/modules/rtp_rtcp/source/rtp_receiver_video.cc
+++ b/src/modules/rtp_rtcp/source/rtp_receiver_video.cc
@@ -58,16 +58,6 @@
delete _receiveFEC;
}
-void RTPReceiverVideo::Init() {
- _currentFecFrameDecoded = false;
- _packetOverHead = 28;
- ResetOverUseDetector();
-}
-
-void RTPReceiverVideo::ChangeUniqueId(const WebRtc_Word32 id) {
- _id = id;
-}
-
ModuleRTPUtility::Payload* RTPReceiverVideo::RegisterReceiveVideoPayload(
const char payloadName[RTP_PAYLOAD_NAME_SIZE],
const WebRtc_Word8 payloadType,
diff --git a/src/modules/rtp_rtcp/source/rtp_receiver_video.h b/src/modules/rtp_rtcp/source/rtp_receiver_video.h
index f2e223e..ce32293 100644
--- a/src/modules/rtp_rtcp/source/rtp_receiver_video.h
+++ b/src/modules/rtp_rtcp/source/rtp_receiver_video.h
@@ -32,10 +32,6 @@
virtual ~RTPReceiverVideo();
- virtual void ChangeUniqueId(const WebRtc_Word32 id);
-
- void Init();
-
ModuleRTPUtility::Payload* RegisterReceiveVideoPayload(
const char payloadName[RTP_PAYLOAD_NAME_SIZE],
const WebRtc_Word8 payloadType,
diff --git a/src/modules/rtp_rtcp/source/rtp_rtcp_impl.cc b/src/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
index 8906e20..e2ab811 100644
--- a/src/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
+++ b/src/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
@@ -36,222 +36,103 @@
const WebRtc_UWord16 kDefaultRtt = 200;
-RtpRtcp* RtpRtcp::CreateRtpRtcp(const WebRtc_Word32 id,
- bool audio) {
- if(audio) {
- WEBRTC_TRACE(kTraceModuleCall, kTraceRtpRtcp, id, "CreateRtpRtcp(audio)");
+RtpRtcp* RtpRtcp::CreateRtpRtcp(const RtpRtcp::Configuration& configuration) {
+ if (configuration.clock) {
+ return new ModuleRtpRtcpImpl(configuration);
} else {
- WEBRTC_TRACE(kTraceModuleCall, kTraceRtpRtcp, id, "CreateRtpRtcp(video)");
- }
- // ModuleRTPUtility::GetSystemClock() creates a new instance of a system
- // clock implementation. The OwnsClock() function informs the module that
- // it is responsible for deleting the instance.
- ModuleRtpRtcpImpl* rtp_rtcp_instance = new ModuleRtpRtcpImpl(id,
- audio, ModuleRTPUtility::GetSystemClock());
- rtp_rtcp_instance->OwnsClock();
- return rtp_rtcp_instance;
-}
-
-RtpRtcp* RtpRtcp::CreateRtpRtcp(const WebRtc_Word32 id,
- const bool audio,
- RtpRtcpClock* clock) {
- if (audio) {
- WEBRTC_TRACE(kTraceModuleCall,
- kTraceRtpRtcp,
- id,
- "CreateRtpRtcp(audio)");
- } else {
- WEBRTC_TRACE(kTraceModuleCall,
- kTraceRtpRtcp,
- id,
- "CreateRtpRtcp(video)");
- }
- return new ModuleRtpRtcpImpl(id, audio, clock);
-}
-
-void RtpRtcp::DestroyRtpRtcp(RtpRtcp* module) {
- if (module) {
- WEBRTC_TRACE(kTraceModuleCall,
- kTraceRtpRtcp,
- static_cast<ModuleRtpRtcpImpl*>(module)->Id(),
- "DestroyRtpRtcp()");
- delete static_cast<ModuleRtpRtcpImpl*>(module);
+ RtpRtcp::Configuration configuration_copy;
+ memcpy(&configuration_copy, &configuration,
+ sizeof(RtpRtcp::Configuration));
+ configuration_copy.clock = ModuleRTPUtility::GetSystemClock();
+ ModuleRtpRtcpImpl* rtp_rtcp_instance =
+ new ModuleRtpRtcpImpl(configuration_copy);
+ rtp_rtcp_instance->OwnsClock();
+ return rtp_rtcp_instance;
}
}
-ModuleRtpRtcpImpl::ModuleRtpRtcpImpl(const WebRtc_Word32 id,
- const bool audio,
- RtpRtcpClock* clock):
- _rtpSender(id, audio, clock),
- _rtpReceiver(id, audio, clock, this),
- _rtcpSender(id, audio, clock, this),
- _rtcpReceiver(id, clock, this),
- _owns_clock(false),
- _clock(*clock),
- _id(id),
- _audio(audio),
- _collisionDetected(false),
- _lastProcessTime(clock->GetTimeInMS()),
- _lastBitrateProcessTime(clock->GetTimeInMS()),
- _lastPacketTimeoutProcessTime(clock->GetTimeInMS()),
- _packetOverHead(28), // IPV4 UDP
- _criticalSectionModulePtrs(CriticalSectionWrapper::CreateCriticalSection()),
- _criticalSectionModulePtrsFeedback(
- CriticalSectionWrapper::CreateCriticalSection()),
- _defaultModule(NULL),
- _audioModule(NULL),
- _videoModule(NULL),
- _deadOrAliveActive(false),
- _deadOrAliveTimeoutMS(0),
- _deadOrAliveLastTimer(0),
- _receivedNTPsecsAudio(0),
- _receivedNTPfracAudio(0),
- _RTCPArrivalTimeSecsAudio(0),
- _RTCPArrivalTimeFracAudio(0),
- _nackMethod(kNackOff),
- _nackLastTimeSent(0),
- _nackLastSeqNumberSent(0),
- _simulcast(false),
- _keyFrameReqMethod(kKeyFrameReqFirRtp)
+ModuleRtpRtcpImpl::ModuleRtpRtcpImpl(const Configuration& configuration)
+ : _rtpSender(configuration.id, configuration.audio, configuration.clock),
+ _rtpReceiver(configuration.id, configuration.audio, configuration.clock,
+ this),
+ _rtcpSender(configuration.id, configuration.audio, configuration.clock,
+ this),
+ _rtcpReceiver(configuration.id, configuration.clock, this),
+ _owns_clock(false),
+ _clock(*configuration.clock),
+ _id(configuration.id),
+ _audio(configuration.audio),
+ _collisionDetected(false),
+ _lastProcessTime(configuration.clock->GetTimeInMS()),
+ _lastBitrateProcessTime(configuration.clock->GetTimeInMS()),
+ _lastPacketTimeoutProcessTime(configuration.clock->GetTimeInMS()),
+ _packetOverHead(28), // IPV4 UDP
+ _criticalSectionModulePtrs(
+ CriticalSectionWrapper::CreateCriticalSection()),
+ _criticalSectionModulePtrsFeedback(
+ CriticalSectionWrapper::CreateCriticalSection()),
+ _defaultModule(
+ static_cast<ModuleRtpRtcpImpl*>(configuration.default_module)),
+ _deadOrAliveActive(false),
+ _deadOrAliveTimeoutMS(0),
+ _deadOrAliveLastTimer(0),
+ _nackMethod(kNackOff),
+ _nackLastTimeSent(0),
+ _nackLastSeqNumberSent(0),
+ _simulcast(false),
+ _keyFrameReqMethod(kKeyFrameReqFirRtp)
#ifdef MATLAB
- , _plot1(NULL)
+ , _plot1(NULL)
#endif
{
_sendVideoCodec.codecType = kVideoCodecUnknown;
+
+ if (_defaultModule) {
+ _defaultModule->RegisterChildModule(this);
+ }
+ // TODO(pwestin) move to constructors of each rtp/rtcp sender/receiver object.
+ _rtpReceiver.RegisterIncomingDataCallback(configuration.incoming_data);
+ _rtpReceiver.RegisterIncomingRTPCallback(configuration.incoming_messages);
+ _rtcpReceiver.RegisterRtcpObservers(configuration.intra_frame_callback,
+ configuration.bandwidth_callback,
+ configuration.rtcp_feedback);
+ _rtpSender.RegisterAudioCallback(configuration.audio_messages);
+ _rtpReceiver.RegisterIncomingAudioCallback(configuration.audio_messages);
+
+ _rtpSender.RegisterSendTransport(configuration.outgoing_transport);
+ _rtcpSender.RegisterSendTransport(configuration.outgoing_transport);
+
+ _rtcpSender.SetRemoteBitrateObserver(configuration.bitrate_observer);
+
// make sure that RTCP objects are aware of our SSRC
WebRtc_UWord32 SSRC = _rtpSender.SSRC();
_rtcpSender.SetSSRC(SSRC);
- WEBRTC_TRACE(kTraceMemory, kTraceRtpRtcp, id, "%s created", __FUNCTION__);
+ WEBRTC_TRACE(kTraceMemory, kTraceRtpRtcp, _id, "%s created", __FUNCTION__);
}
ModuleRtpRtcpImpl::~ModuleRtpRtcpImpl() {
WEBRTC_TRACE(kTraceMemory, kTraceRtpRtcp, _id, "%s deleted", __FUNCTION__);
- // make sure to unregister this module from other modules
+ // All child modules MUST be deleted before deleting the default.
+ assert(_childModules.empty());
- const bool defaultInstance(_childModules.empty() ? false : true);
-
- if (defaultInstance) {
- // deregister for the default module
- // will go in to the child modules and remove it self
- std::list<ModuleRtpRtcpImpl*>::iterator it = _childModules.begin();
- while (it != _childModules.end()) {
- RtpRtcp* module = *it;
- _childModules.erase(it);
- if (module) {
- module->DeRegisterDefaultModule();
- }
- it = _childModules.begin();
- }
- } else {
- // deregister for the child modules
- // will go in to the default and remove it self
- DeRegisterDefaultModule();
+ // Deregister for the child modules
+ // will go in to the default and remove it self
+ if (_defaultModule) {
+ _defaultModule->DeRegisterChildModule(this);
}
-
- if (_audio) {
- DeRegisterVideoModule();
- } else {
- DeRegisterSyncModule();
- }
-
#ifdef MATLAB
if (_plot1) {
eng.DeletePlot(_plot1);
_plot1 = NULL;
}
#endif
-
- delete _criticalSectionModulePtrs;
- delete _criticalSectionModulePtrsFeedback;
if (_owns_clock) {
delete &_clock;
}
}
-WebRtc_Word32 ModuleRtpRtcpImpl::ChangeUniqueId(const WebRtc_Word32 id) {
- WEBRTC_TRACE(kTraceModuleCall,
- kTraceRtpRtcp,
- _id,
- "ChangeUniqueId(new id:%d)", id);
-
- _id = id;
-
- _rtpReceiver.ChangeUniqueId(id);
- _rtcpReceiver.ChangeUniqueId(id);
- _rtpSender.ChangeUniqueId(id);
- _rtcpSender.ChangeUniqueId(id);
- return 0;
-}
-
-// default encoder that we need to multiplex out
-WebRtc_Word32 ModuleRtpRtcpImpl::RegisterDefaultModule(RtpRtcp* module) {
- WEBRTC_TRACE(kTraceModuleCall,
- kTraceRtpRtcp,
- _id,
- "RegisterDefaultModule(module:0x%x)", module);
-
- if (module == NULL) {
- return -1;
- }
- if (module == this) {
- WEBRTC_TRACE(kTraceError,
- kTraceRtpRtcp,
- _id,
- "RegisterDefaultModule can't register self as default");
- return -1;
- }
- CriticalSectionScoped lock(_criticalSectionModulePtrs);
-
- if (_defaultModule) {
- _defaultModule->DeRegisterChildModule(this);
- }
- _defaultModule = (ModuleRtpRtcpImpl*)module;
- _defaultModule->RegisterChildModule(this);
- return 0;
-}
-
-WebRtc_Word32 ModuleRtpRtcpImpl::DeRegisterDefaultModule() {
- WEBRTC_TRACE(kTraceModuleCall,
- kTraceRtpRtcp,
- _id,
- "DeRegisterDefaultModule()");
-
- CriticalSectionScoped lock(_criticalSectionModulePtrs);
- if (_defaultModule) {
- _defaultModule->DeRegisterChildModule(this);
- _defaultModule = NULL;
- }
- return 0;
-}
-
-bool ModuleRtpRtcpImpl::DefaultModuleRegistered() {
- WEBRTC_TRACE(kTraceModuleCall,
- kTraceRtpRtcp,
- _id,
- "DefaultModuleRegistered()");
-
- CriticalSectionScoped lock(_criticalSectionModulePtrs);
- if (_defaultModule) {
- return true;
- }
- return false;
-}
-
-WebRtc_UWord32 ModuleRtpRtcpImpl::NumberChildModules() {
- WEBRTC_TRACE(kTraceModuleCall, kTraceRtpRtcp, _id, "NumberChildModules");
-
- CriticalSectionScoped lock(_criticalSectionModulePtrs);
- CriticalSectionScoped doubleLock(_criticalSectionModulePtrsFeedback);
- // we use two locks for protecting _childModules one
- // (_criticalSectionModulePtrsFeedback) for incoming messages
- // (BitrateSent and UpdateTMMBR) and _criticalSectionModulePtrs for
- // all outgoing messages sending packets etc
-
- return _childModules.size();
-}
-
void ModuleRtpRtcpImpl::RegisterChildModule(RtpRtcp* module) {
WEBRTC_TRACE(kTraceModuleCall,
kTraceRtpRtcp,
@@ -259,9 +140,9 @@
"RegisterChildModule(module:0x%x)",
module);
- CriticalSectionScoped lock(_criticalSectionModulePtrs);
+ CriticalSectionScoped lock(_criticalSectionModulePtrs.get());
- CriticalSectionScoped doubleLock(_criticalSectionModulePtrsFeedback);
+ CriticalSectionScoped doubleLock(_criticalSectionModulePtrsFeedback.get());
// we use two locks for protecting _childModules one
// (_criticalSectionModulePtrsFeedback) for incoming
// messages (BitrateSent) and _criticalSectionModulePtrs
@@ -275,9 +156,9 @@
_id,
"DeRegisterChildModule(module:0x%x)", removeModule);
- CriticalSectionScoped lock(_criticalSectionModulePtrs);
+ CriticalSectionScoped lock(_criticalSectionModulePtrs.get());
- CriticalSectionScoped doubleLock(_criticalSectionModulePtrsFeedback);
+ CriticalSectionScoped doubleLock(_criticalSectionModulePtrsFeedback.get());
std::list<ModuleRtpRtcpImpl*>::iterator it = _childModules.begin();
while (it != _childModules.end()) {
@@ -290,76 +171,6 @@
}
}
-// Lip-sync between voice-video engine,
-WebRtc_Word32 ModuleRtpRtcpImpl::RegisterSyncModule(RtpRtcp* audioModule) {
- WEBRTC_TRACE(kTraceModuleCall,
- kTraceRtpRtcp,
- _id,
- "RegisterSyncModule(module:0x%x)",
- audioModule);
-
- if (audioModule == NULL) {
- return -1;
- }
- if (_audio) {
- return -1;
- }
- CriticalSectionScoped lock(_criticalSectionModulePtrs);
- _audioModule = (ModuleRtpRtcpImpl*)audioModule;
- return _audioModule->RegisterVideoModule(this);
-}
-
-WebRtc_Word32 ModuleRtpRtcpImpl::DeRegisterSyncModule() {
- WEBRTC_TRACE(kTraceModuleCall,
- kTraceRtpRtcp,
- _id,
- "DeRegisterSyncModule()");
-
- CriticalSectionScoped lock(_criticalSectionModulePtrs);
- if (_audioModule) {
- ModuleRtpRtcpImpl* audioModule = _audioModule;
- _audioModule = NULL;
- _receivedNTPsecsAudio = 0;
- _receivedNTPfracAudio = 0;
- _RTCPArrivalTimeSecsAudio = 0;
- _RTCPArrivalTimeFracAudio = 0;
- audioModule->DeRegisterVideoModule();
- }
- return 0;
-}
-
-WebRtc_Word32 ModuleRtpRtcpImpl::RegisterVideoModule(RtpRtcp* videoModule) {
- WEBRTC_TRACE(kTraceModuleCall,
- kTraceRtpRtcp,
- _id,
- "RegisterVideoModule(module:0x%x)",
- videoModule);
-
- if (videoModule == NULL) {
- return -1;
- }
- if (!_audio) {
- return -1;
- }
- CriticalSectionScoped lock(_criticalSectionModulePtrs);
- _videoModule = (ModuleRtpRtcpImpl*)videoModule;
- return 0;
-}
-
-void ModuleRtpRtcpImpl::DeRegisterVideoModule() {
- WEBRTC_TRACE(kTraceModuleCall,
- kTraceRtpRtcp,
- _id,
- "DeRegisterVideoModule()");
-
- CriticalSectionScoped lock(_criticalSectionModulePtrs);
- if (_videoModule) {
- ModuleRtpRtcpImpl* videoModule = _videoModule;
- _videoModule = NULL;
- videoModule->DeRegisterSyncModule();
- }
-}
-
// returns the number of milliseconds until the module want a worker thread
// to call Process
WebRtc_Word32 ModuleRtpRtcpImpl::TimeUntilNextProcess() {
@@ -436,20 +247,6 @@
* Receiver
*/
-WebRtc_Word32 ModuleRtpRtcpImpl::InitReceiver() {
- WEBRTC_TRACE(kTraceModuleCall, kTraceRtpRtcp, _id, "InitReceiver()");
-
- _packetOverHead = 28; // default is IPV4 UDP
- _receivedNTPsecsAudio = 0;
- _receivedNTPfracAudio = 0;
- _RTCPArrivalTimeSecsAudio = 0;
- _RTCPArrivalTimeFracAudio = 0;
-
- _rtpReceiver.Init();
- _rtpReceiver.SetPacketOverHead(_packetOverHead);
- return 0;
-}
-
void ModuleRtpRtcpImpl::ProcessDeadOrAliveTimer() {
if (_deadOrAliveActive) {
const WebRtc_UWord32 now = _clock.GetTimeInMS();
@@ -687,7 +484,6 @@
_id,
"IncomingPacket(packetLength:%u)",
incomingPacketLength);
-
// minimum RTP is 12 bytes
// minimum RTCP is 8 bytes (RTCP BYE)
if (incomingPacketLength < 8 || incomingPacket == NULL) {
@@ -754,85 +550,10 @@
}
}
-WebRtc_Word32 ModuleRtpRtcpImpl::IncomingAudioNTP(
- const WebRtc_UWord32 audioReceivedNTPsecs,
- const WebRtc_UWord32 audioReceivedNTPfrac,
- const WebRtc_UWord32 audioRTCPArrivalTimeSecs,
- const WebRtc_UWord32 audioRTCPArrivalTimeFrac) {
- _receivedNTPsecsAudio = audioReceivedNTPsecs;
- _receivedNTPfracAudio = audioReceivedNTPfrac;
- _RTCPArrivalTimeSecsAudio = audioRTCPArrivalTimeSecs;
- _RTCPArrivalTimeFracAudio = audioRTCPArrivalTimeFrac;
- return 0;
-}
-
-WebRtc_Word32 ModuleRtpRtcpImpl::RegisterIncomingDataCallback(
- RtpData* incomingDataCallback) {
- WEBRTC_TRACE(kTraceModuleCall,
- kTraceRtpRtcp,
- _id,
- "RegisterIncomingDataCallback(incomingDataCallback:0x%x)",
- incomingDataCallback);
-
- return _rtpReceiver.RegisterIncomingDataCallback(incomingDataCallback);
-}
-
-WebRtc_Word32 ModuleRtpRtcpImpl::RegisterIncomingRTPCallback(
- RtpFeedback* incomingMessagesCallback) {
- WEBRTC_TRACE(kTraceModuleCall,
- kTraceRtpRtcp,
- _id,
- "RegisterIncomingRTPCallback(incomingMessagesCallback:0x%x)",
- incomingMessagesCallback);
-
- return _rtpReceiver.RegisterIncomingRTPCallback(incomingMessagesCallback);
-}
-
-void ModuleRtpRtcpImpl::RegisterRtcpObservers(
- RtcpIntraFrameObserver* intra_frame_callback,
- RtcpBandwidthObserver* bandwidth_callback,
- RtcpFeedback* feedback_callback) {
- _rtcpReceiver.RegisterRtcpObservers(intra_frame_callback, bandwidth_callback,
- feedback_callback);
-}
-
-WebRtc_Word32 ModuleRtpRtcpImpl::RegisterAudioCallback(
- RtpAudioFeedback* messagesCallback) {
- WEBRTC_TRACE(kTraceModuleCall,
- kTraceRtpRtcp,
- _id,
- "RegisterAudioCallback(messagesCallback:0x%x)",
- messagesCallback);
-
- if (_rtpSender.RegisterAudioCallback(messagesCallback) == 0) {
- return _rtpReceiver.RegisterIncomingAudioCallback(messagesCallback);
- }
- return -1;
-}
-
/**
* Sender
*/
-WebRtc_Word32 ModuleRtpRtcpImpl::InitSender() {
- WEBRTC_TRACE(kTraceModuleCall, kTraceRtpRtcp, _id, "InitSender()");
-
- _collisionDetected = false;
-
- // if we are already receiving inform our sender to avoid collision
- if (_rtpSender.Init(_rtpReceiver.SSRC()) != 0) {
- return -1;
- }
- WebRtc_Word32 retVal = _rtcpSender.Init();
-
- // make sure that RTCP objects are aware of our SSRC
- // (it could have changed due to collision)
- WebRtc_UWord32 SSRC = _rtpSender.SSRC();
- _rtcpReceiver.SetSSRC(SSRC);
- _rtcpSender.SetSSRC(SSRC);
- return retVal;
-}
-
WebRtc_Word32 ModuleRtpRtcpImpl::RegisterSendPayload(
const CodecInst& voiceCodec) {
WEBRTC_TRACE(kTraceModuleCall,
@@ -962,7 +683,7 @@
if (defaultInstance) {
// for default we need to update all child modules too
- CriticalSectionScoped lock(_criticalSectionModulePtrs);
+ CriticalSectionScoped lock(_criticalSectionModulePtrs.get());
std::list<ModuleRtpRtcpImpl*>::iterator it = _childModules.begin();
while (it != _childModules.end()) {
@@ -1060,7 +781,7 @@
return _rtpSender.SendingMedia();
}
- CriticalSectionScoped lock(_criticalSectionModulePtrs);
+ CriticalSectionScoped lock(_criticalSectionModulePtrs.get());
std::list<ModuleRtpRtcpImpl*>::const_iterator it = _childModules.begin();
while (it != _childModules.end()) {
RTPSender& rtpSender = (*it)->_rtpSender;
@@ -1072,19 +793,6 @@
return false;
}
-WebRtc_Word32 ModuleRtpRtcpImpl::RegisterSendTransport(
- Transport* outgoingTransport) {
- WEBRTC_TRACE(kTraceModuleCall,
- kTraceRtpRtcp,
- _id,
- "RegisterSendTransport(0x%x)", outgoingTransport);
-
- if (_rtpSender.RegisterSendTransport(outgoingTransport) == 0) {
- return _rtcpSender.RegisterSendTransport(outgoingTransport);
- }
- return -1;
-}
-
WebRtc_Word32 ModuleRtpRtcpImpl::SendOutgoingData(
FrameType frameType,
WebRtc_Word8 payloadType,
@@ -1121,7 +829,7 @@
return -1;
}
int idx = 0;
- CriticalSectionScoped lock(_criticalSectionModulePtrs);
+ CriticalSectionScoped lock(_criticalSectionModulePtrs.get());
std::list<ModuleRtpRtcpImpl*>::iterator it = _childModules.begin();
for (; idx < rtpVideoHdr->simulcastIdx; idx++) {
it++;
@@ -1144,7 +852,7 @@
NULL,
&(rtpVideoHdr->codecHeader));
} else {
- CriticalSectionScoped lock(_criticalSectionModulePtrs);
+ CriticalSectionScoped lock(_criticalSectionModulePtrs.get());
// TODO(pwestin) remove codecInfo from SendOutgoingData
VideoCodecInformation* codecInfo = NULL;
@@ -1198,7 +906,7 @@
const bool defaultInstance(_childModules.empty() ? false : true);
if (defaultInstance) {
// for default we need to update all child modules too
- CriticalSectionScoped lock(_criticalSectionModulePtrs);
+ CriticalSectionScoped lock(_criticalSectionModulePtrs.get());
std::list<ModuleRtpRtcpImpl*>::const_iterator it =
_childModules.begin();
while (it != _childModules.end()) {
@@ -1563,11 +1271,6 @@
return _rtcpSender.SetREMBData(bitrate, numberOfSSRC, SSRC);
}
-bool ModuleRtpRtcpImpl::SetRemoteBitrateObserver(
- RtpRemoteBitrateObserver* observer) {
- return _rtcpSender.SetRemoteBitrateObserver(observer);
-}
-
/*
* (IJ) Extended jitter report.
*/
@@ -1655,7 +1358,7 @@
const bool defaultInstance(_childModules.empty() ? false : true);
if (defaultInstance) {
// for default we need to check all child modules too
- CriticalSectionScoped lock(_criticalSectionModulePtrs);
+ CriticalSectionScoped lock(_criticalSectionModulePtrs.get());
std::list<ModuleRtpRtcpImpl*>::const_iterator it =
_childModules.begin();
while (it != _childModules.end()) {
@@ -1918,7 +1621,7 @@
const bool haveChildModules(_childModules.empty() ? false : true);
if (haveChildModules) {
- CriticalSectionScoped lock(_criticalSectionModulePtrs);
+ CriticalSectionScoped lock(_criticalSectionModulePtrs.get());
if (_simulcast) {
uint32_t bitrate_remainder = bitrate;
std::list<ModuleRtpRtcpImpl*>::iterator it = _childModules.begin();
@@ -1994,7 +1697,7 @@
const bool defaultInstance(_childModules.empty() ? false : true);
if (defaultInstance) {
- CriticalSectionScoped lock(_criticalSectionModulePtrs);
+ CriticalSectionScoped lock(_criticalSectionModulePtrs.get());
std::list<ModuleRtpRtcpImpl*>::iterator it = _childModules.begin();
while (it != _childModules.end()) {
@@ -2041,7 +1744,7 @@
const bool defaultInstance(_childModules.empty() ? false : true);
if (defaultInstance) {
// for default we need to check all child modules too
- CriticalSectionScoped lock(_criticalSectionModulePtrs);
+ CriticalSectionScoped lock(_criticalSectionModulePtrs.get());
std::list<ModuleRtpRtcpImpl*>::iterator it = _childModules.begin();
while (it != _childModules.end()) {
RtpRtcp* module = *it;
@@ -2075,7 +1778,7 @@
const bool defaultInstance(_childModules.empty() ? false : true);
if (defaultInstance) {
// for default we need to update all child modules too
- CriticalSectionScoped lock(_criticalSectionModulePtrs);
+ CriticalSectionScoped lock(_criticalSectionModulePtrs.get());
std::list<ModuleRtpRtcpImpl*>::iterator it = _childModules.begin();
while (it != _childModules.end()) {
@@ -2128,7 +1831,7 @@
if (defaultInstance) {
// for default we need to update the send bitrate
- CriticalSectionScoped lock(_criticalSectionModulePtrsFeedback);
+ CriticalSectionScoped lock(_criticalSectionModulePtrsFeedback.get());
if (totalRate != NULL)
*totalRate = 0;
@@ -2183,66 +1886,6 @@
return 0;
}
-// for lip sync
-void ModuleRtpRtcpImpl::OnReceivedNTP() {
- // don't do anything if we are the audio module
- // video module is responsible for sync
- if (!_audio) {
- WebRtc_Word32 diff = 0;
- WebRtc_UWord32 receivedNTPsecs = 0;
- WebRtc_UWord32 receivedNTPfrac = 0;
- WebRtc_UWord32 RTCPArrivalTimeSecs = 0;
- WebRtc_UWord32 RTCPArrivalTimeFrac = 0;
-
- if (0 == _rtcpReceiver.NTP(&receivedNTPsecs,
- &receivedNTPfrac,
- &RTCPArrivalTimeSecs,
- &RTCPArrivalTimeFrac)) {
- CriticalSectionScoped lock(_criticalSectionModulePtrs);
-
- if (_audioModule) {
- if (0 != _audioModule->RemoteNTP(&_receivedNTPsecsAudio,
- &_receivedNTPfracAudio,
- &_RTCPArrivalTimeSecsAudio,
- &_RTCPArrivalTimeFracAudio)) {
- // failed ot get audio NTP
- return;
- }
- }
- if (_receivedNTPfracAudio != 0) {
- // ReceivedNTPxxx is NTP at sender side when sent.
- // RTCPArrivalTimexxx is NTP at receiver side when received.
- // can't use ConvertNTPTimeToMS since calculation can be
- // negative
-
- WebRtc_Word32 NTPdiff = (WebRtc_Word32)
- ((_receivedNTPsecsAudio - receivedNTPsecs) *
- 1000); // ms
- NTPdiff += (WebRtc_Word32)
- (_receivedNTPfracAudio / FracMS - receivedNTPfrac / FracMS);
-
- WebRtc_Word32 RTCPdiff =
- static_cast<WebRtc_Word32> ((_RTCPArrivalTimeSecsAudio -
- RTCPArrivalTimeSecs) * 1000);
- RTCPdiff += (WebRtc_Word32)
- (_RTCPArrivalTimeFracAudio / FracMS -
- RTCPArrivalTimeFrac / FracMS);
-
- diff = NTPdiff - RTCPdiff;
- // if diff is + video is behind
- if (diff < -1000 || diff > 1000) {
- // unresonable ignore value.
- diff = 0;
- return;
- }
- }
- }
- // export via callback
- // after release of critsect
- _rtcpReceiver.UpdateLipSync(diff);
- }
-}
-
RateControlRegion ModuleRtpRtcpImpl::OnOverUseStateUpdate(
const RateControlInput& rateControlInput) {
diff --git a/src/modules/rtp_rtcp/source/rtp_rtcp_impl.h b/src/modules/rtp_rtcp/source/rtp_rtcp_impl.h
index f71c9d2..8724d78 100644
--- a/src/modules/rtp_rtcp/source/rtp_rtcp_impl.h
+++ b/src/modules/rtp_rtcp/source/rtp_rtcp_impl.h
@@ -13,11 +13,12 @@
#include <list>
-#include "rtcp_receiver.h"
-#include "rtcp_sender.h"
-#include "rtp_receiver.h"
-#include "rtp_rtcp.h"
-#include "rtp_sender.h"
+#include "modules/rtp_rtcp/interface/rtp_rtcp.h"
+#include "modules/rtp_rtcp/source/rtcp_receiver.h"
+#include "modules/rtp_rtcp/source/rtcp_sender.h"
+#include "modules/rtp_rtcp/source/rtp_receiver.h"
+#include "modules/rtp_rtcp/source/rtp_sender.h"
+#include "system_wrappers/interface/scoped_ptr.h"
#ifdef MATLAB
class MatlabPlot;
@@ -25,34 +26,12 @@
namespace webrtc {
-class ModuleRtpRtcpImpl : public RtpRtcp
-{
-public:
- ModuleRtpRtcpImpl(const WebRtc_Word32 id,
- const bool audio,
- RtpRtcpClock* clock);
+class ModuleRtpRtcpImpl : public RtpRtcp {
+ public:
+ explicit ModuleRtpRtcpImpl(const RtpRtcp::Configuration& configuration);
virtual ~ModuleRtpRtcpImpl();
- // get Module ID
- WebRtc_Word32 Id() {return _id;}
-
- virtual WebRtc_Word32 ChangeUniqueId(const WebRtc_Word32 id);
-
- // De-muxing functionality for
- virtual WebRtc_Word32 RegisterDefaultModule(RtpRtcp* module);
- virtual WebRtc_Word32 DeRegisterDefaultModule();
- virtual bool DefaultModuleRegistered();
-
- virtual WebRtc_UWord32 NumberChildModules();
-
- // Lip-sync between voice-video
- virtual WebRtc_Word32 RegisterSyncModule(RtpRtcp* module);
- virtual WebRtc_Word32 DeRegisterSyncModule();
-
- virtual WebRtc_Word32 RegisterVideoModule(RtpRtcp* videoModule);
- virtual void DeRegisterVideoModule();
-
// returns the number of milliseconds until the module want a worker thread to call Process
virtual WebRtc_Word32 TimeUntilNextProcess();
@@ -62,8 +41,6 @@
/**
* Receiver
*/
- virtual WebRtc_Word32 InitReceiver();
-
// configure a timeout value
virtual WebRtc_Word32 SetPacketTimeout(const WebRtc_UWord32 RTPtimeoutMS,
const WebRtc_UWord32 RTCPtimeoutMS);
@@ -125,31 +102,9 @@
virtual WebRtc_Word32 IncomingPacket( const WebRtc_UWord8* incomingPacket,
const WebRtc_UWord16 packetLength);
- virtual WebRtc_Word32 IncomingAudioNTP(const WebRtc_UWord32 audioReceivedNTPsecs,
- const WebRtc_UWord32 audioReceivedNTPfrac,
- const WebRtc_UWord32 audioRTCPArrivalTimeSecs,
- const WebRtc_UWord32 audioRTCPArrivalTimeFrac);
-
- // Used by the module to deliver the incoming data to the codec module
- virtual WebRtc_Word32 RegisterIncomingDataCallback(
- RtpData* incomingDataCallback);
-
- // Used by the module to deliver messages to the codec module/appliation
- virtual WebRtc_Word32 RegisterIncomingRTPCallback(
- RtpFeedback* incomingMessagesCallback);
-
- virtual void RegisterRtcpObservers(
- RtcpIntraFrameObserver* intraFrameCallback,
- RtcpBandwidthObserver* bandwidthCallback,
- RtcpFeedback* callback);
-
- virtual WebRtc_Word32 RegisterAudioCallback(RtpAudioFeedback* messagesCallback);
-
/**
* Sender
*/
- virtual WebRtc_Word32 InitSender();
-
virtual WebRtc_Word32 RegisterSendPayload(const CodecInst& voiceCodec);
virtual WebRtc_Word32 RegisterSendPayload(const VideoCodec& videoCodec);
@@ -216,9 +171,6 @@
virtual bool SendingMedia() const;
- // Used by the module to send RTP and RTCP packet to the network module
- virtual WebRtc_Word32 RegisterSendTransport(Transport* outgoingTransport);
-
// Used by the codec module to deliver a video or audio frame for packetization
virtual WebRtc_Word32 SendOutgoingData(
const FrameType frameType,
@@ -325,7 +277,6 @@
const WebRtc_UWord8 numberOfSSRC,
const WebRtc_UWord32* SSRC);
- virtual bool SetRemoteBitrateObserver(RtpRemoteBitrateObserver* observer);
/*
* (IJ) Extended jitter report.
*/
@@ -482,8 +433,6 @@
// good state of RTP receiver inform sender
virtual WebRtc_Word32 SendRTCPReferencePictureSelection(const WebRtc_UWord64 pictureID);
- void OnReceivedNTP() ;
-
void OnReceivedTMMBR();
// bad state of RTP receiver request a keyframe
@@ -539,23 +488,15 @@
WebRtc_UWord32 _lastPacketTimeoutProcessTime;
WebRtc_UWord16 _packetOverHead;
- CriticalSectionWrapper* _criticalSectionModulePtrs;
- CriticalSectionWrapper* _criticalSectionModulePtrsFeedback;
+ scoped_ptr<CriticalSectionWrapper> _criticalSectionModulePtrs;
+ scoped_ptr<CriticalSectionWrapper> _criticalSectionModulePtrsFeedback;
ModuleRtpRtcpImpl* _defaultModule;
- ModuleRtpRtcpImpl* _audioModule;
- ModuleRtpRtcpImpl* _videoModule;
std::list<ModuleRtpRtcpImpl*> _childModules;
// Dead or alive
bool _deadOrAliveActive;
WebRtc_UWord32 _deadOrAliveTimeoutMS;
WebRtc_UWord32 _deadOrAliveLastTimer;
-
- WebRtc_UWord32 _receivedNTPsecsAudio;
- WebRtc_UWord32 _receivedNTPfracAudio;
- WebRtc_UWord32 _RTCPArrivalTimeSecsAudio;
- WebRtc_UWord32 _RTCPArrivalTimeFracAudio;
-
// send side
NACKMethod _nackMethod;
WebRtc_UWord32 _nackLastTimeSent;
diff --git a/src/modules/rtp_rtcp/source/rtp_sender.cc b/src/modules/rtp_rtcp/source/rtp_sender.cc
index e877692b..945171c 100644
--- a/src/modules/rtp_rtcp/source/rtp_sender.cc
+++ b/src/modules/rtp_rtcp/source/rtp_sender.cc
@@ -117,7 +117,7 @@
WEBRTC_TRACE(kTraceMemory, kTraceRtpRtcp, _id, "%s deleted", __FUNCTION__);
}
-
+/*
WebRtc_Word32
RTPSender::Init(const WebRtc_UWord32 remoteSSRC)
{
@@ -173,19 +173,7 @@
}
return(0);
}
-
-void
-RTPSender::ChangeUniqueId(const WebRtc_Word32 id)
-{
- _id = id;
- if(_audioConfigured)
- {
- _audio->ChangeUniqueId(id);
- } else
- {
- _video->ChangeUniqueId(id);
- }
-}
+*/
void RTPSender::SetTargetSendBitrate(const WebRtc_UWord32 bits) {
_targetSendBitrate = static_cast<uint16_t>(bits / 1000);
diff --git a/src/modules/rtp_rtcp/source/rtp_sender.h b/src/modules/rtp_rtcp/source/rtp_sender.h
index 3906e8c..37eec48 100644
--- a/src/modules/rtp_rtcp/source/rtp_sender.h
+++ b/src/modules/rtp_rtcp/source/rtp_sender.h
@@ -68,9 +68,6 @@
RTPSender(const WebRtc_Word32 id, const bool audio, RtpRtcpClock* clock);
virtual ~RTPSender();
- WebRtc_Word32 Init(const WebRtc_UWord32 remoteSSRC);
- void ChangeUniqueId(const WebRtc_Word32 id);
-
void ProcessBitrate();
void ProcessSendToNetwork();
diff --git a/src/modules/rtp_rtcp/source/rtp_sender_audio.cc b/src/modules/rtp_rtcp/source/rtp_sender_audio.cc
index ee3c414..361aea5 100644
--- a/src/modules/rtp_rtcp/source/rtp_sender_audio.cc
+++ b/src/modules/rtp_rtcp/source/rtp_sender_audio.cc
@@ -51,30 +51,6 @@
}
WebRtc_Word32
-RTPSenderAudio::Init()
-{
- CriticalSectionScoped cs(_sendAudioCritsect);
-
- _dtmfPayloadType = -1;
- _inbandVADactive = false;
- _cngNBPayloadType = -1;
- _cngWBPayloadType = -1;
- _cngSWBPayloadType = -1;
- _lastPayloadType = -1;
- _REDPayloadType = -1;
- _dtmfTimeLastSent = 0;
- _dtmfTimestampLastSent = 0;
- ResetDTMF();
- return 0;
-}
-
-void
-RTPSenderAudio::ChangeUniqueId(const WebRtc_Word32 id)
-{
- _id = id;
-}
-
-WebRtc_Word32
RTPSenderAudio::RegisterAudioCallback(RtpAudioFeedback* messagesCallback)
{
CriticalSectionScoped cs(_audioFeedbackCritsect);
diff --git a/src/modules/rtp_rtcp/source/rtp_sender_audio.h b/src/modules/rtp_rtcp/source/rtp_sender_audio.h
index 5fda2ef..1ea2fab 100644
--- a/src/modules/rtp_rtcp/source/rtp_sender_audio.h
+++ b/src/modules/rtp_rtcp/source/rtp_sender_audio.h
@@ -28,10 +28,6 @@
RTPSenderInterface* rtpSender);
virtual ~RTPSenderAudio();
- void ChangeUniqueId(const WebRtc_Word32 id);
-
- WebRtc_Word32 Init();
-
WebRtc_Word32 RegisterAudioPayload(
const char payloadName[RTP_PAYLOAD_NAME_SIZE],
const WebRtc_Word8 payloadType,
diff --git a/src/modules/rtp_rtcp/source/rtp_sender_video.cc b/src/modules/rtp_rtcp/source/rtp_sender_video.cc
index 8f44973..f1e3c74 100644
--- a/src/modules/rtp_rtcp/source/rtp_sender_video.cc
+++ b/src/modules/rtp_rtcp/source/rtp_sender_video.cc
@@ -67,29 +67,6 @@
delete _sendVideoCritsect;
}
-WebRtc_Word32
-RTPSenderVideo::Init()
-{
- CriticalSectionScoped cs(_sendVideoCritsect);
-
- _retransmissionSettings = kRetransmitBaseLayer;
- _fecEnabled = false;
- _payloadTypeRED = -1;
- _payloadTypeFEC = -1;
- _numberFirstPartition = 0;
- memset(&delta_fec_params_, 0, sizeof(delta_fec_params_));
- memset(&key_fec_params_, 0, sizeof(key_fec_params_));
- delta_fec_params_.max_fec_frames = key_fec_params_.max_fec_frames = 1;
- _fecOverheadRate.Init();
- return 0;
-}
-
-void
-RTPSenderVideo::ChangeUniqueId(const WebRtc_Word32 id)
-{
- _id = id;
-}
-
void
RTPSenderVideo::SetVideoCodecType(RtpVideoCodecTypes videoType)
{
diff --git a/src/modules/rtp_rtcp/source/rtp_sender_video.h b/src/modules/rtp_rtcp/source/rtp_sender_video.h
index 18f39ca..5c3f70c 100644
--- a/src/modules/rtp_rtcp/source/rtp_sender_video.h
+++ b/src/modules/rtp_rtcp/source/rtp_sender_video.h
@@ -37,10 +37,6 @@
RTPSenderInterface* rtpSender);
virtual ~RTPSenderVideo();
- WebRtc_Word32 Init();
-
- virtual void ChangeUniqueId(const WebRtc_Word32 id);
-
virtual RtpVideoCodecTypes VideoCodecType() const;
WebRtc_UWord16 FECPacketOverhead() const;