Moving test-only code (stream_generator) out of vcm implemention.

R=niklas.enbom@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2207004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4740 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
andresp@webrtc.org 2013-09-13 19:17:54 +00:00
parent 2553450959
commit 1f09dbe353
5 changed files with 30 additions and 39 deletions

View File

@ -204,12 +204,12 @@
'video_coding/main/source/jitter_buffer_unittest.cc', 'video_coding/main/source/jitter_buffer_unittest.cc',
'video_coding/main/source/receiver_unittest.cc', 'video_coding/main/source/receiver_unittest.cc',
'video_coding/main/source/session_info_unittest.cc', 'video_coding/main/source/session_info_unittest.cc',
'video_coding/main/source/stream_generator.cc',
'video_coding/main/source/stream_generator.h',
'video_coding/main/source/timing_unittest.cc', 'video_coding/main/source/timing_unittest.cc',
'video_coding/main/source/video_coding_robustness_unittest.cc', 'video_coding/main/source/video_coding_robustness_unittest.cc',
'video_coding/main/source/video_coding_impl_unittest.cc', 'video_coding/main/source/video_coding_impl_unittest.cc',
'video_coding/main/source/qm_select_unittest.cc', 'video_coding/main/source/qm_select_unittest.cc',
'video_coding/main/source/test/stream_generator.cc',
'video_coding/main/source/test/stream_generator.h',
'video_coding/main/test/pcap_file_reader.cc', 'video_coding/main/test/pcap_file_reader.cc',
'video_coding/main/test/pcap_file_reader_unittest.cc', 'video_coding/main/test/pcap_file_reader_unittest.cc',
'video_coding/main/test/rtp_file_reader.cc', 'video_coding/main/test/rtp_file_reader.cc',

View File

@ -17,7 +17,7 @@
#include "webrtc/modules/video_coding/main/source/jitter_buffer.h" #include "webrtc/modules/video_coding/main/source/jitter_buffer.h"
#include "webrtc/modules/video_coding/main/source/media_opt_util.h" #include "webrtc/modules/video_coding/main/source/media_opt_util.h"
#include "webrtc/modules/video_coding/main/source/packet.h" #include "webrtc/modules/video_coding/main/source/packet.h"
#include "webrtc/modules/video_coding/main/source/stream_generator.h" #include "webrtc/modules/video_coding/main/source/test/stream_generator.h"
#include "webrtc/modules/video_coding/main/test/test_util.h" #include "webrtc/modules/video_coding/main/test/test_util.h"
#include "webrtc/system_wrappers/interface/clock.h" #include "webrtc/system_wrappers/interface/clock.h"

View File

@ -14,7 +14,7 @@
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
#include "webrtc/modules/video_coding/main/source/packet.h" #include "webrtc/modules/video_coding/main/source/packet.h"
#include "webrtc/modules/video_coding/main/source/receiver.h" #include "webrtc/modules/video_coding/main/source/receiver.h"
#include "webrtc/modules/video_coding/main/source/stream_generator.h" #include "webrtc/modules/video_coding/main/source/test/stream_generator.h"
#include "webrtc/modules/video_coding/main/source/timing.h" #include "webrtc/modules/video_coding/main/source/timing.h"
#include "webrtc/modules/video_coding/main/test/test_util.h" #include "webrtc/modules/video_coding/main/test/test_util.h"
#include "webrtc/system_wrappers/interface/clock.h" #include "webrtc/system_wrappers/interface/clock.h"

View File

