Work on SMPTE beta feature

This commit is contained in:
Nikolaj Olsson 2018-01-23 15:41:24 +01:00
parent 51cd8322fb
commit 4dc583ab8b
4 changed files with 118 additions and 62 deletions

View File

@ -167,6 +167,7 @@ namespace Nikse.SubtitleEdit.Controls
public VideoPlayerContainer()
{
SmpteMode = false;
FontSizeFactor = 1.0F;
BorderStyle = BorderStyle.None;
_resources = new System.ComponentModel.ComponentResourceManager(typeof(VideoPlayerContainer));
@ -1336,6 +1337,13 @@ namespace Nikse.SubtitleEdit.Controls
OnButtonClicked?.Invoke(sender, e);
}
/// <summary>
/// Use SMPTE time (drop frame mode)
/// See https://blog.frame.io/2017/07/17/timecode-and-frame-rates/ and
/// https://backlothelp.netflix.com/hc/en-us/articles/215131928-How-do-I-know-whether-to-select-SMPTE-or-MEDIA-for-a-timing-reference-
/// </summary>
public bool SmpteMode { get; set; }
public void RefreshProgressBar()
{
if (VideoPlayer == null)
@ -1354,10 +1362,18 @@ namespace Nikse.SubtitleEdit.Controls
var pos = CurrentPosition;
if (pos > 1000000)
pos = 0;
var span = TimeCode.FromSeconds(pos + Configuration.Settings.General.CurrentVideoOffsetInMs / TimeCode.BaseUnit);
var dur = TimeCode.FromSeconds(Duration + Configuration.Settings.General.CurrentVideoOffsetInMs / TimeCode.BaseUnit);
_labelTimeCode.Text = string.Format("{0} / {1}", span.ToDisplayString(), dur.ToDisplayString());
var dur = TimeCode.FromSeconds(Duration + Configuration.Settings.General.CurrentVideoOffsetInMs / TimeCode.BaseUnit);
if (SmpteMode)
{
var span = TimeCode.FromSeconds(pos + 0.017 + Configuration.Settings.General.CurrentVideoOffsetInMs / TimeCode.BaseUnit);
_labelTimeCode.Text = string.Format("{0} / {1} SMPTE", span.ToDisplayString(), dur.ToDisplayString());
}
else
{
var span = TimeCode.FromSeconds(pos + Configuration.Settings.General.CurrentVideoOffsetInMs / TimeCode.BaseUnit);
_labelTimeCode.Text = string.Format("{0} / {1}", span.ToDisplayString(), dur.ToDisplayString());
}
RefreshPlayPauseButtons();
}
@ -1490,14 +1506,30 @@ namespace Nikse.SubtitleEdit.Controls
get
{
if (VideoPlayer != null)
return VideoPlayer.CurrentPosition;
{
if (SmpteMode)
{
return VideoPlayer.CurrentPosition / 1.001;
}
else
{
return VideoPlayer.CurrentPosition;
}
}
return 0;
}
set
{
if (VideoPlayer != null)
{
VideoPlayer.CurrentPosition = value;
if (SmpteMode)
{
VideoPlayer.CurrentPosition = value * 1.001;
}
else
{
VideoPlayer.CurrentPosition = value;
}
}
else
{
@ -1554,6 +1586,7 @@ namespace Nikse.SubtitleEdit.Controls
DeleteTempMpvFileName();
base.Dispose(disposing);
_retryCount = 3;
SmpteMode = false;
}
public void PauseAndDisposePlayer()
@ -1564,6 +1597,7 @@ namespace Nikse.SubtitleEdit.Controls
VideoPlayer = null;
DeleteTempMpvFileName();
_retryCount = 3;
SmpteMode = false;
}
}

View File

