| OLD | NEW |
| 1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 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 import logging | 5 import logging |
| 6 import os | 6 import os |
| 7 import tempfile | 7 import tempfile |
| 8 import time | 8 import time |
| 9 | 9 |
| 10 from pylib import cmd_helper | 10 from pylib import cmd_helper |
| 11 from pylib import constants | |
| 12 from pylib import device_signal | 11 from pylib import device_signal |
| 13 from pylib.device import device_errors | 12 from pylib.device import device_errors |
| 14 | 13 |
| 15 # TODO(jbudorick) Remove once telemetry gets switched over. | 14 # TODO(jbudorick) Remove once telemetry gets switched over. |
| 16 import pylib.android_commands | 15 import pylib.android_commands |
| 17 import pylib.device.device_utils | 16 import pylib.device.device_utils |
| 18 | 17 |
| 19 | 18 |
| 20 class VideoRecorder(object): | 19 class VideoRecorder(object): |
| 21 """Records a screen capture video from an Android Device (KitKat or newer). | 20 """Records a screen capture video from an Android Device (KitKat or newer). |
| (...skipping 12 matching lines...) Expand all Loading... |
| 34 # TODO(jbudorick) Remove once telemetry gets switched over. | 33 # TODO(jbudorick) Remove once telemetry gets switched over. |
| 35 if isinstance(device, pylib.android_commands.AndroidCommands): | 34 if isinstance(device, pylib.android_commands.AndroidCommands): |
| 36 device = pylib.device.device_utils.DeviceUtils(device) | 35 device = pylib.device.device_utils.DeviceUtils(device) |
| 37 self._device = device | 36 self._device = device |
| 38 self._device_file = ( | 37 self._device_file = ( |
| 39 '%s/screen-recording.mp4' % device.GetExternalStoragePath()) | 38 '%s/screen-recording.mp4' % device.GetExternalStoragePath()) |
| 40 self._recorder = None | 39 self._recorder = None |
| 41 self._recorder_stdout = None | 40 self._recorder_stdout = None |
| 42 self._is_started = False | 41 self._is_started = False |
| 43 | 42 |
| 44 self._args = [constants.GetAdbPath()] | 43 self._args = ['adb'] |
| 45 if str(self._device): | 44 if str(self._device): |
| 46 self._args += ['-s', str(self._device)] | 45 self._args += ['-s', str(self._device)] |
| 47 self._args += ['shell', 'screenrecord', '--verbose'] | 46 self._args += ['shell', 'screenrecord', '--verbose'] |
| 48 self._args += ['--bit-rate', str(megabits_per_second * 1000 * 1000)] | 47 self._args += ['--bit-rate', str(megabits_per_second * 1000 * 1000)] |
| 49 if size: | 48 if size: |
| 50 self._args += ['--size', '%dx%d' % size] | 49 self._args += ['--size', '%dx%d' % size] |
| 51 if rotate: | 50 if rotate: |
| 52 self._args += ['--rotate'] | 51 self._args += ['--rotate'] |
| 53 self._args += [self._device_file] | 52 self._args += [self._device_file] |
| 54 | 53 |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 91 # TODO(jbudorick): Merge filename generation with the logic for doing so in | 90 # TODO(jbudorick): Merge filename generation with the logic for doing so in |
| 92 # DeviceUtils. | 91 # DeviceUtils. |
| 93 host_file_name = ( | 92 host_file_name = ( |
| 94 host_file | 93 host_file |
| 95 or 'screen-recording-%s.mp4' % time.strftime('%Y%m%dT%H%M%S', | 94 or 'screen-recording-%s.mp4' % time.strftime('%Y%m%dT%H%M%S', |
| 96 time.localtime())) | 95 time.localtime())) |
| 97 host_file_name = os.path.abspath(host_file_name) | 96 host_file_name = os.path.abspath(host_file_name) |
| 98 self._device.PullFile(self._device_file, host_file_name) | 97 self._device.PullFile(self._device_file, host_file_name) |
| 99 self._device.RunShellCommand('rm -f "%s"' % self._device_file) | 98 self._device.RunShellCommand('rm -f "%s"' % self._device_file) |
| 100 return host_file_name | 99 return host_file_name |
| OLD | NEW |