Remove use of CriticalSectionScoped(CriticalSectionWrapper& critsect) in VCM.
BUG= TEST= Review URL: http://webrtc-codereview.appspot.com/318005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@1159 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@@ -18,7 +18,7 @@ namespace webrtc {
|
|||||||
|
|
||||||
VCMDecodedFrameCallback::VCMDecodedFrameCallback(VCMTiming& timing)
|
VCMDecodedFrameCallback::VCMDecodedFrameCallback(VCMTiming& timing)
|
||||||
:
|
:
|
||||||
_critSect(*CriticalSectionWrapper::CreateCriticalSection()),
|
_critSect(CriticalSectionWrapper::CreateCriticalSection()),
|
||||||
_receiveCallback(NULL),
|
_receiveCallback(NULL),
|
||||||
_timing(timing),
|
_timing(timing),
|
||||||
_timestampMap(kDecoderFrameMemoryLength)
|
_timestampMap(kDecoderFrameMemoryLength)
|
||||||
@@ -27,7 +27,7 @@ _timestampMap(kDecoderFrameMemoryLength)
|
|||||||
|
|
||||||
VCMDecodedFrameCallback::~VCMDecodedFrameCallback()
|
VCMDecodedFrameCallback::~VCMDecodedFrameCallback()
|
||||||
{
|
{
|
||||||
delete &_critSect;
|
delete _critSect;
|
||||||
}
|
}
|
||||||
|
|
||||||
void VCMDecodedFrameCallback::SetUserReceiveCallback(
|
void VCMDecodedFrameCallback::SetUserReceiveCallback(
|
||||||
|
|||||||
@@ -48,12 +48,12 @@ public:
|
|||||||
WebRtc_Word32 Pop(WebRtc_UWord32 timestamp);
|
WebRtc_Word32 Pop(WebRtc_UWord32 timestamp);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CriticalSectionWrapper& _critSect;
|
CriticalSectionWrapper* _critSect;
|
||||||
VideoFrame _frame;
|
VideoFrame _frame;
|
||||||
VCMReceiveCallback* _receiveCallback;
|
VCMReceiveCallback* _receiveCallback;
|
||||||
VCMTiming& _timing;
|
VCMTiming& _timing;
|
||||||
VCMTimestampMap _timestampMap;
|
VCMTimestampMap _timestampMap;
|
||||||
WebRtc_UWord64 _lastReceivedPictureID;
|
WebRtc_UWord64 _lastReceivedPictureID;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ VCMJitterBuffer::VCMJitterBuffer(WebRtc_Word32 vcmId, WebRtc_Word32 receiverId,
|
|||||||
_vcmId(vcmId),
|
_vcmId(vcmId),
|
||||||
_receiverId(receiverId),
|
_receiverId(receiverId),
|
||||||
_running(false),
|
_running(false),
|
||||||
_critSect(*CriticalSectionWrapper::CreateCriticalSection()),
|
_critSect(CriticalSectionWrapper::CreateCriticalSection()),
|
||||||
_master(master),
|
_master(master),
|
||||||
_frameEvent(),
|
_frameEvent(),
|
||||||
_packetEvent(),
|
_packetEvent(),
|
||||||
@@ -113,7 +113,7 @@ VCMJitterBuffer::~VCMJitterBuffer()
|
|||||||
delete _frameBuffers[i];
|
delete _frameBuffers[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
delete &_critSect;
|
delete _critSect;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -121,8 +121,8 @@ VCMJitterBuffer::CopyFrom(const VCMJitterBuffer& rhs)
|
|||||||
{
|
{
|
||||||
if (this != &rhs)
|
if (this != &rhs)
|
||||||
{
|
{
|
||||||
_critSect.Enter();
|
_critSect->Enter();
|
||||||
rhs._critSect.Enter();
|
rhs._critSect->Enter();
|
||||||
_vcmId = rhs._vcmId;
|
_vcmId = rhs._vcmId;
|
||||||
_receiverId = rhs._receiverId;
|
_receiverId = rhs._receiverId;
|
||||||
_running = rhs._running;
|
_running = rhs._running;
|
||||||
@@ -170,8 +170,8 @@ VCMJitterBuffer::CopyFrom(const VCMJitterBuffer& rhs)
|
|||||||
_frameBuffersTSOrder.Insert(_frameBuffers[i]);
|
_frameBuffersTSOrder.Insert(_frameBuffers[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rhs._critSect.Leave();
|
rhs._critSect->Leave();
|
||||||
_critSect.Leave();
|
_critSect->Leave();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -211,7 +211,7 @@ VCMJitterBuffer::Start()
|
|||||||
void
|
void
|
||||||
VCMJitterBuffer::Stop()
|
VCMJitterBuffer::Stop()
|
||||||
{
|
{
|
||||||
_critSect.Enter();
|
_critSect->Enter();
|
||||||
_running = false;
|
_running = false;
|
||||||
_lastDecodedTimeStamp = -1;
|
_lastDecodedTimeStamp = -1;
|
||||||
_lastDecodedSeqNum = -1;
|
_lastDecodedSeqNum = -1;
|
||||||
@@ -225,7 +225,7 @@ VCMJitterBuffer::Stop()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_critSect.Leave();
|
_critSect->Leave();
|
||||||
_frameEvent.Set(); // Make sure we exit from trying to get a frame to decoder
|
_frameEvent.Set(); // Make sure we exit from trying to get a frame to decoder
|
||||||
_packetEvent.Set(); // Make sure we exit from trying to get a sequence number
|
_packetEvent.Set(); // Make sure we exit from trying to get a sequence number
|
||||||
WEBRTC_TRACE(webrtc::kTraceDebug, webrtc::kTraceVideoCoding, VCMId(_vcmId,
|
WEBRTC_TRACE(webrtc::kTraceDebug, webrtc::kTraceVideoCoding, VCMId(_vcmId,
|
||||||
@@ -441,7 +441,7 @@ VCMJitterBuffer::GetFrame(const VCMPacket& packet, VCMEncodedFrame*& frame)
|
|||||||
return VCM_UNINITIALIZED;
|
return VCM_UNINITIALIZED;
|
||||||
}
|
}
|
||||||
|
|
||||||
_critSect.Enter();
|
_critSect->Enter();
|
||||||
// Make sure that old empty packets are inserted.
|
// Make sure that old empty packets are inserted.
|
||||||
if (LatestTimestamp(static_cast<WebRtc_UWord32>(_lastDecodedTimeStamp),
|
if (LatestTimestamp(static_cast<WebRtc_UWord32>(_lastDecodedTimeStamp),
|
||||||
packet.timestamp, NULL) == _lastDecodedTimeStamp
|
packet.timestamp, NULL) == _lastDecodedTimeStamp
|
||||||
@@ -453,10 +453,10 @@ VCMJitterBuffer::GetFrame(const VCMPacket& packet, VCMEncodedFrame*& frame)
|
|||||||
if (_numConsecutiveOldPackets > kMaxConsecutiveOldPackets)
|
if (_numConsecutiveOldPackets > kMaxConsecutiveOldPackets)
|
||||||
{
|
{
|
||||||
FlushInternal();
|
FlushInternal();
|
||||||
_critSect.Leave();
|
_critSect->Leave();
|
||||||
return VCM_FLUSH_INDICATOR;
|
return VCM_FLUSH_INDICATOR;
|
||||||
}
|
}
|
||||||
_critSect.Leave();
|
_critSect->Leave();
|
||||||
return VCM_OLD_PACKET_ERROR;
|
return VCM_OLD_PACKET_ERROR;
|
||||||
}
|
}
|
||||||
_numConsecutiveOldPackets = 0;
|
_numConsecutiveOldPackets = 0;
|
||||||
@@ -464,7 +464,7 @@ VCMJitterBuffer::GetFrame(const VCMPacket& packet, VCMEncodedFrame*& frame)
|
|||||||
frame = _frameBuffersTSOrder.FindFrame(FrameEqualTimestamp,
|
frame = _frameBuffersTSOrder.FindFrame(FrameEqualTimestamp,
|
||||||
&packet.timestamp);
|
&packet.timestamp);
|
||||||
|
|
||||||
_critSect.Leave();
|
_critSect->Leave();
|
||||||
|
|
||||||
if (frame != NULL)
|
if (frame != NULL)
|
||||||
{
|
{
|
||||||
@@ -478,9 +478,9 @@ VCMJitterBuffer::GetFrame(const VCMPacket& packet, VCMEncodedFrame*& frame)
|
|||||||
return VCM_OK;
|
return VCM_OK;
|
||||||
}
|
}
|
||||||
// No free frame! Try to reclaim some...
|
// No free frame! Try to reclaim some...
|
||||||
_critSect.Enter();
|
_critSect->Enter();
|
||||||
RecycleFramesUntilKeyFrame();
|
RecycleFramesUntilKeyFrame();
|
||||||
_critSect.Leave();
|
_critSect->Leave();
|
||||||
|
|
||||||
frame = GetEmptyFrame();
|
frame = GetEmptyFrame();
|
||||||
if (frame != NULL)
|
if (frame != NULL)
|
||||||
@@ -511,7 +511,7 @@ VCMJitterBuffer::GetEmptyFrame()
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
_critSect.Enter();
|
_critSect->Enter();
|
||||||
|
|
||||||
for (int i = 0; i <_maxNumberOfFrames; ++i)
|
for (int i = 0; i <_maxNumberOfFrames; ++i)
|
||||||
{
|
{
|
||||||
@@ -519,7 +519,7 @@ VCMJitterBuffer::GetEmptyFrame()
|
|||||||
{
|
{
|
||||||
// found a free buffer
|
// found a free buffer
|
||||||
_frameBuffers[i]->SetState(kStateEmpty);
|
_frameBuffers[i]->SetState(kStateEmpty);
|
||||||
_critSect.Leave();
|
_critSect->Leave();
|
||||||
return _frameBuffers[i];
|
return _frameBuffers[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -532,13 +532,13 @@ VCMJitterBuffer::GetEmptyFrame()
|
|||||||
_frameBuffers[_maxNumberOfFrames] = ptrNewBuffer;
|
_frameBuffers[_maxNumberOfFrames] = ptrNewBuffer;
|
||||||
_maxNumberOfFrames++;
|
_maxNumberOfFrames++;
|
||||||
|
|
||||||
_critSect.Leave();
|
_critSect->Leave();
|
||||||
WEBRTC_TRACE(webrtc::kTraceDebug, webrtc::kTraceVideoCoding,
|
WEBRTC_TRACE(webrtc::kTraceDebug, webrtc::kTraceVideoCoding,
|
||||||
VCMId(_vcmId, _receiverId), "JB(0x%x) FB(0x%x): Jitter buffer "
|
VCMId(_vcmId, _receiverId), "JB(0x%x) FB(0x%x): Jitter buffer "
|
||||||
"increased to:%d frames", this, ptrNewBuffer, _maxNumberOfFrames);
|
"increased to:%d frames", this, ptrNewBuffer, _maxNumberOfFrames);
|
||||||
return ptrNewBuffer;
|
return ptrNewBuffer;
|
||||||
}
|
}
|
||||||
_critSect.Leave();
|
_critSect->Leave();
|
||||||
|
|
||||||
// We have reached max size, cannot increase JB size
|
// We have reached max size, cannot increase JB size
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -743,7 +743,7 @@ VCMJitterBuffer::GetCompleteFrameForDecoding(WebRtc_UWord32 maxWaitTimeMS)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
_critSect.Enter();
|
_critSect->Enter();
|
||||||
|
|
||||||
CleanUpOldFrames();
|
CleanUpOldFrames();
|
||||||
CleanUpSizeZeroFrames();
|
CleanUpSizeZeroFrames();
|
||||||
@@ -763,7 +763,7 @@ VCMJitterBuffer::GetCompleteFrameForDecoding(WebRtc_UWord32 maxWaitTimeMS)
|
|||||||
{
|
{
|
||||||
if (maxWaitTimeMS == 0)
|
if (maxWaitTimeMS == 0)
|
||||||
{
|
{
|
||||||
_critSect.Leave();
|
_critSect->Leave();
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
const WebRtc_Word64 endWaitTimeMs = VCMTickTime::MillisecondTimestamp()
|
const WebRtc_Word64 endWaitTimeMs = VCMTickTime::MillisecondTimestamp()
|
||||||
@@ -771,16 +771,16 @@ VCMJitterBuffer::GetCompleteFrameForDecoding(WebRtc_UWord32 maxWaitTimeMS)
|
|||||||
WebRtc_Word64 waitTimeMs = maxWaitTimeMS;
|
WebRtc_Word64 waitTimeMs = maxWaitTimeMS;
|
||||||
while (waitTimeMs > 0)
|
while (waitTimeMs > 0)
|
||||||
{
|
{
|
||||||
_critSect.Leave();
|
_critSect->Leave();
|
||||||
const EventTypeWrapper ret =
|
const EventTypeWrapper ret =
|
||||||
_frameEvent.Wait(static_cast<WebRtc_UWord32>(waitTimeMs));
|
_frameEvent.Wait(static_cast<WebRtc_UWord32>(waitTimeMs));
|
||||||
_critSect.Enter();
|
_critSect->Enter();
|
||||||
if (ret == kEventSignaled)
|
if (ret == kEventSignaled)
|
||||||
{
|
{
|
||||||
// are we closing down the Jitter buffer
|
// are we closing down the Jitter buffer
|
||||||
if (!_running)
|
if (!_running)
|
||||||
{
|
{
|
||||||
_critSect.Leave();
|
_critSect->Leave();
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -805,7 +805,7 @@ VCMJitterBuffer::GetCompleteFrameForDecoding(WebRtc_UWord32 maxWaitTimeMS)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_critSect.Leave();
|
_critSect->Leave();
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -820,7 +820,7 @@ VCMJitterBuffer::GetCompleteFrameForDecoding(WebRtc_UWord32 maxWaitTimeMS)
|
|||||||
if (oldestFrame == NULL)
|
if (oldestFrame == NULL)
|
||||||
{
|
{
|
||||||
// Even after signaling we're still missing a complete continuous frame
|
// Even after signaling we're still missing a complete continuous frame
|
||||||
_critSect.Leave();
|
_critSect->Leave();
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -848,7 +848,7 @@ VCMJitterBuffer::GetCompleteFrameForDecoding(WebRtc_UWord32 maxWaitTimeMS)
|
|||||||
_waitingForKeyFrame = false;
|
_waitingForKeyFrame = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
_critSect.Leave();
|
_critSect->Leave();
|
||||||
|
|
||||||
// We have a frame - store seqnum & timestamp
|
// We have a frame - store seqnum & timestamp
|
||||||
_lastDecodedSeqNum = oldestFrame->GetHighSeqNum();
|
_lastDecodedSeqNum = oldestFrame->GetHighSeqNum();
|
||||||
@@ -903,7 +903,7 @@ VCMJitterBuffer::GetNextTimeStamp(WebRtc_UWord32 maxWaitTimeMS,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
_critSect.Enter();
|
_critSect->Enter();
|
||||||
|
|
||||||
// Finding oldest frame ready for decoder, check sequence number and size
|
// Finding oldest frame ready for decoder, check sequence number and size
|
||||||
CleanUpOldFrames();
|
CleanUpOldFrames();
|
||||||
@@ -914,7 +914,7 @@ VCMJitterBuffer::GetNextTimeStamp(WebRtc_UWord32 maxWaitTimeMS,
|
|||||||
if (oldestFrame == NULL)
|
if (oldestFrame == NULL)
|
||||||
{
|
{
|
||||||
_packetEvent.Reset();
|
_packetEvent.Reset();
|
||||||
_critSect.Leave();
|
_critSect->Leave();
|
||||||
|
|
||||||
if (_packetEvent.Wait(maxWaitTimeMS) == kEventSignaled)
|
if (_packetEvent.Wait(maxWaitTimeMS) == kEventSignaled)
|
||||||
{
|
{
|
||||||
@@ -923,7 +923,7 @@ VCMJitterBuffer::GetNextTimeStamp(WebRtc_UWord32 maxWaitTimeMS,
|
|||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
_critSect.Enter();
|
_critSect->Enter();
|
||||||
|
|
||||||
CleanUpOldFrames();
|
CleanUpOldFrames();
|
||||||
CleanUpSizeZeroFrames();
|
CleanUpSizeZeroFrames();
|
||||||
@@ -931,13 +931,13 @@ VCMJitterBuffer::GetNextTimeStamp(WebRtc_UWord32 maxWaitTimeMS,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_critSect.Enter();
|
_critSect->Enter();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (oldestFrame == NULL)
|
if (oldestFrame == NULL)
|
||||||
{
|
{
|
||||||
_critSect.Leave();
|
_critSect->Leave();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
// we have a frame
|
// we have a frame
|
||||||
@@ -950,7 +950,7 @@ VCMJitterBuffer::GetNextTimeStamp(WebRtc_UWord32 maxWaitTimeMS,
|
|||||||
|
|
||||||
const WebRtc_UWord32 timestamp = oldestFrame->TimeStamp();
|
const WebRtc_UWord32 timestamp = oldestFrame->TimeStamp();
|
||||||
|
|
||||||
_critSect.Leave();
|
_critSect->Leave();
|
||||||
|
|
||||||
// return current time
|
// return current time
|
||||||
return timestamp;
|
return timestamp;
|
||||||
|
|||||||
@@ -195,7 +195,7 @@ private:
|
|||||||
WebRtc_Word32 _receiverId;
|
WebRtc_Word32 _receiverId;
|
||||||
// If we are running (have started) or not
|
// If we are running (have started) or not
|
||||||
bool _running;
|
bool _running;
|
||||||
CriticalSectionWrapper& _critSect;
|
CriticalSectionWrapper* _critSect;
|
||||||
bool _master;
|
bool _master;
|
||||||
// Event to signal when we have a frame ready for decoder
|
// Event to signal when we have a frame ready for decoder
|
||||||
VCMEvent _frameEvent;
|
VCMEvent _frameEvent;
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ VCMReceiver::VCMReceiver(VCMTiming& timing,
|
|||||||
WebRtc_Word32 receiverId,
|
WebRtc_Word32 receiverId,
|
||||||
bool master)
|
bool master)
|
||||||
:
|
:
|
||||||
_critSect(*CriticalSectionWrapper::CreateCriticalSection()),
|
_critSect(CriticalSectionWrapper::CreateCriticalSection()),
|
||||||
_vcmId(vcmId),
|
_vcmId(vcmId),
|
||||||
_receiverId(receiverId),
|
_receiverId(receiverId),
|
||||||
_master(master),
|
_master(master),
|
||||||
@@ -41,7 +41,7 @@ VCMReceiver::~VCMReceiver()
|
|||||||
{
|
{
|
||||||
_renderWaitEvent.Set();
|
_renderWaitEvent.Set();
|
||||||
delete &_renderWaitEvent;
|
delete &_renderWaitEvent;
|
||||||
delete &_critSect;
|
delete _critSect;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ private:
|
|||||||
void UpdateState(VCMEncodedFrame& frame);
|
void UpdateState(VCMEncodedFrame& frame);
|
||||||
static WebRtc_Word32 GenerateReceiverId();
|
static WebRtc_Word32 GenerateReceiverId();
|
||||||
|
|
||||||
CriticalSectionWrapper& _critSect;
|
CriticalSectionWrapper* _critSect;
|
||||||
WebRtc_Word32 _vcmId;
|
WebRtc_Word32 _vcmId;
|
||||||
WebRtc_Word32 _receiverId;
|
WebRtc_Word32 _receiverId;
|
||||||
bool _master;
|
bool _master;
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ namespace webrtc {
|
|||||||
|
|
||||||
VCMTimestampExtrapolator::VCMTimestampExtrapolator(WebRtc_Word32 vcmId, WebRtc_Word32 id)
|
VCMTimestampExtrapolator::VCMTimestampExtrapolator(WebRtc_Word32 vcmId, WebRtc_Word32 id)
|
||||||
:
|
:
|
||||||
_rwLock(*RWLockWrapper::CreateRWLock()),
|
_rwLock(RWLockWrapper::CreateRWLock()),
|
||||||
_vcmId(vcmId),
|
_vcmId(vcmId),
|
||||||
_id(id),
|
_id(id),
|
||||||
_startMs(0),
|
_startMs(0),
|
||||||
@@ -40,13 +40,13 @@ _P11(1e10)
|
|||||||
|
|
||||||
VCMTimestampExtrapolator::~VCMTimestampExtrapolator()
|
VCMTimestampExtrapolator::~VCMTimestampExtrapolator()
|
||||||
{
|
{
|
||||||
delete &_rwLock;
|
delete _rwLock;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
VCMTimestampExtrapolator::Reset(const WebRtc_Word64 nowMs /* = -1 */)
|
VCMTimestampExtrapolator::Reset(const WebRtc_Word64 nowMs /* = -1 */)
|
||||||
{
|
{
|
||||||
WriteLockScoped wl(_rwLock);
|
WriteLockScoped wl(*_rwLock);
|
||||||
if (nowMs > -1)
|
if (nowMs > -1)
|
||||||
{
|
{
|
||||||
_startMs = nowMs;
|
_startMs = nowMs;
|
||||||
@@ -74,14 +74,14 @@ void
|
|||||||
VCMTimestampExtrapolator::Update(WebRtc_Word64 tMs, WebRtc_UWord32 ts90khz, bool trace)
|
VCMTimestampExtrapolator::Update(WebRtc_Word64 tMs, WebRtc_UWord32 ts90khz, bool trace)
|
||||||
{
|
{
|
||||||
|
|
||||||
_rwLock.AcquireLockExclusive();
|
_rwLock->AcquireLockExclusive();
|
||||||
if (tMs - _prevMs > 10e3)
|
if (tMs - _prevMs > 10e3)
|
||||||
{
|
{
|
||||||
// Ten seconds without a complete frame.
|
// Ten seconds without a complete frame.
|
||||||
// Reset the extrapolator
|
// Reset the extrapolator
|
||||||
_rwLock.ReleaseLockExclusive();
|
_rwLock->ReleaseLockExclusive();
|
||||||
Reset();
|
Reset();
|
||||||
_rwLock.AcquireLockExclusive();
|
_rwLock->AcquireLockExclusive();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -97,7 +97,7 @@ VCMTimestampExtrapolator::Update(WebRtc_Word64 tMs, WebRtc_UWord32 ts90khz, bool
|
|||||||
|
|
||||||
if (wrapAroundsSincePrev == 0 && ts90khz < _prevTs90khz)
|
if (wrapAroundsSincePrev == 0 && ts90khz < _prevTs90khz)
|
||||||
{
|
{
|
||||||
_rwLock.ReleaseLockExclusive();
|
_rwLock->ReleaseLockExclusive();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -150,13 +150,13 @@ VCMTimestampExtrapolator::Update(WebRtc_Word64 tMs, WebRtc_UWord32 ts90khz, bool
|
|||||||
{
|
{
|
||||||
WEBRTC_TRACE(webrtc::kTraceDebug, webrtc::kTraceVideoCoding, VCMId(_vcmId, _id), "w[0]=%f w[1]=%f ts=%u tMs=%u", _w[0], _w[1], ts90khz, tMs);
|
WEBRTC_TRACE(webrtc::kTraceDebug, webrtc::kTraceVideoCoding, VCMId(_vcmId, _id), "w[0]=%f w[1]=%f ts=%u tMs=%u", _w[0], _w[1], ts90khz, tMs);
|
||||||
}
|
}
|
||||||
_rwLock.ReleaseLockExclusive();
|
_rwLock->ReleaseLockExclusive();
|
||||||
}
|
}
|
||||||
|
|
||||||
WebRtc_UWord32
|
WebRtc_UWord32
|
||||||
VCMTimestampExtrapolator::ExtrapolateTimestamp(WebRtc_Word64 tMs) const
|
VCMTimestampExtrapolator::ExtrapolateTimestamp(WebRtc_Word64 tMs) const
|
||||||
{
|
{
|
||||||
ReadLockScoped rl(_rwLock);
|
ReadLockScoped rl(*_rwLock);
|
||||||
WebRtc_UWord32 timestamp = 0;
|
WebRtc_UWord32 timestamp = 0;
|
||||||
if (_packetCount == 0)
|
if (_packetCount == 0)
|
||||||
{
|
{
|
||||||
@@ -176,7 +176,7 @@ VCMTimestampExtrapolator::ExtrapolateTimestamp(WebRtc_Word64 tMs) const
|
|||||||
WebRtc_Word64
|
WebRtc_Word64
|
||||||
VCMTimestampExtrapolator::ExtrapolateLocalTime(WebRtc_UWord32 timestamp90khz) const
|
VCMTimestampExtrapolator::ExtrapolateLocalTime(WebRtc_UWord32 timestamp90khz) const
|
||||||
{
|
{
|
||||||
ReadLockScoped rl(_rwLock);
|
ReadLockScoped rl(*_rwLock);
|
||||||
WebRtc_Word64 localTimeMs = 0;
|
WebRtc_Word64 localTimeMs = 0;
|
||||||
if (_packetCount == 0)
|
if (_packetCount == 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
void CheckForWrapArounds(WebRtc_UWord32 ts90khz);
|
void CheckForWrapArounds(WebRtc_UWord32 ts90khz);
|
||||||
bool DelayChangeDetection(double error, bool trace = true);
|
bool DelayChangeDetection(double error, bool trace = true);
|
||||||
RWLockWrapper& _rwLock;
|
RWLockWrapper* _rwLock;
|
||||||
WebRtc_Word32 _vcmId;
|
WebRtc_Word32 _vcmId;
|
||||||
WebRtc_Word32 _id;
|
WebRtc_Word32 _id;
|
||||||
bool _trace;
|
bool _trace;
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ namespace webrtc {
|
|||||||
|
|
||||||
VCMTiming::VCMTiming(WebRtc_Word32 vcmId, WebRtc_Word32 timingId, VCMTiming* masterTiming)
|
VCMTiming::VCMTiming(WebRtc_Word32 vcmId, WebRtc_Word32 timingId, VCMTiming* masterTiming)
|
||||||
:
|
:
|
||||||
_critSect(*CriticalSectionWrapper::CreateCriticalSection()),
|
_critSect(CriticalSectionWrapper::CreateCriticalSection()),
|
||||||
_vcmId(vcmId),
|
_vcmId(vcmId),
|
||||||
_timingId(timingId),
|
_timingId(timingId),
|
||||||
_master(false),
|
_master(false),
|
||||||
@@ -47,7 +47,7 @@ VCMTiming::~VCMTiming()
|
|||||||
{
|
{
|
||||||
delete _tsExtrapolator;
|
delete _tsExtrapolator;
|
||||||
}
|
}
|
||||||
delete &_critSect;
|
delete _critSect;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ protected:
|
|||||||
WebRtc_UWord32 TargetDelayInternal() const;
|
WebRtc_UWord32 TargetDelayInternal() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CriticalSectionWrapper& _critSect;
|
CriticalSectionWrapper* _critSect;
|
||||||
WebRtc_Word32 _vcmId;
|
WebRtc_Word32 _vcmId;
|
||||||
WebRtc_Word32 _timingId;
|
WebRtc_Word32 _timingId;
|
||||||
bool _master;
|
bool _master;
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ VCMProcessTimer::Processed()
|
|||||||
VideoCodingModuleImpl::VideoCodingModuleImpl(const WebRtc_Word32 id)
|
VideoCodingModuleImpl::VideoCodingModuleImpl(const WebRtc_Word32 id)
|
||||||
:
|
:
|
||||||
_id(id),
|
_id(id),
|
||||||
_receiveCritSect(*CriticalSectionWrapper::CreateCriticalSection()),
|
_receiveCritSect(CriticalSectionWrapper::CreateCriticalSection()),
|
||||||
_receiverInited(false),
|
_receiverInited(false),
|
||||||
_timing(id, 1),
|
_timing(id, 1),
|
||||||
_dualTiming(id, 2, &_timing),
|
_dualTiming(id, 2, &_timing),
|
||||||
@@ -64,7 +64,7 @@ _frameFromFile(),
|
|||||||
_keyRequestMode(kKeyOnError),
|
_keyRequestMode(kKeyOnError),
|
||||||
_scheduleKeyRequest(false),
|
_scheduleKeyRequest(false),
|
||||||
|
|
||||||
_sendCritSect(*CriticalSectionWrapper::CreateCriticalSection()),
|
_sendCritSect(CriticalSectionWrapper::CreateCriticalSection()),
|
||||||
_encoder(),
|
_encoder(),
|
||||||
_encodedFrameCallback(),
|
_encodedFrameCallback(),
|
||||||
_mediaOpt(id),
|
_mediaOpt(id),
|
||||||
@@ -96,8 +96,8 @@ VideoCodingModuleImpl::~VideoCodingModuleImpl()
|
|||||||
{
|
{
|
||||||
_codecDataBase.ReleaseDecoder(_dualDecoder);
|
_codecDataBase.ReleaseDecoder(_dualDecoder);
|
||||||
}
|
}
|
||||||
delete &_receiveCritSect;
|
delete _receiveCritSect;
|
||||||
delete &_sendCritSect;
|
delete _sendCritSect;
|
||||||
#ifdef DEBUG_DECODER_BIT_STREAM
|
#ifdef DEBUG_DECODER_BIT_STREAM
|
||||||
fclose(_bitStreamBeforeDecoder);
|
fclose(_bitStreamBeforeDecoder);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -259,7 +259,7 @@ protected:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
WebRtc_Word32 _id;
|
WebRtc_Word32 _id;
|
||||||
CriticalSectionWrapper& _receiveCritSect;
|
CriticalSectionWrapper* _receiveCritSect;
|
||||||
bool _receiverInited;
|
bool _receiverInited;
|
||||||
VCMTiming _timing;
|
VCMTiming _timing;
|
||||||
VCMTiming _dualTiming;
|
VCMTiming _dualTiming;
|
||||||
@@ -278,7 +278,7 @@ private:
|
|||||||
VCMKeyRequestMode _keyRequestMode;
|
VCMKeyRequestMode _keyRequestMode;
|
||||||
bool _scheduleKeyRequest;
|
bool _scheduleKeyRequest;
|
||||||
|
|
||||||
CriticalSectionWrapper& _sendCritSect; // Critical section for send side
|
CriticalSectionWrapper* _sendCritSect; // Critical section for send side
|
||||||
VCMGenericEncoder* _encoder;
|
VCMGenericEncoder* _encoder;
|
||||||
VCMEncodedFrameCallback _encodedFrameCallback;
|
VCMEncodedFrameCallback _encodedFrameCallback;
|
||||||
FrameType _nextFrameType[kMaxSimulcastStreams];
|
FrameType _nextFrameType[kMaxSimulcastStreams];
|
||||||
|
|||||||
@@ -151,7 +151,8 @@ VCMNTEncodeCompleteCallback::SkipCnt()
|
|||||||
// Decoded Frame Callback Implementation
|
// Decoded Frame Callback Implementation
|
||||||
VCMNTDecodeCompleCallback::~VCMNTDecodeCompleCallback()
|
VCMNTDecodeCompleCallback::~VCMNTDecodeCompleCallback()
|
||||||
{
|
{
|
||||||
//
|
if (_decodedFile)
|
||||||
|
fclose(_decodedFile);
|
||||||
}
|
}
|
||||||
WebRtc_Word32
|
WebRtc_Word32
|
||||||
VCMNTDecodeCompleCallback::FrameToRender(webrtc::VideoFrame& videoFrame)
|
VCMNTDecodeCompleCallback::FrameToRender(webrtc::VideoFrame& videoFrame)
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ RawRtpPacket::~RawRtpPacket()
|
|||||||
|
|
||||||
LostPackets::LostPackets()
|
LostPackets::LostPackets()
|
||||||
:
|
:
|
||||||
_critSect(*CriticalSectionWrapper::CreateCriticalSection()),
|
_critSect(CriticalSectionWrapper::CreateCriticalSection()),
|
||||||
_lossCount(0),
|
_lossCount(0),
|
||||||
_debugFile(NULL)
|
_debugFile(NULL)
|
||||||
{
|
{
|
||||||
@@ -64,7 +64,7 @@ LostPackets::~LostPackets()
|
|||||||
Erase(item);
|
Erase(item);
|
||||||
item = First();
|
item = First();
|
||||||
}
|
}
|
||||||
delete &_critSect;
|
delete _critSect;
|
||||||
}
|
}
|
||||||
|
|
||||||
WebRtc_UWord32 LostPackets::AddPacket(WebRtc_UWord8* rtpData, WebRtc_UWord16 rtpLen)
|
WebRtc_UWord32 LostPackets::AddPacket(WebRtc_UWord8* rtpData, WebRtc_UWord16 rtpLen)
|
||||||
|
|||||||
@@ -46,10 +46,10 @@ public:
|
|||||||
WebRtc_UWord32 TotalNumberOfLosses() const { return _lossCount; };
|
WebRtc_UWord32 TotalNumberOfLosses() const { return _lossCount; };
|
||||||
WebRtc_UWord32 NumberOfPacketsToResend() const;
|
WebRtc_UWord32 NumberOfPacketsToResend() const;
|
||||||
void ResentPacket(WebRtc_UWord16 seqNo);
|
void ResentPacket(WebRtc_UWord16 seqNo);
|
||||||
void Lock() {_critSect.Enter();};
|
void Lock() {_critSect->Enter();};
|
||||||
void Unlock() {_critSect.Leave();};
|
void Unlock() {_critSect->Leave();};
|
||||||
private:
|
private:
|
||||||
webrtc::CriticalSectionWrapper& _critSect;
|
webrtc::CriticalSectionWrapper* _critSect;
|
||||||
WebRtc_UWord32 _lossCount;
|
WebRtc_UWord32 _lossCount;
|
||||||
FILE* _debugFile;
|
FILE* _debugFile;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user