@ -38,9 +38,9 @@
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main));
Nikse.SubtitleEdit.Core.TimeCode timeCode1 = new Nikse.SubtitleEdit.Core.TimeCode();
Nikse.SubtitleEdit.Core.TimeCode timeCode2 = new Nikse.SubtitleEdit.Core.TimeCode();
Nikse.SubtitleEdit.Core.TimeCode timeCode3 = new Nikse.SubtitleEdit.Core.TimeCode();
Nikse.SubtitleEdit.Core.TimeCode timeCode4 = new Nikse.SubtitleEdit.Core.TimeCode();
Nikse.SubtitleEdit.Core.TimeCode timeCode5 = new Nikse.SubtitleEdit.Core.TimeCode();
Nikse.SubtitleEdit.Core.TimeCode timeCode6 = new Nikse.SubtitleEdit.Core.TimeCode();
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.labelStatus = new System.Windows.Forms.ToolStripStatusLabel();
this.toolStripSelected = new System.Windows.Forms.ToolStripStatusLabel();
@ -481,6 +481,7 @@
this.imageListPlayRate = new System.Windows.Forms.ImageList(this.components);
this.timerTextUndo = new System.Windows.Forms.Timer(this.components);
this.timerAlternateTextUndo = new System.Windows.Forms.Timer(this.components);
this.smpteTimeModedropFrameToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.statusStrip1.SuspendLayout();
this.toolStrip1.SuspendLayout();
this.menuStrip1.SuspendLayout();
@ -2010,6 +2011,7 @@
this.toolStripMenuItemSetAudioTrack,
this.closeVideoToolStripMenuItem,
this.setVideoOffsetToolStripMenuItem,
this.smpteTimeModedropFrameToolStripMenuItem,
this.toolStripMenuItemImportSceneChanges,
this.toolStripMenuItemRemoveSceneChanges,
this.toolStripMenuItemAddWaveformBatch,
@ -2028,100 +2030,100 @@
// openVideoToolStripMenuItem
//
this.openVideoToolStripMenuItem.Name = "openVideoToolStripMenuItem";
this.openVideoToolStripMenuItem.Size = new System.Drawing.Size(206, 22);
this.openVideoToolStripMenuItem.Size = new System.Drawing.Size(224, 22);
this.openVideoToolStripMenuItem.Text = "Open video...";
this.openVideoToolStripMenuItem.Click += new System.EventHandler(this.buttonOpenVideo_Click);
//
// toolStripMenuItemOpenVideoFromUrl
//
this.toolStripMenuItemOpenVideoFromUrl.Name = "toolStripMenuItemOpenVideoFromUrl";
this.toolStripMenuItemOpenVideoFromUrl.Size = new System.Drawing.Size(206, 22);
this.toolStripMenuItemOpenVideoFromUrl.Size = new System.Drawing.Size(224, 22);
this.toolStripMenuItemOpenVideoFromUrl.Text = "Open video from url...";
this.toolStripMenuItemOpenVideoFromUrl.Click += new System.EventHandler(this.toolStripMenuItemOpenVideoFromUrl_Click);
//
// toolStripMenuItemOpenDvd
//
this.toolStripMenuItemOpenDvd.Name = "toolStripMenuItemOpenDvd";
this.toolStripMenuItemOpenDvd.Size = new System.Drawing.Size(206, 22);
this.toolStripMenuItemOpenDvd.Size = new System.Drawing.Size(224, 22);
this.toolStripMenuItemOpenDvd.Text = "Open DVD...";
this.toolStripMenuItemOpenDvd.Click += new System.EventHandler(this.toolStripMenuItemOpenDvd_Click);
//
// toolStripMenuItemSetAudioTrack
//
this.toolStripMenuItemSetAudioTrack.Name = "toolStripMenuItemSetAudioTrack";
this.toolStripMenuItemSetAudioTrack.Size = new System.Drawing.Size(206, 22);
this.toolStripMenuItemSetAudioTrack.Size = new System.Drawing.Size(224, 22);
this.toolStripMenuItemSetAudioTrack.Text = "Choose audio track";
//
// closeVideoToolStripMenuItem
//
this.closeVideoToolStripMenuItem.Name = "closeVideoToolStripMenuItem";
this.closeVideoToolStripMenuItem.Size = new System.Drawing.Size(206, 22);
this.closeVideoToolStripMenuItem.Size = new System.Drawing.Size(224, 22);
this.closeVideoToolStripMenuItem.Text = "Close video";
this.closeVideoToolStripMenuItem.Click += new System.EventHandler(this.CloseVideoToolStripMenuItemClick);
//
// setVideoOffsetToolStripMenuItem
//
this.setVideoOffsetToolStripMenuItem.Name = "setVideoOffsetToolStripMenuItem";
this.setVideoOffsetToolStripMenuItem.Size = new System.Drawing.Size(206, 22);
this.setVideoOffsetToolStripMenuItem.Size = new System.Drawing.Size(224, 22);
this.setVideoOffsetToolStripMenuItem.Text = "Set video offset...";
this.setVideoOffsetToolStripMenuItem.Click += new System.EventHandler(this.setVideoOffsetToolStripMenuItem_Click);
//
// toolStripMenuItemImportSceneChanges
//
this.toolStripMenuItemImportSceneChanges.Name = "toolStripMenuItemImportSceneChanges";
this.toolStripMenuItemImportSceneChanges.Size = new System.Drawing.Size(206, 22);
this.toolStripMenuItemImportSceneChanges.Size = new System.Drawing.Size(224, 22);
this.toolStripMenuItemImportSceneChanges.Text = "Import scene changes...";
this.toolStripMenuItemImportSceneChanges.Click += new System.EventHandler(this.toolStripMenuItemImportSceneChanges_Click);
//
// toolStripMenuItemRemoveSceneChanges
//
this.toolStripMenuItemRemoveSceneChanges.Name = "toolStripMenuItemRemoveSceneChanges";
this.toolStripMenuItemRemoveSceneChanges.Size = new System.Drawing.Size(206, 22);
this.toolStripMenuItemRemoveSceneChanges.Size = new System.Drawing.Size(224, 22);
this.toolStripMenuItemRemoveSceneChanges.Text = "Remove scene changes";
this.toolStripMenuItemRemoveSceneChanges.Click += new System.EventHandler(this.toolStripMenuItemRemoveSceneChanges_Click);
//
// toolStripMenuItemAddWaveformBatch
//
this.toolStripMenuItemAddWaveformBatch.Name = "toolStripMenuItemAddWaveformBatch";
this.toolStripMenuItemAddWaveformBatch.Size = new System.Drawing.Size(206, 22);
this.toolStripMenuItemAddWaveformBatch.Size = new System.Drawing.Size(224, 22);
this.toolStripMenuItemAddWaveformBatch.Text = "Add waveform batch...";
this.toolStripMenuItemAddWaveformBatch.Click += new System.EventHandler(this.ToolStripMenuItemAddWaveformBatchClick);
//
// toolStripSeparator5
//
this.toolStripSeparator5.Name = "toolStripSeparator5";
this.toolStripSeparator5.Size = new System.Drawing.Size(203, 6);
this.toolStripSeparator5.Size = new System.Drawing.Size(221, 6);
//
// showhideWaveformToolStripMenuItem
//
this.showhideWaveformToolStripMenuItem.Name = "showhideWaveformToolStripMenuItem";
this.showhideWaveformToolStripMenuItem.Size = new System.Drawing.Size(206, 22);
this.showhideWaveformToolStripMenuItem.Size = new System.Drawing.Size(224, 22);
this.showhideWaveformToolStripMenuItem.Text = "Show/hide waveform";
this.showhideWaveformToolStripMenuItem.Click += new System.EventHandler(this.ShowhideWaveformToolStripMenuItemClick);
//
// showhideVideoToolStripMenuItem
//
this.showhideVideoToolStripMenuItem.Name = "showhideVideoToolStripMenuItem";
this.showhideVideoToolStripMenuItem.Size = new System.Drawing.Size(206, 22);
this.showhideVideoToolStripMenuItem.Size = new System.Drawing.Size(224, 22);
this.showhideVideoToolStripMenuItem.Text = "Show/hide video";
this.showhideVideoToolStripMenuItem.Click += new System.EventHandler(this.toolStripButtonToggleVideo_Click);
//
// toolStripSeparator19
//
this.toolStripSeparator19.Name = "toolStripSeparator19";
this.toolStripSeparator19.Size = new System.Drawing.Size(203, 6);
this.toolStripSeparator19.Size = new System.Drawing.Size(221, 6);
//
// undockVideoControlsToolStripMenuItem
//
this.undockVideoControlsToolStripMenuItem.Name = "undockVideoControlsToolStripMenuItem";
this.undockVideoControlsToolStripMenuItem.Size = new System.Drawing.Size(206, 22);
this.undockVideoControlsToolStripMenuItem.Size = new System.Drawing.Size(224, 22);
this.undockVideoControlsToolStripMenuItem.Text = "Un-dock video controls";
this.undockVideoControlsToolStripMenuItem.Click += new System.EventHandler(this.UndockVideoControlsToolStripMenuItemClick);
//
// redockVideoControlsToolStripMenuItem
//
this.redockVideoControlsToolStripMenuItem.Name = "redockVideoControlsToolStripMenuItem";
this.redockVideoControlsToolStripMenuItem.Size = new System.Drawing.Size(206, 22);
this.redockVideoControlsToolStripMenuItem.Size = new System.Drawing.Size(224, 22);
this.redockVideoControlsToolStripMenuItem.Text = "Re-dock video controls";
this.redockVideoControlsToolStripMenuItem.Visible = false;
this.redockVideoControlsToolStripMenuItem.Click += new System.EventHandler(this.RedockVideoControlsToolStripMenuItemClick);
@ -3272,14 +3274,14 @@
this.timeUpDownVideoPosition.Name = "timeUpDownVideoPosition";
this.timeUpDownVideoPosition.Size = new System.Drawing.Size(96, 27);
this.timeUpDownVideoPosition.TabIndex = 12;
timeCode1.Hours = 0;
timeCode1.Milliseconds = 0;
timeCode1.Minutes = 0;
timeCode1.Seconds = 0;
timeCode1.TimeSpan = System.TimeSpan.Parse("00:00:00");
timeCode1.TotalMilliseconds = 0D;
timeCode1.TotalSeconds = 0D;
this.timeUpDownVideoPosition.TimeCode = timeCode1;
timeCode4.Hours = 0;
timeCode4.Milliseconds = 0;
timeCode4.Minutes = 0;
timeCode4.Seconds = 0;
timeCode4.TimeSpan = System.TimeSpan.Parse("00:00:00");
timeCode4.TotalMilliseconds = 0D;
timeCode4.TotalSeconds = 0D;
this.timeUpDownVideoPosition.TimeCode = timeCode4;
this.timeUpDownVideoPosition.UseVideoOffset = false;
//
// buttonGotoSub
@ -3726,14 +3728,14 @@
this.timeUpDownVideoPositionAdjust.Name = "timeUpDownVideoPositionAdjust";
this.timeUpDownVideoPositionAdjust.Size = new System.Drawing.Size(96, 27);
this.timeUpDownVideoPositionAdjust.TabIndex = 13;
timeCode2.Hours = 0;
timeCode2.Milliseconds = 0;
timeCode2.Minutes = 0;
timeCode2.Seconds = 0;
timeCode2.TimeSpan = System.TimeSpan.Parse("00:00:00");
timeCode2.TotalMilliseconds = 0D;
timeCode2.TotalSeconds = 0D;
this.timeUpDownVideoPositionAdjust.TimeCode = timeCode2;
timeCode5.Hours = 0;
timeCode5.Milliseconds = 0;
timeCode5.Minutes = 0;
timeCode5.Seconds = 0;
timeCode5.TimeSpan = System.TimeSpan.Parse("00:00:00");
timeCode5.TotalMilliseconds = 0D;
timeCode5.TotalSeconds = 0D;
this.timeUpDownVideoPositionAdjust.TimeCode = timeCode5;
this.timeUpDownVideoPositionAdjust.UseVideoOffset = false;
//
// ShowSubtitleTimer
@ -4212,7 +4214,7 @@
this.superscriptToolStripMenuItem,
this.subscriptToolStripMenuItem});
this.contextMenuStripTextBoxListView.Name = "contextMenuStripTextBoxListView";
this.contextMenuStripTextBoxListView.Size = new System.Drawing.Size(243, 424);
this.contextMenuStripTextBoxListView.Size = new System.Drawing.Size(243, 402);
this.contextMenuStripTextBoxListView.Closed += new System.Windows.Forms.ToolStripDropDownClosedEventHandler(this.MenuClosed);
this.contextMenuStripTextBoxListView.Opening += new System.ComponentModel.CancelEventHandler(this.ContextMenuStripTextBoxListViewOpening);
this.contextMenuStripTextBoxListView.Opened += new System.EventHandler(this.MenuOpened);
@ -4469,14 +4471,14 @@
this.timeUpDownStartTime.Name = "timeUpDownStartTime";
this.timeUpDownStartTime.Size = new System.Drawing.Size(96, 27);
this.timeUpDownStartTime.TabIndex = 0;
timeCode3.Hours = 0;
timeCode3.Milliseconds = 0;
timeCode3.Minutes = 0;
timeCode3.Seconds = 0;
timeCode3.TimeSpan = System.TimeSpan.Parse("00:00:00");
timeCode3.TotalMilliseconds = 0D;
timeCode3.TotalSeconds = 0D;
this.timeUpDownStartTime.TimeCode = timeCode3;
timeCode6.Hours = 0;
timeCode6.Milliseconds = 0;
timeCode6.Minutes = 0;
timeCode6.Seconds = 0;
timeCode6.TimeSpan = System.TimeSpan.Parse("00:00:00");
timeCode6.TotalMilliseconds = 0D;
timeCode6.TotalSeconds = 0D;
this.timeUpDownStartTime.TimeCode = timeCode6;
this.timeUpDownStartTime.UseVideoOffset = false;
//
// numericUpDownDuration
@ -4632,6 +4634,7 @@
this.mediaPlayer.ShowMuteButton = true;
this.mediaPlayer.ShowStopButton = true;
this.mediaPlayer.Size = new System.Drawing.Size(219, 246);
this.mediaPlayer.SmpteMode = false;
this.mediaPlayer.SubtitleText = "";
this.mediaPlayer.TabIndex = 5;
this.mediaPlayer.TextRightToLeft = System.Windows.Forms.RightToLeft.No;
@ -4673,6 +4676,13 @@
this.timerAlternateTextUndo.Interval = 700;
this.timerAlternateTextUndo.Tick += new System.EventHandler(this.TimerAlternateTextUndoTick);
//
// sMPTETimeModedropFrameToolStripMenuItem
//
this.smpteTimeModedropFrameToolStripMenuItem.Name = "sMPTETimeModedropFrameToolStripMenuItem";
this.smpteTimeModedropFrameToolStripMenuItem.Size = new System.Drawing.Size(224, 22);
this.smpteTimeModedropFrameToolStripMenuItem.Text = "SMPTE timing (drop frame)";
this.smpteTimeModedropFrameToolStripMenuItem.Click += new System.EventHandler(this.SmpteTimeModedropFrameToolStripMenuItem_Click);
//
// Main
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -5195,5 +5205,6 @@
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemFcpXmlAdvanced;
private System.Windows.Forms.Label labelNextWord;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemOpenVideoFromUrl;
private System.Windows.Forms.ToolStripMenuItem smpteTimeModedropFrameToolStripMenuItem;
}
}

