Why not create a mojo like FrameSinkVideoConsumerStub and name it FrameSinkTextureConsumerStub, and use the same design structure? The final texture is encoded into video anyway.
Update: I'm goint to implement a method that supports macOS (via IOSurface) and Windows (via DXGI) using GMB buffers. My idea is implement another FrameSink that is dedicated to pop copyable resource up to the CEF layer, in parallel with existing VideoCapture method
It turns out the existing VideoCapturer can finish this job already. We just need to patch the RenderableGpuMemoryBufferVideoFramePoolImpl to support ARGB NativeTexture so that the GMB on Windows will use BufferFactoryDXGI as backend and it also has SHARED_KEYEDMUTEX | NTHANDLE attribute already.
magreenblatt wrote:It looks like you linked the Chromium changes twice. What is the correct URL for the CEF changes?
Sorry, link updated.
Also, this method could be easily port to macOS because on mac the backing factory use IOSurface. We only need to add some mac specific code at CEF (OnFrameCaptured) handler