Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1290)

Unified Diff: media/cast/net/rtp/rtp_packetizer.cc

Issue 1515433002: Replace uses of raw uint32's with a type-checked RtpTimeTicks data type. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Speculative workaround fix for win8_chromium_ng compile error. Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/cast/net/rtp/rtp_packetizer.h ('k') | media/cast/net/rtp/rtp_packetizer_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/cast/net/rtp/rtp_packetizer.cc
diff --git a/media/cast/net/rtp/rtp_packetizer.cc b/media/cast/net/rtp/rtp_packetizer.cc
index 81bc6ddaad6250abda542996f8c8863ce9a4b17a..247eae8034334eba8394fe49d93452a7d289d66c 100644
--- a/media/cast/net/rtp/rtp_packetizer.cc
+++ b/media/cast/net/rtp/rtp_packetizer.cc
@@ -29,8 +29,6 @@ RtpPacketizer::RtpPacketizer(PacedSender* const transport,
transport_(transport),
packet_storage_(packet_storage),
sequence_number_(config_.sequence_number),
- rtp_timestamp_(0),
- packet_id_(0),
send_packet_count_(0),
send_octet_count_(0) {
DCHECK(transport) << "Invalid argument";
@@ -46,7 +44,6 @@ uint16_t RtpPacketizer::NextSequenceNumber() {
void RtpPacketizer::SendFrameAsPackets(const EncodedFrame& frame) {
uint16_t rtp_header_length = kRtpHeaderLength + kCastHeaderLength;
uint16_t max_length = config_.max_payload_length - rtp_header_length - 1;
- rtp_timestamp_ = frame.rtp_timestamp;
// Split the payload evenly (round number up).
size_t num_packets = (frame.data.size() + max_length) / max_length;
@@ -80,7 +77,8 @@ void RtpPacketizer::SendFrameAsPackets(const EncodedFrame& frame) {
if (frame.dependency == EncodedFrame::KEY)
byte0 |= kCastKeyFrameBitMask;
// Extensions only go on the first packet of the frame
- if (packet_id_ == 0)
+ const uint16_t packet_id = static_cast<uint16_t>(packets.size());
+ if (packet_id == 0)
byte0 |= num_extensions;
packet->data.push_back(byte0);
packet->data.push_back(static_cast<uint8_t>(frame.frame_id));
@@ -88,11 +86,11 @@ void RtpPacketizer::SendFrameAsPackets(const EncodedFrame& frame) {
packet->data.resize(start_size + 4);
base::BigEndianWriter big_endian_writer(
reinterpret_cast<char*>(&(packet->data[start_size])), 4);
- big_endian_writer.WriteU16(packet_id_);
+ big_endian_writer.WriteU16(packet_id);
big_endian_writer.WriteU16(static_cast<uint16_t>(num_packets - 1));
packet->data.push_back(static_cast<uint8_t>(frame.referenced_frame_id));
// Add extension details only on the first packet of the frame
- if (packet_id_ == 0 && frame.new_playout_delay_ms) {
+ if (packet_id == 0 && frame.new_playout_delay_ms) {
packet->data.push_back(kCastRtpExtensionAdaptiveLatency << 2);
packet->data.push_back(2); // 2 bytes
packet->data.push_back(
@@ -107,27 +105,24 @@ void RtpPacketizer::SendFrameAsPackets(const EncodedFrame& frame) {
data_iter += payload_length;
const PacketKey key = PacedPacketSender::MakePacketKey(
- PacketKey::RTP, frame.frame_id, config_.ssrc, packet_id_++);
+ PacketKey::RTP, frame.frame_id, config_.ssrc, packet_id);
packets.push_back(make_pair(key, packet));
// Update stats.
++send_packet_count_;
send_octet_count_ += payload_length;
}
- DCHECK(packet_id_ == num_packets) << "Invalid state";
+ DCHECK_EQ(num_packets, packets.size()) << "Invalid state";
packet_storage_->StoreFrame(frame.frame_id, packets);
// Send to network.
transport_->SendPackets(packets);
-
- // Prepare for next frame.
- packet_id_ = 0;
}
void RtpPacketizer::BuildCommonRTPheader(Packet* packet,
bool marker_bit,
- uint32_t time_stamp) {
+ RtpTimeTicks rtp_timestamp) {
packet->push_back(0x80);
packet->push_back(static_cast<uint8_t>(config_.payload_type) |
(marker_bit ? kRtpMarkerBitMask : 0));
@@ -136,7 +131,7 @@ void RtpPacketizer::BuildCommonRTPheader(Packet* packet,
base::BigEndianWriter big_endian_writer(
reinterpret_cast<char*>(&((*packet)[start_size])), 10);
big_endian_writer.WriteU16(sequence_number_);
- big_endian_writer.WriteU32(time_stamp);
+ big_endian_writer.WriteU32(rtp_timestamp.lower_32_bits());
big_endian_writer.WriteU32(config_.ssrc);
++sequence_number_;
}
« no previous file with comments | « media/cast/net/rtp/rtp_packetizer.h ('k') | media/cast/net/rtp/rtp_packetizer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698