@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree. * be found in the AUTHORS file in the root of the source tree.
*/ */
#include "webrtc/modules/video_coding/main/source/stream_generator.h" #include "webrtc/modules/video_coding/main/source/test/stream_generator.h"
#include <string.h> #include <string.h>
@ -19,7 +19,6 @@
#include "webrtc/modules/video_coding/main/test/test_util.h" #include "webrtc/modules/video_coding/main/test/test_util.h"
#include "webrtc/system_wrappers/interface/clock.h" #include "webrtc/system_wrappers/interface/clock.h"
namespace webrtc { namespace webrtc {
StreamGenerator::StreamGenerator(uint16_t start_seq_num, StreamGenerator::StreamGenerator(uint16_t start_seq_num,
@ -30,7 +29,8 @@ StreamGenerator::StreamGenerator(uint16_t start_seq_num,
timestamp_(start_timestamp), timestamp_(start_timestamp),
start_time_(current_time) {} start_time_(current_time) {}
void StreamGenerator::Init(uint16_t start_seq_num, uint32_t start_timestamp, void StreamGenerator::Init(uint16_t start_seq_num,
uint32_t start_timestamp,
int64_t current_time) { int64_t current_time) {
packets_.clear(); packets_.clear();
sequence_number_ = start_seq_num; sequence_number_ = start_seq_num;
@ -45,24 +45,16 @@ void StreamGenerator::GenerateFrame(FrameType type,
int64_t current_time) { int64_t current_time) {
timestamp_ = 90 * (current_time - start_time_); timestamp_ = 90 * (current_time - start_time_);
for (int i = 0; i < num_media_packets; ++i) { for (int i = 0; i < num_media_packets; ++i) {
const int packet_size = (kFrameSize + num_media_packets / 2) / const int packet_size =
num_media_packets; (kFrameSize + num_media_packets / 2) / num_media_packets;
bool marker_bit = (i == num_media_packets - 1); bool marker_bit = (i == num_media_packets - 1);
packets_.push_back(GeneratePacket(sequence_number_, packets_.push_back(GeneratePacket(
timestamp_, sequence_number_, timestamp_, packet_size, (i == 0), marker_bit, type));
packet_size,
(i == 0),
marker_bit,
type));
++sequence_number_; ++sequence_number_;
} }
for (int i = 0; i < num_empty_packets; ++i) { for (int i = 0; i < num_empty_packets; ++i) {
packets_.push_back(GeneratePacket(sequence_number_, packets_.push_back(GeneratePacket(
timestamp_, sequence_number_, timestamp_, 0, false, false, kFrameEmpty));
0,
false,
false,
kFrameEmpty));
++sequence_number_; ++sequence_number_;
} }
} }
@ -119,9 +111,7 @@ bool StreamGenerator::NextPacket(VCMPacket* packet) {
return true; return true;
} }
void StreamGenerator::DropLastPacket() { void StreamGenerator::DropLastPacket() { packets_.pop_back(); }
packets_.pop_back();
}
uint16_t StreamGenerator::NextSequenceNumber() const { uint16_t StreamGenerator::NextSequenceNumber() const {
if (packets_.empty()) if (packets_.empty())
@ -129,15 +119,14 @@ uint16_t StreamGenerator::NextSequenceNumber() const {
return packets_.front().seqNum; return packets_.front().seqNum;
} }
int StreamGenerator::PacketsRemaining() const { int StreamGenerator::PacketsRemaining() const { return packets_.size(); }
return packets_.size();
}
std::list<VCMPacket>::iterator StreamGenerator::GetPacketIterator(int index) { std::list<VCMPacket>::iterator StreamGenerator::GetPacketIterator(int index) {
std::list<VCMPacket>::iterator it = packets_.begin(); std::list<VCMPacket>::iterator it = packets_.begin();
for (int i = 0; i < index; ++i) { for (int i = 0; i < index; ++i) {
++it; ++it;
if (it == packets_.end()) break; if (it == packets_.end())
break;
} }
return it; return it;
} }

View File

@ -7,8 +7,8 @@
* in the file PATENTS. All contributing project authors may * in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree. * be found in the AUTHORS file in the root of the source tree.
*/ */
#ifndef WEBRTC_MODULES_VIDEO_CODING_MAIN_SOURCE_STREAM_GENERATOR_H_ #ifndef WEBRTC_MODULES_VIDEO_CODING_MAIN_SOURCE_TEST_STREAM_GENERATOR_H_
#define WEBRTC_MODULES_VIDEO_CODING_MAIN_SOURCE_STREAM_GENERATOR_H_ #define WEBRTC_MODULES_VIDEO_CODING_MAIN_SOURCE_TEST_STREAM_GENERATOR_H_
#include <string.h> #include <string.h>
@ -22,21 +22,23 @@ namespace webrtc {
const unsigned int kDefaultBitrateKbps = 1000; const unsigned int kDefaultBitrateKbps = 1000;
const unsigned int kDefaultFrameRate = 25; const unsigned int kDefaultFrameRate = 25;
const unsigned int kMaxPacketSize = 1500; const unsigned int kMaxPacketSize = 1500;
const unsigned int kFrameSize = (kDefaultBitrateKbps + kDefaultFrameRate * 4) / const unsigned int kFrameSize =
(kDefaultFrameRate * 8); (kDefaultBitrateKbps + kDefaultFrameRate * 4) / (kDefaultFrameRate * 8);
const int kDefaultFramePeriodMs = 1000 / kDefaultFrameRate; const int kDefaultFramePeriodMs = 1000 / kDefaultFrameRate;
class StreamGenerator { class StreamGenerator {
public: public:
StreamGenerator(uint16_t start_seq_num, uint32_t start_timestamp, StreamGenerator(uint16_t start_seq_num,
uint32_t start_timestamp,
int64_t current_time); int64_t current_time);
void Init(uint16_t start_seq_num, uint32_t start_timestamp, void Init(uint16_t start_seq_num,
uint32_t start_timestamp,
int64_t current_time); int64_t current_time);
void GenerateFrame(FrameType type, int num_media_packets, void GenerateFrame(FrameType type,
int num_empty_packets, int64_t current_time); int num_media_packets,
int num_empty_packets,
int64_t current_time);
VCMPacket GeneratePacket(uint16_t sequence_number, VCMPacket GeneratePacket(uint16_t sequence_number,
uint32_t timestamp, uint32_t timestamp,
@ -70,4 +72,4 @@ class StreamGenerator {
} // namespace webrtc } // namespace webrtc
#endif // WEBRTC_MODULES_VIDEO_CODING_MAIN_SOURCE_STREAM_GENERATOR_H_ #endif // WEBRTC_MODULES_VIDEO_CODING_MAIN_SOURCE_TEST_STREAM_GENERATOR_H_