def test_webrtc(self, local_path, gather_result): """ Runs the webrtc test with and without hardware acceleration. @param local_path: the path to the video file. @param gather_result: a function to run and return the test result after chrome opens. The input parameter of the funciton is Autotest chrome instance. @return a dictionary that contains test the result. """ keyvals = {} EXTRA_BROWSER_ARGS.append(FAKE_FILE_ARG % local_path) with chrome.Chrome(extra_browser_args=EXTRA_BROWSER_ARGS +\ [helper_logger.chrome_vmodule_flag()], arc_mode=self.arc_mode, init_network_controller=True) as cr: # On daisy, Chrome freezes about 30 seconds after login because of # TPM error. See http://crbug.com/588579. if utils.get_board() == 'daisy': logging.warning('Delay 30s for issue 588579 on daisy') time.sleep(30) # Open WebRTC loopback page and start the loopback. self.start_loopback(cr) result = gather_result(cr) # Check if decode is hardware accelerated. if histogram_verifier.is_bucket_present( cr, constants.RTC_INIT_HISTOGRAM, constants.RTC_VIDEO_INIT_BUCKET): keyvals[WEBRTC_WITH_HW_ACCELERATION] = result else: logging.info("Can not use hardware decoding.") keyvals[WEBRTC_WITHOUT_HW_ACCELERATION] = result return keyvals # Start chrome with disabled video hardware decode flag. with chrome.Chrome(extra_browser_args= DISABLE_ACCELERATED_VIDEO_DECODE_BROWSER_ARGS + EXTRA_BROWSER_ARGS, arc_mode=self.arc_mode, init_network_controller=True) as cr: if utils.get_board() == 'daisy': logging.warning('Delay 30s for issue 588579 on daisy') time.sleep(30) # Open the webrtc loopback page and start the loopback. self.start_loopback(cr) result = gather_result(cr) # Make sure decode is not hardware accelerated. if histogram_verifier.is_bucket_present( cr, constants.RTC_INIT_HISTOGRAM, constants.RTC_VIDEO_INIT_BUCKET): raise error.TestError('HW decode should not be used.') keyvals[WEBRTC_WITHOUT_HW_ACCELERATION] = result return keyvals
def test_playback(self, local_path, gather_result): """ Runs the video playback test with and without hardware acceleration. @param local_path: the path to the video file. @param gather_result: a function to run and return the test result after chrome opens. The input parameter of the funciton is Autotest chrome instance. @return a dictionary that contains test the result. """ keyvals = {} with chrome.Chrome( extra_browser_args=helper_logger.chrome_vmodule_flag(), arc_mode=self.arc_mode, init_network_controller=True) as cr: # crbug/753292 - enforce the idle checks after login if not utils.wait_for_idle_cpu(WAIT_FOR_IDLE_CPU_TIMEOUT, CPU_IDLE_USAGE): logging.warning('Could not get idle CPU post login.') if not utils.wait_for_cool_machine(): logging.warning('Could not get cold machine post login.') # Open the video playback page and start playing. self.start_playback(cr, local_path) result = gather_result(cr) # Check if decode is hardware accelerated. if histogram_verifier.is_bucket_present( cr, constants.MEDIA_GVD_INIT_STATUS, constants.MEDIA_GVD_BUCKET): keyvals[PLAYBACK_WITH_HW_ACCELERATION] = result else: logging.info("Can not use hardware decoding.") keyvals[PLAYBACK_WITHOUT_HW_ACCELERATION] = result return keyvals # Start chrome with disabled video hardware decode flag. with chrome.Chrome(extra_browser_args= DISABLE_ACCELERATED_VIDEO_DECODE_BROWSER_ARGS, arc_mode=self.arc_mode, init_network_controller=True) as cr: # Open the video playback page and start playing. self.start_playback(cr, local_path) result = gather_result(cr) # Make sure decode is not hardware accelerated. if histogram_verifier.is_bucket_present( cr, constants.MEDIA_GVD_INIT_STATUS, constants.MEDIA_GVD_BUCKET): raise error.TestError( 'Video decode acceleration should not be working.') keyvals[PLAYBACK_WITHOUT_HW_ACCELERATION] = result return keyvals
def test_playback(self, local_path, gather_result): """ Runs the video playback test with and without hardware acceleration. @param local_path: the path to the video file. @param gather_result: a function to run and return the test result after chrome opens. The input parameter of the funciton is Autotest chrome instance. @return a dictionary that contains test the result. """ keyvals = {} with chrome.Chrome(arc_mode=self.arc_mode, init_network_controller=True) as cr: # Open the video playback page and start playing. self.start_playback(cr, local_path) result = gather_result(cr) # Check if decode is hardware accelerated. if histogram_verifier.is_bucket_present( cr, constants.MEDIA_GVD_INIT_STATUS, constants.MEDIA_GVD_BUCKET): keyvals[PLAYBACK_WITH_HW_ACCELERATION] = result else: logging.info("Can not use hardware decoding.") keyvals[PLAYBACK_WITHOUT_HW_ACCELERATION] = result return keyvals # Start chrome with disabled video hardware decode flag. with chrome.Chrome(extra_browser_args= DISABLE_ACCELERATED_VIDEO_DECODE_BROWSER_ARGS, arc_mode=self.arc_mode) as cr: # Open the video playback page and start playing. self.start_playback(cr, local_path) result = gather_result(cr) # Make sure decode is not hardware accelerated. if histogram_verifier.is_bucket_present( cr, constants.MEDIA_GVD_INIT_STATUS, constants.MEDIA_GVD_BUCKET): raise error.TestError( 'Video decode acceleration should not be working.') keyvals[PLAYBACK_WITHOUT_HW_ACCELERATION] = result return keyvals
def test_webrtc(self, local_path, gather_result): """ Runs the webrtc test with and without hardware acceleration. @param local_path: the path to the video file. @param gather_result: a function to run and return the test result after chrome opens. The input parameter of the funciton is Autotest chrome instance. @return a dictionary that contains test the result. """ keyvals = {} EXTRA_BROWSER_ARGS.append(FAKE_FILE_ARG % local_path) with chrome.Chrome(extra_browser_args=EXTRA_BROWSER_ARGS) as cr: # Open WebRTC loopback page and start the loopback. self.start_loopback(cr) result = gather_result(cr) # Check if decode is hardware accelerated. if histogram_verifier.is_bucket_present( cr, constants.RTC_INIT_HISTOGRAM, constants.RTC_VIDEO_INIT_BUCKET): keyvals[WEBRTC_WITH_HW_ACCELERATION] = result else: logging.info("Can not use hardware decoding.") keyvals[WEBRTC_WITHOUT_HW_ACCELERATION] = result return keyvals # Start chrome with disabled video hardware decode flag. with chrome.Chrome( extra_browser_args=DISABLE_ACCELERATED_VIDEO_DECODE_BROWSER_ARGS + EXTRA_BROWSER_ARGS) as cr: # Open the webrtc loopback page and start the loopback. self.start_loopback(cr) result = gather_result(cr) # Make sure decode is not hardware accelerated. if histogram_verifier.is_bucket_present( cr, constants.RTC_INIT_HISTOGRAM, constants.RTC_VIDEO_INIT_BUCKET): raise error.TestError('HW decode should not be used.') keyvals[WEBRTC_WITHOUT_HW_ACCELERATION] = result return keyvals