View File

@ -18549,6 +18549,7 @@ namespace Nikse.SubtitleEdit.Forms
closeVideoToolStripMenuItem.Visible = !string.IsNullOrEmpty(_videoFileName);
setVideoOffsetToolStripMenuItem.Visible = !string.IsNullOrEmpty(_videoFileName); // && Configuration.Settings.General.ShowBetaStuff;
smpteTimeModedropFrameToolStripMenuItem.Visible = !string.IsNullOrEmpty(_videoFileName) && Configuration.Settings.General.ShowBetaStuff;
if (!string.IsNullOrEmpty(_videoFileName))
{
if (Configuration.Settings.General.CurrentVideoOffsetInMs > 0)
@ -18559,6 +18560,7 @@ namespace Nikse.SubtitleEdit.Forms
{
setVideoOffsetToolStripMenuItem.Text = _language.Menu.Video.SetVideoOffset;
}
smpteTimeModedropFrameToolStripMenuItem.Checked = mediaPlayer.SmpteMode;
}
toolStripMenuItemOpenVideoFromUrl.Visible = Configuration.Settings.General.VideoPlayer.Trim().Equals("MPV", StringComparison.OrdinalIgnoreCase) &&
@ -21892,6 +21894,12 @@ namespace Nikse.SubtitleEdit.Forms
}
}
}
private void SmpteTimeModedropFrameToolStripMenuItem_Click(object sender, EventArgs e)
{
smpteTimeModedropFrameToolStripMenuItem.Checked = !smpteTimeModedropFrameToolStripMenuItem.Checked;
mediaPlayer.SmpteMode = smpteTimeModedropFrameToolStripMenuItem.Checked;
}
}
}

View File

@ -462,19 +462,19 @@
<data name="toolStripButtonNetflixQualityCheck.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
AABJRU5ErkJggg==
</value>
</data>
@ -665,6 +665,9 @@
<metadata name="toolStripWaveControls.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>650, 56</value>
</metadata>
<metadata name="toolStripWaveControls.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>650, 56</value>
</metadata>
<data name="toolStripButtonWaveformZoomOut.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@ -771,7 +774,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2
CAAAAk1TRnQBSQFMAgEBAgEAAUgBJAFIASQBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
CAAAAk1TRnQBSQFMAgEBAgEAAVABJAFQASQBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA