The callback is called for both windows. So make sure that
gst_video_overlay_set_render_rectangle() is called for the correct one.
Otherwise, the left video will be randomly moved behind the right video.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
{
AppData *app = data;
GtkAllocation allocation;
{
AppData *app = data;
GtkAllocation allocation;
+ int i;
+
+ i = (widget == app->video_widget[0]) ? 0 : 1;
get_allocation (widget, &allocation);
get_allocation (widget, &allocation);
- gst_println ("draw_cb x %d, y %d, w %d, h %d\n",
+ gst_println ("draw_cb[%d] x %d, y %d, w %d, h %d\n", i,
allocation.x, allocation.y, allocation.width, allocation.height);
allocation.x, allocation.y, allocation.width, allocation.height);
- if (app->overlay[0]) {
- gst_video_overlay_set_render_rectangle (app->overlay[0], allocation.x,
+ if (app->overlay[i]) {
+ gst_video_overlay_set_render_rectangle (app->overlay[i], allocation.x,
allocation.y, allocation.width, allocation.height);
}
}
allocation.y, allocation.width, allocation.height);
}
}