| OLD | NEW | 
|     1 /* |     1 /* | 
|     2  *  Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. |     2  *  Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. | 
|     3  * |     3  * | 
|     4  *  Use of this source code is governed by a BSD-style license |     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 |     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 |     6  *  tree. An additional intellectual property rights grant can be found | 
|     7  *  in the file PATENTS.  All contributing project authors may |     7  *  in the file PATENTS.  All contributing project authors may | 
|     8  *  be found in the AUTHORS file in the root of the source tree. |     8  *  be found in the AUTHORS file in the root of the source tree. | 
|     9  */ |     9  */ | 
|    10  |    10  | 
|    11 #include <map> |    11 #include <map> | 
|    12 #include <memory> |    12 #include <memory> | 
|    13 #include <string> |    13 #include <string> | 
|    14 #include <utility> |    14 #include <utility> | 
|    15 #include <vector> |    15 #include <vector> | 
|    16  |    16  | 
|    17 #include "webrtc/call/call.h" |    17 #include "webrtc/call/call.h" | 
 |    18 #include "webrtc/logging/rtc_event_log/events/rtc_event_audio_network_adaptation
      .h" | 
 |    19 #include "webrtc/logging/rtc_event_log/events/rtc_event_audio_playout.h" | 
 |    20 #include "webrtc/logging/rtc_event_log/events/rtc_event_audio_receive_stream_con
      fig.h" | 
 |    21 #include "webrtc/logging/rtc_event_log/events/rtc_event_audio_send_stream_config
      .h" | 
 |    22 #include "webrtc/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.h
      " | 
 |    23 #include "webrtc/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.h" | 
 |    24 #include "webrtc/logging/rtc_event_log/events/rtc_event_logging_started.h" | 
 |    25 #include "webrtc/logging/rtc_event_log/events/rtc_event_logging_stopped.h" | 
 |    26 #include "webrtc/logging/rtc_event_log/events/rtc_event_probe_cluster_created.h" | 
 |    27 #include "webrtc/logging/rtc_event_log/events/rtc_event_probe_result_failure.h" | 
 |    28 #include "webrtc/logging/rtc_event_log/events/rtc_event_probe_result_success.h" | 
 |    29 #include "webrtc/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.h" | 
 |    30 #include "webrtc/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.h" | 
 |    31 #include "webrtc/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.h" | 
 |    32 #include "webrtc/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.h" | 
 |    33 #include "webrtc/logging/rtc_event_log/events/rtc_event_video_receive_stream_con
      fig.h" | 
 |    34 #include "webrtc/logging/rtc_event_log/events/rtc_event_video_send_stream_config
      .h" | 
|    18 #include "webrtc/logging/rtc_event_log/rtc_event_log.h" |    35 #include "webrtc/logging/rtc_event_log/rtc_event_log.h" | 
|    19 #include "webrtc/logging/rtc_event_log/rtc_event_log_parser.h" |    36 #include "webrtc/logging/rtc_event_log/rtc_event_log_parser.h" | 
|    20 #include "webrtc/logging/rtc_event_log/rtc_event_log_unittest_helper.h" |    37 #include "webrtc/logging/rtc_event_log/rtc_event_log_unittest_helper.h" | 
|    21 #include "webrtc/logging/rtc_event_log/rtc_stream_config.h" |    38 #include "webrtc/logging/rtc_event_log/rtc_stream_config.h" | 
|    22 #include "webrtc/modules/audio_coding/audio_network_adaptor/include/audio_networ
      k_adaptor.h" |    39 #include "webrtc/modules/audio_coding/audio_network_adaptor/include/audio_networ
      k_adaptor.h" | 
