Skip to content

Commit

Permalink
Freezes if output exists
Browse files Browse the repository at this point in the history
  • Loading branch information
tomaszzmuda committed Oct 14, 2017
1 parent e75417d commit 2a332bb
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 31 deletions.
29 changes: 15 additions & 14 deletions Xabe.FFmpeg.Test/ConversionHelperTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,21 @@ public async Task AddAudio()
Assert.Equal(TimeSpan.FromSeconds(13), outputInfo.VideoProperties.Duration);
}

[Fact]
public async Task ChangeSizeTest()
{
string output = Path.ChangeExtension(Path.GetTempFileName(), Extensions.Mkv);
string input = Resources.MkvWithAudio.FullName;

bool result = await ConversionHelper.ChangeSize(input, output, new VideoSize(640, 360))
.Start();

Assert.True(result);
var outputInfo = new VideoInfo(output);
Assert.Equal(640, outputInfo.VideoProperties.Width);
Assert.Equal(360, outputInfo.VideoProperties.Height);
}

[Fact]
public async Task ExtractAudio()
{
Expand Down Expand Up @@ -86,20 +101,6 @@ public async Task JoinWith()
Assert.Equal("aac", outputInfo.VideoProperties.AudioFormat);
}

[Fact]
public async Task ChangeSizeTest()
{
string output = Path.ChangeExtension(Path.GetTempFileName(), Extensions.Mkv);
string input = Resources.MkvWithAudio.FullName;

bool result = await ConversionHelper.ChangeSize(input, output, new VideoSize(640, 360)).Start();

Assert.True(result);
var outputInfo = new VideoInfo(output);
Assert.Equal(640, outputInfo.VideoProperties.Width);
Assert.Equal(360, outputInfo.VideoProperties.Height);
}

[Fact]
public async Task SnapshotTest()
{
Expand Down
44 changes: 28 additions & 16 deletions Xabe.FFmpeg.Test/ConversionTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,18 @@ public async Task FFmpegDataReceivedTest()
Assert.Contains($"video:365kB audio:567kB subtitle:0kB other streams:0kB global headers:0kB", ffmpegOuput);
}

[Fact]
public async Task FileExistsException()
{
string outputPath = Path.ChangeExtension(Path.GetTempFileName(), Extensions.Mp4);
File.Create(outputPath);
await Assert.ThrowsAsync<IOException>(async () =>
await new Conversion()
.SetInput(Resources.MkvWithAudio)
.SetOutput(outputPath)
.Start());
}

[Fact]
public async Task IncompatibleParametersTest()
{
Expand Down Expand Up @@ -311,22 +323,6 @@ public async Task LoopTest()
Assert.Equal(720, videoInfo.VideoProperties.Height);
}

[Fact]
public async Task MinimumOptionsTest()
{
string outputPath = Path.ChangeExtension(Path.GetTempFileName(), Extensions.Mp4);
bool conversionResult = await new Conversion()
.SetInput(Resources.MkvWithAudio)
.SetOutput(outputPath)
.Start();

Assert.True(conversionResult);
var videoInfo = new VideoInfo(outputPath);
Assert.Equal(TimeSpan.FromSeconds(9), videoInfo.VideoProperties.Duration);
Assert.Equal("h264", videoInfo.VideoProperties.VideoFormat);
Assert.Equal("aac", videoInfo.VideoProperties.AudioFormat);
}

[Fact]
public async Task MultipleTaskTest()
{
Expand Down Expand Up @@ -404,6 +400,22 @@ public async Task ScaleTest()
Assert.Equal(96, videoInfo.VideoProperties.Height);
}

[Fact]
public async Task SimpleConversionTest()
{
string outputPath = Path.ChangeExtension(Path.GetTempFileName(), Extensions.Mp4);
bool conversionResult = await new Conversion()
.SetInput(Resources.MkvWithAudio)
.SetOutput(outputPath)
.Start();

Assert.True(conversionResult);
var videoInfo = new VideoInfo(outputPath);
Assert.Equal(TimeSpan.FromSeconds(9), videoInfo.VideoProperties.Duration);
Assert.Equal("h264", videoInfo.VideoProperties.VideoFormat);
Assert.Equal("aac", videoInfo.VideoProperties.AudioFormat);
}

[Fact]
public async Task SizeTest()
{
Expand Down
4 changes: 4 additions & 0 deletions Xabe.FFmpeg/Conversion.cs
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,10 @@ public async Task<bool> Start(string parameters)
/// <inheritdoc />
public async Task<bool> Start(string parameters, CancellationToken cancellationToken)
{
string outputFile = _output.Substring(1, _output.Length - 2);
if (File.Exists(outputFile))
throw new IOException($"{outputFile} exists.");

var ffmpeg = new FFmpeg();
ffmpeg.OnProgress += OnProgress;
ffmpeg.OnDataReceived += OnDataReceived;
Expand Down
2 changes: 1 addition & 1 deletion Xabe.FFmpeg/ConversionHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ public static IConversion ToOgv(string inputPath, string outputPath, VideoSize s
}

/// <summary>
/// Change video size
/// Change video size
/// </summary>
/// <param name="inputPath">Input path</param>
/// <param name="output">Output path</param>
Expand Down

0 comments on commit 2a332bb

Please sign in to comment.