int main (int argc, char *argv[]) { GtkWidget *window; X264_Gtk *x264_gtk; x264_param_t *param; x264_param_t param_default; char *res; char *res_default; BIND_X264_TEXTDOMAIN(); gtk_init (&argc, &argv); window = x264_gtk_window_create (NULL); x264_gtk_shutdown (window); x264_gtk = x264_gtk_load (); param = x264_gtk_param_get (x264_gtk); /* do what you want with these data */ /* for example, displaying them and compare with default*/ res = x264_param2string (param, 0); printf ("%s\n", res); x264_param_default (¶m_default); res_default = x264_param2string (¶m_default, 0); printf ("\n%s\n", res_default); if (strcmp (res, res_default) == 0) printf (_("\nSame result !\n")); else printf (_("\nDifferent from default values\n")); x264_free (res); x264_free (res_default); x264_gtk_free (x264_gtk); g_free (param); return 1; }
GtkWidget * x264_gtk_window_create (GtkWidget *parent) { GtkWidget *win_x264_gtk; GtkWidget *notebook; GtkWidget *page; GtkWidget *button; GtkWidget *label; X264_Gui_Config *gconfig; X264_Gtk *x264_gtk; gint result; GtkDialogFlags flags = 0; gconfig = (X264_Gui_Config *)g_malloc (sizeof (X264_Gui_Config)); if (!gconfig) return NULL; x264_gtk = x264_gtk_load (); if (parent) flags = GTK_DIALOG_MODAL |GTK_DIALOG_DESTROY_WITH_PARENT; win_x264_gtk = gtk_dialog_new_with_buttons (_("X264 Configuration"), GTK_WINDOW (parent), flags, NULL); button = gtk_button_new_with_label (_("Default")); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (win_x264_gtk)->action_area), button, FALSE, TRUE, 6); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (_default_load), gconfig); gtk_widget_show (button); gtk_dialog_add_buttons (GTK_DIALOG (win_x264_gtk), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); g_object_set_data (G_OBJECT (win_x264_gtk), "x264-gui-config", gconfig); g_object_set_data (G_OBJECT (win_x264_gtk), "x264-config", x264_gtk); gtk_window_set_resizable (GTK_WINDOW (win_x264_gtk), FALSE); notebook = gtk_notebook_new (); gtk_container_add (GTK_CONTAINER (GTK_DIALOG (win_x264_gtk)->vbox), notebook); gtk_widget_show (notebook); label = gtk_label_new (_("Bitrate")); gtk_widget_show (label); page = _bitrate_page (gconfig); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label); gtk_widget_show (page); label = gtk_label_new (_("Rate Control")); gtk_widget_show (label); page = _rate_control_page (gconfig); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label); gtk_widget_show (page); label = gtk_label_new (_("MB & Frames")); gtk_widget_show (label); page = _mb_page (gconfig); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label); gtk_widget_show (page); label = gtk_label_new (_("More...")); gtk_widget_show (label); page = _more_page (gconfig); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label); gtk_widget_show (page); label = gtk_label_new (_("Quantization matrices")); gtk_widget_show (label); page = _cqm_page (gconfig); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label); gtk_widget_show (page); _current_set (gconfig, x264_gtk); result = gtk_dialog_run (GTK_DIALOG (win_x264_gtk)); _dialog_run (GTK_DIALOG (win_x264_gtk), result, gconfig, x264_gtk); return win_x264_gtk; }