📄 x264_gtk.c.svn-base
字号:
x264_gtk->quantizer = (gint)gtk_range_get_value (GTK_RANGE (gconfig->bitrate.w_quantizer)); x264_gtk->stat_write = 0; x264_gtk->stat_read = 0; break; case 2: x264_gtk->pass = X264_PASS_MULTIPASS_1ST; text = gtk_entry_get_text (GTK_ENTRY (gconfig->bitrate.w_target_bitrate)); x264_gtk->target_bitrate = (gint)g_ascii_strtoull (text, NULL, 10); x264_gtk->stat_write = 1; break; case 3: x264_gtk->pass = X264_PASS_MULTIPASS_1ST_FAST; text = gtk_entry_get_text (GTK_ENTRY (gconfig->bitrate.w_target_bitrate)); x264_gtk->target_bitrate = (gint)g_ascii_strtoull (text, NULL, 10); x264_gtk->stat_write = 1; break; case 4: default: x264_gtk->pass = X264_PASS_MULTIPASS_NTH; text = gtk_entry_get_text (GTK_ENTRY (gconfig->bitrate.w_target_bitrate)); x264_gtk->target_bitrate = (gint)g_ascii_strtoull (text, NULL, 10); x264_gtk->stat_read = 1; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->bitrate.update_statfile))) x264_gtk->stat_write = 1; break; } if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->bitrate.update_statfile))) x264_gtk->update_statfile = 1; else x264_gtk->update_statfile = 0; text = gtk_entry_get_text (GTK_ENTRY (gconfig->bitrate.statsfile_name)); x264_gtk->statsfile_length = strlen (text); memcpy (x264_gtk->statsfile_name, text, x264_gtk->statsfile_length + 1); /* rate control */ text = gtk_entry_get_text (GTK_ENTRY (gconfig->rate_control.bitrate.keyframe_boost)); x264_gtk->keyframe_boost = (gint)g_ascii_strtoull (text, NULL, 10); text = gtk_entry_get_text (GTK_ENTRY (gconfig->rate_control.bitrate.bframes_reduction)); x264_gtk->bframes_reduction = (gint)g_ascii_strtoull (text, NULL, 10); text = gtk_entry_get_text (GTK_ENTRY (gconfig->rate_control.bitrate.bitrate_variability)); x264_gtk->bitrate_variability = (gint)g_ascii_strtoull (text, NULL, 10); text = gtk_entry_get_text (GTK_ENTRY (gconfig->rate_control.quantization_limits.min_qp)); x264_gtk->min_qp = (gint)g_ascii_strtoull (text, NULL, 10); text = gtk_entry_get_text (GTK_ENTRY (gconfig->rate_control.quantization_limits.max_qp)); x264_gtk->max_qp = (gint)g_ascii_strtoull (text, NULL, 10); text = gtk_entry_get_text (GTK_ENTRY (gconfig->rate_control.quantization_limits.max_qp_step)); x264_gtk->max_qp_step = (gint)g_ascii_strtoull (text, NULL, 10); text = gtk_entry_get_text (GTK_ENTRY (gconfig->rate_control.scene_cuts.scene_cut_threshold)); x264_gtk->scene_cut_threshold = (gint)g_ascii_strtoull (text, NULL, 10); text = gtk_entry_get_text (GTK_ENTRY (gconfig->rate_control.scene_cuts.min_idr_frame_interval)); x264_gtk->min_idr_frame_interval = (gint)g_ascii_strtoull (text, NULL, 10); text = gtk_entry_get_text (GTK_ENTRY (gconfig->rate_control.scene_cuts.max_idr_frame_interval)); x264_gtk->max_idr_frame_interval = (gint)g_ascii_strtoull (text, NULL, 10); text = gtk_entry_get_text (GTK_ENTRY (gconfig->rate_control.vbv.vbv_max_bitrate)); x264_gtk->vbv_max_bitrate = (gint)g_ascii_strtoull (text, NULL, 10); text = gtk_entry_get_text (GTK_ENTRY (gconfig->rate_control.vbv.vbv_buffer_size)); x264_gtk->vbv_buffer_size = (gint)g_ascii_strtoull (text, NULL, 10); text = gtk_entry_get_text (GTK_ENTRY (gconfig->rate_control.vbv.vbv_buffer_init)); x264_gtk->vbv_buffer_init = (gint)g_ascii_strtoull (text, NULL, 10); /* mb */ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->mb.partitions.transform_8x8))) x264_gtk->transform_8x8 = 1; else x264_gtk->transform_8x8 = 0; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->mb.partitions.pframe_search_8))) x264_gtk->pframe_search_8 = 1; else x264_gtk->pframe_search_8 = 0; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->mb.partitions.bframe_search_8))) x264_gtk->bframe_search_8 = 1; else x264_gtk->bframe_search_8 = 0; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->mb.partitions.pframe_search_4))) x264_gtk->pframe_search_4 = 1; else x264_gtk->pframe_search_4 = 0; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->mb.partitions.inter_search_8))) x264_gtk->inter_search_8 = 1; else x264_gtk->inter_search_8 = 0; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->mb.partitions.inter_search_4))) x264_gtk->inter_search_4 = 1; else x264_gtk->inter_search_4 = 0; /* mb - bframes */ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->mb.bframes.bframe_pyramid))) x264_gtk->bframe_pyramid = 1; else x264_gtk->bframe_pyramid = 0; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->mb.bframes.bidir_me))) x264_gtk->bidir_me = 1; else x264_gtk->bidir_me = 0; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->mb.bframes.bframe_adaptive))) x264_gtk->bframe_adaptive = 1; else x264_gtk->bframe_adaptive = 0; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->mb.bframes.weighted_bipred))) x264_gtk->weighted_bipred = 1; else x264_gtk->weighted_bipred = 0; text = gtk_entry_get_text (GTK_ENTRY (gconfig->mb.bframes.bframe)); x264_gtk->bframe = (gint)g_ascii_strtoull (text, NULL, 10); x264_gtk->bframe_bias = (gint)gtk_range_get_value (GTK_RANGE (gconfig->mb.bframes.bframe_bias)); switch (gtk_combo_box_get_active (GTK_COMBO_BOX (gconfig->mb.bframes.direct_mode))) { case 0: x264_gtk->direct_mode = X264_NONE; case 1: x264_gtk->direct_mode = X264_SPATIAL; break; case 2: x264_gtk->direct_mode = X264_TEMPORAL; break; default: x264_gtk->direct_mode = X264_AUTO; break; } /* more */ switch (gtk_combo_box_get_active (GTK_COMBO_BOX (gconfig->more.motion_estimation.partition_decision))) { case 0: x264_gtk->partition_decision = X264_PD_1; break; case 1: x264_gtk->partition_decision = X264_PD_2; break; case 2: x264_gtk->partition_decision = X264_PD_3; break; case 3: x264_gtk->partition_decision = X264_PD_4; break; case 4: x264_gtk->partition_decision = X264_PD_5; break; case 5: x264_gtk->partition_decision = X264_PD_6; break; default: x264_gtk->partition_decision = X264_PD_6; x264_gtk->bframe_rdo = 1; break; } switch (gtk_combo_box_get_active (GTK_COMBO_BOX (gconfig->more.motion_estimation.method))) { case 0: x264_gtk->me_method = X264_ME_METHOD_DIAMOND; break; case 1: x264_gtk->me_method = X264_ME_METHOD_HEXAGONAL; break; case 2: x264_gtk->me_method = X264_ME_METHOD_UNEVEN_MULTIHEXA; break; default: x264_gtk->me_method = X264_ME_METHOD_EXHAUSTIVE; break; } text = gtk_entry_get_text (GTK_ENTRY (gconfig->more.motion_estimation.range)); x264_gtk->range = (gint)g_ascii_strtoull (text, NULL, 10); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->more.motion_estimation.chroma_me))) x264_gtk->chroma_me = 1; else x264_gtk->chroma_me = 0; text = gtk_entry_get_text (GTK_ENTRY (gconfig->more.motion_estimation.max_ref_frames)); x264_gtk->max_ref_frames = (gint)g_ascii_strtoull (text, NULL, 10); if (x264_gtk->max_ref_frames <= 0) x264_gtk->max_ref_frames = 1; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->more.motion_estimation.mixed_refs)) && (x264_gtk->max_ref_frames >= 2)) x264_gtk->mixed_refs = 1; else x264_gtk->mixed_refs = 0; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->more.motion_estimation.fast_pskip))) x264_gtk->fast_pskip = 1; else x264_gtk->fast_pskip = 0; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->more.motion_estimation.dct_decimate))) x264_gtk->dct_decimate = 1; else x264_gtk->dct_decimate = 0; text = gtk_entry_get_text (GTK_ENTRY (gconfig->more.misc.sample_ar_x)); x264_gtk->sample_ar_x = (gint)g_ascii_strtoull (text, NULL, 10); text = gtk_entry_get_text (GTK_ENTRY (gconfig->more.misc.sample_ar_y)); x264_gtk->sample_ar_y = (gint)g_ascii_strtoull (text, NULL, 10); x264_gtk->threads = (gint)gtk_spin_button_get_value (GTK_SPIN_BUTTON (gconfig->more.misc.threads)); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->more.misc.cabac))) x264_gtk->cabac = 1; else x264_gtk->cabac = 0; x264_gtk->trellis = gtk_combo_box_get_active (GTK_COMBO_BOX (gconfig->more.misc.trellis)); text = gtk_entry_get_text (GTK_ENTRY (gconfig->more.misc.noise_reduction)); x264_gtk->noise_reduction = (gint)g_ascii_strtoull (text, NULL, 10); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->more.misc.df.deblocking_filter))) x264_gtk->deblocking_filter = 1; else x264_gtk->deblocking_filter = 0; x264_gtk->strength = (gint)gtk_range_get_value (GTK_RANGE (gconfig->more.misc.df.strength)); x264_gtk->threshold = (gint)gtk_range_get_value (GTK_RANGE (gconfig->more.misc.df.threshold)); switch (gtk_combo_box_get_active (GTK_COMBO_BOX (gconfig->more.debug.log_level))) { case 0: x264_gtk->debug_method = X264_DEBUG_METHOD_NONE; break; case 1: x264_gtk->debug_method = X264_DEBUG_METHOD_ERROR; break; case 2: x264_gtk->debug_method = X264_DEBUG_METHOD_WARNING; break; case 3: x264_gtk->debug_method = X264_DEBUG_METHOD_INFO; break; default: x264_gtk->debug_method = X264_DEBUG_METHOD_DEBUG; break; } text = gtk_entry_get_text (GTK_ENTRY (gconfig->more.debug.fourcc)); memcpy (x264_gtk->fourcc, text, strlen (text) + 1); /* cqm */ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->cqm.radio_flat))) x264_gtk->cqm_preset = X264_CQM_PRESET_FLAT; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->cqm.radio_jvt))) x264_gtk->cqm_preset = X264_CQM_PRESET_JVT; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->cqm.radio_custom))) x264_gtk->cqm_preset = X264_CQM_PRESET_CUSTOM; text = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (gconfig->cqm.cqm_file)); if (text && (text[0] != '\0')) memcpy (x264_gtk->cqm_file, text, strlen (text) + 1); for (i = 0; i < 16; i++) { text = gtk_entry_get_text (GTK_ENTRY (gconfig->cqm.cqm_4iy[i])); x264_gtk->cqm_4iy[i] = (gint)g_ascii_strtoull (text, NULL, 10); text = gtk_entry_get_text (GTK_ENTRY (gconfig->cqm.cqm_4ic[i])); x264_gtk->cqm_4ic[i] = (gint)g_ascii_strtoull (text, NULL, 10); text = gtk_entry_get_text (GTK_ENTRY (gconfig->cqm.cqm_4py[i])); x264_gtk->cqm_4py[i] = (gint)g_ascii_strtoull (text, NULL, 10); text = gtk_entry_get_text (GTK_ENTRY (gconfig->cqm.cqm_4pc[i])); x264_gtk->cqm_4pc[i] = (gint)g_ascii_strtoull (text, NULL, 10); } for (i = 0; i < 64; i++) { text = gtk_entry_get_text (GTK_ENTRY (gconfig->cqm.cqm_8iy[i])); x264_gtk->cqm_8iy[i] = (gint)g_ascii_strtoull (text, NULL, 10); text = gtk_entry_get_text (GTK_ENTRY (gconfig->cqm.cqm_8py[i])); x264_gtk->cqm_8py[i] = (gint)g_ascii_strtoull (text, NULL, 10); }}gchar*x264_gtk_path(const char* more){#ifdef _WIN32 gchar szPath[MAX_PATH]; // "Documents and Settings\user" is CSIDL_PROFILE szPath[0] = 0; SHGetSpecialFolderPath(NULL, szPath, CSIDL_APPDATA, FALSE); if (more) return g_build_filename(szPath, "x264", more, NULL); else return g_build_filename(szPath, "x264", NULL);#else if (more) return g_build_filename (g_get_home_dir (), ".x264", more, NULL); else return g_build_filename (g_get_home_dir (), ".x264", NULL);#endif}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -