mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-11-25 12:44:46 +01:00
Change ffprope location to ffmpeg folder
This commit is contained in:
parent
ff3f40ba48
commit
72a9e50be3
@ -23,5 +23,6 @@
|
||||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateThisQualifierSettings/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=assa/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Downloader/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=ffprobe/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Matroska/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Nikse/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
|
@ -12,11 +12,11 @@ namespace Nikse.SubtitleEdit.Controls
|
||||
private string _previewText = "Subtitle text.";
|
||||
private bool _showShotChange = true;
|
||||
|
||||
private int _leftGap = 0;
|
||||
private int _leftGap;
|
||||
private int _leftRedZone = 7;
|
||||
private int _leftGreenZone = 12;
|
||||
|
||||
private int _rightGap = 0;
|
||||
private int _rightGap;
|
||||
private int _rightRedZone = 7;
|
||||
private int _rightGreenZone = 12;
|
||||
|
||||
@ -74,19 +74,14 @@ namespace Nikse.SubtitleEdit.Controls
|
||||
set { _rightGreenZone = value; Invalidate(); }
|
||||
}
|
||||
|
||||
public CuesPreviewView()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected override void OnPaint(PaintEventArgs e)
|
||||
{
|
||||
base.OnPaint(e);
|
||||
|
||||
using (var brush = new SolidBrush(Color.White))
|
||||
{
|
||||
float width = this.Size.Width;
|
||||
float height = this.Size.Height;
|
||||
float width = Size.Width;
|
||||
float height = Size.Height;
|
||||
|
||||
// Background
|
||||
brush.Color = Color.Gray;
|
||||
@ -94,31 +89,31 @@ namespace Nikse.SubtitleEdit.Controls
|
||||
|
||||
// Green zones
|
||||
brush.Color = Color.Green;
|
||||
e.Graphics.FillRectangle(brush, (width / 2) - FramesToPixels(this.LeftGreenZone), 0, FramesToPixels(this.LeftGreenZone), height);
|
||||
e.Graphics.FillRectangle(brush, width / 2, 0, FramesToPixels(this.RightGreenZone), height);
|
||||
e.Graphics.FillRectangle(brush, (width / 2) - FramesToPixels(LeftGreenZone), 0, FramesToPixels(LeftGreenZone), height);
|
||||
e.Graphics.FillRectangle(brush, width / 2, 0, FramesToPixels(RightGreenZone), height);
|
||||
|
||||
// Red zone
|
||||
brush.Color = Color.Firebrick;
|
||||
e.Graphics.FillRectangle(brush, (width / 2) - FramesToPixels(this.LeftRedZone), 0, FramesToPixels(this.LeftRedZone), height);
|
||||
e.Graphics.FillRectangle(brush, width / 2, 0, FramesToPixels(this.RightRedZone), height);
|
||||
e.Graphics.FillRectangle(brush, (width / 2) - FramesToPixels(LeftRedZone), 0, FramesToPixels(LeftRedZone), height);
|
||||
e.Graphics.FillRectangle(brush, width / 2, 0, FramesToPixels(RightRedZone), height);
|
||||
|
||||
// Subtitle
|
||||
brush.Color = Color.FromArgb(153, 0, 0, 0);
|
||||
e.Graphics.FillRectangle(brush, 0, 0, (width / 2) - FramesToPixels(this.LeftGap), height);
|
||||
e.Graphics.FillRectangle(brush, (width / 2) + FramesToPixels(this.RightGap), 0, (width / 2) - FramesToPixels(this.RightGap), height);
|
||||
e.Graphics.FillRectangle(brush, 0, 0, (width / 2) - FramesToPixels(LeftGap), height);
|
||||
e.Graphics.FillRectangle(brush, (width / 2) + FramesToPixels(RightGap), 0, (width / 2) - FramesToPixels(RightGap), height);
|
||||
|
||||
brush.Color = Color.White;
|
||||
if (this.LeftGap <= 12)
|
||||
if (LeftGap <= 12)
|
||||
{
|
||||
e.Graphics.DrawString(GetSubtitleLabel(1000, GetLeftOutCue()), UiUtil.GetDefaultFont(), brush, new RectangleF(5, 5, (width / 2) - FramesToPixels(this.LeftGap) - 10, height - 10));
|
||||
e.Graphics.DrawString(GetSubtitleLabel(1000, GetLeftOutCue()), UiUtil.GetDefaultFont(), brush, new RectangleF(5, 5, (width / 2) - FramesToPixels(LeftGap) - 10, height - 10));
|
||||
}
|
||||
if (this.RightGap <= 12)
|
||||
if (RightGap <= 12)
|
||||
{
|
||||
e.Graphics.DrawString(GetSubtitleLabel(GetRightInCue(), 5000), UiUtil.GetDefaultFont(), brush, new RectangleF((width / 2) + FramesToPixels(this.RightGap) + 5, 5, (width / 2) - FramesToPixels(this.RightGap) - 10, height - 10));
|
||||
e.Graphics.DrawString(GetSubtitleLabel(GetRightInCue(), 5000), UiUtil.GetDefaultFont(), brush, new RectangleF((width / 2) + FramesToPixels(RightGap) + 5, 5, (width / 2) - FramesToPixels(RightGap) - 10, height - 10));
|
||||
}
|
||||
|
||||
// Shot change
|
||||
if (this.ShowShotChange)
|
||||
if (ShowShotChange)
|
||||
{
|
||||
brush.Color = Color.PaleGreen;
|
||||
e.Graphics.FillRectangle(brush, (width / 2) - (1.5f), 0, 3f, height);
|
||||
@ -128,24 +123,24 @@ namespace Nikse.SubtitleEdit.Controls
|
||||
|
||||
private float FramesToPixels(float frames)
|
||||
{
|
||||
return (Size.Width / (this.FrameRate * 3)) * frames;
|
||||
return (Size.Width / (FrameRate * 3)) * frames;
|
||||
}
|
||||
|
||||
private double GetLeftOutCue()
|
||||
{
|
||||
return 3000 - (this.LeftGap * (1000 / this.FrameRate));
|
||||
return 3000 - (LeftGap * (1000 / FrameRate));
|
||||
}
|
||||
|
||||
private double GetRightInCue()
|
||||
{
|
||||
return 3000 + (this.RightGap * (1000 / this.FrameRate));
|
||||
return 3000 + (RightGap * (1000 / FrameRate));
|
||||
}
|
||||
|
||||
private string GetSubtitleLabel(double start, double end)
|
||||
{
|
||||
var timeCodeStart = new TimeCode(start);
|
||||
var timeCodeEnd = new TimeCode(end);
|
||||
return timeCodeStart.ToString() + " --> " + timeCodeEnd.ToString() + Environment.NewLine + this.PreviewText;
|
||||
return timeCodeStart + " --> " + timeCodeEnd + Environment.NewLine + PreviewText;
|
||||
}
|
||||
}
|
||||
}
|
@ -10,7 +10,7 @@ using Nikse.SubtitleEdit.Logic;
|
||||
|
||||
namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes
|
||||
{
|
||||
public partial class BeautifyTimeCodes : Form
|
||||
public sealed partial class BeautifyTimeCodes : Form
|
||||
{
|
||||
private readonly Subtitle _subtitle;
|
||||
private readonly VideoInfo _videoInfo;
|
||||
@ -80,13 +80,24 @@ namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes
|
||||
if (_videoFileName != null)
|
||||
{
|
||||
// Load time codes
|
||||
this._timeCodes = TimeCodesFileHelper.FromDisk(videoFileName);
|
||||
this._shotChanges = shotChanges;
|
||||
_timeCodes = TimeCodesFileHelper.FromDisk(videoFileName);
|
||||
_shotChanges = shotChanges;
|
||||
|
||||
// Check if ffprobe is available
|
||||
var ffProbePath = Path.GetDirectoryName(Configuration.Settings.General.FFmpegLocation) + Path.DirectorySeparatorChar + "ffprobe" + Path.GetExtension(Configuration.Settings.General.FFmpegLocation);
|
||||
var isffProbeAvailable = !string.IsNullOrEmpty(ffProbePath) && File.Exists(ffProbePath);
|
||||
if (!isffProbeAvailable)
|
||||
var isFfProbeAvailable = false;
|
||||
if (!string.IsNullOrEmpty(Configuration.Settings.General.FFmpegLocation))
|
||||
{
|
||||
var ffProbePath = Path.Combine(Path.GetDirectoryName(Configuration.Settings.General.FFmpegLocation), "ffprobe.exe");
|
||||
if (Configuration.IsRunningOnWindows)
|
||||
{
|
||||
isFfProbeAvailable = File.Exists(ffProbePath);
|
||||
}
|
||||
else
|
||||
{
|
||||
isFfProbeAvailable = true;
|
||||
}
|
||||
}
|
||||
if (!isFfProbeAvailable)
|
||||
{
|
||||
checkBoxExtractExactTimeCodes.Enabled = false;
|
||||
checkBoxExtractExactTimeCodes.Checked = false;
|
||||
@ -234,8 +245,8 @@ namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes
|
||||
{
|
||||
if (form.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
this._shotChanges = form.ShotChangesInSeconds;
|
||||
this.ShotChangesInSeconds = form.ShotChangesInSeconds;
|
||||
_shotChanges = form.ShotChangesInSeconds;
|
||||
ShotChangesInSeconds = form.ShotChangesInSeconds;
|
||||
ShotChangeHelper.SaveShotChanges(_videoFileName, form.ShotChangesInSeconds);
|
||||
RefreshControls();
|
||||
}
|
||||
@ -268,12 +279,12 @@ namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes
|
||||
FixedSubtitle = new Subtitle(_subtitle);
|
||||
|
||||
TimeCodesBeautifier timeCodesBeautifier = new TimeCodesBeautifier(
|
||||
FixedSubtitle,
|
||||
FixedSubtitle,
|
||||
_frameRate,
|
||||
checkBoxExtractExactTimeCodes.Checked ? _timeCodes : new List<double>(), // ditto
|
||||
checkBoxSnapToShotChanges.Checked ? _shotChanges : new List<double>()
|
||||
);
|
||||
timeCodesBeautifier.ProgressChanged += delegate(double progress)
|
||||
timeCodesBeautifier.ProgressChanged += delegate (double progress)
|
||||
{
|
||||
progressBar.Value = Convert.ToInt32(progress * 100);
|
||||
Application.DoEvents();
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes
|
||||
{
|
||||
partial class BeautifyTimeCodesProfile
|
||||
sealed partial class BeautifyTimeCodesProfile
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
|
@ -5,7 +5,7 @@ using Nikse.SubtitleEdit.Logic;
|
||||
|
||||
namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes
|
||||
{
|
||||
public partial class BeautifyTimeCodesProfile : Form
|
||||
public sealed partial class BeautifyTimeCodesProfile : Form
|
||||
{
|
||||
private readonly double _frameRate;
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes
|
||||
{
|
||||
partial class BeautifyTimeCodesProfileSimple
|
||||
sealed partial class BeautifyTimeCodesProfileSimple
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
|
@ -7,7 +7,7 @@ using Nikse.SubtitleEdit.Core.SubtitleFormats;
|
||||
|
||||
namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes
|
||||
{
|
||||
public partial class BeautifyTimeCodesProfileSimple : Form
|
||||
public sealed partial class BeautifyTimeCodesProfileSimple : Form
|
||||
{
|
||||
private readonly double _frameRate;
|
||||
|
||||
|
@ -36,8 +36,9 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
{
|
||||
_timeCodes = new List<double>();
|
||||
}
|
||||
var ffProbePath = Path.GetDirectoryName(Configuration.Settings.General.FFmpegLocation) + Path.DirectorySeparatorChar + "ffprobe" + Path.GetExtension(Configuration.Settings.General.FFmpegLocation);
|
||||
if (!Configuration.IsRunningOnWindows && (string.IsNullOrEmpty(ffProbePath) || !File.Exists(ffProbePath)))
|
||||
|
||||
var ffProbePath = Path.Combine(Path.GetDirectoryName(Configuration.Settings.General.FFmpegLocation), "ffprobe.exe");
|
||||
if (!Configuration.IsRunningOnWindows && !File.Exists(ffProbePath))
|
||||
{
|
||||
ffProbePath = "ffprobe";
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user