|    23 #include "webrtc/modules/remote_bitrate_estimator/include/bwe_defines.h" |    40 #include "webrtc/modules/remote_bitrate_estimator/include/bwe_defines.h" | 
|    24 #include "webrtc/modules/rtp_rtcp/include/rtp_header_extension_map.h" |    41 #include "webrtc/modules/rtp_rtcp/include/rtp_header_extension_map.h" | 
|    25 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet.h" |    42 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet.h" | 
|    26 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report.h" |    43 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report.h" | 
|    27 #include "webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h" |    44 #include "webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h" | 
| (...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   367   size_t bwe_delay_written = 0; |   384   size_t bwe_delay_written = 0; | 
|   368   size_t recv_configs_written = 0; |   385   size_t recv_configs_written = 0; | 
|   369   size_t send_configs_written = 0; |   386   size_t send_configs_written = 0; | 
|   370  |   387  | 
|   371   for (size_t i = 0; i < event_types.size(); i++) { |   388   for (size_t i = 0; i < event_types.size(); i++) { | 
|   372     fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); |   389     fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
|   373     if (i == event_types.size() / 2) |   390     if (i == event_types.size() / 2) | 
|   374       log_dumper->StartLogging(temp_filename, 10000000); |   391       log_dumper->StartLogging(temp_filename, 10000000); | 
|   375     switch (event_types[i]) { |   392     switch (event_types[i]) { | 
|   376       case EventType::INCOMING_RTP: |   393       case EventType::INCOMING_RTP: | 
|   377         log_dumper->LogIncomingRtpHeader( |   394         log_dumper->Log(rtc::MakeUnique<RtcEventRtpPacketIncoming>( | 
|   378             incoming_rtp_packets[incoming_rtp_written++]); |   395             incoming_rtp_packets[incoming_rtp_written++])); | 
|   379         break; |   396         break; | 
|   380       case EventType::OUTGOING_RTP: |   397       case EventType::OUTGOING_RTP: { | 
|   381         log_dumper->LogOutgoingRtpHeader( |   398         constexpr int kNotAProble = PacedPacketInfo::kNotAProbe;  // Compiler... | 
|   382             outgoing_rtp_packets[outgoing_rtp_written++], |   399         log_dumper->Log(rtc::MakeUnique<RtcEventRtpPacketOutgoing>( | 
|   383             PacedPacketInfo::kNotAProbe); |   400             outgoing_rtp_packets[outgoing_rtp_written++], kNotAProble)); | 
|   384         break; |   401         break; | 
 |   402       } | 
|   385       case EventType::INCOMING_RTCP: |   403       case EventType::INCOMING_RTCP: | 
|   386         log_dumper->LogIncomingRtcpPacket( |   404         log_dumper->Log(rtc::MakeUnique<RtcEventRtcpPacketIncoming>( | 
|   387             incoming_rtcp_packets[incoming_rtcp_written++]); |   405             incoming_rtcp_packets[incoming_rtcp_written++])); | 
|   388         break; |   406         break; | 
|   389       case EventType::OUTGOING_RTCP: |   407       case EventType::OUTGOING_RTCP: | 
|   390         log_dumper->LogOutgoingRtcpPacket( |   408         log_dumper->Log(rtc::MakeUnique<RtcEventRtcpPacketOutgoing>( | 
|   391             outgoing_rtcp_packets[outgoing_rtcp_written++]); |   409             outgoing_rtcp_packets[outgoing_rtcp_written++])); | 
|   392         break; |   410         break; | 
|   393       case EventType::AUDIO_PLAYOUT: |   411       case EventType::AUDIO_PLAYOUT: | 
|   394         log_dumper->LogAudioPlayout(playout_ssrcs[playouts_written++]); |   412         log_dumper->Log(rtc::MakeUnique<RtcEventAudioPlayout>( | 
 |   413             playout_ssrcs[playouts_written++])); | 
|   395         break; |   414         break; | 
|   396       case EventType::BWE_LOSS_UPDATE: |   415       case EventType::BWE_LOSS_UPDATE: | 
|   397         log_dumper->LogLossBasedBweUpdate( |   416         log_dumper->Log(rtc::MakeUnique<RtcEventBweUpdateLossBased>( | 
|   398             bwe_loss_updates[bwe_loss_written].bitrate_bps, |   417             bwe_loss_updates[bwe_loss_written].bitrate_bps, | 
|   399             bwe_loss_updates[bwe_loss_written].fraction_loss, |   418             bwe_loss_updates[bwe_loss_written].fraction_loss, | 
|   400             bwe_loss_updates[bwe_loss_written].total_packets); |   419             bwe_loss_updates[bwe_loss_written].total_packets)); | 
|   401         bwe_loss_written++; |   420         bwe_loss_written++; | 
|   402         break; |   421         break; | 
|   403       case EventType::BWE_DELAY_UPDATE: |   422       case EventType::BWE_DELAY_UPDATE: | 
|   404         log_dumper->LogDelayBasedBweUpdate( |   423         log_dumper->Log(rtc::MakeUnique<RtcEventBweUpdateDelayBased>( | 
|   405             bwe_delay_updates[bwe_delay_written].first, |   424             bwe_delay_updates[bwe_delay_written].first, | 
|   406             bwe_delay_updates[bwe_delay_written].second); |   425             bwe_delay_updates[bwe_delay_written].second)); | 
|   407         bwe_delay_written++; |   426         bwe_delay_written++; | 
|   408         break; |   427         break; | 
|   409       case EventType::VIDEO_RECV_CONFIG: |   428       case EventType::VIDEO_RECV_CONFIG: | 
|   410         log_dumper->LogVideoReceiveStreamConfig( |   429         log_dumper->Log(rtc::MakeUnique<RtcEventVideoReceiveStreamConfig>( | 
|   411             receiver_configs[recv_configs_written++]); |   430             rtc::MakeUnique<rtclog::StreamConfig>( | 
 |   431                 receiver_configs[recv_configs_written++]))); | 
|   412         break; |   432         break; | 
|   413       case EventType::VIDEO_SEND_CONFIG: |   433       case EventType::VIDEO_SEND_CONFIG: | 
|   414         log_dumper->LogVideoSendStreamConfig( |   434         log_dumper->Log(rtc::MakeUnique<RtcEventVideoSendStreamConfig>( | 
|   415             sender_configs[send_configs_written++]); |   435             rtc::MakeUnique<rtclog::StreamConfig>( | 
 |   436                 sender_configs[send_configs_written++]))); | 
|   416         break; |   437         break; | 
|   417       case EventType::AUDIO_RECV_CONFIG: |   438       case EventType::AUDIO_RECV_CONFIG: | 
|   418         // Not implemented |   439         // Not implemented | 
|   419         RTC_NOTREACHED(); |   440         RTC_NOTREACHED(); | 
|   420         break; |   441         break; | 
|   421       case EventType::AUDIO_SEND_CONFIG: |   442       case EventType::AUDIO_SEND_CONFIG: | 
|   422         // Not implemented |   443         // Not implemented | 
|   423         RTC_NOTREACHED(); |   444         RTC_NOTREACHED(); | 
|   424         break; |   445         break; | 
|   425       case EventType::AUDIO_NETWORK_ADAPTATION: |   446       case EventType::AUDIO_NETWORK_ADAPTATION: | 
| (...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   733   // filename. |   754   // filename. | 
|   734   auto test_info = ::testing::UnitTest::GetInstance()->current_test_info(); |   755   auto test_info = ::testing::UnitTest::GetInstance()->current_test_info(); | 
|   735   const std::string temp_filename = |   756   const std::string temp_filename = | 
|   736       test::OutputPath() + test_info->test_case_name() + test_info->name(); |   757       test::OutputPath() + test_info->test_case_name() + test_info->name(); | 
|   737  |   758  | 
|   738   // Add RTP, start logging, add RTCP and then stop logging |   759   // Add RTP, start logging, add RTCP and then stop logging | 
|   739   rtc::ScopedFakeClock fake_clock; |   760   rtc::ScopedFakeClock fake_clock; | 
|   740   fake_clock.SetTimeMicros(prng.Rand<uint32_t>()); |   761   fake_clock.SetTimeMicros(prng.Rand<uint32_t>()); | 
|   741   std::unique_ptr<RtcEventLog> log_dumper(RtcEventLog::Create()); |   762   std::unique_ptr<RtcEventLog> log_dumper(RtcEventLog::Create()); | 
|   742  |   763  | 
|   743   log_dumper->LogIncomingRtpHeader(rtp_packet); |   764   log_dumper->Log(rtc::MakeUnique<RtcEventRtpPacketIncoming>(rtp_packet)); | 
|   744   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); |   765   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
|   745  |   766  | 
|   746   log_dumper->StartLogging(temp_filename, 10000000); |   767   log_dumper->StartLogging(temp_filename, 10000000); | 
|   747   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); |   768   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
|   748  |   769  | 
|   749   log_dumper->LogOutgoingRtcpPacket(rtcp_packet); |   770   log_dumper->Log(rtc::MakeUnique<RtcEventRtcpPacketOutgoing>(rtcp_packet)); | 
|   750   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); |   771   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
|   751  |   772  | 
|   752   log_dumper->StopLogging(); |   773   log_dumper->StopLogging(); | 
|   753  |   774  | 
|   754   // Read the generated file from disk. |   775   // Read the generated file from disk. | 
|   755   ParsedRtcEventLog parsed_log; |   776   ParsedRtcEventLog parsed_log; | 
|   756   ASSERT_TRUE(parsed_log.ParseFile(temp_filename)); |   777   ASSERT_TRUE(parsed_log.ParseFile(temp_filename)); | 
|   757  |   778  | 
|   758   // Verify that what we read back from the event log is the same as |   779   // Verify that what we read back from the event log is the same as | 
|   759   // what we wrote down. |   780   // what we wrote down. | 
| (...skipping 26 matching lines...) Expand all  Loading... | 
|   786   auto test_info = ::testing::UnitTest::GetInstance()->current_test_info(); |   807   auto test_info = ::testing::UnitTest::GetInstance()->current_test_info(); | 
|   787   const std::string temp_filename = |   808   const std::string temp_filename = | 
|   788       test::OutputPath() + test_info->test_case_name() + test_info->name(); |   809       test::OutputPath() + test_info->test_case_name() + test_info->name(); | 
|   789  |   810  | 
|   790   // Start logging, add the packet loss event and then stop logging. |   811   // Start logging, add the packet loss event and then stop logging. | 
|   791   rtc::ScopedFakeClock fake_clock; |   812   rtc::ScopedFakeClock fake_clock; | 
|   792   fake_clock.SetTimeMicros(prng.Rand<uint32_t>()); |   813   fake_clock.SetTimeMicros(prng.Rand<uint32_t>()); | 
|   793   std::unique_ptr<RtcEventLog> log_dumper(RtcEventLog::Create()); |   814   std::unique_ptr<RtcEventLog> log_dumper(RtcEventLog::Create()); | 
|   794   log_dumper->StartLogging(temp_filename, 10000000); |   815   log_dumper->StartLogging(temp_filename, 10000000); | 
|   795   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); |   816   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
|   796   log_dumper->LogLossBasedBweUpdate(bitrate, fraction_lost, total_packets); |   817   log_dumper->Log(rtc::MakeUnique<RtcEventBweUpdateLossBased>( | 
 |   818       bitrate, fraction_lost, total_packets)); | 
|   797   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); |   819   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
|   798   log_dumper->StopLogging(); |   820   log_dumper->StopLogging(); | 
|   799  |   821  | 
|   800   // Read the generated file from disk. |   822   // Read the generated file from disk. | 
|   801   ParsedRtcEventLog parsed_log; |   823   ParsedRtcEventLog parsed_log; | 
|   802   ASSERT_TRUE(parsed_log.ParseFile(temp_filename)); |   824   ASSERT_TRUE(parsed_log.ParseFile(temp_filename)); | 
|   803  |   825  | 
|   804   // Verify that what we read back from the event log is the same as |   826   // Verify that what we read back from the event log is the same as | 
|   805   // what we wrote down. |   827   // what we wrote down. | 
|   806   EXPECT_EQ(3u, parsed_log.GetNumberOfEvents()); |   828   EXPECT_EQ(3u, parsed_log.GetNumberOfEvents()); | 
| (...skipping 19 matching lines...) Expand all  Loading... | 
|   826   auto test_info = ::testing::UnitTest::GetInstance()->current_test_info(); |   848   auto test_info = ::testing::UnitTest::GetInstance()->current_test_info(); | 
|   827   const std::string temp_filename = |   849   const std::string temp_filename = | 
|   828       test::OutputPath() + test_info->test_case_name() + test_info->name(); |   850       test::OutputPath() + test_info->test_case_name() + test_info->name(); | 
|   829  |   851  | 
|   830   // Start logging, add the packet delay events and then stop logging. |   852   // Start logging, add the packet delay events and then stop logging. | 
|   831   rtc::ScopedFakeClock fake_clock; |   853   rtc::ScopedFakeClock fake_clock; | 
|   832   fake_clock.SetTimeMicros(prng.Rand<uint32_t>()); |   854   fake_clock.SetTimeMicros(prng.Rand<uint32_t>()); | 
|   833   std::unique_ptr<RtcEventLog> log_dumper(RtcEventLog::Create()); |   855   std::unique_ptr<RtcEventLog> log_dumper(RtcEventLog::Create()); | 
|   834   log_dumper->StartLogging(temp_filename, 10000000); |   856   log_dumper->StartLogging(temp_filename, 10000000); | 
|   835   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); |   857   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
|   836   log_dumper->LogDelayBasedBweUpdate(bitrate1, BandwidthUsage::kBwNormal); |   858   log_dumper->Log(rtc::MakeUnique<RtcEventBweUpdateDelayBased>( | 
 |   859       bitrate1, BandwidthUsage::kBwNormal)); | 
