diff options
-rw-r--r-- | win/CS/Functions/QueryGenerator.cs | 3 | ||||
-rw-r--r-- | win/CS/HandBrake.ApplicationServices/ASUserSettingConstants.cs | 5 | ||||
-rw-r--r-- | win/CS/HandBrake.ApplicationServices/Model/QueueTask.cs | 32 | ||||
-rw-r--r-- | win/CS/HandBrake.ApplicationServices/Services/Base/EncodeBase.cs | 2 | ||||
-rw-r--r-- | win/CS/HandBrake.ApplicationServices/Services/QueueManager.cs | 4 | ||||
-rw-r--r-- | win/CS/HandBrake.ApplicationServices/Services/QueueProcessor.cs | 10 | ||||
-rw-r--r-- | win/CS/HandBrake.ApplicationServices/Services/UserSettingService.cs | 123 | ||||
-rw-r--r-- | win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs | 1 | ||||
-rw-r--r-- | win/CS/HandBrakeWPF/ViewModels/VideoViewModel.cs | 51 | ||||
-rw-r--r-- | win/CS/HandBrakeWPF/defaultsettings.xml | 10 | ||||
-rw-r--r-- | win/CS/defaultsettings.xml | 10 | ||||
-rw-r--r-- | win/CS/frmMain.cs | 4 | ||||
-rw-r--r-- | win/CS/frmPreview.cs | 2 | ||||
-rw-r--r-- | win/CS/frmQueue.cs | 8 |
14 files changed, 134 insertions, 131 deletions
diff --git a/win/CS/Functions/QueryGenerator.cs b/win/CS/Functions/QueryGenerator.cs index 729cfe17e..31082711f 100644 --- a/win/CS/Functions/QueryGenerator.cs +++ b/win/CS/Functions/QueryGenerator.cs @@ -132,9 +132,6 @@ namespace Handbrake.Functions EncodeTask task = CreateEncodeTaskObject(mainWindow);
QueueTask queueTask = new QueueTask(query)
{
- Source = task.Source,
- Destination = task.Destination,
- Title = mainWindow.GetTitle(),
CustomQuery = (mainWindow.rtf_query.Text != string.Empty) || isCustom,
Task = task,
Query = query,
diff --git a/win/CS/HandBrake.ApplicationServices/ASUserSettingConstants.cs b/win/CS/HandBrake.ApplicationServices/ASUserSettingConstants.cs index 0600de5d0..e05e37aa9 100644 --- a/win/CS/HandBrake.ApplicationServices/ASUserSettingConstants.cs +++ b/win/CS/HandBrake.ApplicationServices/ASUserSettingConstants.cs @@ -119,5 +119,10 @@ namespace HandBrake.ApplicationServices /// Preview Scan Count
/// </summary>
public const string PreviewScanCount = "previewScanCount";
+
+ /// <summary>
+ /// Clear completed items from the queue automatically.
+ /// </summary>
+ public const string ClearCompletedFromQueue = "ClearCompletedFromQueue";
}
}
diff --git a/win/CS/HandBrake.ApplicationServices/Model/QueueTask.cs b/win/CS/HandBrake.ApplicationServices/Model/QueueTask.cs index f0514805c..6848ce3ab 100644 --- a/win/CS/HandBrake.ApplicationServices/Model/QueueTask.cs +++ b/win/CS/HandBrake.ApplicationServices/Model/QueueTask.cs @@ -51,38 +51,11 @@ namespace HandBrake.ApplicationServices.Model public bool CustomQuery { get; set; }
/// <summary>
- /// Gets or sets Destination.
- /// </summary>
- public string Destination { get; set; }
-
- /// <summary>
- /// Gets or sets the job ID.
- /// </summary>
- public int Id { get; set; }
-
- /// <summary>
- /// Gets a value indicating whether or not this instance is empty.
- /// </summary>
- public bool IsEmpty
- {
- get
- {
- return this.Id == 0 && string.IsNullOrEmpty(this.Query) && string.IsNullOrEmpty(this.Task.Source) &&
- string.IsNullOrEmpty(this.Task.Destination);
- }
- }
-
- /// <summary>
/// Gets or sets the query string.
/// </summary>
public string Query { get; set; }
/// <summary>
- /// Gets or sets Source.
- /// </summary>
- public string Source { get; set; }
-
- /// <summary>
/// Gets or sets Status.
/// </summary>
public QueueItemStatus Status
@@ -104,11 +77,6 @@ namespace HandBrake.ApplicationServices.Model /// </summary>
public EncodeTask Task { get; set; }
- /// <summary>
- /// Gets or sets Title.
- /// </summary>
- public int Title { get; set; }
-
#endregion
}
}
\ No newline at end of file diff --git a/win/CS/HandBrake.ApplicationServices/Services/Base/EncodeBase.cs b/win/CS/HandBrake.ApplicationServices/Services/Base/EncodeBase.cs index e2eacce72..d57f3a51f 100644 --- a/win/CS/HandBrake.ApplicationServices/Services/Base/EncodeBase.cs +++ b/win/CS/HandBrake.ApplicationServices/Services/Base/EncodeBase.cs @@ -366,7 +366,7 @@ namespace HandBrake.ApplicationServices.Services.Base // Make sure the path exists, attempt to create it if it doesn't
try
{
- string path = Directory.GetParent(task.Destination ?? task.Task.Destination).ToString();
+ string path = Directory.GetParent(task.Task.Destination).ToString();
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
diff --git a/win/CS/HandBrake.ApplicationServices/Services/QueueManager.cs b/win/CS/HandBrake.ApplicationServices/Services/QueueManager.cs index 7c60d1e86..1ce362449 100644 --- a/win/CS/HandBrake.ApplicationServices/Services/QueueManager.cs +++ b/win/CS/HandBrake.ApplicationServices/Services/QueueManager.cs @@ -154,8 +154,6 @@ namespace HandBrake.ApplicationServices.Services {
lock (QueueLock)
{
- // Tag the job with an ID
- job.Id = lastJobId++;
queue.Add(job);
InvokeQueueChanged(EventArgs.Empty);
}
@@ -366,7 +364,7 @@ namespace HandBrake.ApplicationServices.Services /// <returns>Whether or not the supplied destination is already in the queue.</returns>
public bool CheckForDestinationPathDuplicates(string destination)
{
- return this.queue.Any(checkItem => checkItem.Destination.Contains(destination.Replace("\\\\", "\\")));
+ return this.queue.Any(checkItem => checkItem.Task.Destination.Contains(destination.Replace("\\\\", "\\")));
}
/// <summary>
diff --git a/win/CS/HandBrake.ApplicationServices/Services/QueueProcessor.cs b/win/CS/HandBrake.ApplicationServices/Services/QueueProcessor.cs index ce3a756ed..1deeb0d44 100644 --- a/win/CS/HandBrake.ApplicationServices/Services/QueueProcessor.cs +++ b/win/CS/HandBrake.ApplicationServices/Services/QueueProcessor.cs @@ -201,6 +201,12 @@ namespace HandBrake.ApplicationServices.Services {
this.QueueManager.LastProcessedJob.Status = QueueItemStatus.Completed;
+ // Clear the completed item of the queue if the setting is set.
+ if (userSettingService.GetUserSetting<bool>(ASUserSettingConstants.ClearCompletedFromQueue))
+ {
+ this.QueueManager.ClearCompleted();
+ }
+
// Growl
if (userSettingService.GetUserSetting<bool>(ASUserSettingConstants.GrowlEncode))
GrowlCommunicator.Notify("Encode Completed",
@@ -218,12 +224,12 @@ namespace HandBrake.ApplicationServices.Services }
// Handling Log Data
- this.EncodeService.ProcessLogs(this.QueueManager.LastProcessedJob.Destination);
+ this.EncodeService.ProcessLogs(this.QueueManager.LastProcessedJob.Task.Destination);
// Post-Processing
if (e.Successful)
{
- SendToApplication(this.QueueManager.LastProcessedJob.Destination);
+ SendToApplication(this.QueueManager.LastProcessedJob.Task.Destination);
}
// Move onto the next job.
diff --git a/win/CS/HandBrake.ApplicationServices/Services/UserSettingService.cs b/win/CS/HandBrake.ApplicationServices/Services/UserSettingService.cs index d8e537bdc..c36b5ec49 100644 --- a/win/CS/HandBrake.ApplicationServices/Services/UserSettingService.cs +++ b/win/CS/HandBrake.ApplicationServices/Services/UserSettingService.cs @@ -6,9 +6,9 @@ namespace HandBrake.ApplicationServices.Services
{
using System;
- using System.Collections.Generic;
using System.Collections.Specialized;
using System.IO;
+ using System.Linq;
using System.Windows.Forms;
using System.Xml.Serialization;
@@ -44,7 +44,7 @@ namespace HandBrake.ApplicationServices.Services this.Load();
if (userSettings == null || userSettings.Count == 0)
{
- this.LoadDefaults();
+ this.userSettings = this.GetDefaults();
}
}
@@ -104,15 +104,25 @@ namespace HandBrake.ApplicationServices.Services /// </summary>
private void Save()
{
- string directory = Path.GetDirectoryName(this.settingsFile);
- if (!string.IsNullOrEmpty(directory) && !Directory.Exists(directory))
+ try
{
- Directory.CreateDirectory(directory);
- }
+ string directory = Path.GetDirectoryName(this.settingsFile);
+ if (!string.IsNullOrEmpty(directory) && !Directory.Exists(directory))
+ {
+ Directory.CreateDirectory(directory);
+ }
- using (FileStream strm = new FileStream(this.settingsFile, FileMode.Create, FileAccess.Write))
+ using (FileStream strm = new FileStream(this.settingsFile, FileMode.Create, FileAccess.Write))
+ {
+ serializer.Serialize(strm, this.userSettings);
+ }
+ }
+ catch (Exception exc)
{
- serializer.Serialize(strm, this.userSettings);
+ throw new GeneralApplicationException(
+ "A problem occured when trying to save your preferences.",
+ "Any settings you changed may need to be reset the next time HandBrake launches.",
+ exc);
}
}
@@ -129,7 +139,16 @@ namespace HandBrake.ApplicationServices.Services {
SerializableDictionary<string, object> data = (SerializableDictionary<string, object>)serializer.Deserialize(reader);
this.userSettings = data;
+
+ // Add any new settings
+ SerializableDictionary<string, object> defaults = this.GetDefaults();
+ foreach (var item in defaults.Where(item => !this.userSettings.Keys.Contains(item.Key)))
+ {
+ this.userSettings.Add(item.Key, item.Value);
+ }
}
+
+ this.Save();
}
}
catch (Exception exc)
@@ -144,76 +163,34 @@ namespace HandBrake.ApplicationServices.Services /// <summary>
/// Load Default Settings
/// </summary>
- private void LoadDefaults()
+ /// <returns>
+ /// The get defaults.
+ /// </returns>
+ private SerializableDictionary<string, object> GetDefaults()
{
- string defaults = Path.Combine(Application.StartupPath, "defaultsettings.xml");
- if (File.Exists(defaults))
+ try
{
- using (StreamReader reader = new StreamReader(defaults))
+ string defaults = Path.Combine(Application.StartupPath, "defaultsettings.xml");
+ if (File.Exists(defaults))
{
- SerializableDictionary<string, object> data = (SerializableDictionary<string, object>)serializer.Deserialize(reader);
- this.userSettings = data;
+ using (StreamReader reader = new StreamReader(defaults))
+ {
+ return (SerializableDictionary<string, object>)serializer.Deserialize(reader);
+ }
}
- }
- }
- /// <summary>
- /// This is just a utility method for creating a defaults xml file. Don't use this!!!
- /// </summary>
- private void SetAllDefaults()
- {
- userSettings = new SerializableDictionary<string, object>();
- userSettings[ASUserSettingConstants.X264Step] = 0.25;
- userSettings[ASUserSettingConstants.Verbosity] = 1;
- userSettings[ASUserSettingConstants.WhenCompleteAction] = "Do Nothing";
- userSettings[ASUserSettingConstants.GrowlEncode] = false;
- userSettings[ASUserSettingConstants.GrowlQueue] = false;
- userSettings[ASUserSettingConstants.ProcessPriority] = "Below Normal";
- userSettings[ASUserSettingConstants.PreventSleep] = true;
- userSettings[ASUserSettingConstants.ShowCLI] = false;
- userSettings[ASUserSettingConstants.SaveLogToCopyDirectory] = false;
- userSettings[ASUserSettingConstants.SaveLogWithVideo] = false;
- userSettings[ASUserSettingConstants.DisableLibDvdNav] = false;
- userSettings[ASUserSettingConstants.SendFile] = false;
- userSettings[ASUserSettingConstants.MinScanDuration] = 10;
- userSettings[ASUserSettingConstants.HandBrakeBuild] = 0;
- userSettings[ASUserSettingConstants.HandBrakeVersion] = string.Empty;
- userSettings["updateStatus"] = true;
- userSettings["tooltipEnable"] = true;
- userSettings["defaultPreset"] = string.Empty;
- userSettings["skipversion"] = 0;
- userSettings["autoNaming"] = true;
- userSettings["autoNamePath"] = string.Empty;
- userSettings["appcast_i686"] = "http://handbrake.fr/appcast.i386.xml";
- userSettings["appcast_x64"] = "http://handbrake.fr/appcast_unstable.x86_64.xml";
- userSettings["autoNameFormat"] = "{source}-{title}";
- userSettings["VLC_Path"] = "C:\\Program Files\\VideoLAN\\vlc\\vlc.exe";
- userSettings["MainWindowMinimize"] = true;
- userSettings["QueryEditorTab"] = false;
- userSettings["presetNotification"] = false;
- userSettings["trayIconAlerts"] = true;
- userSettings["lastUpdateCheckDate"] = DateTime.Today;
- userSettings["daysBetweenUpdateCheck"] = 7;
- userSettings["useM4v"] = 0;
- userSettings["PromptOnUnmatchingQueries"] = true;
- userSettings["NativeLanguage"] = "Any";
- userSettings["DubMode"] = 255;
- userSettings["HandBrakeExeHash"] = string.Empty;
- userSettings["previewScanCount"] = 10;
- userSettings["clearOldLogs"] = true;
- userSettings["AutoNameTitleCase"] = true;
- userSettings["AutoNameRemoveUnderscore"] = true;
- userSettings["ActivityWindowLastMode"] = 0;
- userSettings["useClosedCaption"] = false;
- userSettings["batchMinDuration"] = "00:18:00";
- userSettings["batchMaxDuration"] = "02:30:00";
- userSettings["defaultPlayer"] = false;
- userSettings["SelectedLanguages"] = new StringCollection();
- userSettings["DubModeAudio"] = 0;
- userSettings["DubModeSubtitle"] = 0;
- userSettings["addOnlyOneAudioPerLanguage"] = true;
- userSettings["MinTitleLength"] = 10;
- userSettings["ShowAdvancedAudioPassthruOpts"] = false;
+ throw new GeneralApplicationException(
+ "User default settings file is missing. This install of HandBrake may be corrupted.",
+ "Try re-installing HandBrake.",
+ null);
+ }
+ catch (Exception exc)
+ {
+ throw new GeneralApplicationException(
+ "User default settings file is missing or inaccessible. This install of HandBrake may be corrupted.",
+ "Try re-installing HandBrake.",
+ exc);
+ }
}
}
}
diff --git a/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs index 731e7d384..268002957 100644 --- a/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs +++ b/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs @@ -816,7 +816,6 @@ namespace HandBrakeWPF.ViewModels // Create the Queue Task and Start Processing
QueueTask task = new QueueTask(null)
{
- Destination = this.CurrentTask.Destination,
Task = this.CurrentTask,
Query = QueryGeneratorUtility.GenerateQuery(this.CurrentTask),
CustomQuery = false
diff --git a/win/CS/HandBrakeWPF/ViewModels/VideoViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/VideoViewModel.cs index 7f7520dc4..295eb3b3b 100644 --- a/win/CS/HandBrakeWPF/ViewModels/VideoViewModel.cs +++ b/win/CS/HandBrakeWPF/ViewModels/VideoViewModel.cs @@ -12,6 +12,7 @@ namespace HandBrakeWPF.ViewModels using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
+ using System.Globalization;
using Caliburn.Micro;
@@ -310,8 +311,8 @@ namespace HandBrakeWPF.ViewModels this.ShowPeakFramerate = true;
if (this.Task.FramerateMode == FramerateMode.VFR)
{
- this.Task.FramerateMode = FramerateMode.PFR;
- }
+ this.Task.FramerateMode = FramerateMode.PFR;
+ }
this.Task.Framerate = double.Parse(value);
}
@@ -416,9 +417,15 @@ namespace HandBrakeWPF.ViewModels {
return;
}
-
+
this.SelectedVideoEncoder = preset.Task.VideoEncoder;
- this.SelectedFramerate = preset.Task.Framerate.ToString();
+ if (preset.Task.Framerate.HasValue)
+ {
+ this.SelectedFramerate = preset.Task.Framerate.Value.ToString(CultureInfo.InvariantCulture);
+ }
+
+ this.IsConstantQuantity = preset.Task.VideoEncodeRateType == VideoEncodeRateType.ConstantQuality;
+
switch (preset.Task.FramerateMode)
{
case FramerateMode.CFR:
@@ -433,9 +440,39 @@ namespace HandBrakeWPF.ViewModels this.ShowPeakFramerate = true;
break;
}
-
- // TODO Compute RF
- this.RF = 20;
+
+ double cqStep = userSettingService.GetUserSetting<double>(ASUserSettingConstants.X264Step);
+ double rfValue = 0;
+ switch (this.SelectedVideoEncoder)
+ {
+ case VideoEncoder.FFMpeg:
+ case VideoEncoder.FFMpeg2:
+ int cq;
+ if (preset.Task.Quality.HasValue)
+ {
+ int.TryParse(preset.Task.Quality.Value.ToString(CultureInfo.InvariantCulture), out cq);
+ this.RF = 32 - cq;
+ }
+ break;
+ case VideoEncoder.X264:
+
+ double multiplier = 1.0 / cqStep;
+ if (preset.Task.Quality.HasValue)
+ {
+ rfValue = preset.Task.Quality.Value * multiplier;
+ }
+
+ this.RF = this.QualityMax - (int)Math.Round(rfValue, 0);
+
+ break;
+
+ case VideoEncoder.Theora:
+ if (preset.Task.Quality.HasValue)
+ {
+ this.RF = (int)preset.Task.Quality.Value;
+ }
+ break;
+ }
this.Task.TwoPass = preset.Task.TwoPass;
this.Task.TurboFirstPass = preset.Task.TurboFirstPass;
diff --git a/win/CS/HandBrakeWPF/defaultsettings.xml b/win/CS/HandBrakeWPF/defaultsettings.xml index ce18ff680..6bd00ae0d 100644 --- a/win/CS/HandBrakeWPF/defaultsettings.xml +++ b/win/CS/HandBrakeWPF/defaultsettings.xml @@ -181,7 +181,7 @@ <string>appcast_x64</string>
</key>
<value>
- <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:string" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">http://handbrake.fr/appcast_unstable.x86_64.xml</anyType>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:string" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">http://handbrake.fr/appcast.86_64.xml</anyType>
</value>
</item>
<item>
@@ -432,4 +432,12 @@ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:string" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">MinGW i686</anyType>
</value>
</item>
+ <item>
+ <key>
+ <string>ClearCompletedFromQueue</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">false</anyType>
+ </value>
+ </item>
</dictionary>
\ No newline at end of file diff --git a/win/CS/defaultsettings.xml b/win/CS/defaultsettings.xml index ce18ff680..6bd00ae0d 100644 --- a/win/CS/defaultsettings.xml +++ b/win/CS/defaultsettings.xml @@ -181,7 +181,7 @@ <string>appcast_x64</string>
</key>
<value>
- <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:string" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">http://handbrake.fr/appcast_unstable.x86_64.xml</anyType>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:string" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">http://handbrake.fr/appcast.86_64.xml</anyType>
</value>
</item>
<item>
@@ -432,4 +432,12 @@ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:string" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">MinGW i686</anyType>
</value>
</item>
+ <item>
+ <key>
+ <string>ClearCompletedFromQueue</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">false</anyType>
+ </value>
+ </item>
</dictionary>
\ No newline at end of file diff --git a/win/CS/frmMain.cs b/win/CS/frmMain.cs index 2d022bedb..9242bac0b 100644 --- a/win/CS/frmMain.cs +++ b/win/CS/frmMain.cs @@ -2236,7 +2236,7 @@ namespace Handbrake this.AudioSettings.LoadTracks(preset);
// Set the destination path);
- this.text_destination.Text = queueEdit.Destination;
+ this.text_destination.Text = queueEdit.Task.Destination;
// The x264 widgets will need updated, so do this now:
x264Panel.StandardizeOptString();
@@ -2355,7 +2355,7 @@ namespace Handbrake // Scan
queueEdit = job; // Nasty but will do for now. TODO
- StartScan(job.Source, job.Title);
+ StartScan(job.Task.Source, job.Task.Title);
}
#endregion
diff --git a/win/CS/frmPreview.cs b/win/CS/frmPreview.cs index f070e0503..7ebea1acc 100644 --- a/win/CS/frmPreview.cs +++ b/win/CS/frmPreview.cs @@ -219,7 +219,7 @@ namespace Handbrake int duration;
int.TryParse(endPoint.Text, out duration);
string query = QueryGenerator.GeneratePreviewQuery(this.mainWindow, duration, startPoint.Text);
- QueueTask task = new QueueTask(query) { Destination = this.mainWindow.text_destination.Text };
+ QueueTask task = new QueueTask(query) { Task = { Destination = this.mainWindow.text_destination.Text } };
ThreadPool.QueueUserWorkItem(this.CreatePreview, task);
}
diff --git a/win/CS/frmQueue.cs b/win/CS/frmQueue.cs index 5f72d83de..c7117068f 100644 --- a/win/CS/frmQueue.cs +++ b/win/CS/frmQueue.cs @@ -353,8 +353,8 @@ namespace Handbrake { Tag = queueItem, Text = EnumHelper<QueueItemStatus>.GetDescription(queueItem.Status) };
item.SubItems.Add(title);
item.SubItems.Add(chapters); // Chapters
- item.SubItems.Add(queueItem.Source); // Source
- item.SubItems.Add(queueItem.Destination); // Destination
+ item.SubItems.Add(queueItem.Task.Source); // Source
+ item.SubItems.Add(queueItem.Task.Destination); // Destination
item.SubItems.Add(EnumHelper<VideoEncoder>.GetDisplay(parsed.VideoEncoder));
// Display The Audio Track Information
@@ -440,8 +440,8 @@ namespace Handbrake // found query is a global varible
lbl_encodeStatus.Text = "Encoding ...";
- lbl_source.Text = queue.QueueManager.LastProcessedJob.Source + "(Title: " + title + " Chapters: " + chapterlbl + ")";
- lbl_dest.Text = queue.QueueManager.LastProcessedJob.Destination;
+ lbl_source.Text = queue.QueueManager.LastProcessedJob.Task.Source + "(Title: " + title + " Chapters: " + chapterlbl + ")";
+ lbl_dest.Text = queue.QueueManager.LastProcessedJob.Task.Destination;
lbl_encodeOptions.Text = string.Format("Video: {0}, Audio: {1}\nx264 Options: {2}",
EnumHelper<VideoEncoder>.GetDisplay(parsed.VideoEncoder),
audio,
|