mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-26 20:25:34 +08:00
[fix] use proper std::chrono clock
This commit is contained in:
@@ -25,7 +25,7 @@ AudioEncoder::~AudioEncoder() {
|
|||||||
int AudioEncoder::Init() {
|
int AudioEncoder::Init() {
|
||||||
last_ts = static_cast<uint32_t>(
|
last_ts = static_cast<uint32_t>(
|
||||||
std::chrono::duration_cast<std::chrono::milliseconds>(
|
std::chrono::duration_cast<std::chrono::milliseconds>(
|
||||||
std::chrono::high_resolution_clock::now().time_since_epoch())
|
std::chrono::steady_clock::now().time_since_epoch())
|
||||||
.count());
|
.count());
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ int AudioEncoder::Encode(
|
|||||||
|
|
||||||
// uint32_t now_ts = static_cast<uint32_t>(
|
// uint32_t now_ts = static_cast<uint32_t>(
|
||||||
// std::chrono::duration_cast<std::chrono::milliseconds>(
|
// std::chrono::duration_cast<std::chrono::milliseconds>(
|
||||||
// std::chrono::high_resolution_clock::now().time_since_epoch())
|
// std::chrono::steady_clock::now().time_since_epoch())
|
||||||
// .count());
|
// .count());
|
||||||
|
|
||||||
// printf("1 Time cost: %d size: %d\n", now_ts - last_ts, size);
|
// printf("1 Time cost: %d size: %d\n", now_ts - last_ts, size);
|
||||||
|
|||||||
@@ -18,11 +18,11 @@
|
|||||||
|
|
||||||
#include "nvcuvid.h"
|
#include "nvcuvid.h"
|
||||||
|
|
||||||
#define START_TIMER auto start = std::chrono::high_resolution_clock::now();
|
#define START_TIMER auto start = std::chrono::steady_clock::now();
|
||||||
#define STOP_TIMER(print_message) \
|
#define STOP_TIMER(print_message) \
|
||||||
std::cout << print_message \
|
std::cout << print_message \
|
||||||
<< std::chrono::duration_cast<std::chrono::milliseconds>( \
|
<< std::chrono::duration_cast<std::chrono::milliseconds>( \
|
||||||
std::chrono::high_resolution_clock::now() - start) \
|
std::chrono::steady_clock::now() - start) \
|
||||||
.count() \
|
.count() \
|
||||||
<< " ms " << std::endl;
|
<< " ms " << std::endl;
|
||||||
|
|
||||||
|
|||||||
@@ -177,7 +177,7 @@ int OpenH264Encoder::Encode(
|
|||||||
raw_frame_.iPicHeight = frame_height_;
|
raw_frame_.iPicHeight = frame_height_;
|
||||||
raw_frame_.iColorFormat = EVideoFormatType::videoFormatI420;
|
raw_frame_.iColorFormat = EVideoFormatType::videoFormatI420;
|
||||||
raw_frame_.uiTimeStamp =
|
raw_frame_.uiTimeStamp =
|
||||||
std::chrono::high_resolution_clock::now().time_since_epoch().count();
|
std::chrono::system_clock::now().time_since_epoch().count();
|
||||||
|
|
||||||
raw_frame_.iStride[0] = frame_width_;
|
raw_frame_.iStride[0] = frame_width_;
|
||||||
raw_frame_.iStride[1] = frame_width_ >> 1;
|
raw_frame_.iStride[1] = frame_width_ >> 1;
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ int RtpAudioReceiver::SendRtcpRR(RtcpReceiverReport& rtcp_rr) {
|
|||||||
bool RtpAudioReceiver::CheckIsTimeSendRR() {
|
bool RtpAudioReceiver::CheckIsTimeSendRR() {
|
||||||
uint32_t now_ts = static_cast<uint32_t>(
|
uint32_t now_ts = static_cast<uint32_t>(
|
||||||
std::chrono::duration_cast<std::chrono::milliseconds>(
|
std::chrono::duration_cast<std::chrono::milliseconds>(
|
||||||
std::chrono::high_resolution_clock::now().time_since_epoch())
|
std::chrono::system_clock::now().time_since_epoch())
|
||||||
.count());
|
.count());
|
||||||
|
|
||||||
if (now_ts - last_send_rtcp_rr_packet_ts_ >= RTCP_RR_INTERVAL) {
|
if (now_ts - last_send_rtcp_rr_packet_ts_ >= RTCP_RR_INTERVAL) {
|
||||||
|
|||||||
@@ -64,8 +64,7 @@ int RtpAudioSender::SendRtpPacket(RtpPacket& rtp_packet) {
|
|||||||
sender_info.ntp_ts_msw = (uint32_t)seconds_u32;
|
sender_info.ntp_ts_msw = (uint32_t)seconds_u32;
|
||||||
sender_info.ntp_ts_lsw = (uint32_t)fraction_u32;
|
sender_info.ntp_ts_lsw = (uint32_t)fraction_u32;
|
||||||
sender_info.rtp_ts =
|
sender_info.rtp_ts =
|
||||||
std::chrono::high_resolution_clock::now().time_since_epoch().count() *
|
std::chrono::system_clock::now().time_since_epoch().count() * 1000000;
|
||||||
1000000;
|
|
||||||
sender_info.sender_packet_count = total_rtp_packets_sent_;
|
sender_info.sender_packet_count = total_rtp_packets_sent_;
|
||||||
sender_info.sender_octet_count = total_rtp_payload_sent_;
|
sender_info.sender_octet_count = total_rtp_payload_sent_;
|
||||||
|
|
||||||
@@ -108,7 +107,7 @@ int RtpAudioSender::SendRtcpSR(RtcpSenderReport& rtcp_sr) {
|
|||||||
bool RtpAudioSender::CheckIsTimeSendSR() {
|
bool RtpAudioSender::CheckIsTimeSendSR() {
|
||||||
uint32_t now_ts = static_cast<uint32_t>(
|
uint32_t now_ts = static_cast<uint32_t>(
|
||||||
std::chrono::duration_cast<std::chrono::milliseconds>(
|
std::chrono::duration_cast<std::chrono::milliseconds>(
|
||||||
std::chrono::high_resolution_clock::now().time_since_epoch())
|
std::chrono::system_clock::now().time_since_epoch())
|
||||||
.count());
|
.count());
|
||||||
|
|
||||||
if (now_ts - last_send_rtcp_sr_packet_ts_ >= RTCP_SR_INTERVAL) {
|
if (now_ts - last_send_rtcp_sr_packet_ts_ >= RTCP_SR_INTERVAL) {
|
||||||
|
|||||||
@@ -48,8 +48,9 @@ void RtpCodec::Encode(uint8_t* buffer, size_t size,
|
|||||||
fec_encoder_.GetFecPacketsParams(size, num_of_total_packets,
|
fec_encoder_.GetFecPacketsParams(size, num_of_total_packets,
|
||||||
num_of_source_packets, last_packet_size);
|
num_of_source_packets, last_packet_size);
|
||||||
|
|
||||||
timestamp_ =
|
timestamp_ = std::chrono::duration_cast<std::chrono::microseconds>(
|
||||||
std::chrono::high_resolution_clock::now().time_since_epoch().count();
|
std::chrono::system_clock::now().time_since_epoch())
|
||||||
|
.count();
|
||||||
|
|
||||||
for (unsigned int index = 0; index < num_of_total_packets; index++) {
|
for (unsigned int index = 0; index < num_of_total_packets; index++) {
|
||||||
RtpPacket rtp_packet;
|
RtpPacket rtp_packet;
|
||||||
@@ -143,8 +144,9 @@ void RtpCodec::Encode(uint8_t* buffer, size_t size,
|
|||||||
rtp_packet.SetPayloadType(RtpPacket::PAYLOAD_TYPE(payload_type_));
|
rtp_packet.SetPayloadType(RtpPacket::PAYLOAD_TYPE(payload_type_));
|
||||||
rtp_packet.SetSequenceNumber(sequence_number_++);
|
rtp_packet.SetSequenceNumber(sequence_number_++);
|
||||||
|
|
||||||
timestamp_ =
|
timestamp_ = std::chrono::duration_cast<std::chrono::microseconds>(
|
||||||
std::chrono::high_resolution_clock::now().time_since_epoch().count();
|
std::chrono::system_clock::now().time_since_epoch())
|
||||||
|
.count();
|
||||||
rtp_packet.SetTimestamp(timestamp_);
|
rtp_packet.SetTimestamp(timestamp_);
|
||||||
rtp_packet.SetSsrc(ssrc_);
|
rtp_packet.SetSsrc(ssrc_);
|
||||||
|
|
||||||
@@ -169,8 +171,9 @@ void RtpCodec::Encode(uint8_t* buffer, size_t size,
|
|||||||
} else {
|
} else {
|
||||||
size_t last_packet_size = size % MAX_NALU_LEN;
|
size_t last_packet_size = size % MAX_NALU_LEN;
|
||||||
size_t packet_num = size / MAX_NALU_LEN + (last_packet_size ? 1 : 0);
|
size_t packet_num = size / MAX_NALU_LEN + (last_packet_size ? 1 : 0);
|
||||||
timestamp_ =
|
timestamp_ = std::chrono::duration_cast<std::chrono::microseconds>(
|
||||||
std::chrono::high_resolution_clock::now().time_since_epoch().count();
|
std::chrono::system_clock::now().time_since_epoch())
|
||||||
|
.count();
|
||||||
|
|
||||||
for (size_t index = 0; index < packet_num; index++) {
|
for (size_t index = 0; index < packet_num; index++) {
|
||||||
RtpPacket rtp_packet;
|
RtpPacket rtp_packet;
|
||||||
@@ -230,8 +233,8 @@ void RtpCodec::Encode(uint8_t* buffer, size_t size,
|
|||||||
rtp_packet.SetPayloadType(RtpPacket::PAYLOAD_TYPE(payload_type_));
|
rtp_packet.SetPayloadType(RtpPacket::PAYLOAD_TYPE(payload_type_));
|
||||||
rtp_packet.SetSequenceNumber(sequence_number_++);
|
rtp_packet.SetSequenceNumber(sequence_number_++);
|
||||||
|
|
||||||
timestamp_ = std::chrono::high_resolution_clock::now()
|
timestamp_ = std::chrono::duration_cast<std::chrono::microseconds>(
|
||||||
.time_since_epoch()
|
std::chrono::system_clock::now().time_since_epoch())
|
||||||
.count();
|
.count();
|
||||||
rtp_packet.SetTimestamp(timestamp_);
|
rtp_packet.SetTimestamp(timestamp_);
|
||||||
rtp_packet.SetSsrc(ssrc_);
|
rtp_packet.SetSsrc(ssrc_);
|
||||||
@@ -253,8 +256,8 @@ void RtpCodec::Encode(uint8_t* buffer, size_t size,
|
|||||||
size_t last_packet_size = obus[i].payload_size_ % MAX_NALU_LEN;
|
size_t last_packet_size = obus[i].payload_size_ % MAX_NALU_LEN;
|
||||||
size_t packet_num =
|
size_t packet_num =
|
||||||
obus[i].payload_size_ / MAX_NALU_LEN + (last_packet_size ? 1 : 0);
|
obus[i].payload_size_ / MAX_NALU_LEN + (last_packet_size ? 1 : 0);
|
||||||
timestamp_ = std::chrono::high_resolution_clock::now()
|
timestamp_ = std::chrono::duration_cast<std::chrono::microseconds>(
|
||||||
.time_since_epoch()
|
std::chrono::system_clock::now().time_since_epoch())
|
||||||
.count();
|
.count();
|
||||||
for (size_t index = 0; index < packet_num; index++) {
|
for (size_t index = 0; index < packet_num; index++) {
|
||||||
RtpPacket rtp_packet;
|
RtpPacket rtp_packet;
|
||||||
@@ -300,8 +303,9 @@ void RtpCodec::Encode(uint8_t* buffer, size_t size,
|
|||||||
rtp_packet.SetPayloadType(RtpPacket::PAYLOAD_TYPE(payload_type_));
|
rtp_packet.SetPayloadType(RtpPacket::PAYLOAD_TYPE(payload_type_));
|
||||||
rtp_packet.SetSequenceNumber(sequence_number_++);
|
rtp_packet.SetSequenceNumber(sequence_number_++);
|
||||||
|
|
||||||
timestamp_ =
|
timestamp_ = std::chrono::duration_cast<std::chrono::microseconds>(
|
||||||
std::chrono::high_resolution_clock::now().time_since_epoch().count();
|
std::chrono::system_clock::now().time_since_epoch())
|
||||||
|
.count();
|
||||||
rtp_packet.SetTimestamp(timestamp_);
|
rtp_packet.SetTimestamp(timestamp_);
|
||||||
rtp_packet.SetSsrc(ssrc_);
|
rtp_packet.SetSsrc(ssrc_);
|
||||||
|
|
||||||
@@ -316,8 +320,9 @@ void RtpCodec::Encode(uint8_t* buffer, size_t size,
|
|||||||
rtp_packet.SetPayloadType(RtpPacket::PAYLOAD_TYPE(payload_type_));
|
rtp_packet.SetPayloadType(RtpPacket::PAYLOAD_TYPE(payload_type_));
|
||||||
rtp_packet.SetSequenceNumber(sequence_number_++);
|
rtp_packet.SetSequenceNumber(sequence_number_++);
|
||||||
|
|
||||||
timestamp_ =
|
timestamp_ = std::chrono::duration_cast<std::chrono::microseconds>(
|
||||||
std::chrono::high_resolution_clock::now().time_since_epoch().count();
|
std::chrono::system_clock::now().time_since_epoch())
|
||||||
|
.count();
|
||||||
rtp_packet.SetTimestamp(timestamp_);
|
rtp_packet.SetTimestamp(timestamp_);
|
||||||
rtp_packet.SetSsrc(ssrc_);
|
rtp_packet.SetSsrc(ssrc_);
|
||||||
|
|
||||||
@@ -341,8 +346,9 @@ void RtpCodec::Encode(VideoFrameType frame_type, uint8_t* buffer, size_t size,
|
|||||||
fec_encoder_.GetFecPacketsParams(size, num_of_total_packets,
|
fec_encoder_.GetFecPacketsParams(size, num_of_total_packets,
|
||||||
num_of_source_packets, last_packet_size);
|
num_of_source_packets, last_packet_size);
|
||||||
|
|
||||||
timestamp_ =
|
timestamp_ = std::chrono::duration_cast<std::chrono::microseconds>(
|
||||||
std::chrono::high_resolution_clock::now().time_since_epoch().count();
|
std::chrono::system_clock::now().time_since_epoch())
|
||||||
|
.count();
|
||||||
|
|
||||||
for (unsigned int index = 0; index < num_of_total_packets; index++) {
|
for (unsigned int index = 0; index < num_of_total_packets; index++) {
|
||||||
RtpPacket rtp_packet;
|
RtpPacket rtp_packet;
|
||||||
@@ -436,8 +442,10 @@ void RtpCodec::Encode(VideoFrameType frame_type, uint8_t* buffer, size_t size,
|
|||||||
rtp_packet.SetPayloadType(RtpPacket::PAYLOAD_TYPE(payload_type_));
|
rtp_packet.SetPayloadType(RtpPacket::PAYLOAD_TYPE(payload_type_));
|
||||||
rtp_packet.SetSequenceNumber(sequence_number_++);
|
rtp_packet.SetSequenceNumber(sequence_number_++);
|
||||||
|
|
||||||
timestamp_ =
|
timestamp_ = std::chrono::duration_cast<std::chrono::microseconds>(
|
||||||
std::chrono::high_resolution_clock::now().time_since_epoch().count();
|
std::chrono::system_clock::now().time_since_epoch())
|
||||||
|
.count();
|
||||||
|
|
||||||
rtp_packet.SetTimestamp(timestamp_);
|
rtp_packet.SetTimestamp(timestamp_);
|
||||||
rtp_packet.SetSsrc(ssrc_);
|
rtp_packet.SetSsrc(ssrc_);
|
||||||
|
|
||||||
@@ -462,8 +470,9 @@ void RtpCodec::Encode(VideoFrameType frame_type, uint8_t* buffer, size_t size,
|
|||||||
} else {
|
} else {
|
||||||
size_t last_packet_size = size % MAX_NALU_LEN;
|
size_t last_packet_size = size % MAX_NALU_LEN;
|
||||||
size_t packet_num = size / MAX_NALU_LEN + (last_packet_size ? 1 : 0);
|
size_t packet_num = size / MAX_NALU_LEN + (last_packet_size ? 1 : 0);
|
||||||
timestamp_ =
|
timestamp_ = std::chrono::duration_cast<std::chrono::microseconds>(
|
||||||
std::chrono::high_resolution_clock::now().time_since_epoch().count();
|
std::chrono::system_clock::now().time_since_epoch())
|
||||||
|
.count();
|
||||||
|
|
||||||
for (size_t index = 0; index < packet_num; index++) {
|
for (size_t index = 0; index < packet_num; index++) {
|
||||||
RtpPacket rtp_packet;
|
RtpPacket rtp_packet;
|
||||||
@@ -513,7 +522,9 @@ void RtpCodec::Encode(VideoFrameType frame_type, uint8_t* buffer, size_t size,
|
|||||||
// LOG_ERROR("Total size = [{}]", size);
|
// LOG_ERROR("Total size = [{}]", size);
|
||||||
|
|
||||||
uint32_t timestamp =
|
uint32_t timestamp =
|
||||||
std::chrono::high_resolution_clock::now().time_since_epoch().count();
|
std::chrono::duration_cast<std::chrono::microseconds>(
|
||||||
|
std::chrono::system_clock::now().time_since_epoch())
|
||||||
|
.count();
|
||||||
|
|
||||||
for (int i = 0; i < obus.size(); i++) {
|
for (int i = 0; i < obus.size(); i++) {
|
||||||
// LOG_ERROR("1 [{}] Obu size = [{}], Obu type [{}]", i, obus[i].size_,
|
// LOG_ERROR("1 [{}] Obu size = [{}], Obu type [{}]", i, obus[i].size_,
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ int RtpDataReceiver::SendRtcpRR(RtcpReceiverReport& rtcp_rr) {
|
|||||||
bool RtpDataReceiver::CheckIsTimeSendRR() {
|
bool RtpDataReceiver::CheckIsTimeSendRR() {
|
||||||
uint32_t now_ts = static_cast<uint32_t>(
|
uint32_t now_ts = static_cast<uint32_t>(
|
||||||
std::chrono::duration_cast<std::chrono::milliseconds>(
|
std::chrono::duration_cast<std::chrono::milliseconds>(
|
||||||
std::chrono::high_resolution_clock::now().time_since_epoch())
|
std::chrono::system_clock::now().time_since_epoch())
|
||||||
.count());
|
.count());
|
||||||
|
|
||||||
if (now_ts - last_send_rtcp_rr_packet_ts_ >= RTCP_RR_INTERVAL) {
|
if (now_ts - last_send_rtcp_rr_packet_ts_ >= RTCP_RR_INTERVAL) {
|
||||||
|
|||||||
@@ -64,8 +64,7 @@ int RtpDataSender::SendRtpPacket(RtpPacket& rtp_packet) {
|
|||||||
sender_info.ntp_ts_msw = (uint32_t)seconds_u32;
|
sender_info.ntp_ts_msw = (uint32_t)seconds_u32;
|
||||||
sender_info.ntp_ts_lsw = (uint32_t)fraction_u32;
|
sender_info.ntp_ts_lsw = (uint32_t)fraction_u32;
|
||||||
sender_info.rtp_ts =
|
sender_info.rtp_ts =
|
||||||
std::chrono::high_resolution_clock::now().time_since_epoch().count() *
|
std::chrono::system_clock::now().time_since_epoch().count() * 1000000;
|
||||||
1000000;
|
|
||||||
sender_info.sender_packet_count = total_rtp_packets_sent_;
|
sender_info.sender_packet_count = total_rtp_packets_sent_;
|
||||||
sender_info.sender_octet_count = total_rtp_payload_sent_;
|
sender_info.sender_octet_count = total_rtp_payload_sent_;
|
||||||
|
|
||||||
@@ -108,7 +107,7 @@ int RtpDataSender::SendRtcpSR(RtcpSenderReport& rtcp_sr) {
|
|||||||
bool RtpDataSender::CheckIsTimeSendSR() {
|
bool RtpDataSender::CheckIsTimeSendSR() {
|
||||||
uint32_t now_ts = static_cast<uint32_t>(
|
uint32_t now_ts = static_cast<uint32_t>(
|
||||||
std::chrono::duration_cast<std::chrono::milliseconds>(
|
std::chrono::duration_cast<std::chrono::milliseconds>(
|
||||||
std::chrono::high_resolution_clock::now().time_since_epoch())
|
std::chrono::system_clock::now().time_since_epoch())
|
||||||
.count());
|
.count());
|
||||||
|
|
||||||
if (now_ts - last_send_rtcp_sr_packet_ts_ >= RTCP_SR_INTERVAL) {
|
if (now_ts - last_send_rtcp_sr_packet_ts_ >= RTCP_SR_INTERVAL) {
|
||||||
|
|||||||
@@ -288,7 +288,7 @@ bool RtpVideoReceiver::Process() {
|
|||||||
compelete_video_frame_queue_.pop(video_frame);
|
compelete_video_frame_queue_.pop(video_frame);
|
||||||
if (on_receive_complete_frame_) {
|
if (on_receive_complete_frame_) {
|
||||||
// auto now_complete_frame_ts =
|
// auto now_complete_frame_ts =
|
||||||
// std::chrono::high_resolution_clock::now().time_since_epoch().count()
|
// std::chrono::system_clock::now().time_since_epoch().count()
|
||||||
// / 1000000;
|
// / 1000000;
|
||||||
// uint32_t duration = now_complete_frame_ts - last_complete_frame_ts_;
|
// uint32_t duration = now_complete_frame_ts - last_complete_frame_ts_;
|
||||||
// LOG_ERROR("Duration {}", 1000 / duration);
|
// LOG_ERROR("Duration {}", 1000 / duration);
|
||||||
@@ -324,7 +324,7 @@ int RtpVideoReceiver::SendRtcpRR(RtcpReceiverReport& rtcp_rr) {
|
|||||||
bool RtpVideoReceiver::CheckIsTimeSendRR() {
|
bool RtpVideoReceiver::CheckIsTimeSendRR() {
|
||||||
uint32_t now_ts = static_cast<uint32_t>(
|
uint32_t now_ts = static_cast<uint32_t>(
|
||||||
std::chrono::duration_cast<std::chrono::milliseconds>(
|
std::chrono::duration_cast<std::chrono::milliseconds>(
|
||||||
std::chrono::high_resolution_clock::now().time_since_epoch())
|
std::chrono::system_clock::now().time_since_epoch())
|
||||||
.count());
|
.count());
|
||||||
|
|
||||||
if (now_ts - last_send_rtcp_rr_packet_ts_ >= RTCP_RR_INTERVAL) {
|
if (now_ts - last_send_rtcp_rr_packet_ts_ >= RTCP_RR_INTERVAL) {
|
||||||
|
|||||||
@@ -64,8 +64,7 @@ int RtpVideoSender::SendRtpPacket(RtpPacket& rtp_packet) {
|
|||||||
sender_info.ntp_ts_msw = (uint32_t)seconds_u32;
|
sender_info.ntp_ts_msw = (uint32_t)seconds_u32;
|
||||||
sender_info.ntp_ts_lsw = (uint32_t)fraction_u32;
|
sender_info.ntp_ts_lsw = (uint32_t)fraction_u32;
|
||||||
sender_info.rtp_ts =
|
sender_info.rtp_ts =
|
||||||
std::chrono::high_resolution_clock::now().time_since_epoch().count() *
|
std::chrono::system_clock::now().time_since_epoch().count() * 1000000;
|
||||||
1000000;
|
|
||||||
sender_info.sender_packet_count = total_rtp_packets_sent_;
|
sender_info.sender_packet_count = total_rtp_packets_sent_;
|
||||||
sender_info.sender_octet_count = total_rtp_payload_sent_;
|
sender_info.sender_octet_count = total_rtp_payload_sent_;
|
||||||
|
|
||||||
@@ -108,7 +107,7 @@ int RtpVideoSender::SendRtcpSR(RtcpSenderReport& rtcp_sr) {
|
|||||||
bool RtpVideoSender::CheckIsTimeSendSR() {
|
bool RtpVideoSender::CheckIsTimeSendSR() {
|
||||||
uint32_t now_ts = static_cast<uint32_t>(
|
uint32_t now_ts = static_cast<uint32_t>(
|
||||||
std::chrono::duration_cast<std::chrono::milliseconds>(
|
std::chrono::duration_cast<std::chrono::milliseconds>(
|
||||||
std::chrono::high_resolution_clock::now().time_since_epoch())
|
std::chrono::system_clock::now().time_since_epoch())
|
||||||
.count());
|
.count());
|
||||||
|
|
||||||
if (now_ts - last_send_rtcp_sr_packet_ts_ >= RTCP_SR_INTERVAL) {
|
if (now_ts - last_send_rtcp_sr_packet_ts_ >= RTCP_SR_INTERVAL) {
|
||||||
|
|||||||
Reference in New Issue
Block a user