tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

rtp_packet_info_unittest.cc (5401B)


      1 /*
      2 *  Copyright (c) 2019 The WebRTC project authors. All Rights Reserved.
      3 *
      4 *  Use of this source code is governed by a BSD-style license
      5 *  that can be found in the LICENSE file in the root of the source
      6 *  tree. An additional intellectual property rights grant can be found
      7 *  in the file PATENTS.  All contributing project authors may
      8 *  be found in the AUTHORS file in the root of the source tree.
      9 */
     10 
     11 #include "api/rtp_packet_info.h"
     12 
     13 #include <cstdint>
     14 #include <optional>
     15 #include <vector>
     16 
     17 #include "api/rtp_headers.h"
     18 #include "api/units/time_delta.h"
     19 #include "api/units/timestamp.h"
     20 #include "test/gtest.h"
     21 
     22 namespace webrtc {
     23 
     24 TEST(RtpPacketInfoTest, Ssrc) {
     25  constexpr uint32_t kValue = 4038189233;
     26 
     27  RtpPacketInfo lhs;
     28  RtpPacketInfo rhs;
     29 
     30  EXPECT_TRUE(lhs == rhs);
     31  EXPECT_FALSE(lhs != rhs);
     32 
     33  rhs.set_ssrc(kValue);
     34  EXPECT_EQ(rhs.ssrc(), kValue);
     35 
     36  EXPECT_FALSE(lhs == rhs);
     37  EXPECT_TRUE(lhs != rhs);
     38 
     39  lhs = rhs;
     40 
     41  EXPECT_TRUE(lhs == rhs);
     42  EXPECT_FALSE(lhs != rhs);
     43 
     44  rhs = RtpPacketInfo();
     45  EXPECT_NE(rhs.ssrc(), kValue);
     46 
     47  rhs = RtpPacketInfo(/*ssrc=*/kValue, /*csrcs=*/{}, /*rtp_timestamp=*/{},
     48                      /*receive_time=*/Timestamp::Zero());
     49  EXPECT_EQ(rhs.ssrc(), kValue);
     50 }
     51 
     52 TEST(RtpPacketInfoTest, Csrcs) {
     53  const std::vector<uint32_t> value = {4038189233, 3016333617, 1207992985};
     54 
     55  RtpPacketInfo lhs;
     56  RtpPacketInfo rhs;
     57 
     58  EXPECT_TRUE(lhs == rhs);
     59  EXPECT_FALSE(lhs != rhs);
     60 
     61  rhs.set_csrcs(value);
     62  EXPECT_EQ(rhs.csrcs(), value);
     63 
     64  EXPECT_FALSE(lhs == rhs);
     65  EXPECT_TRUE(lhs != rhs);
     66 
     67  lhs = rhs;
     68 
     69  EXPECT_TRUE(lhs == rhs);
     70  EXPECT_FALSE(lhs != rhs);
     71 
     72  rhs = RtpPacketInfo();
     73  EXPECT_NE(rhs.csrcs(), value);
     74 
     75  rhs = RtpPacketInfo(/*ssrc=*/{}, /*csrcs=*/value, /*rtp_timestamp=*/{},
     76                      /*receive_time=*/Timestamp::Zero());
     77  EXPECT_EQ(rhs.csrcs(), value);
     78 }
     79 
     80 TEST(RtpPacketInfoTest, RtpTimestamp) {
     81  constexpr uint32_t kValue = 4038189233;
     82 
     83  RtpPacketInfo lhs;
     84  RtpPacketInfo rhs;
     85 
     86  EXPECT_TRUE(lhs == rhs);
     87  EXPECT_FALSE(lhs != rhs);
     88 
     89  rhs.set_rtp_timestamp(kValue);
     90  EXPECT_EQ(rhs.rtp_timestamp(), kValue);
     91 
     92  EXPECT_FALSE(lhs == rhs);
     93  EXPECT_TRUE(lhs != rhs);
     94 
     95  lhs = rhs;
     96 
     97  EXPECT_TRUE(lhs == rhs);
     98  EXPECT_FALSE(lhs != rhs);
     99 
    100  rhs = RtpPacketInfo();
    101  EXPECT_NE(rhs.rtp_timestamp(), kValue);
    102 
    103  rhs = RtpPacketInfo(/*ssrc=*/{}, /*csrcs=*/{}, /*rtp_timestamp=*/kValue,
    104                      /*receive_time=*/Timestamp::Zero());
    105  EXPECT_EQ(rhs.rtp_timestamp(), kValue);
    106 }
    107 
    108 TEST(RtpPacketInfoTest, ReceiveTimeMs) {
    109  constexpr Timestamp kValue = Timestamp::Micros(8868963877546349045LL);
    110 
    111  RtpPacketInfo lhs;
    112  RtpPacketInfo rhs;
    113 
    114  EXPECT_TRUE(lhs == rhs);
    115  EXPECT_FALSE(lhs != rhs);
    116 
    117  rhs.set_receive_time(kValue);
    118  EXPECT_EQ(rhs.receive_time(), kValue);
    119 
    120  EXPECT_FALSE(lhs == rhs);
    121  EXPECT_TRUE(lhs != rhs);
    122 
    123  lhs = rhs;
    124 
    125  EXPECT_TRUE(lhs == rhs);
    126  EXPECT_FALSE(lhs != rhs);
    127 
    128  rhs = RtpPacketInfo();
    129  EXPECT_NE(rhs.receive_time(), kValue);
    130 
    131  rhs = RtpPacketInfo(/*ssrc=*/{}, /*csrcs=*/{}, /*rtp_timestamp=*/{},
    132                      /*receive_time=*/kValue);
    133  EXPECT_EQ(rhs.receive_time(), kValue);
    134 }
    135 
    136 TEST(RtpPacketInfoTest, AudioLevel) {
    137  constexpr std::optional<uint8_t> kValue = 31;
    138 
    139  RtpPacketInfo lhs;
    140  RtpPacketInfo rhs;
    141 
    142  EXPECT_TRUE(lhs == rhs);
    143  EXPECT_FALSE(lhs != rhs);
    144 
    145  rhs.set_audio_level(kValue);
    146  EXPECT_EQ(rhs.audio_level(), kValue);
    147 
    148  EXPECT_FALSE(lhs == rhs);
    149  EXPECT_TRUE(lhs != rhs);
    150 
    151  lhs = rhs;
    152 
    153  EXPECT_TRUE(lhs == rhs);
    154  EXPECT_FALSE(lhs != rhs);
    155 
    156  rhs = RtpPacketInfo();
    157  EXPECT_NE(rhs.audio_level(), kValue);
    158 
    159  rhs = RtpPacketInfo(/*ssrc=*/{}, /*csrcs=*/{}, /*rtp_timestamp=*/{},
    160                      /*receive_time=*/Timestamp::Zero());
    161  rhs.set_audio_level(kValue);
    162  EXPECT_EQ(rhs.audio_level(), kValue);
    163 }
    164 
    165 TEST(RtpPacketInfoTest, AbsoluteCaptureTime) {
    166  constexpr std::optional<AbsoluteCaptureTime> kValue = AbsoluteCaptureTime{
    167      .absolute_capture_timestamp = 12, .estimated_capture_clock_offset = 34};
    168 
    169  RtpPacketInfo lhs;
    170  RtpPacketInfo rhs;
    171 
    172  EXPECT_TRUE(lhs == rhs);
    173  EXPECT_FALSE(lhs != rhs);
    174 
    175  rhs.set_absolute_capture_time(kValue);
    176  EXPECT_EQ(rhs.absolute_capture_time(), kValue);
    177 
    178  EXPECT_FALSE(lhs == rhs);
    179  EXPECT_TRUE(lhs != rhs);
    180 
    181  lhs = rhs;
    182 
    183  EXPECT_TRUE(lhs == rhs);
    184  EXPECT_FALSE(lhs != rhs);
    185 
    186  rhs = RtpPacketInfo();
    187  EXPECT_NE(rhs.absolute_capture_time(), kValue);
    188 
    189  rhs = RtpPacketInfo(/*ssrc=*/{}, /*csrcs=*/{}, /*rtp_timestamp=*/{},
    190                      /*receive_time=*/Timestamp::Zero());
    191  rhs.set_absolute_capture_time(kValue);
    192  EXPECT_EQ(rhs.absolute_capture_time(), kValue);
    193 }
    194 
    195 TEST(RtpPacketInfoTest, LocalCaptureClockOffset) {
    196  constexpr TimeDelta kValue = TimeDelta::Micros(8868963877546349045LL);
    197 
    198  RtpPacketInfo lhs;
    199  RtpPacketInfo rhs;
    200 
    201  EXPECT_TRUE(lhs == rhs);
    202  EXPECT_FALSE(lhs != rhs);
    203 
    204  rhs.set_local_capture_clock_offset(kValue);
    205  EXPECT_EQ(rhs.local_capture_clock_offset(), kValue);
    206 
    207  EXPECT_FALSE(lhs == rhs);
    208  EXPECT_TRUE(lhs != rhs);
    209 
    210  lhs = rhs;
    211 
    212  EXPECT_TRUE(lhs == rhs);
    213  EXPECT_FALSE(lhs != rhs);
    214 
    215  rhs = RtpPacketInfo();
    216  EXPECT_EQ(rhs.local_capture_clock_offset(), std::nullopt);
    217 
    218  rhs = RtpPacketInfo(/*ssrc=*/{}, /*csrcs=*/{}, /*rtp_timestamp=*/{},
    219                      /*receive_time=*/Timestamp::Zero());
    220  rhs.set_local_capture_clock_offset(kValue);
    221  EXPECT_EQ(rhs.local_capture_clock_offset(), kValue);
    222 }
    223 
    224 }  // namespace webrtc