Use RtpFileSource in NetEqDecodingTest
This CL removes the dependency on the old NETEQTEST_RTPpacket class
from the NetEqDecodingTest code, and also removes the dependency
from the modules_unittests target to neteq_test_tools.
BUG=2692
R=tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/24269004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7709 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/modules/audio_coding/neteq/neteq_unittest.cc b/webrtc/modules/audio_coding/neteq/neteq_unittest.cc
index 4a7dbec..7ed9a87 100644
--- a/webrtc/modules/audio_coding/neteq/neteq_unittest.cc
+++ b/webrtc/modules/audio_coding/neteq/neteq_unittest.cc
@@ -25,9 +25,10 @@
#include "gflags/gflags.h"
#include "testing/gtest/include/gtest/gtest.h"
-#include "webrtc/modules/audio_coding/neteq/test/NETEQTEST_RTPpacket.h"
#include "webrtc/modules/audio_coding/neteq/tools/audio_loop.h"
+#include "webrtc/modules/audio_coding/neteq/tools/rtp_file_source.h"
#include "webrtc/modules/audio_coding/codecs/pcm16b/include/pcm16b.h"
+#include "webrtc/system_wrappers/interface/scoped_ptr.h"
#include "webrtc/test/testsupport/fileutils.h"
#include "webrtc/test/testsupport/gtest_disable.h"
#include "webrtc/typedefs.h"
@@ -200,7 +201,7 @@
void SelectDecoders(NetEqDecoder* used_codec);
void LoadDecoders();
void OpenInputFile(const std::string &rtp_file);
- void Process(NETEQTEST_RTPpacket* rtp_ptr, int* out_len);
+ void Process(int* out_len);
void DecodeAndCompare(const std::string& rtp_file,
const std::string& ref_file,
const std::string& stat_ref_file,
@@ -230,7 +231,8 @@
NetEq* neteq_;
NetEq::Config config_;
- FILE* rtp_fp_;
+ scoped_ptr<test::RtpFileSource> rtp_source_;
+ scoped_ptr<test::Packet> packet_;
unsigned int sim_clock_;
int16_t out_data_[kMaxBlockSize];
int output_sample_rate_;
@@ -248,7 +250,6 @@
NetEqDecodingTest::NetEqDecodingTest()
: neteq_(NULL),
config_(),
- rtp_fp_(NULL),
sim_clock_(0),
output_sample_rate_(kInitSampleRateHz),
algorithmic_delay_ms_(0) {
@@ -267,8 +268,6 @@
void NetEqDecodingTest::TearDown() {
delete neteq_;
- if (rtp_fp_)
- fclose(rtp_fp_);
}
void NetEqDecodingTest::LoadDecoders() {
@@ -301,26 +300,22 @@
}
void NetEqDecodingTest::OpenInputFile(const std::string &rtp_file) {
- rtp_fp_ = fopen(rtp_file.c_str(), "rb");
- ASSERT_TRUE(rtp_fp_ != NULL);
- ASSERT_EQ(0, NETEQTEST_RTPpacket::skipFileHeader(rtp_fp_));
+ rtp_source_.reset(test::RtpFileSource::Create(rtp_file));
}
-void NetEqDecodingTest::Process(NETEQTEST_RTPpacket* rtp, int* out_len) {
+void NetEqDecodingTest::Process(int* out_len) {
// Check if time to receive.
- while ((sim_clock_ >= rtp->time()) &&
- (rtp->dataLen() >= 0)) {
- if (rtp->dataLen() > 0) {
- WebRtcRTPHeader rtpInfo;
- rtp->parseHeader(&rtpInfo);
+ while (packet_ && sim_clock_ >= packet_->time_ms()) {
+ if (packet_->payload_length_bytes() > 0) {
+ WebRtcRTPHeader rtp_header;
+ packet_->ConvertHeader(&rtp_header);
ASSERT_EQ(0, neteq_->InsertPacket(
- rtpInfo,
- rtp->payload(),
- rtp->payloadLen(),
- rtp->time() * (output_sample_rate_ / 1000)));
+ rtp_header, packet_->payload(),
+ packet_->payload_length_bytes(),
+ packet_->time_ms() * (output_sample_rate_ / 1000)));
}
// Get next packet.
- ASSERT_NE(-1, rtp->readFromFile(rtp_fp_));
+ packet_.reset(rtp_source_->NextPacket());
}
// Get audio from NetEq.
@@ -361,15 +356,14 @@
}
RefFiles rtcp_stat_files(rtcp_ref_file, rtcp_out_file);
- NETEQTEST_RTPpacket rtp;
- ASSERT_GT(rtp.readFromFile(rtp_fp_), 0);
+ packet_.reset(rtp_source_->NextPacket());
int i = 0;
- while (rtp.dataLen() >= 0) {
+ while (packet_) {
std::ostringstream ss;
ss << "Lap number " << i++ << " in DecodeAndCompare while loop";
SCOPED_TRACE(ss.str()); // Print out the parameter values on failure.
int out_len = 0;
- ASSERT_NO_FATAL_FAILURE(Process(&rtp, &out_len));
+ ASSERT_NO_FATAL_FAILURE(Process(&out_len));
ASSERT_NO_FATAL_FAILURE(ref_files.ProcessReference(out_data_, out_len));
// Query the network statistics API once per second
diff --git a/webrtc/modules/audio_coding/neteq/tools/packet_source.h b/webrtc/modules/audio_coding/neteq/tools/packet_source.h
index 0b724b1..968400c 100644
--- a/webrtc/modules/audio_coding/neteq/tools/packet_source.h
+++ b/webrtc/modules/audio_coding/neteq/tools/packet_source.h
@@ -14,13 +14,12 @@
#include <bitset>
#include "webrtc/base/constructormagic.h"
+#include "webrtc/modules/audio_coding/neteq/tools/packet.h"
#include "webrtc/typedefs.h"
namespace webrtc {
namespace test {
-class Packet;
-
// Interface class for an object delivering RTP packets to test applications.
class PacketSource {
public:
diff --git a/webrtc/modules/modules.gyp b/webrtc/modules/modules.gyp
index 58d5cdd..17fa557 100644
--- a/webrtc/modules/modules.gyp
+++ b/webrtc/modules/modules.gyp
@@ -78,7 +78,6 @@
'iSACFix',
'media_file',
'neteq',
- 'neteq_test_tools',
'neteq_unittest_tools',
'paced_sender',
'PCM16B', # Needed by NetEq tests.