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