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

📄 x264_gtk.c.svn-base

📁 此段代码是h.264在linux下的编码源程序,在linux下编译可以得到可执行程序
💻 SVN-BASE
📖 第 1 页 / 共 4 页
字号:
    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 + -