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

📄 video_dialog.cpp

📁 完整的RTP RTSP代码库
💻 CPP
📖 第 1 页 / 共 4 页
字号:
      profile->SetFloatValue(CFG_VIDEO_CROP_ASPECT_RATIO,			     aspectValues[gtk_option_menu_get_history(GTK_OPTION_MENU(temp))]);      temp = lookup_widget(dialog, "VideoFilterMenu");      profile->SetStringValue(CFG_VIDEO_FILTER,			      profilefilterNames[gtk_option_menu_get_history(GTK_OPTION_MENU(temp))]);      profile->Update();      profile->WriteToFile();    }  } else {    if (profile->GetName() == NULL) {      delete profile;    }  }  OnVideoProfileFinished(pass_profile);  gtk_widget_destroy(GTK_WIDGET(dialog));}void CreateVideoProfileDialog(CVideoProfile *profile){  GtkWidget *dialog_vbox4;  GtkWidget *VideoProfileTable;  GtkWidget *VideoProfileEncoder;  GtkWidget *VideoProfileSize;  GtkWidget *VideoProfileAspectRatio;  GtkWidget *label87;  GtkWidget *label88;  GtkWidget *label89;  GtkWidget *label93;  GtkWidget *VideoProfileName;  GtkWidget *label92;  GtkWidget *VideoEncoderSettingsButton;  GtkWidget *alignment11;  GtkWidget *hbox59;  GtkWidget *image11;  GtkWidget *label95;  GtkWidget *label91;  GtkObject *VideoProfileBitRate_adj;  GtkWidget *VideoProfileBitRate;  GtkWidget *label90;  GtkObject *VideoProfileFrameRate_adj;  GtkWidget *VideoProfileFrameRate;  GtkWidget *label166;  GtkWidget *VideoFilterMenu;  GtkWidget *dialog_action_area3;  GtkWidget *cancelbutton3;  GtkWidget *okbutton3;  GtkTooltips *tooltips;  bool new_profile = profile == NULL;  if (new_profile) {    profile = new CVideoProfile(NULL, NULL);    profile->LoadConfigVariables();    profile->Initialize(false);  }  tooltips = gtk_tooltips_new();  VideoProfileDialog = gtk_dialog_new();  gtk_window_set_title(GTK_WINDOW(VideoProfileDialog), _("Video Profile"));  gtk_window_set_modal(GTK_WINDOW(VideoProfileDialog), TRUE);  gtk_window_set_resizable(GTK_WINDOW(VideoProfileDialog), FALSE);  gtk_window_set_transient_for(GTK_WINDOW(VideoProfileDialog), 			       GTK_WINDOW(MainWindow));  dialog_vbox4 = GTK_DIALOG(VideoProfileDialog)->vbox;  gtk_widget_show(dialog_vbox4);  VideoProfileTable = gtk_table_new(8, 2, FALSE);  gtk_widget_show(VideoProfileTable);  gtk_box_pack_start(GTK_BOX(dialog_vbox4), VideoProfileTable, TRUE, TRUE, 0);  gtk_table_set_row_spacings(GTK_TABLE(VideoProfileTable), 3);  VideoProfileEncoder = gtk_option_menu_new();  gtk_widget_show(VideoProfileEncoder);  gtk_table_attach(GTK_TABLE(VideoProfileTable), VideoProfileEncoder, 1, 2, 1, 2,                   (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),                   (GtkAttachOptions)(0), 0, 0);  gtk_tooltips_set_tip(tooltips, VideoProfileEncoder, _("Select Encoder/Encoding"), NULL);  uint encoderIndex = 0;  uint i;  encoderNames = (const char **)malloc(video_encoder_table_size * sizeof(char *));  for (i = 0; i < video_encoder_table_size; i++) {    if ((strcasecmp(profile->GetStringValue(CFG_VIDEO_ENCODING),		    video_encoder_table[i].encoding) == 0) &&	(strcasecmp(profile->GetStringValue(CFG_VIDEO_ENCODER), 		    video_encoder_table[i].encoder) == 0)) {      encoderIndex = i;    }    encoderNames[i] = video_encoder_table[i].encoding_name;  }  CreateOptionMenu(VideoProfileEncoder, 		   encoderNames,		   video_encoder_table_size,		   encoderIndex);  VideoProfileSize = gtk_option_menu_new();  gtk_widget_show(VideoProfileSize);  gtk_table_attach(GTK_TABLE(VideoProfileTable), VideoProfileSize, 1, 2, 2, 3,                   (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),                   (GtkAttachOptions)(0), 0, 0);  gtk_tooltips_set_tip(tooltips, VideoProfileSize, _("Select Output Stream Size"), NULL);  VideoProfileAspectRatio = gtk_option_menu_new();  gtk_widget_show(VideoProfileAspectRatio);  gtk_table_attach(GTK_TABLE(VideoProfileTable), VideoProfileAspectRatio, 1, 2, 3, 4,                   (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),                   (GtkAttachOptions)(0), 0, 0);  gtk_tooltips_set_tip(tooltips, VideoProfileAspectRatio, _("Crop to Aspect Ratio"), NULL);  uint aspectIndex = 0;   for (uint i = 0; i < NUM_ELEMENTS_IN_ARRAY(aspectValues); i++) {    if (profile->GetFloatValue(CFG_VIDEO_CROP_ASPECT_RATIO)	== aspectValues[i]) {      aspectIndex = i;      break;    }  }  CreateOptionMenu(VideoProfileAspectRatio, aspectNames,		   NUM_ELEMENTS_IN_ARRAY(aspectNames),		   aspectIndex);  label87 = gtk_label_new(_("Encoder:"));  gtk_widget_show(label87);  gtk_table_attach(GTK_TABLE(VideoProfileTable), label87, 0, 1, 1, 2,                   (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),                   (GtkAttachOptions)(0), 0, 0);  gtk_misc_set_alignment(GTK_MISC(label87), 0, 0.5);  label88 = gtk_label_new(_("Size:"));  gtk_widget_show(label88);  gtk_table_attach(GTK_TABLE(VideoProfileTable), label88, 0, 1, 2, 3,                   (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),                   (GtkAttachOptions)(0), 0, 0);  gtk_misc_set_alignment(GTK_MISC(label88), 0, 0.5);  label89 = gtk_label_new(_("Crop to Aspect Ratio:"));  gtk_widget_show(label89);  gtk_table_attach(GTK_TABLE(VideoProfileTable), label89, 0, 1, 3, 4,                   (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),                   (GtkAttachOptions)(0), 0, 0);  gtk_misc_set_alignment(GTK_MISC(label89), 0, 0.5);  label93 = gtk_label_new(_("Video Profile:"));  gtk_widget_show(label93);  gtk_table_attach(GTK_TABLE(VideoProfileTable), label93, 0, 1, 0, 1,                   (GtkAttachOptions)(GTK_FILL),                   (GtkAttachOptions)(0), 0, 8);  gtk_misc_set_alignment(GTK_MISC(label93), 0.05, 0.5);  VideoProfileName = gtk_entry_new();  gtk_widget_show(VideoProfileName);  gtk_table_attach(GTK_TABLE(VideoProfileTable), VideoProfileName, 1, 2, 0, 1,                   (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),                   (GtkAttachOptions)(0), 0, 0);  if (new_profile == false) {    gtk_entry_set_text(GTK_ENTRY(VideoProfileName), profile->GetName());    gtk_widget_set_sensitive(VideoProfileName, false);  }      label92 = gtk_label_new(_("Encoder Settings:"));  gtk_widget_show(label92);  gtk_table_attach(GTK_TABLE(VideoProfileTable), label92, 0, 1, 7, 8,                   (GtkAttachOptions)(GTK_FILL),                   (GtkAttachOptions)(0), 0, 0);  gtk_misc_set_alignment(GTK_MISC(label92), 0, 0.5);  VideoEncoderSettingsButton = gtk_button_new();  gtk_widget_show(VideoEncoderSettingsButton);  gtk_table_attach(GTK_TABLE(VideoProfileTable), VideoEncoderSettingsButton, 1, 2, 7, 8,                   (GtkAttachOptions)(GTK_FILL),                   (GtkAttachOptions)(0), 0, 0);  gtk_widget_set_sensitive(VideoEncoderSettingsButton, FALSE);  gtk_tooltips_set_tip(tooltips, VideoEncoderSettingsButton, _("Configure Encoder Specific Settings"), NULL);  alignment11 = gtk_alignment_new(0.5, 0.5, 0, 0);  gtk_widget_show(alignment11);  gtk_container_add(GTK_CONTAINER(VideoEncoderSettingsButton), alignment11);  hbox59 = gtk_hbox_new(FALSE, 2);  gtk_widget_show(hbox59);  gtk_container_add(GTK_CONTAINER(alignment11), hbox59);  image11 = gtk_image_new_from_stock("gtk-preferences", GTK_ICON_SIZE_BUTTON);  gtk_widget_show(image11);  gtk_box_pack_start(GTK_BOX(hbox59), image11, FALSE, FALSE, 0);  label95 = gtk_label_new_with_mnemonic(_("Settings"));  gtk_widget_show(label95);  gtk_box_pack_start(GTK_BOX(hbox59), label95, FALSE, FALSE, 0);  label91 = gtk_label_new(_("Bit Rate(kbps):"));  gtk_widget_show(label91);  gtk_table_attach(GTK_TABLE(VideoProfileTable), label91, 0, 1, 6, 7,                   (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),                   (GtkAttachOptions)(0), 0, 0);  gtk_misc_set_alignment(GTK_MISC(label91), 0, 0.5);  VideoProfileBitRate_adj = gtk_adjustment_new(profile->GetIntegerValue(CFG_VIDEO_BIT_RATE), 25, 4000, 50, 1000, 1000);  VideoProfileBitRate = gtk_spin_button_new(GTK_ADJUSTMENT(VideoProfileBitRate_adj), 50, 0);  gtk_widget_show(VideoProfileBitRate);  gtk_table_attach(GTK_TABLE(VideoProfileTable), VideoProfileBitRate, 1, 2, 6, 7,                   (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),                   (GtkAttachOptions)(GTK_EXPAND), 0, 0);  gtk_tooltips_set_tip(tooltips, VideoProfileBitRate, _("Enter Bit Rate"), NULL);  label90 = gtk_label_new(_("Frame Rate(fps):"));  gtk_widget_show(label90);  gtk_table_attach(GTK_TABLE(VideoProfileTable), label90, 0, 1, 5, 6,                   (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),                   (GtkAttachOptions)(0), 0, 0);  gtk_misc_set_alignment(GTK_MISC(label90), 0, 0.5);  VideoProfileFrameRate_adj =     gtk_adjustment_new(profile->GetFloatValue(CFG_VIDEO_FRAME_RATE), 		       0, 		       MyConfig->GetIntegerValue(CONFIG_VIDEO_SIGNAL) ==		       VIDEO_SIGNAL_NTSC ?		       VIDEO_NTSC_FRAME_RATE : VIDEO_PAL_FRAME_RATE, 		       1, 5, 5);  VideoProfileFrameRate = gtk_spin_button_new(GTK_ADJUSTMENT(VideoProfileFrameRate_adj), 1, 2);  gtk_widget_show(VideoProfileFrameRate);  gtk_table_attach(GTK_TABLE(VideoProfileTable), VideoProfileFrameRate, 1, 2, 5, 6,                   (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),                   (GtkAttachOptions)(0), 0, 0);  gtk_tooltips_set_tip(tooltips, VideoProfileFrameRate, _("Enter Frame Rate"), NULL);  label166 = gtk_label_new(_("Video Filter:"));  gtk_widget_show(label166);  gtk_table_attach(GTK_TABLE(VideoProfileTable), label166, 0, 1, 4, 5,                   (GtkAttachOptions)(GTK_FILL),                   (GtkAttachOptions)(0), 0, 0);  gtk_misc_set_alignment(GTK_MISC(label166), 0, 0.5);  VideoFilterMenu = gtk_option_menu_new();  gtk_widget_show(VideoFilterMenu);  gtk_table_attach(GTK_TABLE(VideoProfileTable), VideoFilterMenu, 1, 2, 4, 5,                   (GtkAttachOptions)(GTK_FILL),                   (GtkAttachOptions)(0), 0, 0);  uint filterIndex = 0;   for (i = 0; i < NUM_ELEMENTS_IN_ARRAY(profilefilterNames); i++) {    if (strcasecmp(profile->GetStringValue(CFG_VIDEO_FILTER),		   profilefilterNames[i]) == 0) {      filterIndex = i;      break;    }  }  CreateOptionMenu(VideoFilterMenu,		   profilefilterNames,		   NUM_ELEMENTS_IN_ARRAY(profilefilterNames), 		   filterIndex);  dialog_action_area3 = GTK_DIALOG(VideoProfileDialog)->action_area;  gtk_widget_show(dialog_action_area3);  gtk_button_box_set_layout(GTK_BUTTON_BOX(dialog_action_area3), GTK_BUTTONBOX_END);  cancelbutton3 = gtk_button_new_from_stock("gtk-cancel");  gtk_widget_show(cancelbutton3);  gtk_dialog_add_action_widget(GTK_DIALOG(VideoProfileDialog), cancelbutton3, GTK_RESPONSE_CANCEL);  GTK_WIDGET_SET_FLAGS(cancelbutton3, GTK_CAN_DEFAULT);  okbutton3 = gtk_button_new_from_stock("gtk-ok");  gtk_widget_show(okbutton3);  gtk_dialog_add_action_widget(GTK_DIALOG(VideoProfileDialog), okbutton3, GTK_RESPONSE_OK);  GTK_WIDGET_SET_FLAGS(okbutton3, GTK_CAN_DEFAULT);  g_signal_connect((gpointer) VideoProfileDialog, "response",                    G_CALLBACK(on_VideoProfileDialog_response),                    profile);  g_signal_connect((gpointer) VideoProfileEncoder, "changed",                    G_CALLBACK(on_VideoProfileEncoder_changed),                    NULL);  g_signal_connect((gpointer) VideoEncoderSettingsButton, "clicked", 		   G_CALLBACK(on_VideoEncoderSettingsButton),		   profile);  /* Store pointers to all widgets, for use by lookup_widget(). */  GLADE_HOOKUP_OBJECT_NO_REF(VideoProfileDialog, VideoProfileDialog, "VideoProfileDialog");  GLADE_HOOKUP_OBJECT_NO_REF(VideoProfileDialog, dialog_vbox4, "dialog_vbox4");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, VideoProfileTable, "VideoProfileTable");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, VideoProfileEncoder, "VideoProfileEncoder");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, VideoProfileSize, "VideoProfileSize");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, VideoProfileAspectRatio, "VideoProfileAspectRatio");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, label87, "label87");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, label88, "label88");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, label89, "label89");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, label93, "label93");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, VideoProfileName, "VideoProfileName");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, label92, "label92");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, VideoEncoderSettingsButton, "VideoEncoderSettingsButton");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, alignment11, "alignment11");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, hbox59, "hbox59");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, image11, "image11");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, label95, "label95");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, label91, "label91");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, VideoProfileBitRate, "VideoProfileBitRate");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, label90, "label90");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, VideoProfileFrameRate, "VideoProfileFrameRate");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, label166, "label166");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, VideoFilterMenu, "VideoFilterMenu");  GLADE_HOOKUP_OBJECT_NO_REF(VideoProfileDialog, dialog_action_area3, "dialog_action_area3");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, cancelbutton3, "cancelbutton3");  GLADE_HOOKUP_OBJECT(VideoProfileDialog, okbutton3, "okbutton3");  GLADE_HOOKUP_OBJECT_NO_REF(VideoProfileDialog, tooltips, "tooltips");  CreateSizeMenu(profile->GetIntegerValue(CFG_VIDEO_WIDTH),		 profile->GetIntegerValue(CFG_VIDEO_HEIGHT));  //  return VideoProfileDialog;  gtk_widget_show(VideoProfileDialog);}/* end video_dialog.cpp */

⌨️ 快捷键说明

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