|   837   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); |   860   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
|   838   log_dumper->LogDelayBasedBweUpdate(bitrate2, BandwidthUsage::kBwOverusing); |   861   log_dumper->Log(rtc::MakeUnique<RtcEventBweUpdateDelayBased>( | 
 |   862       bitrate2, BandwidthUsage::kBwOverusing)); | 
|   839   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); |   863   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
|   840   log_dumper->LogDelayBasedBweUpdate(bitrate3, BandwidthUsage::kBwUnderusing); |   864   log_dumper->Log(rtc::MakeUnique<RtcEventBweUpdateDelayBased>( | 
 |   865       bitrate3, BandwidthUsage::kBwUnderusing)); | 
|   841   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); |   866   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
|   842   log_dumper->StopLogging(); |   867   log_dumper->StopLogging(); | 
|   843  |   868  | 
|   844   // Read the generated file from disk. |   869   // Read the generated file from disk. | 
|   845   ParsedRtcEventLog parsed_log; |   870   ParsedRtcEventLog parsed_log; | 
|   846   ASSERT_TRUE(parsed_log.ParseFile(temp_filename)); |   871   ASSERT_TRUE(parsed_log.ParseFile(temp_filename)); | 
|   847  |   872  | 
|   848   // Verify that what we read back from the event log is the same as |   873   // Verify that what we read back from the event log is the same as | 
|   849   // what we wrote down. |   874   // what we wrote down. | 
|   850   EXPECT_EQ(5u, parsed_log.GetNumberOfEvents()); |   875   EXPECT_EQ(5u, parsed_log.GetNumberOfEvents()); | 
| (...skipping 27 matching lines...) Expand all  Loading... | 
|   878   // filename. |   903   // filename. | 
|   879   auto test_info = ::testing::UnitTest::GetInstance()->current_test_info(); |   904   auto test_info = ::testing::UnitTest::GetInstance()->current_test_info(); | 
|   880   const std::string temp_filename = |   905   const std::string temp_filename = | 
|   881       test::OutputPath() + test_info->test_case_name() + test_info->name(); |   906       test::OutputPath() + test_info->test_case_name() + test_info->name(); | 
|   882  |   907  | 
|   883   rtc::ScopedFakeClock fake_clock; |   908   rtc::ScopedFakeClock fake_clock; | 
|   884   fake_clock.SetTimeMicros(prng.Rand<uint32_t>()); |   909   fake_clock.SetTimeMicros(prng.Rand<uint32_t>()); | 
|   885   std::unique_ptr<RtcEventLog> log_dumper(RtcEventLog::Create()); |   910   std::unique_ptr<RtcEventLog> log_dumper(RtcEventLog::Create()); | 
|   886  |   911  | 
|   887   log_dumper->StartLogging(temp_filename, 10000000); |   912   log_dumper->StartLogging(temp_filename, 10000000); | 
|   888   log_dumper->LogProbeClusterCreated(0, bitrate_bps0, min_probes0, min_bytes0); |   913   log_dumper->Log(rtc::MakeUnique<RtcEventProbeClusterCreated>( | 
 |   914       0, bitrate_bps0, min_probes0, min_bytes0)); | 
