| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <map> | 5 #include <map> |
| 6 #include <vector> | 6 #include <vector> |
| 7 | 7 |
| 8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
| (...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 490 event_maps.push_back(std::make_pair(&onbuffer, "timestamp")); | 490 event_maps.push_back(std::make_pair(&onbuffer, "timestamp")); |
| 491 event_maps.push_back(std::make_pair(&sink, "time_delta")); | 491 event_maps.push_back(std::make_pair(&sink, "time_delta")); |
| 492 event_maps.push_back(std::make_pair(&inserted, "timestamp")); | 492 event_maps.push_back(std::make_pair(&inserted, "timestamp")); |
| 493 event_maps.push_back(std::make_pair(&encoded, "rtp_timestamp")); | 493 event_maps.push_back(std::make_pair(&encoded, "rtp_timestamp")); |
| 494 event_maps.push_back(std::make_pair(&transmitted, "rtp_timestamp")); | 494 event_maps.push_back(std::make_pair(&transmitted, "rtp_timestamp")); |
| 495 event_maps.push_back(std::make_pair(&decoded, "rtp_timestamp")); | 495 event_maps.push_back(std::make_pair(&decoded, "rtp_timestamp")); |
| 496 event_maps.push_back(std::make_pair(&done, "render_time")); | 496 event_maps.push_back(std::make_pair(&done, "render_time")); |
| 497 | 497 |
| 498 trace_analyzer::TraceEventVector capture_events; | 498 trace_analyzer::TraceEventVector capture_events; |
| 499 GetTraceEvents(analyzer, "Capture" , &capture_events); | 499 GetTraceEvents(analyzer, "Capture" , &capture_events); |
| 500 EXPECT_GT(capture_events.size(), 0UL); |
| 500 std::vector<std::vector<double> > traced_frames; | 501 std::vector<std::vector<double> > traced_frames; |
| 501 for (size_t i = kSkipEvents; i < capture_events.size(); i++) { | 502 for (size_t i = kSkipEvents; i < capture_events.size(); i++) { |
| 502 std::vector<double> times; | 503 std::vector<double> times; |
| 503 const trace_analyzer::TraceEvent *event = capture_events[i]; | 504 const trace_analyzer::TraceEvent *event = capture_events[i]; |
| 504 times.push_back(event->timestamp); // begin capture | 505 times.push_back(event->timestamp); // begin capture |
| 505 event = event->other_event; | 506 event = event->other_event; |
| 506 if (!event) { | 507 if (!event) { |
| 507 continue; | 508 continue; |
| 508 } | 509 } |
| 509 times.push_back(event->timestamp); // end capture (with timestamp) | 510 times.push_back(event->timestamp); // end capture (with timestamp) |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 603 proxy_end_point, | 604 proxy_end_point, |
| 604 receiver_end_point, | 605 receiver_end_point, |
| 605 media::cast::test::BadNetwork().Pass(), | 606 media::cast::test::BadNetwork().Pass(), |
| 606 media::cast::test::BadNetwork().Pass(), | 607 media::cast::test::BadNetwork().Pass(), |
| 607 NULL); | 608 NULL); |
| 608 } | 609 } |
| 609 receiver_end_point = proxy_end_point; | 610 receiver_end_point = proxy_end_point; |
| 610 } | 611 } |
| 611 | 612 |
| 612 std::string json_events; | 613 std::string json_events; |
| 613 ASSERT_TRUE(tracing::BeginTracing("test_fps,mirroring,cast_perf_test")); | 614 ASSERT_TRUE(tracing::BeginTracing( |
| 615 "test_fps,mirroring,gpu.capture,cast_perf_test")); |
| 614 const std::string page_url = base::StringPrintf( | 616 const std::string page_url = base::StringPrintf( |
| 615 "performance%d.html?port=%d", | 617 "performance%d.html?port=%d", |
| 616 getfps(), | 618 getfps(), |
| 617 receiver_end_point.port()); | 619 receiver_end_point.port()); |
| 618 ASSERT_TRUE(RunExtensionSubtest("cast_streaming", page_url)) << message_; | 620 ASSERT_TRUE(RunExtensionSubtest("cast_streaming", page_url)) << message_; |
| 619 ASSERT_TRUE(tracing::EndTracing(&json_events)); | 621 ASSERT_TRUE(tracing::EndTracing(&json_events)); |
| 620 receiver->Stop(); | 622 receiver->Stop(); |
| 621 | 623 |
| 622 // Stop all threads, removes the need for synchronization when analyzing | 624 // Stop all threads, removes the need for synchronization when analyzing |
| 623 // the data. | 625 // the data. |
| 624 cast_environment->Shutdown(); | 626 cast_environment->Shutdown(); |
| 625 scoped_ptr<trace_analyzer::TraceAnalyzer> analyzer; | 627 scoped_ptr<trace_analyzer::TraceAnalyzer> analyzer; |
| 626 analyzer.reset(trace_analyzer::TraceAnalyzer::Create(json_events)); | 628 analyzer.reset(trace_analyzer::TraceAnalyzer::Create(json_events)); |
| 627 analyzer->AssociateAsyncBeginEndEvents(); | 629 analyzer->AssociateAsyncBeginEndEvents(); |
| 628 | 630 |
| 629 MeanAndError frame_data = AnalyzeTraceDistance( | 631 MeanAndError frame_data = AnalyzeTraceDistance( |
| 630 analyzer.get(), | 632 analyzer.get(), |
| 631 TRACE_DISABLED_BY_DEFAULT("OnSwapCompositorFrame")); | 633 "OnSwapCompositorFrame"); |
| 632 | 634 |
| 633 EXPECT_GT(frame_data.num_values, 0UL); | 635 EXPECT_GT(frame_data.num_values, 0UL); |
| 634 // Lower is better. | 636 // Lower is better. |
| 635 frame_data.Print(test_name, | 637 frame_data.Print(test_name, |
| 636 GetSuffixForTestFlags(), | 638 GetSuffixForTestFlags(), |
| 637 "time_between_frames", | 639 "time_between_frames", |
| 638 "ms"); | 640 "ms"); |
| 639 | 641 |
| 640 // This prints out the average time between capture events. | 642 // This prints out the average time between capture events. |
| 641 // As the capture frame rate is capped at 30fps, this score | 643 // As the capture frame rate is capped at 30fps, this score |
| (...skipping 24 matching lines...) Expand all Loading... |
| 666 CastV2PerformanceTest, | 668 CastV2PerformanceTest, |
| 667 testing::Values( | 669 testing::Values( |
| 668 kUseGpu | k24fps, | 670 kUseGpu | k24fps, |
| 669 kUseGpu | k30fps, | 671 kUseGpu | k30fps, |
| 670 kUseGpu | k60fps, | 672 kUseGpu | k60fps, |
| 671 kUseGpu | k24fps | kDisableVsync, | 673 kUseGpu | k24fps | kDisableVsync, |
| 672 kUseGpu | k30fps | kProxyWifi, | 674 kUseGpu | k30fps | kProxyWifi, |
| 673 kUseGpu | k30fps | kProxyBad, | 675 kUseGpu | k30fps | kProxyBad, |
| 674 kUseGpu | k30fps | kSlowClock, | 676 kUseGpu | k30fps | kSlowClock, |
| 675 kUseGpu | k30fps | kFastClock)); | 677 kUseGpu | k30fps | kFastClock)); |
| OLD | NEW |