Investigate using new screenrecord utility in Android 4.4 for Eideticker instead of HDMI/Camera

RESOLVED WONTFIX

Status

RESOLVED WONTFIX
5 years ago
a year ago

People

(Reporter: wlach, Unassigned)

Tracking

Trunk
x86_64
Linux

Details

So apparently Android 4.4 has a new utility that lets you record the screen to an mp4:

http://androidxref.com/4.4_r1/xref/frameworks/av/cmds/screenrecord/screenrecord.cpp
http://developer.android.com/about/versions/kitkat.html#44-screen-recording

We should look into using this utility on supported devices as it would allow developers to use eideticker on Android without any kind of specialized hardware, a huge game changer. I think the modifications required of the utility itself should be fairly minimal: just print out the current frame number we're capturing in the course of the capture. Probably just a few lines worth of changes. The modifications required in eideticker itself are probably a bit more wide-ranging (we'd need to instantiate the screen recorder instead of a capture device, and decompose the generated mp4 into a set of frames when finished), but should still be relatively trivial.

Looking further ahead (out of scope for this bug), we should also really consider modifying the utility (or writing an equivalent) for FirefoxOS.

Updated

5 years ago
Keywords: perf
Whiteboard: [c=automation p= s= u=]
See Also: → bug 935943
One thing we should probably figure out is what the overhead of the screen recorder is.
See Also: → bug 938149

Updated

5 years ago
Keywords: perf
Whiteboard: [c=automation p= s= u=]
screenrecord interacts with surfaceflinger and other components of Android that we don't use.  It's not possible to use it as-is, and not even with light changes.  We're talking about adding platform-level functionality that would provide for this type of recording.

However, even if we add that, it is not a valid replacement for eideticker.  Eideticker needs to see the actual frames being placed on the screen.  A screen recording tool will introduce (some, hopefully negligible) overhead and can also only record the frames just before they're sent to the framebuffer.  It won't be able to tell when something actually gets on the screen, which can vary due to vsync and other issues.
Status: NEW → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → INVALID
I'm going to reopen this, as from what I understand this functionality would still be useful for development and testing, as an adjunct (not a replacement) to the existing testing we do with eideticker. Even if the screenrecorder adds some overhead and ignores issues like vsync, I suspect it can still provide useful data that anyone with a 4.4-capable device can generate.

(also, this bug has nothing to do with FirefoxOS -- maybe you're looking for bug 938149)
Status: RESOLVED → REOPENED
Resolution: INVALID → ---
Ok, just a few notes on solving this bug, since we may have someone interested in solving it. :)

Step 1: Modify the screenrecord utility to have an option to print out the frame # to standard out while it's recording, and nothing else. I.e. it should print:

  1
  2
  3
  4
  5
  ...

Step 2: Modify eideticker to have a "screenrecord" capture device in addition to "pointgrey" and "decklink" and either modify the existing capture controller class to use it or subclass it (the latter might make more sense, since the logic is likely to be substantially different). You can find the existing implementation of it here: https://github.com/mozilla/eideticker/blob/master/src/videocapture/videocapture/controller.py

Comment 6

a year ago
Eideticker has been discontinued, see bug 1361056
Status: REOPENED → RESOLVED
Last Resolved: 5 years agoa year ago
Resolution: --- → WONTFIX

Updated

a year ago
Product: Testing → Testing Graveyard
You need to log in before you can comment on or make changes to this bug.