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

📄 x264_gtk_cqm.c

📁 Linux环境下做的x264的全部源码
💻 C
📖 第 1 页 / 共 2 页
字号:
  misc = gtk_entry_new_with_max_length (3);  gtk_widget_size_request (misc, &size);  table = gtk_table_new (8, 8, FALSE);  gtk_table_set_row_spacings (GTK_TABLE (table), 6);  gtk_table_set_col_spacings (GTK_TABLE (table), 6);  gtk_container_set_border_width (GTK_CONTAINER (table), 6);  for (i = 0; i < 64; i++) {    gconfig->cqm.cqm_8iy[i] = gtk_entry_new_with_max_length (3);    gtk_widget_set_size_request (gconfig->cqm.cqm_8iy[i], 25, size.height);    gtk_table_attach_defaults (GTK_TABLE (table), gconfig->cqm.cqm_8iy[i],                               i >> 3, (i >> 3) + 1, i & 7, (i & 7) + 1);    gtk_widget_show (gconfig->cqm.cqm_8iy[i]);  }  return table;}static GtkWidget *_cqm_8x8_py_page (X264_Gui_Config *gconfig){  GtkWidget     *table;  GtkWidget     *misc;  GtkRequisition size;  gint           i;  misc = gtk_entry_new_with_max_length (3);  gtk_widget_size_request (misc, &size);  table = gtk_table_new (8, 8, FALSE);  gtk_table_set_row_spacings (GTK_TABLE (table), 6);  gtk_table_set_col_spacings (GTK_TABLE (table), 6);  gtk_container_set_border_width (GTK_CONTAINER (table), 6);  for (i = 0; i < 64; i++) {    gconfig->cqm.cqm_8py[i] = gtk_entry_new_with_max_length (3);    gtk_widget_set_size_request (gconfig->cqm.cqm_8py[i], 25, size.height);    gtk_table_attach_defaults (GTK_TABLE (table), gconfig->cqm.cqm_8py[i],                               i >> 3, (i >> 3) + 1, i & 7, (i & 7) + 1);    gtk_widget_show (gconfig->cqm.cqm_8py[i]);  }  return table;}/* Callbacks */static void_cqm_flat_matrix_cb (GtkToggleButton *togglebutton,                     gpointer         user_data){  X264_Gui_Config *gconfig;  gconfig = (X264_Gui_Config *)user_data;  if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->cqm.radio_flat))) {    gint i;    gtk_widget_set_sensitive (gconfig->cqm.cqm_file, FALSE);    for (i = 0; i < 16; i++) {      gtk_widget_set_sensitive (gconfig->cqm.cqm_4iy[i], FALSE);      gtk_widget_set_sensitive (gconfig->cqm.cqm_4ic[i], FALSE);      gtk_widget_set_sensitive (gconfig->cqm.cqm_4py[i], FALSE);      gtk_widget_set_sensitive (gconfig->cqm.cqm_4pc[i], FALSE);    }    for (i = 0; i < 64; i++) {      gtk_widget_set_sensitive (gconfig->cqm.cqm_8iy[i], FALSE);      gtk_widget_set_sensitive (gconfig->cqm.cqm_8py[i], FALSE);    }  }}static void_cqm_jvt_matrix_cb (GtkToggleButton *togglebutton,                    gpointer         user_data){  X264_Gui_Config *gconfig;  gconfig = (X264_Gui_Config *)user_data;  if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->cqm.radio_jvt))) {    gint i;    gtk_widget_set_sensitive (gconfig->cqm.cqm_file, FALSE);    for (i = 0; i < 16; i++) {      gtk_widget_set_sensitive (gconfig->cqm.cqm_4iy[i], FALSE);      gtk_widget_set_sensitive (gconfig->cqm.cqm_4ic[i], FALSE);      gtk_widget_set_sensitive (gconfig->cqm.cqm_4py[i], FALSE);      gtk_widget_set_sensitive (gconfig->cqm.cqm_4pc[i], FALSE);    }    for (i = 0; i < 64; i++) {      gtk_widget_set_sensitive (gconfig->cqm.cqm_8iy[i], FALSE);      gtk_widget_set_sensitive (gconfig->cqm.cqm_8py[i], FALSE);    }  }}static void_cqm_custom_matrix_cb (GtkToggleButton *togglebutton,                       gpointer         user_data){  X264_Gui_Config *gconfig;  gconfig = (X264_Gui_Config *)user_data;  if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gconfig->cqm.radio_custom))) {    gint i;    gtk_widget_set_sensitive (gconfig->cqm.cqm_file, TRUE);    for (i = 0; i < 16; i++) {      gtk_widget_set_sensitive (gconfig->cqm.cqm_4iy[i], TRUE);      gtk_widget_set_sensitive (gconfig->cqm.cqm_4ic[i], TRUE);      gtk_widget_set_sensitive (gconfig->cqm.cqm_4py[i], TRUE);      gtk_widget_set_sensitive (gconfig->cqm.cqm_4pc[i], TRUE);    }    for (i = 0; i < 64; i++) {      gtk_widget_set_sensitive (gconfig->cqm.cqm_8iy[i], TRUE);      gtk_widget_set_sensitive (gconfig->cqm.cqm_8py[i], TRUE);    }  }}static gboolean_set_coefs (int size, GtkWidget **entries, GIOChannel *file){  gchar *line;  gsize  length;  int    i = 0;  int    offset = 0;  while (i < size) {    gchar **coefs;    int     j;    if (g_io_channel_read_line (file, &line, &length, NULL, NULL) != G_IO_STATUS_NORMAL) {      g_print ("Not a JM custom AVC matrix compliant file\n");      return FALSE;    }    if ((line[0] == '\0') || (line[0] == '\n') || (line[0] == '\r') || (line[0] == '#')) {      g_free (line);      continue;    }    coefs = g_strsplit (line, ",", size + 1);    for (j = 0; j < size; j++) {      gtk_entry_set_text (GTK_ENTRY (entries[offset]), coefs[j]);      offset++;    }    g_strfreev (coefs);    g_free (line);    i++;  }  return TRUE;}static void_cqm_matrix_file_cb (GtkFileChooser  *filechooser,                     gint             response,                     gpointer         user_data){  X264_Gui_Config *gconfig;  GIOChannel      *file;  GError          *error = NULL;  gchar           *filename;  gchar           *line;  gsize            length;  if (!user_data)    return;  gconfig = (X264_Gui_Config *)user_data;  filename = gtk_file_chooser_get_filename (filechooser);  file = g_io_channel_new_file (filename, "r", &error);  if (error) {    g_print ("Can not open file %s\n", filename);    g_free (filename);    return;  }  while ((g_io_channel_read_line (file, &line, &length, NULL, NULL) == G_IO_STATUS_NORMAL)) {    if (!line) continue;    if ((line[0] == '\0') || (line[0] == '\n') || (line[0] == '\r') || (line[0] == '#')) {      g_free (line);      continue;    }    if (g_str_has_prefix (line, "INTRA4X4_LUMA")) {      g_free (line);      if (!_set_coefs (4, gconfig->cqm.cqm_4iy, file)) {        g_free (filename);        return;      }      continue;    }    if (g_str_has_prefix (line, "INTRA4X4_CHROMAU")) {      g_free (line);      if (!_set_coefs (4, gconfig->cqm.cqm_4ic, file)) {        g_free (filename);        return;      }      continue;    }    if (g_str_has_prefix (line, "INTER4X4_LUMA")) {      g_free (line);      if (!_set_coefs (4, gconfig->cqm.cqm_4py, file)) {        g_free (filename);        return;      }      continue;    }    if (g_str_has_prefix (line, "INTER4X4_CHROMAU")) {      g_free (line);      if (!_set_coefs (4, gconfig->cqm.cqm_4pc, file)) {        g_free (filename);        return;      }      continue;    }    if (g_str_has_prefix (line, "INTRA8X8_LUMA")) {      g_free (line);      if (!_set_coefs (8, gconfig->cqm.cqm_8iy, file)) {        g_free (filename);        return;      }      continue;    }    if (g_str_has_prefix (line, "INTER8X8_LUMA")) {      g_free (line);      if (!_set_coefs (8, gconfig->cqm.cqm_8py, file)) {        g_free (filename);        return;      }      continue;    }  }  g_free (filename);}

⌨️ 快捷键说明

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