Browse Source

disable framerate normalization (#208)

* disable framerate normalization

* fix test
pull/210/head
Jason Dove 5 years ago committed by GitHub
parent
commit
141a34933d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 58
      ErsatzTV.Core.Tests/FFmpeg/FFmpegPlaybackSettingsCalculatorTests.cs
  2. 6
      ErsatzTV.Core/FFmpeg/FFmpegPlaybackSettingsCalculator.cs
  3. 2
      ErsatzTV.Core/FFmpeg/FFmpegProcessService.cs
  4. 6
      ErsatzTV/Pages/FFmpegEditor.razor

58
ErsatzTV.Core.Tests/FFmpeg/FFmpegPlaybackSettingsCalculatorTests.cs

@ -467,35 +467,35 @@ namespace ErsatzTV.Core.Tests.FFmpeg @@ -467,35 +467,35 @@ namespace ErsatzTV.Core.Tests.FFmpeg
actual.VideoCodec.Should().Be("copy");
}
[Test]
public void ShouldNot_SetCopyVideoCodec_When_ContentIsCorrectSize_And_CorrectCodec_And_Framerate_ForTransportStream()
{
var ffmpegProfile = new FFmpegProfile
{
NormalizeVideo = true,
Resolution = new Resolution { Width = 1920, Height = 1080 },
VideoCodec = "libx264",
FrameRate = "24"
};
// not anamorphic
var version = new MediaVersion
{ Width = 1920, Height = 1080, SampleAspectRatio = "1:1" };
FFmpegPlaybackSettings actual = _calculator.CalculateSettings(
StreamingMode.TransportStream,
ffmpegProfile,
version,
new MediaStream { Codec = "libx264" },
new MediaStream(),
DateTimeOffset.Now,
DateTimeOffset.Now);
actual.ScaledSize.IsNone.Should().BeTrue();
actual.PadToDesiredResolution.Should().BeFalse();
actual.VideoCodec.Should().NotBe("copy");
}
// disabled while frame rate normalization is unused
// [Test]
// public void ShouldNot_SetCopyVideoCodec_When_ContentIsCorrectSize_And_CorrectCodec_And_Framerate_ForTransportStream()
// {
// var ffmpegProfile = new FFmpegProfile
// {
// NormalizeVideo = true,
// Resolution = new Resolution { Width = 1920, Height = 1080 },
// VideoCodec = "libx264",
// FrameRate = "24"
// };
//
// // not anamorphic
// var version = new MediaVersion
// { Width = 1920, Height = 1080, SampleAspectRatio = "1:1" };
//
// FFmpegPlaybackSettings actual = _calculator.CalculateSettings(
// StreamingMode.TransportStream,
// ffmpegProfile,
// version,
// new MediaStream { Codec = "libx264" },
// new MediaStream(),
// DateTimeOffset.Now,
// DateTimeOffset.Now);
//
// actual.ScaledSize.IsNone.Should().BeTrue();
// actual.PadToDesiredResolution.Should().BeFalse();
// actual.VideoCodec.Should().NotBe("copy");
// }
[Test]
public void

6
ErsatzTV.Core/FFmpeg/FFmpegPlaybackSettingsCalculator.cs

@ -91,9 +91,9 @@ namespace ErsatzTV.Core.FFmpeg @@ -91,9 +91,9 @@ namespace ErsatzTV.Core.FFmpeg
if (ffmpegProfile.NormalizeVideo)
{
result.FrameRate = string.IsNullOrWhiteSpace(ffmpegProfile.FrameRate)
? None
: Some(ffmpegProfile.FrameRate);
// result.FrameRate = string.IsNullOrWhiteSpace(ffmpegProfile.FrameRate)
// ? None
// : Some(ffmpegProfile.FrameRate);
result.VideoTrackTimeScale = 90000;
}

2
ErsatzTV.Core/FFmpeg/FFmpegProcessService.cs

@ -49,7 +49,7 @@ namespace ErsatzTV.Core.FFmpeg @@ -49,7 +49,7 @@ namespace ErsatzTV.Core.FFmpeg
.WithRealtimeOutput(playbackSettings.RealtimeOutput)
.WithSeek(playbackSettings.StreamSeek)
.WithInputCodec(path, playbackSettings.HardwareAcceleration, videoStream.Codec)
.WithFrameRate(playbackSettings.FrameRate)
// .WithFrameRate(playbackSettings.FrameRate)
.WithVideoTrackTimeScale(playbackSettings.VideoTrackTimeScale)
.WithAlignedAudio(playbackSettings.AudioDuration)
.WithNormalizeLoudness(playbackSettings.NormalizeLoudness);

6
ErsatzTV/Pages/FFmpegEditor.razor

@ -58,9 +58,9 @@ @@ -58,9 +58,9 @@
}
</MudSelect>
</MudElement>
<MudElement HtmlTag="div" Class="mt-3">
<MudTextField Disabled="@(!_model.Transcode)" Label="Frame Rate" @bind-Value="_model.FrameRate" For="@(() => _model.FrameRate)" Adornment="Adornment.End" AdornmentText="fps"/>
</MudElement>
@* <MudElement HtmlTag="div" Class="mt-3"> *@
@* <MudTextField Disabled="@(!_model.Transcode)" Label="Frame Rate" @bind-Value="_model.FrameRate" For="@(() => _model.FrameRate)" Adornment="Adornment.End" AdornmentText="fps"/> *@
@* </MudElement> *@
<MudElement HtmlTag="div" Class="mt-3">
<MudCheckBox Disabled="@(!_model.Transcode)" Label="Normalize Video" @bind-Checked="@_model.NormalizeVideo" For="@(() => _model.NormalizeVideo)"/>
</MudElement>

Loading…
Cancel
Save