OSDN Git Service

LinGui: When translating legacy presets, vquality 0 means RF 0, not 0%
[handbrake-jp/handbrake-jp-git.git] / gtk / src / preview.c
index 7968678..3cbc9ee 100644 (file)
@@ -142,6 +142,8 @@ ghb_par_scale(signal_user_data_t *ud, gint *width, gint *height, gint par_n, gin
 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);
@@ -151,12 +153,18 @@ ghb_preview_init(signal_user_data_t *ud)
        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");
@@ -180,7 +188,7 @@ ghb_preview_init(signal_user_data_t *ud)
        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);
@@ -209,8 +217,13 @@ create_window(GstBus *bus, GstMessage *msg, gpointer data)
        {
                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;