• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3# found in the LICENSE file.
4from telemetry.page import page as page_module
5from telemetry.page import page_set as page_set_module
6
7
8class BasicPlayPage(page_module.Page):
9
10  def __init__(self, url, page_set):
11    super(BasicPlayPage, self).__init__(url=url, page_set=page_set)
12    self.add_browser_metrics = True
13
14  def PlayAction(self, action_runner):
15    action_runner.PlayMedia(playing_event_timeout_in_seconds=60,
16                            ended_event_timeout_in_seconds=60)
17
18  def RunMediaMetrics(self, action_runner):
19    self.PlayAction(action_runner)
20
21  def SeekBeforeAndAfterPlayhead(self, action_runner):
22    action_runner.PlayMedia(playing_event_timeout_in_seconds=60)
23    # Wait for 1 second so that we know the play-head is at ~1s.
24    action_runner.Wait(1)
25    # Seek to before the play-head location.
26    action_runner.SeekMedia(seconds=0.5, timeout_in_seconds=60,
27                            label='seek_warm')
28    # Seek to after the play-head location.
29    action_runner.SeekMedia(seconds=15, timeout_in_seconds=60,
30                            label='seek_cold')
31
32class SeekBeforeAndAfterPlayheadPage(BasicPlayPage):
33
34  def __init__(self, url, page_set):
35    super(SeekBeforeAndAfterPlayheadPage, self).__init__(url=url,
36                                                         page_set=page_set)
37    self.add_browser_metrics = False
38
39  def RunMediaMetrics(self, action_runner):
40    self.SeekBeforeAndAfterPlayhead(action_runner)
41
42
43class MediaCnsCasesPageSet(page_set_module.PageSet):
44
45  """ Media benchmark on network constrained conditions. """
46
47  def __init__(self):
48    super(MediaCnsCasesPageSet, self).__init__()
49
50    urls_list = [
51      # pylint: disable=C0301
52      'file://tough_video_cases/video.html?id=no_constraints_webm&src=tulip2.webm&net=none',
53      # pylint: disable=C0301
54      'file://tough_video_cases/video.html?id=cable_webm&src=tulip2.webm&net=cable',
55      # pylint: disable=C0301
56      'file://tough_video_cases/video.html?id=wifi_webm&src=tulip2.webm&net=wifi',
57      # pylint: disable=C0301
58      'file://tough_video_cases/video.html?id=no_constraints_ogv&src=tulip2.ogv&net=none',
59      # pylint: disable=C0301
60      'file://tough_video_cases/video.html?id=cable_ogv&src=tulip2.ogv&net=cable',
61      # pylint: disable=C0301
62      'file://tough_video_cases/video.html?id=wifi_ogv&src=tulip2.ogv&net=wifi',
63      # pylint: disable=C0301
64      'file://tough_video_cases/video.html?id=no_constraints_mp4&src=tulip2.mp4&net=none',
65      # pylint: disable=C0301
66      'file://tough_video_cases/video.html?id=cable_mp4&src=tulip2.mp4&net=cable',
67      # pylint: disable=C0301
68      'file://tough_video_cases/video.html?id=wifi_mp4&src=tulip2.mp4&net=wifi',
69      # pylint: disable=C0301
70      'file://tough_video_cases/video.html?id=no_constraints_wav&src=tulip2.wav&type=audio&net=none',
71      # pylint: disable=C0301
72      'file://tough_video_cases/video.html?id=cable_wav&src=tulip2.wav&type=audio&net=cable',
73      # pylint: disable=C0301
74      'file://tough_video_cases/video.html?id=wifi_wav&src=tulip2.wav&type=audio&net=wifi',
75      # pylint: disable=C0301
76      'file://tough_video_cases/video.html?id=no_constraints_ogg&src=tulip2.ogg&type=audio&net=none',
77      # pylint: disable=C0301
78      'file://tough_video_cases/video.html?id=cable_ogg&src=tulip2.ogg&type=audio&net=cable',
79      # pylint: disable=C0301
80      'file://tough_video_cases/video.html?id=wifi_ogg&src=tulip2.ogg&type=audio&net=wifi',
81      # pylint: disable=C0301
82      'file://tough_video_cases/video.html?id=no_constraints_mp3&src=tulip2.mp3&type=audio&net=none',
83      # pylint: disable=C0301
84      'file://tough_video_cases/video.html?id=cable_mp3&src=tulip2.mp3&type=audio&net=cable',
85      # pylint: disable=C0301
86      'file://tough_video_cases/video.html?id=wifi_mp3&src=tulip2.mp3&type=audio&net=wifi',
87      # pylint: disable=C0301
88      'file://tough_video_cases/video.html?id=no_constraints_m4a&src=tulip2.m4a&type=audio&net=none',
89      # pylint: disable=C0301
90      'file://tough_video_cases/video.html?id=cable_m4a&src=tulip2.m4a&type=audio&net=cable',
91      # pylint: disable=C0301
92      'file://tough_video_cases/video.html?id=wifi_m4a&src=tulip2.m4a&type=audio&net=wifi'
93    ]
94
95    for url in urls_list:
96      self.AddPage(BasicPlayPage(url, self))
97
98    urls_list2 = [
99      # pylint: disable=C0301
100      'file://tough_video_cases/video.html?id=wifi_mp3&src=tulip2.mp3&type=audio&net=wifi',
101      # pylint: disable=C0301
102      'file://tough_video_cases/video.html?id=wifi_m4a&src=tulip2.m4a&type=audio&net=wifi',
103      # pylint: disable=C0301
104      'file://tough_video_cases/video.html?id=wifi_ogg&src=tulip2.ogg&type=audio&net=wifi',
105      # pylint: disable=C0301
106      'file://tough_video_cases/video.html?id=wifi_wav&src=tulip2.wav&type=audio&net=wifi',
107      # pylint: disable=C0301
108      'file://tough_video_cases/video.html?id=wifi_mp4&src=tulip2.mp4&type=audio&net=wifi',
109      # pylint: disable=C0301
110      'file://tough_video_cases/video.html?id=wifi_ogv&src=tulip2.ogv&type=audio&net=wifi',
111      # pylint: disable=C0301
112      'file://tough_video_cases/video.html?id=wifi_webm&src=tulip2.webm&type=audio&net=wifi'
113    ]
114
115    for url in urls_list2:
116      self.AddPage(SeekBeforeAndAfterPlayheadPage(url, self))
117