diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-24 04:20:48 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-24 04:20:48 +0000 |
commit | 8e88605290262afe6291f997abc0d5ff9197c595 (patch) | |
tree | a358863f248c784aef39bd0b7b3e47295384f5d2 /remoting/protocol/rtp_video_reader_unittest.cc | |
parent | 629a837754b10e7a08a7f85838d3271f96e68f2f (diff) | |
download | chromium_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.cc | 38 |
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); } } |