This bug tracks the work behind registering SurfaceTextures in the GPU process for later retrieval by the Browser process, in the context of crbug.com/619729 .
Summary: Create mechanism for sending StreamTexture's Surface to the MediaPlayerRenderer. (was: Create registration mechanism for SurfaceTextureFrameProvider.)
For future reference, this is what a pure "register a surface into a dictionary" approach looks like:
https://codereview.chromium.org/2268173002/
While integrating this approach within my prototype, I ran into a race conditions (the MediaPlayerRendererClient was responsible for generating a token, and simultaneously sending the token to a) register the surface in the browser's dictionary via the GPU process and the IChildProcessCallback, and b) to ask the MediaPlayerRenderer to fetch the registered surface).
It was also unclear how to elegantly handle destruction edge cases, in terms of making sure that no surface was leaked.
Instead of registering a surface in the browser process, I have decided to register a callback to accept a surface, which solves both of those problems.
The two CLs are following shortly, and I will add any extra information to this bug if the CLs are not sufficiently clear.
Comment 1 by tguilbert@chromium.org
, Jul 12 2016