summaryrefslogtreecommitdiffstats
path: root/remoting/protocol/rtp_video_reader_unittest.cc
diff options
context:
space:
mode:
authorsergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-24 04:20:48 +0000
committersergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-24 04:20:48 +0000
commit8e88605290262afe6291f997abc0d5ff9197c595 (patch)
treea358863f248c784aef39bd0b7b3e47295384f5d2 /remoting/protocol/rtp_video_reader_unittest.cc
parent629a837754b10e7a08a7f85838d3271f96e68f2f (diff)
downloadchromium_src-8e88605290262afe6291f997abc0d5ff9197c595.zip
chromium_src-8e88605290262afe6291f997abc0d5ff9197c595.tar.gz
chromium_src-8e88605290262afe6291f997abc0d5ff9197c595.tar.bz2
Refactoring in RTP reader code: sequence number wrapping logic moved to
RtpReader BUG=None TEST=Unittests Review URL: http://codereview.chromium.org/5110008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67212 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/protocol/rtp_video_reader_unittest.cc')
-rw-r--r--remoting/protocol/rtp_video_reader_unittest.cc38
1 files changed, 25 insertions, 13 deletions
diff --git a/remoting/protocol/rtp_video_reader_unittest.cc b/remoting/protocol/rtp_video_reader_unittest.cc
index 60dba69c..9af3914 100644
--- a/remoting/protocol/rtp_video_reader_unittest.cc
+++ b/remoting/protocol/rtp_video_reader_unittest.cc
@@ -80,19 +80,31 @@ class RtpVideoReaderTest : public testing::Test,
void SplitAndSend(const FragmentInfo fragments[], int count) {
for (int i = 0; i < count; ++i) {
- RtpPacket* packet = new RtpPacket();
-
- packet->mutable_header()->sequence_number = fragments[i].sequence_number;
- packet->mutable_header()->marker = fragments[i].last;
- packet->mutable_header()->timestamp = fragments[i].timestamp;
-
- packet->mutable_vp8_descriptor()->frame_beginning = fragments[i].first;
- packet->mutable_vp8_descriptor()->fragmentation_info =
- fragments[i].fragmentation_info;
- packet->mutable_payload()->AppendCopyOf(
- &*data_.begin() + fragments[i].start,
- fragments[i].end - fragments[i].start);
- reader_->OnRtpPacket(packet);
+ RtpHeader header;
+ header.sequence_number = fragments[i].sequence_number;
+ header.marker = fragments[i].last;
+ header.timestamp = fragments[i].timestamp;
+
+ Vp8Descriptor descriptor;
+ descriptor.non_reference_frame = true;
+ descriptor.frame_beginning = fragments[i].first;
+ descriptor.fragmentation_info = fragments[i].fragmentation_info;
+
+ int header_size = GetRtpHeaderSize(header);
+ int vp8_desc_size = GetVp8DescriptorSize(descriptor);
+ int payload_size = fragments[i].end - fragments[i].start;
+ int size = header_size + vp8_desc_size + payload_size;
+ scoped_refptr<net::IOBuffer> buffer = new net::IOBuffer(size);
+
+ PackRtpHeader(header, reinterpret_cast<uint8*>(buffer->data()),
+ header_size);
+ PackVp8Descriptor(descriptor, reinterpret_cast<uint8*>(buffer->data()) +
+ header_size, vp8_desc_size);
+
+ memcpy(buffer->data() + header_size + vp8_desc_size,
+ &*data_.begin() + fragments[i].start, payload_size);
+
+ reader_->rtp_reader_.OnDataReceived(buffer, size);
}
}