Index: tools/perf/benchmarks/webrtc.py |
diff --git a/tools/perf/benchmarks/webrtc.py b/tools/perf/benchmarks/webrtc.py |
index ea1e127fa36b6f6d2e616ee582ebcafcb1330f30..6f073d549a16470615561a7a9e19ebec39792c46 100644 |
--- a/tools/perf/benchmarks/webrtc.py |
+++ b/tools/perf/benchmarks/webrtc.py |
@@ -4,115 +4,37 @@ |
from core import perf_benchmark |
-from measurements import webrtc |
import page_sets |
from telemetry import benchmark |
from telemetry.timeline import chrome_trace_category_filter |
from telemetry.web_perf import timeline_based_measurement |
-from telemetry.web_perf.metrics import webrtc_rendering_timeline |
-RENDERING_VALUE_PREFIX = 'WebRTCRendering_' |
-# TODO(qyearsley, mcasas): Add webrtc.audio when http://crbug.com/468732 |
-# is fixed, or revert https://codereview.chromium.org/1544573002/ when |
-# http://crbug.com/568333 is fixed. |
- |
- |
-class _Webrtc(perf_benchmark.PerfBenchmark): |
+@benchmark.Owner(emails=['qiangchen@chromium.org', # For smoothness metrics |
+ 'ehmaldonado@chromium.org', |
+ 'phoglund@chromium.org']) |
+class WebrtcPerfBenchmark(perf_benchmark.PerfBenchmark): |
"""Base class for WebRTC metrics for real-time communications tests.""" |
- test = webrtc.WebRTC |
- |
- |
-class WebrtcGetusermedia(_Webrtc): |
- """Measures WebRtc GetUserMedia for video capture and local playback.""" |
- page_set = page_sets.WebrtcGetusermediaPageSet |
- |
- @classmethod |
- def Name(cls): |
- return 'webrtc.getusermedia' |
- |
- |
-class WebrtcPeerConnection(_Webrtc): |
- """Measures WebRtc Peerconnection for remote video and audio communication.""" |
- page_set = page_sets.WebrtcPeerconnectionPageSet |
- |
- @classmethod |
- def Name(cls): |
- return 'webrtc.peerconnection' |
- |
- |
-@benchmark.Owner(emails=['phoglund@chromium.org']) |
-class WebrtcDataChannel(_Webrtc): |
- """Measures WebRtc DataChannel loopback.""" |
- page_set = page_sets.WebrtcDatachannelPageSet |
- |
- @classmethod |
- def Name(cls): |
- return 'webrtc.datachannel' |
- |
- |
-@benchmark.Disabled('win') |
-@benchmark.Owner(emails=['ehmaldonado@chromium.org', 'phoglund@chromium.org']) |
-class WebrtcStressTest(perf_benchmark.PerfBenchmark): |
- """Measures WebRtc CPU and GPU usage with multiple peer connections.""" |
- page_set = page_sets.WebrtcStresstestPageSet |
+ page_set = page_sets.WebrtcPageSet |
@classmethod |
def Name(cls): |
- return 'webrtc.stress' |
- |
- def CreatePageTest(self, options): |
- # Exclude all stats. |
- return webrtc.WebRTC(particular_metrics=['googAvgEncodeMs', |
- 'googFrameRateReceived']) |
- |
- |
-# WebrtcRendering must be a PerfBenchmark, and not a _Webrtc, because it is a |
-# timeline-based. |
-# Disabled on reference builds because they crash and don't support tab |
-# capture. See http://crbug.com/603232. |
-@benchmark.Disabled('reference') |
-@benchmark.Disabled('android') # http://crbug.com/610019 |
-@benchmark.Owner(emails=['qiangchen@chromium.org']) |
-class WebrtcRendering(perf_benchmark.PerfBenchmark): |
- """Specific time measurements (e.g. fps, smoothness) for WebRtc rendering.""" |
- |
- page_set = page_sets.WebrtcRenderingPageSet |
+ return 'webrtc' |
def CreateTimelineBasedMeasurementOptions(self): |
- category_filter = chrome_trace_category_filter.ChromeTraceCategoryFilter( |
- filter_string='webrtc,webkit.console,blink.console') |
- options = timeline_based_measurement.Options(category_filter) |
- options.SetLegacyTimelineBasedMetrics( |
- [webrtc_rendering_timeline.WebRtcRenderingTimelineMetric()]) |
- return options |
- |
- def SetExtraBrowserOptions(self, options): |
- options.AppendExtraBrowserArgs('--use-fake-device-for-media-stream') |
- options.AppendExtraBrowserArgs('--use-fake-ui-for-media-stream') |
+ categories = [ |
+ # Disable all categories by default. |
+ '-*', |
+ 'toplevel', |
+ # WebRTC |
+ 'webrtc', |
+ ] |
- @classmethod |
- def Name(cls): |
- return 'webrtc.webrtc_smoothness' |
- |
- |
-# WebrtcRenderingTBMv2 must be a PerfBenchmark, and not a _Webrtc, because it is |
-# a timeline-based metric. |
-@benchmark.Owner(emails=['ehmaldonado@chromium.org', |
- 'phoglund@chromium.org', |
- 'qiangchen@chromium.org']) |
-class WebrtcRenderingTBMv2(perf_benchmark.PerfBenchmark): |
- """Specific time measurements (e.g. fps, smoothness) for WebRtc rendering.""" |
- |
- page_set = page_sets.WebrtcRenderingPageSet |
- |
- def CreateTimelineBasedMeasurementOptions(self): |
category_filter = chrome_trace_category_filter.ChromeTraceCategoryFilter( |
- filter_string='webrtc,toplevel') |
+ filter_string=','.join(categories)) |
options = timeline_based_measurement.Options(category_filter) |
options.SetTimelineBasedMetrics([ |
'cpuTimeMetric', |
- 'expectedQueueingTimeMetric', |
'webrtcRenderingMetric', |
]) |
return options |
@@ -120,7 +42,3 @@ class WebrtcRenderingTBMv2(perf_benchmark.PerfBenchmark): |
def SetExtraBrowserOptions(self, options): |
options.AppendExtraBrowserArgs('--use-fake-device-for-media-stream') |
options.AppendExtraBrowserArgs('--use-fake-ui-for-media-stream') |
- |
- @classmethod |
- def Name(cls): |
- return 'webrtc.webrtc_smoothness_tbmv2' |