Right now - after already being jitter buffered, parsed, demuxed, and decoded, as well as played back with proper timing - I have an external SDK with callbacks that give you a VideoFrame from WrapYUVExternalElement. I am using the CEF. Previously I created "faux" stream parser, and decoder, that did nothing but CPU and Memory usage is huge compared to direct OpenGL rendering from SDK without any CEF/Chromium. CEF/Chromium can use 300% CPU and 1.5GB for about 4-5 1080p streams that are all sized down considerably on the browser window.
The reason I need to avoid the Video Pipeline is because of both the unnecessary overhead of both CPU and Memory for options I don't need. Remember, I am making "FakeStreamParser" and "FakeVideoDecoder"
This is the bug I opened.
I tried skipping from the point I was supposed to enqueue the data to the buffer on the HTMLMediaElelement all the way to void VideoFrameCompositor::UpdateCurrentFrame( (branch 2357) but it seems the _client doesnt exist and since it wasn't designed for this.... I will suffer.
Can you please help me and just provide me a pointer in the right direction, which part of the massive code base to start digging - for building a way to say:
Sit on a ipc/pipe from My SDK -> Get notification (( **VideoFrame**, **Element Id**)) and do shared memory zero copy to GPU Process to a SKIA Bitmap and bam it is rendered within the dom element ( like an <img tag>)
We are looking at 5+ video's a page ( up to 15 ) from 1080p to 4K ( that needs to be down sampled )
Here is what I was investigating:
Something like direct Skia or OpenGL access with a matrix to transform and translate the output to the right size and position inside of the DOM element would be great - or maybe like PPAPI's 2DContext.
Something else I was looking at was the Device Capture code for local camera - having a shared memory ringer buffer to the GPU would be great! ( Zero copy a must)
Just let me know what would be the most ideal path to take - that would be great! Any additional resources will be greatly appreciated!
Please help,
Thanks