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<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>());
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user