Fixes issue 210. Removes diff between two different arrays.
Also fixes the FrameBuffer copy constructor.
BUG=210
TEST=
Review URL: http://webrtc-codereview.appspot.com/347002
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1364 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/src/modules/video_coding/main/source/session_info.cc b/src/modules/video_coding/main/source/session_info.cc
index 66b1dc2..4a5d169 100644
--- a/src/modules/video_coding/main/source/session_info.cc
+++ b/src/modules/video_coding/main/source/session_info.cc
@@ -26,10 +26,13 @@
packets_not_decodable_(0) {
}
-void VCMSessionInfo::UpdateDataPointers(ptrdiff_t address_delta) {
+void VCMSessionInfo::UpdateDataPointers(const uint8_t* old_base_ptr,
+ const uint8_t* new_base_ptr) {
for (PacketIterator it = packets_.begin(); it != packets_.end(); ++it)
- if ((*it).dataPtr != NULL)
- (*it).dataPtr = (*it).dataPtr + address_delta;
+ if ((*it).dataPtr != NULL) {
+ assert(old_base_ptr != NULL && new_base_ptr != NULL);
+ (*it).dataPtr = new_base_ptr + ((*it).dataPtr - old_base_ptr);
+ }
}
int VCMSessionInfo::LowSequenceNumber() const {