Do not use recursive calling in NetEq test tools
This CL removes recursive calling in: - NETEQTEST_DummyRTPpacket::readFromFile, - NETEQTEST_RTPpacket::readFromFile. The files currently exist for both NetEq3 and NetEq4, and all are changed with this CL. R=turaj@webrtc.org Review URL: https://webrtc-codereview.appspot.com/4699004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@5200 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@ -107,62 +107,66 @@ int NETEQTEST_RTPpacket::readFromFile(FILE *fp)
|
||||
|
||||
uint16_t length, plen;
|
||||
uint32_t offset;
|
||||
int packetLen;
|
||||
|
||||
if (fread(&length,2,1,fp)==0)
|
||||
{
|
||||
reset();
|
||||
return(-2);
|
||||
}
|
||||
length = ntohs(length);
|
||||
bool readNextPacket = true;
|
||||
while (readNextPacket) {
|
||||
readNextPacket = false;
|
||||
if (fread(&length,2,1,fp)==0)
|
||||
{
|
||||
reset();
|
||||
return(-2);
|
||||
}
|
||||
length = ntohs(length);
|
||||
|
||||
if (fread(&plen,2,1,fp)==0)
|
||||
{
|
||||
reset();
|
||||
return(-1);
|
||||
}
|
||||
int packetLen = ntohs(plen);
|
||||
if (fread(&plen,2,1,fp)==0)
|
||||
{
|
||||
reset();
|
||||
return(-1);
|
||||
}
|
||||
packetLen = ntohs(plen);
|
||||
|
||||
if (fread(&offset,4,1,fp)==0)
|
||||
{
|
||||
reset();
|
||||
return(-1);
|
||||
}
|
||||
uint32_t receiveTime = ntohl(offset); // store in local variable until we have passed the reset below
|
||||
if (fread(&offset,4,1,fp)==0)
|
||||
{
|
||||
reset();
|
||||
return(-1);
|
||||
}
|
||||
// store in local variable until we have passed the reset below
|
||||
uint32_t receiveTime = ntohl(offset);
|
||||
|
||||
// Use length here because a plen of 0 specifies rtcp
|
||||
length = (uint16_t) (length - _kRDHeaderLen);
|
||||
// Use length here because a plen of 0 specifies rtcp
|
||||
length = (uint16_t) (length - _kRDHeaderLen);
|
||||
|
||||
// check buffer size
|
||||
if (_datagram && _memSize < length)
|
||||
{
|
||||
reset();
|
||||
}
|
||||
// check buffer size
|
||||
if (_datagram && _memSize < length)
|
||||
{
|
||||
reset();
|
||||
}
|
||||
|
||||
if (!_datagram)
|
||||
{
|
||||
_datagram = new uint8_t[length];
|
||||
_memSize = length;
|
||||
}
|
||||
if (!_datagram)
|
||||
{
|
||||
_datagram = new uint8_t[length];
|
||||
_memSize = length;
|
||||
}
|
||||
|
||||
if (fread((unsigned short *) _datagram,1,length,fp) != length)
|
||||
{
|
||||
reset();
|
||||
return(-1);
|
||||
}
|
||||
if (fread((unsigned short *) _datagram,1,length,fp) != length)
|
||||
{
|
||||
reset();
|
||||
return(-1);
|
||||
}
|
||||
|
||||
_datagramLen = length;
|
||||
_receiveTime = receiveTime;
|
||||
_datagramLen = length;
|
||||
_receiveTime = receiveTime;
|
||||
|
||||
if (!_blockList.empty() && _blockList.count(payloadType()) > 0)
|
||||
{
|
||||
// discard this payload
|
||||
return(readFromFile(fp));
|
||||
}
|
||||
if (!_blockList.empty() && _blockList.count(payloadType()) > 0)
|
||||
{
|
||||
readNextPacket = true;
|
||||
}
|
||||
|
||||
if (_filterSSRC && _selectSSRC != SSRC())
|
||||
{
|
||||
// Discard this payload.
|
||||
return(readFromFile(fp));
|
||||
if (_filterSSRC && _selectSSRC != SSRC())
|
||||
{
|
||||
readNextPacket = true;
|
||||
}
|
||||
}
|
||||
|
||||
return(packetLen);
|
||||
|
||||
Reference in New Issue
Block a user