-
Notifications
You must be signed in to change notification settings - Fork 259
Black rectangles when play full HD youtube video in fullscreen #54
Comments
I'll look into this, I saw your pull request. I'm concerned with performance overall, another memcpy is expensive. I'll be doing some testing on this. |
Yes it will decrease perfomance, but another way to synchronize threads will be cost more (i think) because it would be depend on copied image size directly. There you copy data in browser thread, and render thread doen't wait it. |
It could be simpler to do some locking. I'll have to look into how it's done properly with CEF3. Could you possibly capture a video or image of these artifacts? I tried playing a large video taking up the whole window and did not notice anything. |
I will capture them today
|
@deniskoronchik, try to remove transition from player. I have the same problem on current project.
|
I'm playing video directly from youtube tv
|
https://www.youtube.com/tv#/watch?v=GKg5ZylmvVk&resume |
Still don't seem to be getting anything on my desktop. |
Before fix: https://drive.google.com/file/d/0B9nRd_434bwfcUx3cW1yOHJrelU/view?usp=sharing Sound problems is a bandicam record issue. Machine not new Intel Core i5 2.67 GHz, Nvidia Geforce GTX 460, 16 GB RAM |
You need to make copy of buffer when you pass it into:
parentUI->TextureUpdate(buffer, updateRegions, dirtyRects.size());
This is why, when you copy it to render target in
void UBluEye::TextureUpdate(const void *buffer, FUpdateTextureRegion2D *updateRegions, uint32 regionCount)
you use ENQUEUE_UNIQUE_RENDER_COMMAND_ONEPARAMETER
So if image large, then we have black artefacts on it, because during copying in render thread it changes in browser thread.
I think you can alloc buffer in RenderHandler::RenderHandler(int32 width, int32 height, UBluEye* ui), if size doens't changed.
I've tested solution (not optimized with allocs on each update) and it works.
The text was updated successfully, but these errors were encountered: