void
ghb_preview_init(signal_user_data_t *ud)
{
+ GtkWidget *widget;
+
ud->preview = g_malloc0(sizeof(preview_t));
ud->preview->view = GHB_WIDGET(ud->builder, "preview_image");
gtk_widget_realize(ud->preview->view);
ud->preview->pause = TRUE;
ud->preview->encode_frame = -1;
ud->preview->live_id = -1;
-
+ widget = GHB_WIDGET (ud->builder, "preview_button_image");
+ gtk_widget_get_size_request(widget, &ud->preview->button_width, &ud->preview->button_height);
+
#if defined(_ENABLE_GST)
GstBus *bus;
GstElement *xover;
+#if !defined(_WIN32)
ud->preview->xid = GDK_DRAWABLE_XID(ud->preview->view->window);
+#else
+ ud->preview->xid = GDK_WINDOW_HWND(ud->preview->view->window);
+#endif
ud->preview->play = gst_element_factory_make("playbin", "play");
//xover = gst_element_factory_make("xvimagesink", "xover");
//xover = gst_element_factory_make("ximagesink", "xover");
gst_bus_set_sync_handler(bus, create_window, ud->preview);
gst_object_unref(bus);
#else
- GtkWidget *widget = GHB_WIDGET(ud->builder, "live_preview_box");
+ widget = GHB_WIDGET(ud->builder, "live_preview_box");
gtk_widget_hide (widget);
widget = GHB_WIDGET(ud->builder, "live_preview_duration_box");
gtk_widget_hide (widget);
{
if (!gst_structure_has_name(msg->structure, "prepare-xwindow-id"))
return GST_BUS_PASS;
+#if !defined(_WIN32)
gst_x_overlay_set_xwindow_id(
GST_X_OVERLAY(GST_MESSAGE_SRC(msg)), preview->xid);
+#else
+ gst_directdraw_sink_set_window_id(
+ GST_X_OVERLAY(GST_MESSAGE_SRC(msg)), preview->xid);
+#endif
gst_message_unref(msg);
return GST_BUS_DROP;
} break;