|   889   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); |   915   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
|   890   log_dumper->LogProbeClusterCreated(1, bitrate_bps1, min_probes1, min_bytes1); |   916   log_dumper->Log(rtc::MakeUnique<RtcEventProbeClusterCreated>( | 
 |   917       1, bitrate_bps1, min_probes1, min_bytes1)); | 
|   891   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); |   918   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
|   892   log_dumper->LogProbeClusterCreated(2, bitrate_bps2, min_probes2, min_bytes2); |   919   log_dumper->Log(rtc::MakeUnique<RtcEventProbeClusterCreated>( | 
 |   920       2, bitrate_bps2, min_probes2, min_bytes2)); | 
|   893   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); |   921   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
|   894   log_dumper->StopLogging(); |   922   log_dumper->StopLogging(); | 
|   895  |   923  | 
|   896   // Read the generated file from disk. |   924   // Read the generated file from disk. | 
|   897   ParsedRtcEventLog parsed_log; |   925   ParsedRtcEventLog parsed_log; | 
|   898   ASSERT_TRUE(parsed_log.ParseFile(temp_filename)); |   926   ASSERT_TRUE(parsed_log.ParseFile(temp_filename)); | 
|   899  |   927  | 
|   900   // Verify that what we read back from the event log is the same as |   928   // Verify that what we read back from the event log is the same as | 
|   901   // what we wrote down. |   929   // what we wrote down. | 
|   902   EXPECT_EQ(5u, parsed_log.GetNumberOfEvents()); |   930   EXPECT_EQ(5u, parsed_log.GetNumberOfEvents()); | 
| (...skipping 21 matching lines...) Expand all  Loading... | 
|   924   // filename. |   952   // filename. | 
|   925   auto test_info = ::testing::UnitTest::GetInstance()->current_test_info(); |   953   auto test_info = ::testing::UnitTest::GetInstance()->current_test_info(); | 
|   926   const std::string temp_filename = |   954   const std::string temp_filename = | 
|   927       test::OutputPath() + test_info->test_case_name() + test_info->name(); |   955       test::OutputPath() + test_info->test_case_name() + test_info->name(); | 
|   928  |   956  | 
|   929   rtc::ScopedFakeClock fake_clock; |   957   rtc::ScopedFakeClock fake_clock; | 
|   930   fake_clock.SetTimeMicros(prng.Rand<uint32_t>()); |   958   fake_clock.SetTimeMicros(prng.Rand<uint32_t>()); | 
|   931   std::unique_ptr<RtcEventLog> log_dumper(RtcEventLog::Create()); |   959   std::unique_ptr<RtcEventLog> log_dumper(RtcEventLog::Create()); | 
|   932  |   960  | 
|   933   log_dumper->StartLogging(temp_filename, 10000000); |   961   log_dumper->StartLogging(temp_filename, 10000000); | 
|   934   log_dumper->LogProbeResultSuccess(0, bitrate_bps0); |   962   log_dumper->Log(rtc::MakeUnique<RtcEventProbeResultSuccess>(0, bitrate_bps0)); | 
|   935   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); |   963   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
|   936   log_dumper->LogProbeResultSuccess(1, bitrate_bps1); |   964   log_dumper->Log(rtc::MakeUnique<RtcEventProbeResultSuccess>(1, bitrate_bps1)); | 
|   937   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); |   965   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
|   938   log_dumper->LogProbeResultSuccess(2, bitrate_bps2); |   966   log_dumper->Log(rtc::MakeUnique<RtcEventProbeResultSuccess>(2, bitrate_bps2)); | 
|   939   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); |   967   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
|   940   log_dumper->StopLogging(); |   968   log_dumper->StopLogging(); | 
|   941  |   969  | 
|   942   // Read the generated file from disk. |   970   // Read the generated file from disk. | 
|   943   ParsedRtcEventLog parsed_log; |   971   ParsedRtcEventLog parsed_log; | 
|   944   ASSERT_TRUE(parsed_log.ParseFile(temp_filename)); |   972   ASSERT_TRUE(parsed_log.ParseFile(temp_filename)); | 
|   945  |   973  | 
|   946   // Verify that what we read back from the event log is the same as |   974   // Verify that what we read back from the event log is the same as | 
|   947   // what we wrote down. |   975   // what we wrote down. | 
|   948   EXPECT_EQ(5u, parsed_log.GetNumberOfEvents()); |   976   EXPECT_EQ(5u, parsed_log.GetNumberOfEvents()); | 
| (...skipping 17 matching lines...) Expand all  Loading... | 
|   966   // filename. |   994   // filename. | 
|   967   auto test_info = ::testing::UnitTest::GetInstance()->current_test_info(); |   995   auto test_info = ::testing::UnitTest::GetInstance()->current_test_info(); | 
|   968   const std::string temp_filename = |   996   const std::string temp_filename = | 
|   969       test::OutputPath() + test_info->test_case_name() + test_info->name(); |   997       test::OutputPath() + test_info->test_case_name() + test_info->name(); | 
|   970  |   998  | 
|   971   rtc::ScopedFakeClock fake_clock; |   999   rtc::ScopedFakeClock fake_clock; | 
|   972   fake_clock.SetTimeMicros(prng.Rand<uint32_t>()); |  1000   fake_clock.SetTimeMicros(prng.Rand<uint32_t>()); | 
|   973   std::unique_ptr<RtcEventLog> log_dumper(RtcEventLog::Create()); |  1001   std::unique_ptr<RtcEventLog> log_dumper(RtcEventLog::Create()); | 
|   974  |  1002  | 
|   975   log_dumper->StartLogging(temp_filename, 10000000); |  1003   log_dumper->StartLogging(temp_filename, 10000000); | 
|   976   log_dumper->LogProbeResultFailure( |  1004   log_dumper->Log(rtc::MakeUnique<RtcEventProbeResultFailure>( | 
|   977       0, ProbeFailureReason::kInvalidSendReceiveInterval); |  1005       0, ProbeFailureReason::kInvalidSendReceiveInterval)); | 
|   978   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); |  1006   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
|   979   log_dumper->LogProbeResultFailure( |  1007   log_dumper->Log(rtc::MakeUnique<RtcEventProbeResultFailure>( | 
|   980       1, ProbeFailureReason::kInvalidSendReceiveRatio); |  1008       1, ProbeFailureReason::kInvalidSendReceiveRatio)); | 
|   981   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); |  1009   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
|   982   log_dumper->LogProbeResultFailure(2, ProbeFailureReason::kTimeout); |  1010   log_dumper->Log(rtc::MakeUnique<RtcEventProbeResultFailure>( | 
 |  1011       2, ProbeFailureReason::kTimeout)); | 
