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:
committed by
Commit Bot
parent
29f0d453aa
commit
f3ba6484e3
@ -126,7 +126,7 @@ RtpPacketToSend GenerateRtpPacket(const RtpHeaderExtensionMap* extensions,
|
||||
|
||||
rtp_packet.SetExtension<TransmissionOffset>(prng->Rand(0x00ffffff));
|
||||
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<TransportSequenceNumber>(prng->Rand<uint16_t>());
|
||||
|
||||
|
||||
@ -43,8 +43,9 @@ bool AbsoluteSendTime::Parse(rtc::ArrayView<const uint8_t> data,
|
||||
return true;
|
||||
}
|
||||
|
||||
bool AbsoluteSendTime::Write(uint8_t* data, int64_t time_ms) {
|
||||
ByteWriter<uint32_t, 3>::WriteBigEndian(data, MsTo24Bits(time_ms));
|
||||
bool AbsoluteSendTime::Write(uint8_t* data, uint32_t time_24bits) {
|
||||
RTC_DCHECK_LE(time_24bits, 0x00FFFFFF);
|
||||
ByteWriter<uint32_t, 3>::WriteBigEndian(data, time_24bits);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -28,8 +28,8 @@ class AbsoluteSendTime {
|
||||
"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time";
|
||||
|
||||
static bool Parse(rtc::ArrayView<const uint8_t> data, uint32_t* time_24bits);
|
||||
static size_t ValueSize(int64_t time_ms) { return kValueSizeBytes; }
|
||||
static bool Write(uint8_t* data, int64_t time_ms);
|
||||
static size_t ValueSize(uint32_t time_24bits) { return kValueSizeBytes; }
|
||||
static bool Write(uint8_t* data, uint32_t time_24bits);
|
||||
|
||||
static constexpr uint32_t MsTo24Bits(int64_t time_ms) {
|
||||
return static_cast<uint32_t>(((time_ms << 18) + 500) / 1000) & 0x00FFFFFF;
|
||||
|
||||
@ -559,7 +559,8 @@ size_t RTPSender::SendPadData(size_t bytes,
|
||||
padding_packet.SetExtension<TransmissionOffset>(
|
||||
(now_ms - capture_time_ms) * kTimestampTicksPerMs);
|
||||
}
|
||||
padding_packet.SetExtension<AbsoluteSendTime>(now_ms);
|
||||
padding_packet.SetExtension<AbsoluteSendTime>(
|
||||
AbsoluteSendTime::MsTo24Bits(now_ms));
|
||||
PacketOptions options;
|
||||
bool has_transport_seq_num =
|
||||
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;
|
||||
packet_to_send->SetExtension<TransmissionOffset>(kTimestampTicksPerMs *
|
||||
diff_ms);
|
||||
packet_to_send->SetExtension<AbsoluteSendTime>(now_ms);
|
||||
packet_to_send->SetExtension<AbsoluteSendTime>(
|
||||
AbsoluteSendTime::MsTo24Bits(now_ms));
|
||||
|
||||
PacketOptions options;
|
||||
if (UpdateTransportSequenceNumber(packet_to_send, &options.packet_id)) {
|
||||
@ -829,7 +831,7 @@ bool RTPSender::SendToNetwork(std::unique_ptr<RtpPacketToSend> packet,
|
||||
packet->SetExtension<TransmissionOffset>(
|
||||
kTimestampTicksPerMs * (now_ms - packet->capture_time_ms()));
|
||||
}
|
||||
packet->SetExtension<AbsoluteSendTime>(now_ms);
|
||||
packet->SetExtension<AbsoluteSendTime>(AbsoluteSendTime::MsTo24Bits(now_ms));
|
||||
|
||||
if (video_) {
|
||||
BWE_TEST_LOGGING_PLOT_WITH_SSRC(1, "VideoTotBitrate_kbps", now_ms,
|
||||
|
||||
Reference in New Issue
Block a user