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:
stefan@webrtc.org
2011-12-12 08:18:24 +00:00
parent 981d74ddf4
commit 7889a9b49a
15 changed files with 71 additions and 70 deletions

View File

@@ -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(

View File

@@ -48,7 +48,7 @@ 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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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

View File

@@ -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;

View File

@@ -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)
{ {

View File

@@ -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;

View File

@@ -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

View File

@@ -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;

View File

@@ -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

View File

@@ -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];

View File

@@ -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)

View File

@@ -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)

View File

@@ -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;
}; };