|   983   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); |  1012   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000)); | 
|   984   log_dumper->StopLogging(); |  1013   log_dumper->StopLogging(); | 
|   985  |  1014  | 
|   986   // Read the generated file from disk. |  1015   // Read the generated file from disk. | 
|   987   ParsedRtcEventLog parsed_log; |  1016   ParsedRtcEventLog parsed_log; | 
|   988   ASSERT_TRUE(parsed_log.ParseFile(temp_filename)); |  1017   ASSERT_TRUE(parsed_log.ParseFile(temp_filename)); | 
|   989  |  1018  | 
|   990   // Verify that what we read back from the event log is the same as |  1019   // Verify that what we read back from the event log is the same as | 
|   991   // what we wrote down. |  1020   // what we wrote down. | 
|   992   EXPECT_EQ(5u, parsed_log.GetNumberOfEvents()); |  1021   EXPECT_EQ(5u, parsed_log.GetNumberOfEvents()); | 
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1054   } |  1083   } | 
|  1055   Random prng; |  1084   Random prng; | 
|  1056 }; |  1085 }; | 
|  1057  |  1086  | 
|  1058 class AudioReceiveConfigReadWriteTest : public ConfigReadWriteTest { |  1087 class AudioReceiveConfigReadWriteTest : public ConfigReadWriteTest { | 
|  1059  public: |  1088  public: | 
|  1060   void GenerateConfig(const RtpHeaderExtensionMap& extensions) override { |  1089   void GenerateConfig(const RtpHeaderExtensionMap& extensions) override { | 
|  1061     GenerateAudioReceiveConfig(extensions, &config, &prng); |  1090     GenerateAudioReceiveConfig(extensions, &config, &prng); | 
|  1062   } |  1091   } | 
|  1063   void LogConfig(RtcEventLog* event_log) override { |  1092   void LogConfig(RtcEventLog* event_log) override { | 
|  1064     event_log->LogAudioReceiveStreamConfig(config); |  1093     event_log->Log(rtc::MakeUnique<RtcEventAudioReceiveStreamConfig>( | 
 |  1094         rtc::MakeUnique<rtclog::StreamConfig>(config))); | 
|  1065   } |  1095   } | 
|  1066   void VerifyConfig(const ParsedRtcEventLog& parsed_log, |  1096   void VerifyConfig(const ParsedRtcEventLog& parsed_log, | 
|  1067                     size_t index) override { |  1097                     size_t index) override { | 
|  1068     RtcEventLogTestHelper::VerifyAudioReceiveStreamConfig(parsed_log, index, |  1098     RtcEventLogTestHelper::VerifyAudioReceiveStreamConfig(parsed_log, index, | 
|  1069                                                           config); |  1099                                                           config); | 
|  1070   } |  1100   } | 
|  1071   rtclog::StreamConfig config; |  1101   rtclog::StreamConfig config; | 
|  1072 }; |  1102 }; | 
|  1073  |  1103  | 
|  1074 class AudioSendConfigReadWriteTest : public ConfigReadWriteTest { |  1104 class AudioSendConfigReadWriteTest : public ConfigReadWriteTest { | 
|  1075  public: |  1105  public: | 
|  1076   AudioSendConfigReadWriteTest() {} |  1106   AudioSendConfigReadWriteTest() {} | 
|  1077   void GenerateConfig(const RtpHeaderExtensionMap& extensions) override { |  1107   void GenerateConfig(const RtpHeaderExtensionMap& extensions) override { | 
|  1078     GenerateAudioSendConfig(extensions, &config, &prng); |  1108     GenerateAudioSendConfig(extensions, &config, &prng); | 
|  1079   } |  1109   } | 
|  1080   void LogConfig(RtcEventLog* event_log) override { |  1110   void LogConfig(RtcEventLog* event_log) override { | 
|  1081     event_log->LogAudioSendStreamConfig(config); |  1111     event_log->Log(rtc::MakeUnique<RtcEventAudioSendStreamConfig>( | 
 |  1112         rtc::MakeUnique<rtclog::StreamConfig>(config))); | 
|  1082   } |  1113   } | 
|  1083   void VerifyConfig(const ParsedRtcEventLog& parsed_log, |  1114   void VerifyConfig(const ParsedRtcEventLog& parsed_log, | 
|  1084                     size_t index) override { |  1115                     size_t index) override { | 
|  1085     RtcEventLogTestHelper::VerifyAudioSendStreamConfig(parsed_log, index, |  1116     RtcEventLogTestHelper::VerifyAudioSendStreamConfig(parsed_log, index, | 
|  1086                                                        config); |  1117                                                        config); | 
|  1087   } |  1118   } | 
|  1088   rtclog::StreamConfig config; |  1119   rtclog::StreamConfig config; | 
|  1089 }; |  1120 }; | 
|  1090  |  1121  | 
|  1091 class VideoReceiveConfigReadWriteTest : public ConfigReadWriteTest { |  1122 class VideoReceiveConfigReadWriteTest : public ConfigReadWriteTest { | 
|  1092  public: |  1123  public: | 
|  1093   VideoReceiveConfigReadWriteTest() {} |  1124   VideoReceiveConfigReadWriteTest() {} | 
|  1094   void GenerateConfig(const RtpHeaderExtensionMap& extensions) override { |  1125   void GenerateConfig(const RtpHeaderExtensionMap& extensions) override { | 
|  1095     GenerateVideoReceiveConfig(extensions, &config, &prng); |  1126     GenerateVideoReceiveConfig(extensions, &config, &prng); | 
|  1096   } |  1127   } | 
|  1097   void LogConfig(RtcEventLog* event_log) override { |  1128   void LogConfig(RtcEventLog* event_log) override { | 
|  1098     event_log->LogVideoReceiveStreamConfig(config); |  1129     event_log->Log(rtc::MakeUnique<RtcEventVideoReceiveStreamConfig>( | 
 |  1130         rtc::MakeUnique<rtclog::StreamConfig>(config))); | 
|  1099   } |  1131   } | 
|  1100   void VerifyConfig(const ParsedRtcEventLog& parsed_log, |  1132   void VerifyConfig(const ParsedRtcEventLog& parsed_log, | 
|  1101                     size_t index) override { |  1133                     size_t index) override { | 
|  1102     RtcEventLogTestHelper::VerifyVideoReceiveStreamConfig(parsed_log, index, |  1134     RtcEventLogTestHelper::VerifyVideoReceiveStreamConfig(parsed_log, index, | 
|  1103                                                           config); |  1135                                                           config); | 
|  1104   } |  1136   } | 
|  1105   rtclog::StreamConfig config; |  1137   rtclog::StreamConfig config; | 
|  1106 }; |  1138 }; | 
|  1107  |  1139  | 
|  1108 class VideoSendConfigReadWriteTest : public ConfigReadWriteTest { |  1140 class VideoSendConfigReadWriteTest : public ConfigReadWriteTest { | 
|  1109  public: |  1141  public: | 
|  1110   VideoSendConfigReadWriteTest() {} |  1142   VideoSendConfigReadWriteTest() {} | 
|  1111   void GenerateConfig(const RtpHeaderExtensionMap& extensions) override { |  1143   void GenerateConfig(const RtpHeaderExtensionMap& extensions) override { | 
|  1112     GenerateVideoSendConfig(extensions, &config, &prng); |  1144     GenerateVideoSendConfig(extensions, &config, &prng); | 
|  1113   } |  1145   } | 
|  1114   void LogConfig(RtcEventLog* event_log) override { |  1146   void LogConfig(RtcEventLog* event_log) override { | 
|  1115     event_log->LogVideoSendStreamConfig(config); |  1147     event_log->Log(rtc::MakeUnique<RtcEventVideoSendStreamConfig>( | 
 |  1148         rtc::MakeUnique<rtclog::StreamConfig>(config))); | 
|  1116   } |  1149   } | 
|  1117   void VerifyConfig(const ParsedRtcEventLog& parsed_log, |  1150   void VerifyConfig(const ParsedRtcEventLog& parsed_log, | 
|  1118                     size_t index) override { |  1151                     size_t index) override { | 
|  1119     RtcEventLogTestHelper::VerifyVideoSendStreamConfig(parsed_log, index, |  1152     RtcEventLogTestHelper::VerifyVideoSendStreamConfig(parsed_log, index, | 
|  1120                                                        config); |  1153                                                        config); | 
|  1121   } |  1154   } | 
|  1122   rtclog::StreamConfig config; |  1155   rtclog::StreamConfig config; | 
|  1123 }; |  1156 }; | 
|  1124  |  1157  | 
|  1125 class AudioNetworkAdaptationReadWriteTest : public ConfigReadWriteTest { |  1158 class AudioNetworkAdaptationReadWriteTest : public ConfigReadWriteTest { | 
|  1126  public: |  1159  public: | 
|  1127   void GenerateConfig(const RtpHeaderExtensionMap& extensions) override { |  1160   void GenerateConfig(const RtpHeaderExtensionMap& extensions) override { | 
|  1128     GenerateAudioNetworkAdaptation(extensions, &config, &prng); |  1161     GenerateAudioNetworkAdaptation(extensions, &config, &prng); | 
|  1129   } |  1162   } | 
|  1130   void LogConfig(RtcEventLog* event_log) override { |  1163   void LogConfig(RtcEventLog* event_log) override { | 
|  1131     event_log->LogAudioNetworkAdaptation(config); |  1164     event_log->Log(rtc::MakeUnique<RtcEventAudioNetworkAdaptation>( | 
 |  1165         rtc::MakeUnique<AudioEncoderRuntimeConfig>(config))); | 
|  1132   } |  1166   } | 
|  1133   void VerifyConfig(const ParsedRtcEventLog& parsed_log, |  1167   void VerifyConfig(const ParsedRtcEventLog& parsed_log, | 
|  1134                     size_t index) override { |  1168                     size_t index) override { | 
|  1135     RtcEventLogTestHelper::VerifyAudioNetworkAdaptation(parsed_log, index, |  1169     RtcEventLogTestHelper::VerifyAudioNetworkAdaptation(parsed_log, index, | 
|  1136                                                         config); |  1170                                                         config); | 
|  1137   } |  1171   } | 
|  1138   AudioEncoderRuntimeConfig config; |  1172   AudioEncoderRuntimeConfig config; | 
|  1139 }; |  1173 }; | 
|  1140  |  1174  | 
|  1141 TEST(RtcEventLogTest, LogAudioReceiveConfig) { |  1175 TEST(RtcEventLogTest, LogAudioReceiveConfig) { | 
| (...skipping 15 matching lines...) Expand all  Loading... | 
|  1157   VideoSendConfigReadWriteTest test; |  1191   VideoSendConfigReadWriteTest test; | 
|  1158   test.DoTest(); |  1192   test.DoTest(); | 
|  1159 } |  1193 } | 
|  1160  |  1194  | 
|  1161 TEST(RtcEventLogTest, LogAudioNetworkAdaptation) { |  1195 TEST(RtcEventLogTest, LogAudioNetworkAdaptation) { | 
|  1162   AudioNetworkAdaptationReadWriteTest test; |  1196   AudioNetworkAdaptationReadWriteTest test; | 
|  1163   test.DoTest(); |  1197   test.DoTest(); | 
|  1164 } |  1198 } | 
|  1165  |  1199  | 
|  1166 }  // namespace webrtc |  1200 }  // namespace webrtc | 
| OLD | NEW |