1 #if defined __FreeBSD__ || defined __OpenBSD__ || defined __NetBSD__ || defined __DragonFly__
10 #include "x264_gtk_i18n.h"
11 #include "x264_gtk_private.h"
12 #include "x264_gtk_enum.h"
16 static void _bitrate_pass (GtkComboBox *combo,
18 static void _bitrate_statfile (GtkToggleButton *button,
22 _bitrate_page (X264_Gui_Config *gconfig)
30 GtkTooltips *tooltips;
32 tooltips = gtk_tooltips_new ();
34 vbox = gtk_vbox_new (FALSE, 0);
35 gtk_container_set_border_width (GTK_CONTAINER (vbox), 6);
37 image = gtk_image_new_from_file (X264_DATA_DIR "/x264/x264.png");
38 gtk_box_pack_start (GTK_BOX (vbox), image, FALSE, TRUE, 6);
39 gtk_widget_show (image);
41 frame = gtk_frame_new (_("Main settings"));
42 gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, TRUE, 6);
43 gtk_widget_show (frame);
45 table = gtk_table_new (2, 2, TRUE);
46 gtk_table_set_row_spacings (GTK_TABLE (table), 6);
47 gtk_table_set_col_spacings (GTK_TABLE (table), 6);
48 gtk_container_set_border_width (GTK_CONTAINER (table), 6);
49 gtk_container_add (GTK_CONTAINER (frame), table);
50 gtk_widget_show (table);
52 eb = gtk_event_box_new ();
53 gtk_event_box_set_visible_window (GTK_EVENT_BOX (eb), FALSE);
54 gtk_tooltips_set_tip (tooltips, eb,
55 _("Encoding type - description"),
57 gtk_table_attach_defaults (GTK_TABLE (table), eb,
61 label = gtk_label_new (_("Encoding type"));
62 gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
63 gtk_container_add (GTK_CONTAINER (eb), label);
64 gtk_widget_show (label);
66 gconfig->bitrate.pass = gtk_combo_box_new_text ();
67 gtk_combo_box_append_text (GTK_COMBO_BOX (gconfig->bitrate.pass),
68 _("Single Pass - Bitrate"));
69 gtk_combo_box_append_text (GTK_COMBO_BOX (gconfig->bitrate.pass),
70 _("Single Pass - Quantizer"));
71 gtk_combo_box_append_text (GTK_COMBO_BOX (gconfig->bitrate.pass),
72 _("Multipass - First Pass"));
73 gtk_combo_box_append_text (GTK_COMBO_BOX (gconfig->bitrate.pass),
74 _("Multipass - First Pass (fast)"));
75 gtk_combo_box_append_text (GTK_COMBO_BOX (gconfig->bitrate.pass),
76 _("Multipass - Nth Pass"));
77 gtk_table_attach_defaults (GTK_TABLE (table), gconfig->bitrate.pass,
79 g_signal_connect (G_OBJECT (gconfig->bitrate.pass),
81 G_CALLBACK (_bitrate_pass),
83 gtk_widget_show (gconfig->bitrate.pass);
85 eb = gtk_event_box_new ();
86 gtk_event_box_set_visible_window (GTK_EVENT_BOX (eb), FALSE);
87 gtk_tooltips_set_tip (tooltips, eb,
88 _("Quantizer - description"),
90 gtk_table_attach_defaults (GTK_TABLE (table), eb,
94 gconfig->bitrate.label = gtk_label_new (_("Quantizer"));
95 gtk_misc_set_alignment (GTK_MISC (gconfig->bitrate.label), 0.0, 0.5);
96 gtk_container_add (GTK_CONTAINER (eb), gconfig->bitrate.label);
97 gtk_widget_show (gconfig->bitrate.label);
99 gconfig->bitrate.w_quantizer = gtk_hscale_new_with_range (0.0, 51.0, 1.0);
100 gtk_scale_set_digits (GTK_SCALE (gconfig->bitrate.w_quantizer), 0);
101 gtk_scale_set_value_pos (GTK_SCALE (gconfig->bitrate.w_quantizer), GTK_POS_RIGHT);
102 gtk_table_attach_defaults (GTK_TABLE (table), gconfig->bitrate.w_quantizer,
105 gconfig->bitrate.w_average_bitrate = gtk_entry_new_with_max_length (4095);
106 gtk_table_attach_defaults (GTK_TABLE (table), gconfig->bitrate.w_average_bitrate,
109 gconfig->bitrate.w_target_bitrate = gtk_entry_new_with_max_length (4095);
110 gtk_table_attach_defaults (GTK_TABLE (table), gconfig->bitrate.w_target_bitrate,
113 frame = gtk_frame_new (_("Statistic file"));
114 gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, TRUE, 6);
115 gtk_widget_show (frame);
117 table = gtk_table_new (2, 2, TRUE);
118 gtk_table_set_row_spacings (GTK_TABLE (table), 6);
119 gtk_table_set_col_spacings (GTK_TABLE (table), 6);
120 gtk_container_set_border_width (GTK_CONTAINER (table), 6);
121 gtk_container_add (GTK_CONTAINER (frame), table);
122 gtk_widget_show (table);
124 gconfig->bitrate.update_statfile = gtk_check_button_new_with_label (_("Update statistic file"));
125 gtk_tooltips_set_tip (tooltips, gconfig->bitrate.update_statfile,
126 _("Update statistic file - description"),
128 g_signal_connect (G_OBJECT (gconfig->bitrate.update_statfile),
130 G_CALLBACK (_bitrate_statfile), gconfig);
131 gtk_table_attach_defaults (GTK_TABLE (table), gconfig->bitrate.update_statfile,
133 gtk_widget_show (gconfig->bitrate.update_statfile);
135 label = gtk_label_new (_("Statistic file name"));
136 gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
137 gtk_table_attach_defaults (GTK_TABLE (table), label,
139 gtk_widget_show (label);
141 gconfig->bitrate.statsfile_name = gtk_entry_new_with_max_length (4095);
142 gtk_table_attach_defaults (GTK_TABLE (table), gconfig->bitrate.statsfile_name,
144 gtk_widget_show (gconfig->bitrate.statsfile_name);
151 _bitrate_pass (GtkComboBox *combo,
154 X264_Gui_Config *gconfig;
156 gconfig = (X264_Gui_Config *)user_data;
158 switch (gtk_combo_box_get_active (combo))
160 case X264_PASS_SINGLE_BITRATE:
161 gtk_label_set_text (GTK_LABEL (gconfig->bitrate.label), _("Average bitrate"));
162 if (!GTK_WIDGET_VISIBLE (gconfig->bitrate.w_average_bitrate)) {
163 gtk_widget_hide (gconfig->bitrate.w_quantizer);
164 gtk_widget_hide (gconfig->bitrate.w_target_bitrate);
165 gtk_widget_show (gconfig->bitrate.w_average_bitrate);
167 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gconfig->bitrate.update_statfile), FALSE);
168 gtk_widget_set_sensitive (gconfig->bitrate.update_statfile, FALSE);
170 case X264_PASS_SINGLE_QUANTIZER:
171 gtk_label_set_text (GTK_LABEL (gconfig->bitrate.label), _("Quantizer"));
172 if (!GTK_WIDGET_VISIBLE (gconfig->bitrate.w_quantizer)) {
173 gtk_widget_hide (gconfig->bitrate.w_average_bitrate);
174 gtk_widget_hide (gconfig->bitrate.w_target_bitrate);
175 gtk_widget_show (gconfig->bitrate.w_quantizer);
177 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gconfig->bitrate.update_statfile), FALSE);
178 gtk_widget_set_sensitive (gconfig->bitrate.update_statfile, FALSE);
180 case X264_PASS_MULTIPASS_1ST:
181 case X264_PASS_MULTIPASS_1ST_FAST:
182 gtk_label_set_text (GTK_LABEL (gconfig->bitrate.label), _("Target bitrate"));
183 if (!GTK_WIDGET_VISIBLE (gconfig->bitrate.w_target_bitrate)) {
184 gtk_widget_hide (gconfig->bitrate.w_quantizer);
185 gtk_widget_hide (gconfig->bitrate.w_average_bitrate);
186 gtk_widget_show (gconfig->bitrate.w_target_bitrate);
188 gtk_widget_set_sensitive (gconfig->bitrate.update_statfile, TRUE);
189 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gconfig->bitrate.update_statfile), TRUE);
191 case X264_PASS_MULTIPASS_NTH:
192 gtk_label_set_text (GTK_LABEL (gconfig->bitrate.label), _("Target bitrate"));
193 if (!GTK_WIDGET_VISIBLE (gconfig->bitrate.w_target_bitrate)) {
194 gtk_widget_hide (gconfig->bitrate.w_quantizer);
195 gtk_widget_hide (gconfig->bitrate.w_average_bitrate);
196 gtk_widget_show (gconfig->bitrate.w_target_bitrate);
198 gtk_widget_set_sensitive (gconfig->bitrate.update_statfile, TRUE);
199 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gconfig->bitrate.update_statfile), TRUE);
205 _bitrate_statfile (GtkToggleButton *button,
208 X264_Gui_Config *gconfig;
210 gconfig = (X264_Gui_Config *)user_data;
212 if (gtk_toggle_button_get_active (button))
213 gtk_widget_set_sensitive (gconfig->bitrate.statsfile_name, TRUE);
215 gtk_widget_set_sensitive (gconfig->bitrate.statsfile_name, FALSE);