Hi,
I have a lot of threads in my application. One of them is used to provide
video data to application.
So, when new video frame is available I just put video data to queue and
make call
clutter_threads_add_idle_full(G_PRIORITY_HIGH, /* I tries over priority
also, DEFAULT, LOW */
videoFrameCB,
handle, 0);
After that videoFrameCB is called and I'm getting first available video data
from queue
and do setup for texture using clutter_texture_set_from_rgb_data
static gboolean videoFrameCB(gpointer data)
{
clutter_texture_set_from_rgb_data();
return FALSE;
}
(clutter-gstream is working in the same way...)
All works fine, BUT some times texture(actor) never redraw it self. I just
see only the first frame on the screen.
I can move window outside desktop then move it back and texture will be
redrawning with latest available video frame.
Maybe clutter_texture_set_from_rgb_data is called too intensive? As i known
setting texture data on visible actor
will force to redraw stage, maybe problem here?
#define CLUTTER_PRIORITY_REDRAW (G_PRIORITY_DEFAULT + 10)
Any ideas? Maybe I need to redraw stage directly after setting up texture?
Thanks,
Roman