Index: build/android/pylib/screenshot.py |
diff --git a/build/android/pylib/screenshot.py b/build/android/pylib/screenshot.py |
index 65274aeffb160fa41379ab742e5f6df78b176ca9..1e4ea84735f0f4157f5d41a4e30a29dfeaffd616 100644 |
--- a/build/android/pylib/screenshot.py |
+++ b/build/android/pylib/screenshot.py |
@@ -3,6 +3,7 @@ |
# found in the LICENSE file. |
import os |
+import tempfile |
import time |
import android_commands |
@@ -56,11 +57,13 @@ class VideoRecorder(object): |
self._host_file = os.path.abspath(self._host_file) |
self._recorder = None |
self._recorder_pids = None |
+ self._recorder_stdout = None |
+ self._is_started = False |
self._args = ['adb'] |
if self._adb.GetDevice(): |
self._args += ['-s', self._adb.GetDevice()] |
- self._args += ['shell', 'screenrecord'] |
+ self._args += ['shell', 'screenrecord', '--verbose'] |
Sami
2013/12/09 15:27:09
Mind adding a keyword argument for this? The stand
tonyg
2013/12/09 16:47:12
Maybe I'm missing your point, but just to be clear
Sami
2013/12/09 17:14:30
Ack, sorry, I only tried half of your patch to see
|
self._args += ['--bit-rate', str(megabits_per_second * 1000 * 1000)] |
if size: |
self._args += ['--size', '%dx%d' % size] |
@@ -71,14 +74,25 @@ class VideoRecorder(object): |
def Start(self): |
"""Start recording video.""" |
_EnsureHostDirectory(self._host_file) |
- self._recorder = cmd_helper.Popen(self._args) |
+ self._recorder_stdout = tempfile.mkstemp()[1] |
Sami
2013/12/09 15:27:09
Please remove this file when we're done with it.
tonyg
2013/12/09 16:47:12
Done.
|
+ self._recorder = cmd_helper.Popen( |
+ self._args, stdout=open(self._recorder_stdout, 'w')) |
self._recorder_pids = self._adb.ExtractPid('screenrecord') |
if not self._recorder_pids: |
raise RuntimeError('Recording failed. Is your device running Android ' |
'KitKat or later?') |
+ def IsStarted(self): |
+ if not self._is_started: |
+ for line in open(self._recorder_stdout).readlines(): |
Sami
2013/12/09 15:27:09
Nit: no need for .readlines().
tonyg
2013/12/09 16:47:12
Mind=>blown :) I had no idea that worked.
|
+ self._is_started = line.startswith('Content area is ') |
+ if self._is_started: |
+ break |
+ return self._is_started |
+ |
def Stop(self): |
"""Stop recording video.""" |
+ self._is_started = False |
if not self._recorder or not self._recorder_pids: |
return |
self._adb.RunShellCommand('kill -SIGINT ' + ' '.join(self._recorder_pids)) |