Browse Source

Fixed double to uint32_t cast in getTimestampFromSeconds()

Paul-Louis Ageneau 3 years ago
parent
commit
455ca65aed
2 changed files with 5 additions and 1 deletions
  1. 4 0
      include/rtc/common.hpp
  2. 1 1
      src/rtppacketizationconfig.cpp

+ 4 - 0
include/rtc/common.hpp

@@ -68,6 +68,10 @@ using std::weak_ptr;
 using binary = std::vector<byte>;
 using binary = std::vector<byte>;
 using binary_ptr = std::shared_ptr<binary>;
 using binary_ptr = std::shared_ptr<binary>;
 
 
+using std::int16_t;
+using std::int32_t;
+using std::int64_t;
+using std::int8_t;
 using std::ptrdiff_t;
 using std::ptrdiff_t;
 using std::size_t;
 using std::size_t;
 using std::uint16_t;
 using std::uint16_t;

+ 1 - 1
src/rtppacketizationconfig.cpp

@@ -64,7 +64,7 @@ double RtpPacketizationConfig::timestampToSeconds(uint32_t timestamp) {
 }
 }
 
 
 uint32_t RtpPacketizationConfig::getTimestampFromSeconds(double seconds, uint32_t clockRate) {
 uint32_t RtpPacketizationConfig::getTimestampFromSeconds(double seconds, uint32_t clockRate) {
-	return uint32_t(seconds * clockRate);
+	return uint32_t(int64_t(seconds * double(clockRate))); // convert to integer then cast to u32
 }
 }
 
 
 uint32_t RtpPacketizationConfig::secondsToTimestamp(double seconds) {
 uint32_t RtpPacketizationConfig::secondsToTimestamp(double seconds) {