Change rtp header extension AbsoluteSendTime::Write to take time in 24bit format

making it symmetric to AbsoluteSendTime::Parse function.

Bug: None
Change-Id: I9c71d840768064022ebebbbeb2962aeeecc68392
Reviewed-on: https://chromium-review.googlesource.com/531044
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18555}
This commit is contained in:
Danil Chapovalov
2017-06-12 15:43:55 +02:00
committed by Commit Bot
parent 29f0d453aa
commit f3ba6484e3
4 changed files with 11 additions and 8 deletions

View File

@ -126,7 +126,7 @@ RtpPacketToSend GenerateRtpPacket(const RtpHeaderExtensionMap* extensions,
rtp_packet.SetExtension<TransmissionOffset>(prng->Rand(0x00ffffff)); rtp_packet.SetExtension<TransmissionOffset>(prng->Rand(0x00ffffff));
rtp_packet.SetExtension<AudioLevel>(prng->Rand<bool>(), prng->Rand(127)); rtp_packet.SetExtension<AudioLevel>(prng->Rand<bool>(), prng->Rand(127));
rtp_packet.SetExtension<AbsoluteSendTime>(prng->Rand<int32_t>()); rtp_packet.SetExtension<AbsoluteSendTime>(prng->Rand(0x00ffffff));
rtp_packet.SetExtension<VideoOrientation>(prng->Rand(2)); rtp_packet.SetExtension<VideoOrientation>(prng->Rand(2));
rtp_packet.SetExtension<TransportSequenceNumber>(prng->Rand<uint16_t>()); rtp_packet.SetExtension<TransportSequenceNumber>(prng->Rand<uint16_t>());

View File

@ -43,8 +43,9 @@ bool AbsoluteSendTime::Parse(rtc::ArrayView<const uint8_t> data,
return true; return true;
} }
bool AbsoluteSendTime::Write(uint8_t* data, int64_t time_ms) { bool AbsoluteSendTime::Write(uint8_t* data, uint32_t time_24bits) {
ByteWriter<uint32_t, 3>::WriteBigEndian(data, MsTo24Bits(time_ms)); RTC_DCHECK_LE(time_24bits, 0x00FFFFFF);
ByteWriter<uint32_t, 3>::WriteBigEndian(data, time_24bits);
return true; return true;
} }

View File

@ -28,8 +28,8 @@ class AbsoluteSendTime {
"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"; "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time";
static bool Parse(rtc::ArrayView<const uint8_t> data, uint32_t* time_24bits); static bool Parse(rtc::ArrayView<const uint8_t> data, uint32_t* time_24bits);
static size_t ValueSize(int64_t time_ms) { return kValueSizeBytes; } static size_t ValueSize(uint32_t time_24bits) { return kValueSizeBytes; }
static bool Write(uint8_t* data, int64_t time_ms); static bool Write(uint8_t* data, uint32_t time_24bits);
static constexpr uint32_t MsTo24Bits(int64_t time_ms) { static constexpr uint32_t MsTo24Bits(int64_t time_ms) {
return static_cast<uint32_t>(((time_ms << 18) + 500) / 1000) & 0x00FFFFFF; return static_cast<uint32_t>(((time_ms << 18) + 500) / 1000) & 0x00FFFFFF;

View File

@ -559,7 +559,8 @@ size_t RTPSender::SendPadData(size_t bytes,
padding_packet.SetExtension<TransmissionOffset>( padding_packet.SetExtension<TransmissionOffset>(
(now_ms - capture_time_ms) * kTimestampTicksPerMs); (now_ms - capture_time_ms) * kTimestampTicksPerMs);
} }
padding_packet.SetExtension<AbsoluteSendTime>(now_ms); padding_packet.SetExtension<AbsoluteSendTime>(
AbsoluteSendTime::MsTo24Bits(now_ms));
PacketOptions options; PacketOptions options;
bool has_transport_seq_num = bool has_transport_seq_num =
UpdateTransportSequenceNumber(&padding_packet, &options.packet_id); UpdateTransportSequenceNumber(&padding_packet, &options.packet_id);
@ -739,7 +740,8 @@ bool RTPSender::PrepareAndSendPacket(std::unique_ptr<RtpPacketToSend> packet,
int64_t diff_ms = now_ms - capture_time_ms; int64_t diff_ms = now_ms - capture_time_ms;
packet_to_send->SetExtension<TransmissionOffset>(kTimestampTicksPerMs * packet_to_send->SetExtension<TransmissionOffset>(kTimestampTicksPerMs *
diff_ms); diff_ms);
packet_to_send->SetExtension<AbsoluteSendTime>(now_ms); packet_to_send->SetExtension<AbsoluteSendTime>(
AbsoluteSendTime::MsTo24Bits(now_ms));
PacketOptions options; PacketOptions options;
if (UpdateTransportSequenceNumber(packet_to_send, &options.packet_id)) { if (UpdateTransportSequenceNumber(packet_to_send, &options.packet_id)) {
@ -829,7 +831,7 @@ bool RTPSender::SendToNetwork(std::unique_ptr<RtpPacketToSend> packet,
packet->SetExtension<TransmissionOffset>( packet->SetExtension<TransmissionOffset>(
kTimestampTicksPerMs * (now_ms - packet->capture_time_ms())); kTimestampTicksPerMs * (now_ms - packet->capture_time_ms()));
} }
packet->SetExtension<AbsoluteSendTime>(now_ms); packet->SetExtension<AbsoluteSendTime>(AbsoluteSendTime::MsTo24Bits(now_ms));
if (video_) { if (video_) {
BWE_TEST_LOGGING_PLOT_WITH_SSRC(1, "VideoTotBitrate_kbps", now_ms, BWE_TEST_LOGGING_PLOT_WITH_SSRC(1, "VideoTotBitrate_kbps", now_ms,