File: third_party/catapult/devil/devil/android/tools/video_recorder.py
Videorecorder records video to a device file which is located at:
'/sdcard/screen-recording.mp4'.
In some devices for example, "cherry Mobile - Spice Mi-498" Android One 6.0.1 which is a svelte configured device /sdcard is a symbolic link
pointing to /storage/self/primary. Recording to this location fails with "path not found" error.
There are two issues here:
1) The start recording code assumes every device has an external storage.
One way to fix this is to take _device_file as a parameter so the caller can save to whatever location is valid for the device.
2) VideoRecorder._Record relies on specific output from screenrecord to return.
if line.startswith('Content area is '):
self._started.set()
So when screenrecord fails to start (due to whatever reason), the
self._started.wait(timeout) call just blocks indefinitely (when timeout == None).
Essentially when screenrecord fails to start, VideoRecorder blocks forever. It should return back to the caller with an error.
The fix would be set timeout to a default value other than None.
Comment 1 by jbudorick@chromium.org
, Sep 30 2016Status: Assigned (was: Untriaged)