Index: media/cast/transport/rtp_sender/rtp_sender.cc |
diff --git a/media/cast/transport/rtp_sender/rtp_sender.cc b/media/cast/transport/rtp_sender/rtp_sender.cc |
index 2604d253de4e3f295163c8f29f9fe78a56445494..511d21c827408303736f3951529057ece80bb424 100644 |
--- a/media/cast/transport/rtp_sender/rtp_sender.cc |
+++ b/media/cast/transport/rtp_sender/rtp_sender.cc |
@@ -4,6 +4,7 @@ |
#include "media/cast/transport/rtp_sender/rtp_sender.h" |
+#include "base/big_endian.h" |
#include "base/logging.h" |
#include "base/rand_util.h" |
#include "media/cast/transport/cast_transport_defines.h" |
@@ -134,10 +135,13 @@ void RtpSender::ResendPackets( |
} |
void RtpSender::UpdateSequenceNumber(Packet* packet) { |
- uint16 new_sequence_number = packetizer_->NextSequenceNumber(); |
- int index = 2; |
- (*packet)[index] = (static_cast<uint8>(new_sequence_number)); |
- (*packet)[index + 1] = (static_cast<uint8>(new_sequence_number >> 8)); |
+ // TODO(miu): This is an abstraction violation. This needs to be a part of |
+ // the overall packet (de)serialization consolidation. |
+ static const int kByteOffsetToSequenceNumber = 2; |
+ base::BigEndianWriter big_endian_writer( |
+ reinterpret_cast<char*>((&packet->front()) + kByteOffsetToSequenceNumber), |
+ sizeof(uint16)); |
+ big_endian_writer.WriteU16(packetizer_->NextSequenceNumber()); |
} |
} // namespace transport |