public NeroAAC(Massive mass, AudioEncoding AudioEncWindow) { this.InitializeComponent(); this.m = mass.Clone(); this.root_window = AudioEncWindow; combo_mode.Items.Add("CBR"); combo_mode.Items.Add("VBR"); combo_mode.Items.Add("ABR"); combo_mode.Items.Add("ABR 2-Pass"); combo_aac_profile.Items.Add("Auto"); combo_aac_profile.Items.Add("AAC-LC"); combo_aac_profile.Items.Add("AAC-HE"); combo_aac_profile.Items.Add("AAC-HEv2"); this.num_period.ValueChanged += new RoutedPropertyChangedEventHandler<decimal>(num_period_ValueChanged); num_period.ToolTip = "2-Pass encoding bitrate averaging period, milliseconds. \r\nDefault and recommended: 0 (Auto).\r\n" + "\r\nWARNING! Low values may produce crash of neroAacEnc.exe!"; text_mode.Content = Languages.Translate("Encoding mode") + ":"; LoadFromProfile(); }
public Normalize(Massive mass) { this.InitializeComponent(); this.Owner = App.Current.MainWindow; this.m = mass.Clone(); //колличество обрабатываемых фреймов int accuratepr = Convert.ToInt32(m.volumeaccurate.Replace("%", "")); vtrim = Calculate.GetProcentValue(m.inframes, accuratepr); if (vtrim < 10000) vtrim = Math.Min(10000, m.inframes); //забиваем prCurrent.Maximum = vtrim; prCurrent.ToolTip = Languages.Translate("Current progress"); Title = Languages.Translate("Normalizer"); text_info.Content = Languages.Translate("Please wait... Work in progress..."); //BackgroundWorker CreateBackgroundWorker(); worker.RunWorkerAsync(); //Сворачиваем окно, если программа минимизирована или свернута в трей if (!Owner.IsVisible || Owner.WindowState == WindowState.Minimized) { this.WindowState = WindowState.Minimized; this.SizeToContent = System.Windows.SizeToContent.Manual; this.StateChanged += new EventHandler(Window_StateChanged); this.Name = "Hidden"; } ShowDialog(); }
public static Massive DecodePresets(Massive m) { //расшифровываем видео параметры if (m.outvcodec == "x265") m = x265.DecodeLine(m); else if (m.outvcodec == "x264") m = x264.DecodeLine(m); else if (m.outvcodec == "x262") m = x262.DecodeLine(m); else if (m.outvcodec == "XviD") m = XviD.DecodeLine(m); else if (m.outvcodec == "MPEG2") m = FMPEG2.DecodeLine(m); else if (m.outvcodec == "MPEG1") m = FMPEG1.DecodeLine(m); else if (m.outvcodec == "MPEG4") m = FMPEG4.DecodeLine(m); else if (m.outvcodec == "DV") m = FDV.DecodeLine(m); else if (m.outvcodec == "HUFF") m = FFHUFF.DecodeLine(m); else if (m.outvcodec == "MJPEG") m = FMJPEG.DecodeLine(m); else if (m.outvcodec == "FFV1") m = FFV1.DecodeLine(m); else if (m.outvcodec == "FLV1") m = FLV1.DecodeLine(m); if (m.outaudiostreams.Count > 0) { AudioStream outstream = (AudioStream)m.outaudiostreams[m.outaudiostream]; //расшифровываем audio параметры if (outstream.codec == "AAC") m = NeroAAC.DecodeLine(m); else if (outstream.codec == "QAAC") m = QuickTimeAAC.DecodeLine(m); else if (outstream.codec == "MP3") m = LameMP3.DecodeLine(m); else if (outstream.codec == "AC3") m = AftenAC3.DecodeLine(m); else if (outstream.codec == "MP2") m = FMP2.DecodeLine(m); else if (outstream.codec == "PCM") m = FPCM.DecodeLine(m); else if (outstream.codec == "LPCM") m = FLPCM.DecodeLine(m); else if (outstream.codec == "FLAC") m = FFLAC.DecodeLine(m); } return m; }
public static Massive DecodeLine(Massive m) { AudioStream outstream = (AudioStream)m.outaudiostreams[m.outaudiostream]; //создаём свежий массив параметров FFmpeg FLAC m.flac_options = new flac_arguments(); //берём пока что за основу последнюю строку string line = outstream.passes; string[] separator = new string[] { " " }; string[] cli = line.Split(separator, StringSplitOptions.None); int n = 0; foreach (string value in cli) { if (value == "-compression_level") m.flac_options.level = Convert.ToInt32(cli[n + 1]); else if (value == "-use_lpc") m.flac_options.use_lpc = Convert.ToInt32(cli[n + 1]); else if (value == "-lpc_coeff_precision ") m.flac_options.lpc_precision = Convert.ToInt32(cli[n + 1]); n++; } return m; }
public static Massive DecodeLine(Massive m) { AudioStream outstream = (AudioStream)m.outaudiostreams[m.outaudiostream]; //создаём свежий массив параметров m.ac3_options = new ac3_arguments(); //берём пока что за основу последнюю строку string line = outstream.passes; string[] separator = new string[] { " " }; string[] cli = line.Split(separator, StringSplitOptions.None); int n = 0; foreach (string value in cli) { if (value == "-b") outstream.bitrate = Convert.ToInt32(cli[n + 1]); else if (value == "-dnorm") m.ac3_options.dnorm = Convert.ToInt32(cli[n + 1]); else if (value == "-w") m.ac3_options.bandwidth = Convert.ToInt32(cli[n + 1]); n++; } return m; }
public FFV1(Massive mass, VideoEncoding VideoEncWindow, MainWindow parent) { this.InitializeComponent(); this.m = mass.Clone(); this.p = parent; this.root_window = VideoEncWindow; //прогружаем colorspace combo_color.Items.Add("YV12"); combo_color.Items.Add("YUY2"); combo_color.Items.Add("RGB32"); combo_color.Items.Add("YUV410P"); combo_color.Items.Add("YUV411P"); combo_color.Items.Add("YUV444P"); //codertype combo_codertype.Items.Add("VLC"); combo_codertype.Items.Add("AC"); //context model combo_contextmodel.Items.Add("Small"); combo_contextmodel.Items.Add("Large"); LoadFromProfile(); SetToolTips(); }
public static Massive DecodeLine(Massive m) { AudioStream outstream = (AudioStream)m.outaudiostreams[m.outaudiostream]; //берём пока что за основу последнюю строку string line = outstream.passes; string[] separator = new string[] { " " }; string[] cli = line.Split(separator, StringSplitOptions.None); int n = 0; foreach (string value in cli) { if (value == "-acodec") { string bit = cli[n + 1]; if (bit == "pcm_s16be") outstream.bits = 16; if (bit == "pcm_s24be") outstream.bits = 24; if (bit == "pcm_s32be") outstream.bits = 32; } } outstream.bitrate = (int)(0.016 * outstream.channels * (double)Convert.ToInt32(outstream.samplerate) * (double)outstream.bits / 16.0); return m; }
public QuickTimeAAC(Massive mass, AudioEncoding AudioEncWindow) { this.InitializeComponent(); this.m = mass.Clone(); this.root_window = AudioEncWindow; //--check Show library versions and exit //--formats Show available AAC formats and exit combo_mode.Items.Add("CBR"); //-c, --cbr <bitrate> AAC CBR mode / bitrate combo_mode.Items.Add("ABR"); //-a, --abr <bitrate> AAC ABR mode / bitrate combo_mode.Items.Add("Constrained VBR"); //-v, --cvbr <bitrate> AAC Constrained VBR mode / bitrate combo_mode.Items.Add("True VBR"); //-V, --tvbr <quality> AAC True VBR mode / quality [0-127] (AAC-HE не поддерживается) combo_mode.Items.Add("Lossless (ALAC)"); //-A, --alac ALAC encoding mode combo_accuracy.Items.Add("0 - Fast"); combo_accuracy.Items.Add("1"); combo_accuracy.Items.Add("2 - Slow"); combo_aac_profile.Items.Add("AAC-LC"); combo_aac_profile.Items.Add("AAC-HE"); //Предупреждение о неточности битрейта combo_bitrate.Tag = Languages.Translate("Do not expect that selected bitrate will be strictly observed by the encoder!") + "\r\n" + Languages.Translate("The actual value will varies with encoding mode (ABR/CBR/CVBR), profile (LC/HE), sample rate and number of channels.") + "\r\n" + Languages.Translate("Click on \"Bitrate\" label to get detailed information about all supported combinations."); text_mode.Content = Languages.Translate("Encoding mode") + ":"; text_accuracy.Content = Languages.Translate("Accuracy") + ":"; LoadFromProfile(); }
public AviSynthEncoder(Massive mass) { m = mass.Clone(); this.script = m.script; AudioStream stream = (AudioStream)m.outaudiostreams[0]; this.outfilepath = stream.audiopath; }
public FFHUFF(Massive mass, VideoEncoding VideoEncWindow, MainWindow parent) { this.InitializeComponent(); this.m = mass.Clone(); this.p = parent; this.root_window = VideoEncWindow; //прогружаем fourcc combo_fourcc.Items.Add("HFYU"); combo_fourcc.Items.Add("FFVH"); //прогружаем colorspace combo_color.Items.Add("YV12"); combo_color.Items.Add("YUY2"); combo_color.Items.Add("RGB32"); //предиктор combo_predictor.Items.Add("Left"); combo_predictor.Items.Add("Plane"); combo_predictor.Items.Add("Median"); LoadFromProfile(); SetToolTips(); }
public static Massive GetFriendFilesList(Massive m) { string friendfile; ArrayList fileslist = new ArrayList(); if (Calculate.IsValidVOBName(m.infilepath)) { if (Path.GetFileName(m.infilepath).ToUpper() != "VIDEO_TS.VOB") { string title = Calculate.GetTitleNum(m.infilepath); string dir = Path.GetDirectoryName(m.infilepath).TrimEnd(new char[] { '\\' }); //C:\, но C:\Some_Path for (int i = 1; i <= 20; i++) { friendfile = dir + "\\VTS_" + title + "_" + i.ToString() + ".VOB"; if (File.Exists(friendfile)) fileslist.Add(friendfile); } //Если каким-то чудесным образом ни одного файла не нашлось if (fileslist.Count == 0) fileslist.Add(m.infilepath); } else fileslist.Add(m.infilepath); } else { fileslist.Add(m.infilepath); char[] chars = Path.GetFileNameWithoutExtension(m.infilepath).ToCharArray(); int pos = 0; foreach (char c in chars) { pos += 1; string cstring = c.ToString(); if (cstring == "1") { string dir = Path.GetDirectoryName(m.infilepath).TrimEnd(new char[] { '\\' }) + "\\"; //Так надо string file_name = Path.GetFileNameWithoutExtension(m.infilepath); string ext = Path.GetExtension(m.infilepath); for (int i = 2; i <= 9; i++) { friendfile = dir + file_name.Remove(pos - 1, 1).Insert(pos - 1, i.ToString()) + ext; if (File.Exists(friendfile)) fileslist.Add(friendfile); } } } } //забиваем все найденные файлы m.infileslist = Calculate.ConvertArrayListToStringArray(fileslist); //диалог выбора файлов если их больше одного if (fileslist.Count > 1) { FilesListWindow f = new FilesListWindow(m); if (f.m != null) m = f.m.Clone(); else m = null; } return m; }
public DVDImport(Massive mass, string dvdpath) { this.InitializeComponent(); this.Owner = App.Current.MainWindow; this.m = mass.Clone(); this.dpi = SysInfo.dpi; DDHelper ddh = new DDHelper(this); ddh.GotFiles += new DDEventHandler(DD_GotFiles); //tooltips label_title.Content = Languages.Translate("Select title:"); button_cancel.Content = Languages.Translate("Cancel"); button_ok.Content = Languages.Translate("OK"); button_play.ToolTip = Languages.Translate("Play-Pause"); button_stop.ToolTip = Languages.Translate("Stop"); //events this.Loaded += new RoutedEventHandler(MainWindow_Loaded); this.Closing += new System.ComponentModel.CancelEventHandler(MainWindow_Closing); this.KeyUp += new KeyEventHandler(MainWindow_KeyUp); //подготавливаем список титлов string[] maintitles = Directory.GetFiles(dvdpath, "VTS_*1.VOB", SearchOption.AllDirectories); int titlescount = maintitles.Length; //если нет ни одного титла if (titlescount == 0) { Message message = new Message(this.Owner); message.ShowMessage(Languages.Translate("Can`t find any VOB file in:") + " \"" + dvdpath + "\"!", Languages.Translate("Error")); m = null; Close(); return; } //сортируем и забиваем вобы в список dvd = new ArrayList(); string[] vobs = new string[] { "" }; for (int n = 0; n < titlescount; n++) { string title = Calculate.GetTitleNum(maintitles[n]); vobs = Directory.GetFiles(dvdpath, "VTS_" + title + "*.VOB", SearchOption.AllDirectories); ArrayList vobs_ar = Calculate.ConvertStringArrayToArrayList(vobs); if (vobs_ar[0].ToString().ToUpper().EndsWith("0.VOB")) vobs_ar.RemoveAt(0); vobs = Calculate.ConvertArrayListToStringArray(vobs_ar); dvd.Add(vobs); } //забиваем и выделяем пустой титл combo_titles.Items.Add(Calculate.GetTimeline(0)); combo_titles.SelectedIndex = 0; Title = "DVD: " + Calculate.GetDVDName(vobs[0]); this.ShowDialog(); }
public FMP2(Massive mass, AudioEncoding AudioEncWindow) { this.InitializeComponent(); this.m = mass.Clone(); this.root_window = AudioEncWindow; LoadFromProfile(); }
public static Massive DecodeLine(Massive m) { //создаём свежий массив параметров ffmpeg m.ffmpeg_options = new ffmpeg_arguments(); m.encodingmode = Settings.EncodingModes.OnePass; //берём пока что за основу последнюю строку string line = m.vpasses[m.vpasses.Count - 1].ToString(); string[] separator = new string[] { " " }; string[] cli = line.Split(separator, StringSplitOptions.None); int n = 0; foreach (string value in cli) { if (value == "-vtag") m.ffmpeg_options.fourcc_dv = cli[n + 1]; if (value == "-pix_fmt") { string dvstandart = cli[n + 1]; if (dvstandart == "yuv420p") m.ffmpeg_options.dvpreset = "DVCAM"; else if (dvstandart == "yuv411p") m.ffmpeg_options.dvpreset = "DVCPRO25"; else if (dvstandart == "yuv422p") m.ffmpeg_options.dvpreset = "DVCPRO50"; //dvcam //-f mov -vcodec dvvideo -r 25 -pix_fmt yuv420p -vtag dvcp -acodec pcm_s16be -ac 2 //dvcpro25 //-f mov -vcodec dvvideo -r 25 -pix_fmt yuv411p -vtag dvpp -acodec pcm_s16be -ac 2 //dvcpro50 //-f mov -vcodec dvvideo -r 25 -pix_fmt yuv422p -vtag dv5p -acodec pcm_s16be -ac 2 } n++; } //битрейт if (m.format == Format.ExportFormats.AviDVPAL) { if (m.ffmpeg_options.dvpreset == "DVCPRO50") m.outvbitrate = 57600; else m.outvbitrate = 28800; } if (m.format == Format.ExportFormats.AviDVNTSC) { if (m.ffmpeg_options.dvpreset == "DVCPRO50") m.outvbitrate = 57543; else m.outvbitrate = 28771; } return m; }
private void button_refresh_Click(object sender, System.Windows.RoutedEventArgs e) { if (m != null) { m = AviSynthScripting.CreateAutoAviSynthScript(m); p.m = m.Clone(); p.Refresh(m.script); this.Focus(); } }
private void Refresh() { if (oldm != null) { m = AviSynthScripting.CreateAutoAviSynthScript(m); p.m = m.Clone(); p.Refresh(m.script); this.Focus(); } }
private void Refresh() { m = AviSynthScripting.CreateAutoAviSynthScript(m); p.m = m.Clone(); p.Refresh(m.script); this.Focus(); CalculateMod(); FillManualBox(); }
private void button_analyse_Click(object sender, RoutedEventArgs e) { Autocrop acrop = new Autocrop(m, this, -1); if (acrop.m != null) { m = acrop.m.Clone(); ApplyCrop(); } }
public static Massive DecodeLine(Massive m) { AudioStream outstream = (AudioStream)m.outaudiostreams[m.outaudiostream]; //создаём свежий массив параметров QuickTime AAC m.qaac_options = new qaac_arguments(); //берём пока что за основу последнюю строку string line = outstream.passes; string[] separator = new string[] { " " }; string[] cli = line.Split(separator, StringSplitOptions.None); int n = 0; foreach (string value in cli) { if (value == "-q") { m.qaac_options.accuracy = Convert.ToInt32(cli[n + 1]); } else if (value == "--tvbr") { m.qaac_options.encodingmode = Settings.AudioEncodingModes.VBR; m.qaac_options.quality = Convert.ToInt32(cli[n + 1]) / 9; } else if (value == "--cbr" || value == "--abr" || value == "--cvbr") { if (value == "--cbr") m.qaac_options.encodingmode = Settings.AudioEncodingModes.CBR; else if (value == "--abr") m.qaac_options.encodingmode = Settings.AudioEncodingModes.ABR; else m.qaac_options.encodingmode = Settings.AudioEncodingModes.CVBR; outstream.bitrate = Convert.ToInt32(cli[n + 1]); } else if (value == "--alac") { m.qaac_options.encodingmode = Settings.AudioEncodingModes.ALAC; } else if (value == "--he") { m.qaac_options.aacprofile = "AAC-HE"; } else if (value == "--no-delay") { m.qaac_options.no_delay = true; } else if (value == "--gapless-mode") { m.qaac_options.gapless_mode = Convert.ToInt32(cli[n + 1]); } n++; } return m; }
private void Refresh() { if (m != null) { CheckFramerateModifierIsApplied(); m = AviSynthScripting.CreateAutoAviSynthScript(m); p.m = m.Clone(); p.Refresh(m.script); this.Focus(); } }
public LameMP3(Massive mass, AudioEncoding AudioEncWindow) { this.InitializeComponent(); this.m = mass.Clone(); this.root_window = AudioEncWindow; combo_mode.Items.Add("CBR"); combo_mode.Items.Add("VBR"); combo_mode.Items.Add("ABR"); combo_channels_mode.Items.Add("Auto"); //default is (j) or (s) depending on bitrate combo_channels_mode.Items.Add("Stereo"); //"-m s" (s)imple = force LR stereo on all frames combo_channels_mode.Items.Add("Joint Stereo"); //"-m j" (j)oint = joins the best possible of MS and LR stereo combo_channels_mode.Items.Add("Forced Joint Stereo"); //"-m f" (f)orce = force MS stereo on all frames. combo_channels_mode.Items.Add("Mono"); //"-m m" (d)ual-mono, (m)ono combo_channels_mode.ToolTip = "Auto - auto select (depending on bitrate), default\r\n" + "Stereo - force LR stereo on all frames\r\n" + "Joint Stereo - joins the best possible of MS and LR stereo\r\n" + "Forced Joint Stereo - force MS stereo on all frames\r\n" + "Mono - encode as mono"; combo_quality.Items.Add("0 - Best Quality"); combo_quality.Items.Add("1"); combo_quality.Items.Add("2 - Recommended"); combo_quality.Items.Add("3"); combo_quality.Items.Add("4"); combo_quality.Items.Add("5 - Good Speed"); combo_quality.Items.Add("6"); combo_quality.Items.Add("7 - Very Fast"); combo_quality.Items.Add("8"); combo_quality.Items.Add("9 - Poor Quality"); combo_quality.ToolTip = "Noise shaping & psycho acoustic algorithms\r\n" + "0 - highest quality, very slow\r\n" + "2 - recommended, default\r\n" + "9 - poor quality, but fast"; combo_gain.Items.Add("None"); combo_gain.Items.Add("Fast"); combo_gain.Items.Add("Accurate"); combo_gain.ToolTip = "None - do not compute RG (slightly faster encoding)\r\n" + "Fast - compute RG fast and slightly inaccurately, default\r\n" + "Accurate - compute RG more accurately, but slower"; //прогружаем битрейты LoadBitrates(); text_mode.Content = Languages.Translate("Encoding mode") + ":"; text_quality.Content = Languages.Translate("Accuracy") + ":"; LoadFromProfile(); }
private void combo_framerate_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { if ((combo_framerate.IsDropDownOpen || combo_framerate.IsSelectionBoxHighlighted || combo_framerate.IsEditable) && combo_framerate.SelectedItem != null) { if (combo_framerate.SelectedItem.ToString().Length == 0) { //Включаем редактирование combo_framerate.IsEditable = true; combo_framerate.ToolTip = Languages.Translate("Enter - apply, Esc - cancel."); combo_framerate.ApplyTemplate(); return; } else { m.outframerate = Calculate.GetSplittedString(combo_framerate.SelectedItem.ToString(), 0); m.sampleratemodifer = Settings.SamplerateModifer; m = AviSynthScripting.CreateAutoAviSynthScript(m); //механизм обхода ошибок SSRC if (m.sampleratemodifer == AviSynthScripting.SamplerateModifers.SSRC && m.inaudiostreams.Count > 0 && m.outaudiostreams.Count > 0) { AudioStream instream = (AudioStream)m.inaudiostreams[m.inaudiostream]; AudioStream outstream = (AudioStream)m.outaudiostreams[m.outaudiostream]; if (instream.samplerate != outstream.samplerate && outstream.samplerate != null && Calculate.CheckScriptErrors(m) == "SSRC: could not resample between the two samplerates.") { m.sampleratemodifer = AviSynthScripting.SamplerateModifers.ResampleAudio; m = AviSynthScripting.CreateAutoAviSynthScript(m); } } //обновляем конечное колличество фреймов, с учётом режима деинтерелейса m = Calculate.UpdateOutFrames(m); m.outfilesize = Calculate.GetEncodingSize(m); CheckFramerateModifierIsApplied(); p.m = m.Clone(); p.Refresh(m.script); this.Focus(); } if (combo_framerate.IsEditable) { //Выключаем редактирование combo_framerate.IsEditable = false; combo_framerate.ToolTip = null; } } }
public void UpdateOutSize() { if (profile_was_changed) { //cli if (x265c != null) { m = x265c.m.Clone(); } else if (x264c != null) { m = x264c.m.Clone(); } else if (x262c != null) { m = x262c.m.Clone(); } else if (xvid != null) { m = xvid.m.Clone(); } else if (mpeg4 != null) { m = mpeg4.m.Clone(); } else if (mpeg2 != null) { m = mpeg2.m.Clone(); } else if (mpeg1 != null) { m = mpeg1.m.Clone(); } else if (flv != null) { m = flv.m.Clone(); } } else { UpdateMassive(); } //Финальный размер text_outsize_value.Content = m.outfilesize = Calculate.GetEncodingSize(m); //bit-pixels calculation text_inquality_value.Content = Calculate.GetQualityIn(m); text_outquality_value.Content = Calculate.GetQualityOut(m, true); UpdateCodecMassive(); }
private void button_cancel_Click(object sender, RoutedEventArgs e) { if (mode == AudioOptionsModes.AllOptions) { if (p.m.script != oldm.script) { m = oldm.Clone(); Refresh(); } } Close(); }
private void button_cancel_Click(object sender, System.Windows.RoutedEventArgs e) { if (oldm != null) { m = oldm.Clone(); } else { ((AudioStream)m.outaudiostreams[m.outaudiostream]).encoding = old_aencoding; } Close(); }
private void button_cancel_Click(object sender, System.Windows.RoutedEventArgs e) { if (oldm != null) { m = oldm.Clone(); } else { m.vencoding = old_vencoding; } Close(); }
private void combo_mixing_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (combo_mixing.IsDropDownOpen || combo_mixing.IsSelectionBoxHighlighted) { AudioStream instream = (AudioStream)m.inaudiostreams[m.inaudiostream]; instream.channelconverter = StringMixingToEnum(combo_mixing.SelectedItem.ToString()); //получаем колличество каналов на выход m = Format.GetValidChannels(m); SetInfo(); } }
public static Massive EncodeLine(Massive m) { string line = "-acodec mp2 -f mp2"; AudioStream outstream = (AudioStream)m.outaudiostreams[m.outaudiostream]; line += " -ab " + outstream.bitrate + "000"; //забиваем данные в массив outstream.passes = line; return(m); }
public FLPCM(Massive mass, AudioEncoding AudioEncWindow) { this.InitializeComponent(); this.m = mass.Clone(); this.root_window = AudioEncWindow; combo_bits.Items.Add("16-bit"); combo_bits.Items.Add("24-bit"); combo_bits.Items.Add("32-bit"); LoadFromProfile(); }
private void button_ok_Click(object sender, RoutedEventArgs e) { if (m != null) { //Новый скрипт m = AviSynthScripting.CreateAutoAviSynthScript(m); //Проверяем, изменился ли скрипт NeedUpdate = (old_raw_script != m.script); } Close(); }
private void button_AutoCrop_current_Click(object sender, RoutedEventArgs e) { if (!IsError && HasVideo) { Autocrop acrop = new Autocrop(m, this, (int)slider_pos.Value); if (acrop.m != null) { m = acrop.m.Clone(); SetValues(m.cropl, m.cropt, m.cropr, m.cropb); ShowCroppedFrame(); } } }
public static Massive EncodeLine(Massive m) { string line = "-acodec mp2 -f mp2"; AudioStream outstream = (AudioStream)m.outaudiostreams[m.outaudiostream]; line += " -ab " + outstream.bitrate + "000"; //забиваем данные в массив outstream.passes = line; return m; }
private void combo_deinterlace_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { if ((combo_deinterlace.IsDropDownOpen || combo_deinterlace.IsSelectionBoxHighlighted) && combo_deinterlace.SelectedItem != null) { m.deinterlace = (DeinterlaceType)Enum.GetValues(typeof(DeinterlaceType)).GetValue(combo_deinterlace.SelectedIndex); //запоминаем настройки if (m.interlace == SourceType.HYBRID_PROGRESSIVE_INTERLACED || m.interlace == SourceType.INTERLACED) { if (m.deinterlace == DeinterlaceType.FieldDeinterlace || m.deinterlace == DeinterlaceType.LeakKernelDeint || m.deinterlace == DeinterlaceType.TDeint || m.deinterlace == DeinterlaceType.TDeintEDI || m.deinterlace == DeinterlaceType.TomsMoComp || m.deinterlace == DeinterlaceType.Yadif || m.deinterlace == DeinterlaceType.YadifModEDI || m.deinterlace == DeinterlaceType.YadifModEDI2 || m.deinterlace == DeinterlaceType.SmoothDeinterlace || m.deinterlace == DeinterlaceType.NNEDI || m.deinterlace == DeinterlaceType.MCBob || m.deinterlace == DeinterlaceType.QTGMC || m.deinterlace == DeinterlaceType.QTGMC_2 || m.deinterlace == DeinterlaceType.TFM) { Settings.Deint_Interlaced = m.deinterlace; } } else if (m.interlace == SourceType.FILM || m.interlace == SourceType.HYBRID_FILM_INTERLACED || m.interlace == SourceType.HYBRID_PROGRESSIVE_FILM) { if (m.deinterlace == DeinterlaceType.TIVTC || m.deinterlace == DeinterlaceType.TIVTC_TDeintEDI || m.deinterlace == DeinterlaceType.TIVTC_YadifModEDI) { Settings.Deint_Film = m.deinterlace; } } m = Calculate.UpdateOutFramerate(m); SetFramerateCombo(m.outframerate); combo_outinterlace.SelectedItem = Format.GetCodecOutInterlace(m); //обновляем конечное колличество фреймов, с учётом режима деинтерелейса m = Calculate.UpdateOutFrames(m); m.outfilesize = Calculate.GetEncodingSize(m); Refresh(); } }
public Demuxer(Massive mass, DemuxerMode mode, string outfile) { this.InitializeComponent(); this.Owner = App.Current.MainWindow; this.m = mass.Clone(); this.outfile = outfile; this.mode = mode; //забиваем progress.Maximum = 100; label_info.Content = Languages.Translate("Please wait... Work in progress..."); if (mode == DemuxerMode.DecodeToWAV) { Title = Languages.Translate("Decoding to Windows PCM") + "..."; } else if (mode == DemuxerMode.NeroTempWAV) { Title = Languages.Translate("Creating Nero temp file") + "..."; } else if (mode == DemuxerMode.ExtractAudio) { Title = Languages.Translate("Audio demuxing") + "..."; } else if (mode == DemuxerMode.ExtractVideo) { Title = Languages.Translate("Video demuxing") + "..."; } else if (mode == DemuxerMode.RepairMKV) { Title = Languages.Translate("Remuxing Matroska file") + "..."; } //Определяем исходный файл source_file = (m.infilepath_source != null) ? m.infilepath_source : m.infilepath; //фоновое кодирование CreateBackgroundWorker(); worker.RunWorkerAsync(); //Сворачиваем окно, если программа минимизирована или свернута в трей if (!Owner.IsVisible || Owner.WindowState == WindowState.Minimized) { this.WindowState = WindowState.Minimized; this.StateChanged += new EventHandler(Window_StateChanged); this.Name = "Hidden"; } ShowDialog(); }
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { if (m != null && list_files.Items.Count > 0) { m.infileslist = new string[list_files.Items.Count]; list_files.Items.CopyTo(m.infileslist, 0); m.infilepath = m.infileslist[0]; } else { m = null; } }
void worker_RunWorkerCompleted(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e) { if (e.Error != null) { m = null; ErrorException("Informer (Unhandled): " + ((Exception)e.Error).Message, ((Exception)e.Error).StackTrace); } else if (e.Result != null) { m = null; ErrorException("Informer: " + ((Exception)e.Result).Message, ((Exception)e.Result).StackTrace); } Close(); }
private void Refresh() { m = AviSynthScripting.CreateAutoAviSynthScript(m); p.m = m.Clone(); p.Refresh(m.script); if (m.outaudiostreams.Count > 0) { AudioStream outstream = (AudioStream)m.outaudiostreams[m.outaudiostream]; if (p.combo_aencoding.SelectedItem.ToString() != outstream.encoding) { p.combo_aencoding.SelectedItem = outstream.encoding; } } }
public static Massive EncodeLine(Massive m) { string line = "-acodec flac -f flac"; AudioStream outstream = (AudioStream)m.outaudiostreams[m.outaudiostream]; if (m.flac_options.level != 5) line += " -compression_level " + m.flac_options.level; if (m.flac_options.use_lpc != 1) line += " -use_lpc " + m.flac_options.use_lpc; if (m.flac_options.lpc_precision != 15) line += " -lpc_coeff_precision " + m.flac_options.lpc_precision; //забиваем данные в массив outstream.passes = line; return m; }
public static Massive EncodeLine(Massive m) { string line = ""; AudioStream outstream = (AudioStream)m.outaudiostreams[m.outaudiostream]; line += "-b " + outstream.bitrate; if (m.ac3_options.dnorm != 31) line += " -dnorm " + m.ac3_options.dnorm; if (m.ac3_options.bandwidth != -1) line += " -w " + m.ac3_options.bandwidth; //забиваем данные в массив outstream.passes = line; return m; }
public static Massive DecodeLine(Massive m) { //создаём свежий массив параметров ffmpeg m.ffmpeg_options = new ffmpeg_arguments(); m.encodingmode = Settings.EncodingModes.OnePass; //берём пока что за основу последнюю строку string line = m.vpasses[m.vpasses.Count - 1].ToString(); string[] separator = new string[] { " " }; string[] cli = line.Split(separator, StringSplitOptions.None); int n = 0; foreach (string value in cli) { if (value == "-vtag") m.ffmpeg_options.fourcc_huff = cli[n + 1]; if (value == "-pix_fmt") { //YUV422 - YUY2 //YUV420P - YV12 & I420 string color = cli[n + 1]; if (color == "yuv420p") m.ffmpeg_options.colorspace = "YV12"; else if (color == "yuv422p") m.ffmpeg_options.colorspace = "YUY2"; else m.ffmpeg_options.colorspace = color.ToUpper(); } if (value == "-coder") m.ffmpeg_options.codertype = cli[n + 1].ToUpper(); if (value == "-context") { if (Convert.ToInt32(cli[n + 1]) == 0) m.ffmpeg_options.contextmodel = "Small"; else m.ffmpeg_options.contextmodel = "Large"; } n++; } m.outvbitrate = 1; //(int)((4.19 * (double)m.outresw * (double)m.outresh * Calculate.ConvertStringToDouble(m.outframerate)) / 1000.0); m.encodingmode = Settings.EncodingModes.Quantizer; return m; }
public SourceDetector(Massive mass) { this.InitializeComponent(); this.Owner = App.Current.MainWindow; this.m = mass.Clone(); progress_total.Maximum = 100; Title = Languages.Translate("Detecting interlace") + "..."; label_info.Content = Languages.Translate("Please wait... Work in progress..."); //BackgroundWorker CreateBackgroundWorker(); worker.RunWorkerAsync(); ShowDialog(); }
int MaxPortions = 15; //Макс. допустимое кол-во порций (анализ полей только в интерлейсных секциях), 5 public SourceDetector(Massive mass) { this.InitializeComponent(); this.Owner = App.Current.MainWindow; this.m = mass.Clone(); progress_total.Maximum = 100; Title = Languages.Translate("Detecting interlace") + "..."; label_info.Content = Languages.Translate("Please wait... Work in progress..."); //BackgroundWorker CreateBackgroundWorker(); worker.RunWorkerAsync(); ShowDialog(); }
public static void CreateVProfile(Massive m) { using (StreamWriter sw = new StreamWriter(Calculate.StartupPath + "\\presets\\encoding\\" + Format.EnumToString(m.format) + "\\video\\" + m.vencoding + ".txt", false, System.Text.Encoding.Default)) { sw.WriteLine("video codec:"); sw.WriteLine(m.outvcodec); sw.WriteLine(); sw.WriteLine("video cli:"); foreach (string line in m.vpasses) sw.WriteLine(line); sw.Close(); } }
public static Massive DecodeLine(Massive m) { //создаём свежий массив параметров ffmpeg m.ffmpeg_options = new ffmpeg_arguments(); m.encodingmode = Settings.EncodingModes.OnePass; //берём пока что за основу последнюю строку string line = m.vpasses[m.vpasses.Count - 1].ToString(); string[] separator = new string[] { " " }; string[] cli = line.Split(separator, StringSplitOptions.None); int n = 0; foreach (string value in cli) { if (value == "-vtag") m.ffmpeg_options.fourcc_huff = cli[n + 1]; if (value == "-pix_fmt") { //YUV422 - YUY2 //YUV420P - YV12 & I420 //RGBA 32 string dvstandart = cli[n + 1]; if (dvstandart == "yuv420p") m.ffmpeg_options.colorspace = "YV12"; else if (dvstandart == "yuv422p") m.ffmpeg_options.colorspace = "YUY2"; else m.ffmpeg_options.colorspace = dvstandart.ToUpper(); } if (value == "-pred") { string pred = cli[n + 1]; if (pred == "left") m.ffmpeg_options.predictor = "Left"; else if (pred == "plane") m.ffmpeg_options.predictor = "Plane"; else m.ffmpeg_options.predictor = "Median"; } n++; } m.outvbitrate = 1; //(int)((6.70495523 * (double)m.outresw * (double)m.outresh * Calculate.ConvertStringToDouble(m.outframerate)) / 1000.0); m.encodingmode = Settings.EncodingModes.Quantizer; return m; }
public static void CreateAProfile(Massive m) { AudioStream outstream = (AudioStream)m.outaudiostreams[m.outaudiostream]; using (StreamWriter sw = new StreamWriter(Calculate.StartupPath + "\\presets\\encoding\\" + Format.EnumToString(m.format) + "\\audio\\" + outstream.encoding + ".txt", false, System.Text.Encoding.Default)) { sw.WriteLine("audio codec:"); sw.WriteLine(outstream.codec); sw.WriteLine(); sw.WriteLine("audio cli:"); sw.WriteLine(outstream.passes); sw.Close(); } }
public Caching(Massive mass) { this.InitializeComponent(); this.Owner = App.Current.MainWindow; this.m = mass.Clone(); //забиваем prCurrent.Maximum = 100; Title = Languages.Translate("Caсhing") + "..."; text_info.Content = Languages.Translate("Please wait... Work in progress..."); //Caching CreateBackgroundWorker(); worker.RunWorkerAsync(); ShowDialog(); }
public IndexChecker(Massive mass) { this.InitializeComponent(); this.Owner = App.Current.MainWindow; this.m = mass.Clone(); //забиваем prCurrent.Maximum = 100; Title = Languages.Translate("Checking index folder") + "..."; label_info.Content = Languages.Translate("Please wait... Work in progress..."); //BackgroundWorker CreateBackgroundWorker(); worker.RunWorkerAsync(); ShowDialog(); }
public Informer(Massive mass) { this.InitializeComponent(); this.Owner = App.Current.MainWindow; this.m = mass.Clone(); //забиваем prCurrent.Maximum = 100; Title = Languages.Translate("Getting media info") + "..."; label_info.Content = Languages.Translate("Please wait... Work in progress..."); //BackgroundWorker CreateBackgroundWorker(); worker.RunWorkerAsync(); ShowDialog(); }
private void ApplyCrop() { m = FixInputAspect(m); m = Format.GetValidResolution(m); m = Format.GetValidOutAspect(m); m = FixAspectDifference(m); combo_aspectfix.SelectedItem = m.aspectfix.ToString(); LoadResolutions(); LoadInAspect(); LoadOutAspect(); LoadCrop(); LoadBlack(); Refresh(); }
private void combo_aspectfix_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { if ((combo_aspectfix.IsDropDownOpen || combo_aspectfix.IsSelectionBoxHighlighted) && combo_aspectfix.SelectedItem != null) { m.aspectfix = (AspectFixes)Enum.Parse(typeof(AspectFixes), combo_aspectfix.SelectedItem.ToString()); m = FixAspectDifference(m); LoadCrop(); LoadBlack(); LoadInAspect(); textbox_error.Text = Calculate.ConvertDoubleToPointString(100 - ((m.outaspect * 100) / m.inaspect), 2) + "%"; Refresh(); } }
private void check_nonstandard_fps_Click(object sender, RoutedEventArgs e) { Settings.Nonstandard_fps = check_nonstandard_fps.IsChecked.Value; if (m != null) { m = Format.GetOutInterlace(m); m = Calculate.UpdateOutFramerate(m); m = Calculate.UpdateOutFrames(m); m.outfilesize = Calculate.GetEncodingSize(m); combo_deinterlace.SelectedValue = m.deinterlace; SetFramerateCombo(m.outframerate); Refresh(); } }
public static Massive EncodeLine(Massive m) { string line = ""; AudioStream outstream = (AudioStream)m.outaudiostreams[m.outaudiostream]; if (m.aac_options.encodingmode == Settings.AudioEncodingModes.ABR) { line += "-br " + outstream.bitrate + "000"; } else if (m.aac_options.encodingmode == Settings.AudioEncodingModes.CBR) { line += "-cbr " + outstream.bitrate + "000"; } else if (m.aac_options.encodingmode == Settings.AudioEncodingModes.VBR) { line += "-q " + m.aac_options.quality.ToString("0.00").Replace(",", "."); } else //TwoPass { line += "-2pass -br " + outstream.bitrate + "000"; if (m.aac_options.period > 0) { line += " -2passperiod " + m.aac_options.period; } } if (m.aac_options.aacprofile == "AAC-LC") { line += " -lc"; } if (m.aac_options.aacprofile == "AAC-HE") { line += " -he"; } if (m.aac_options.aacprofile == "AAC-HEv2") { line += " -hev2"; } //забиваем данные в массив outstream.passes = line; return(m); }
public Indexing_FFMS(Massive mass) { this.InitializeComponent(); this.Owner = App.Current.MainWindow; this.m = mass.Clone(); //забиваем prCurrent.Maximum = 100; total = m.infileslist.Length; Title = Languages.Translate("Indexing"); text_info.Content = Languages.Translate("Please wait... Work in progress..."); //BackgroundWorker CreateBackgroundWorker(); worker.RunWorkerAsync(); ShowDialog(); }
public Caching(Massive mass, bool check_audio_only) { this.InitializeComponent(); this.Owner = App.Current.MainWindow; this.only_audio = check_audio_only; this.m = mass.Clone(); //забиваем prCurrent.Maximum = 100; Title = Languages.Translate("Caсhing") + "..."; text_info.Content = Languages.Translate("Please wait... Work in progress..."); //Caching CreateBackgroundWorker(); worker.RunWorkerAsync(); ShowDialog(); }
public FFLAC(Massive mass, AudioEncoding AudioEncWindow) { this.InitializeComponent(); this.m = mass.Clone(); this.root_window = AudioEncWindow; for (int n = 0; n < 13; n++) combo_level.Items.Add(n); for (int n = 0; n < 11; n++) combo_use_lpc.Items.Add(n); for (int n = 0; n < 16; n++) combo_precision.Items.Add(n); combo_level.ToolTip = "Set compression level:\r\n0 - fast, but bigger filesize\r\n5 - default\r\n12 - slow, but smaller filesize"; combo_use_lpc.ToolTip = "LPC method for determining coefficients:\r\n0 - LPC with fixed pre-defined coeffs (fast)\r\n" + "1 - LPC with coeffs determined by Levinson-Durbin recursion (default)\r\n2+ - LPC with coeffs determined by Cholesky factorization using (Use LPC - 1) passes (10 - veeery slow)"; combo_precision.ToolTip = "LPC coefficient precision (15 - default)"; LoadFromProfile(); }
public static void CreateVProfile(Massive m) { using (StreamWriter sw = new StreamWriter(Calculate.StartupPath + "\\presets\\encoding\\" + Format.EnumToString(m.format) + "\\video\\" + m.vencoding + ".txt", false, System.Text.Encoding.Default)) { sw.WriteLine("video codec:"); sw.WriteLine(m.outvcodec); sw.WriteLine(); sw.WriteLine("video cli:"); foreach (string line in m.vpasses) { sw.WriteLine(line); } sw.Close(); } }
public static Massive DecodeLine(Massive m) { AudioStream outstream = (AudioStream)m.outaudiostreams[m.outaudiostream]; //создаём свежий массив параметров Nero AAC m.aac_options = new aac_arguments(); //берём пока что за основу последнюю строку string line = outstream.passes; string[] separator = new string[] { " " }; string[] cli = line.Split(separator, StringSplitOptions.None); int n = 0; bool auto = true; foreach (string value in cli) { if (value == "-2pass") m.aac_options.encodingmode = Settings.AudioEncodingModes.TwoPass; else if (value == "-q") { m.aac_options.encodingmode = Settings.AudioEncodingModes.VBR; m.aac_options.quality = Calculate.ConvertStringToDouble(cli[n + 1]); } else if (value == "-br" || value == "-cbr") { if (m.aac_options.encodingmode != Settings.AudioEncodingModes.TwoPass) if (value == "-br") m.aac_options.encodingmode = Settings.AudioEncodingModes.ABR; else m.aac_options.encodingmode = Settings.AudioEncodingModes.CBR; outstream.bitrate = Convert.ToInt32(cli[n + 1].Replace("000", "")); } else if (value == "-lc" || value == "-he" || value == "-hev2") { auto = false; if (value == "-lc") m.aac_options.aacprofile = "AAC-LC"; else if (value == "-he") m.aac_options.aacprofile = "AAC-HE"; else m.aac_options.aacprofile = "AAC-HEv2"; } else if (value == "-2passperiod") m.aac_options.period = Convert.ToInt32(cli[n + 1]); if (auto) m.aac_options.aacprofile = "Auto"; n++; } return m; }