⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 x264_gtk_mb.c

📁 linux下编译已经通过
💻 C
字号:
#include <gtk/gtk.h>#include "x264_gtk_i18n.h"#include "x264_gtk_private.h"/* Callbacks */static void _mb_bframe_pyramid (GtkToggleButton *button,                                gpointer         user_data);static void _mb_inter_search_8 (GtkToggleButton *button,                                gpointer         user_data);static void _mb_transform_8x8  (GtkToggleButton *button,                                gpointer         user_data);GtkWidget *_mb_page (X264_Gui_Config *config){  GtkWidget   *vbox;  GtkWidget   *frame;  GtkWidget   *vbox2;  GtkWidget   *table;  GtkWidget   *eb;  GtkWidget   *label;  GtkTooltips *tooltips;  tooltips = gtk_tooltips_new ();  vbox = gtk_vbox_new (FALSE, 0);  gtk_container_set_border_width (GTK_CONTAINER (vbox), 6);  /* Partitions */  frame = gtk_frame_new (_("Partitions"));  gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, TRUE, 6);  gtk_widget_show (frame);  vbox2 = gtk_vbox_new (FALSE, 6);  gtk_container_set_border_width (GTK_CONTAINER (vbox2), 6);  gtk_container_add (GTK_CONTAINER (frame), vbox2);  gtk_widget_show (vbox2);  config->mb.partitions.transform_8x8 = gtk_check_button_new_with_label (_("8x8 Transform"));  gtk_tooltips_set_tip (tooltips, config->mb.partitions.transform_8x8,                        _("8x8 Transform - description"),                        "");  g_signal_connect (G_OBJECT (config->mb.partitions.transform_8x8),                    "toggled",                    G_CALLBACK (_mb_transform_8x8), config);  gtk_box_pack_start (GTK_BOX (vbox2), config->mb.partitions.transform_8x8, FALSE, TRUE, 0);  gtk_widget_show (config->mb.partitions.transform_8x8);  config->mb.partitions.pframe_search_8 = gtk_check_button_new_with_label (_("8x16, 16x8 and 8x8 P-frame search"));  gtk_tooltips_set_tip (tooltips, config->mb.partitions.pframe_search_8,                        _("8x16, 16x8 and 8x8 P-frame search - description"),                        "");  gtk_box_pack_start (GTK_BOX (vbox2), config->mb.partitions.pframe_search_8, FALSE, TRUE, 0);  gtk_widget_show (config->mb.partitions.pframe_search_8);  config->mb.partitions.bframe_search_8 = gtk_check_button_new_with_label (_("8x16, 16x8 and 8x8 B-frame search"));  gtk_tooltips_set_tip (tooltips, config->mb.partitions.bframe_search_8,                        _("8x16, 16x8 and 8x8 B-frame search - description"),                        "");  gtk_box_pack_start (GTK_BOX (vbox2), config->mb.partitions.bframe_search_8, FALSE, TRUE, 0);  gtk_widget_show (config->mb.partitions.bframe_search_8);  config->mb.partitions.pframe_search_4 = gtk_check_button_new_with_label (_("4x8, 8x4 and 4x4 P-frame search"));  gtk_tooltips_set_tip (tooltips, config->mb.partitions.pframe_search_4,                        _("4x8, 8x4 and 4x4 P-frame search - description"),                        "");  gtk_box_pack_start (GTK_BOX (vbox2), config->mb.partitions.pframe_search_4, FALSE, TRUE, 0);  gtk_widget_show (config->mb.partitions.pframe_search_4);  config->mb.partitions.inter_search_8 = gtk_check_button_new_with_label (_("8x8 Intra search"));  gtk_tooltips_set_tip (tooltips, config->mb.partitions.inter_search_8,                        _("8x8 Intra search - description"),                        "");  g_signal_connect (G_OBJECT (config->mb.partitions.inter_search_8),                    "toggled",                    G_CALLBACK (_mb_inter_search_8), config);  gtk_box_pack_start (GTK_BOX (vbox2), config->mb.partitions.inter_search_8, FALSE, TRUE, 0);  gtk_widget_show (config->mb.partitions.inter_search_8);  config->mb.partitions.inter_search_4 = gtk_check_button_new_with_label (_("4x4 Intra search"));  gtk_tooltips_set_tip (tooltips, config->mb.partitions.inter_search_4,                        _("4x4 Intra search - description"),                        "");  gtk_box_pack_start (GTK_BOX (vbox2), config->mb.partitions.inter_search_4, FALSE, TRUE, 0);  gtk_widget_show (config->mb.partitions.inter_search_4);  /* B-Frames */  frame = gtk_frame_new (_("B-Frames"));  gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, TRUE, 6);  gtk_widget_show (frame);  table = gtk_table_new (5, 2, TRUE);  gtk_table_set_row_spacings (GTK_TABLE (table), 6);  gtk_container_set_border_width (GTK_CONTAINER (table), 6);  gtk_container_add (GTK_CONTAINER (frame), table);  gtk_widget_show (table);  eb = gtk_event_box_new ();  gtk_event_box_set_visible_window (GTK_EVENT_BOX (eb), FALSE);  gtk_tooltips_set_tip (tooltips, eb,                        _("Max consecutive - description"),                        "");  gtk_table_attach_defaults (GTK_TABLE (table), eb,                             0, 1, 0, 1);  gtk_widget_show (eb);  label = gtk_label_new (_("Max consecutive"));  gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);  gtk_container_add (GTK_CONTAINER (eb), label);  gtk_widget_show (label);  config->mb.bframes.bframe = gtk_entry_new_with_max_length (3);  gtk_table_attach_defaults (GTK_TABLE (table), config->mb.bframes.bframe,                             1, 2, 0, 1);  gtk_widget_show (config->mb.bframes.bframe);  eb = gtk_event_box_new ();  gtk_event_box_set_visible_window (GTK_EVENT_BOX (eb), FALSE);  gtk_tooltips_set_tip (tooltips, eb,                        _("Bias - description"),                        "");  gtk_table_attach_defaults (GTK_TABLE (table), eb,                             0, 1, 1, 2);  gtk_widget_show (eb);  label = gtk_label_new (_("Bias"));  gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);  gtk_container_add (GTK_CONTAINER (eb), label);  gtk_widget_show (label);  config->mb.bframes.bframe_bias = gtk_hscale_new_with_range (-100.0, 100.0, 1.0);  gtk_scale_set_digits (GTK_SCALE (config->mb.bframes.bframe_bias), 0);  gtk_scale_set_value_pos (GTK_SCALE (config->mb.bframes.bframe_bias), GTK_POS_RIGHT);  gtk_table_attach_defaults (GTK_TABLE (table), config->mb.bframes.bframe_bias,                             1, 2, 1, 2);  gtk_widget_show (config->mb.bframes.bframe_bias);  config->mb.bframes.bframe_pyramid = gtk_check_button_new_with_label (_("Use as references"));  gtk_tooltips_set_tip (tooltips, config->mb.bframes.bframe_pyramid,                        _("Use as references - description"),                        "");  g_signal_connect (G_OBJECT (config->mb.bframes.bframe_pyramid),                    "toggled",                    G_CALLBACK (_mb_bframe_pyramid), config);  gtk_table_attach_defaults (GTK_TABLE (table), config->mb.bframes.bframe_pyramid,                             0, 1, 2, 3);  gtk_widget_show (config->mb.bframes.bframe_pyramid);  config->mb.bframes.bidir_me = gtk_check_button_new_with_label (_("Bidirectional ME"));  gtk_tooltips_set_tip (tooltips, config->mb.bframes.bidir_me,                        _("Bidirectional ME - description"),                        "");  gtk_table_attach_defaults (GTK_TABLE (table), config->mb.bframes.bidir_me,                             1, 2, 2, 3);  gtk_widget_show (config->mb.bframes.bidir_me);  config->mb.bframes.bframe_adaptive = gtk_check_button_new_with_label (_("Adaptive"));  gtk_tooltips_set_tip (tooltips, config->mb.bframes.bframe_adaptive,                        _("Adaptive - description"),                        "");  gtk_table_attach_defaults (GTK_TABLE (table), config->mb.bframes.bframe_adaptive,                             0, 1, 3, 4);  gtk_widget_show (config->mb.bframes.bframe_adaptive);  config->mb.bframes.weighted_bipred = gtk_check_button_new_with_label (_("Weighted biprediction"));  gtk_tooltips_set_tip (tooltips, config->mb.bframes.weighted_bipred,                        _("Weighted biprediction - description"),                        "");  gtk_table_attach_defaults (GTK_TABLE (table), config->mb.bframes.weighted_bipred,                             1, 2, 3, 4);  gtk_widget_show (config->mb.bframes.weighted_bipred);  eb = gtk_event_box_new ();  gtk_event_box_set_visible_window (GTK_EVENT_BOX (eb), FALSE);  gtk_tooltips_set_tip (tooltips, eb,                        _("Direct mode - description"),                        "");  gtk_table_attach_defaults (GTK_TABLE (table), eb,                             0, 1, 4, 5);  gtk_widget_show (eb);  label = gtk_label_new (_("Direct mode"));  gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);  gtk_container_add (GTK_CONTAINER (eb), label);  gtk_widget_show (label);  config->mb.bframes.direct_mode = gtk_combo_box_new_text ();  gtk_combo_box_append_text (GTK_COMBO_BOX (config->mb.bframes.direct_mode),                             _("None"));  gtk_combo_box_append_text (GTK_COMBO_BOX (config->mb.bframes.direct_mode),                             _("Spatial"));  gtk_combo_box_append_text (GTK_COMBO_BOX (config->mb.bframes.direct_mode),                             _("Temporal"));  gtk_combo_box_append_text (GTK_COMBO_BOX (config->mb.bframes.direct_mode),                             _("Auto"));  gtk_table_attach_defaults (GTK_TABLE (table),                             config->mb.bframes.direct_mode,                             1, 2, 4, 5);  gtk_widget_show (config->mb.bframes.direct_mode);  return vbox;}static void_mb_bframe_pyramid (GtkToggleButton *button,                    gpointer         user_data){  X264_Gui_Config *config;  config = (X264_Gui_Config *)user_data;  if (gtk_toggle_button_get_active (button)) {    const gchar *text;    gint         val;    text = gtk_entry_get_text (GTK_ENTRY (config->mb.bframes.bframe));    val = (gint)g_ascii_strtoull (text, NULL, 10);    if (val < 2)      gtk_entry_set_text (GTK_ENTRY (config->mb.bframes.bframe), "2");  }}static void_mb_inter_search_8 (GtkToggleButton *button,                    gpointer         user_data){  X264_Gui_Config *config;  config = (X264_Gui_Config *)user_data;  if (gtk_toggle_button_get_active (button)) {    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (config->mb.partitions.transform_8x8), TRUE);  }}static void_mb_transform_8x8 (GtkToggleButton *button,                   gpointer         user_data){  X264_Gui_Config *config;  config = (X264_Gui_Config *)user_data;  if (!gtk_toggle_button_get_active (button)) {    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (config->mb.partitions.inter_search_8), FALSE);  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -