mirror of
https://github.com/rosenbjerg/FFMpegCore.git
synced 2024-11-10 08:34:12 +01:00
Bump nuget version and cleanup
This commit is contained in:
parent
3ca1e983a6
commit
54e216d3e0
8 changed files with 37 additions and 77 deletions
|
@ -4,6 +4,7 @@
|
||||||
<IsPackable>true</IsPackable>
|
<IsPackable>true</IsPackable>
|
||||||
<Description>Image extension for FFMpegCore using SkiaSharp</Description>
|
<Description>Image extension for FFMpegCore using SkiaSharp</Description>
|
||||||
<PackageVersion>5.0.0</PackageVersion>
|
<PackageVersion>5.0.0</PackageVersion>
|
||||||
|
<PackageOutputPath>../nupkg</PackageOutputPath>
|
||||||
<PackageReleaseNotes>
|
<PackageReleaseNotes>
|
||||||
</PackageReleaseNotes>
|
</PackageReleaseNotes>
|
||||||
<PackageTags>ffmpeg ffprobe convert video audio mediafile resize analyze muxing skiasharp</PackageTags>
|
<PackageTags>ffmpeg ffprobe convert video audio mediafile resize analyze muxing skiasharp</PackageTags>
|
||||||
|
|
|
@ -12,21 +12,21 @@
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="FluentAssertions" Version="6.9.0"/>
|
<PackageReference Include="FluentAssertions" Version="6.10.0" />
|
||||||
<PackageReference Include="GitHubActionsTestLogger" Version="2.0.1">
|
<PackageReference Include="GitHubActionsTestLogger" Version="2.0.1">
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1"/>
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
|
||||||
<PackageReference Include="MSTest.TestAdapter" Version="3.0.2"/>
|
<PackageReference Include="MSTest.TestAdapter" Version="3.0.2" />
|
||||||
<PackageReference Include="MSTest.TestFramework" Version="3.0.2"/>
|
<PackageReference Include="MSTest.TestFramework" Version="3.0.2" />
|
||||||
<PackageReference Include="SkiaSharp" Version="2.88.3" />
|
<PackageReference Include="SkiaSharp" Version="2.88.3" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\FFMpegCore.Extensions.SkiaSharp\FFMpegCore.Extensions.SkiaSharp.csproj" />
|
<ProjectReference Include="..\FFMpegCore.Extensions.SkiaSharp\FFMpegCore.Extensions.SkiaSharp.csproj" />
|
||||||
<ProjectReference Include="..\FFMpegCore.Extensions.System.Drawing.Common\FFMpegCore.Extensions.System.Drawing.Common.csproj"/>
|
<ProjectReference Include="..\FFMpegCore.Extensions.System.Drawing.Common\FFMpegCore.Extensions.System.Drawing.Common.csproj" />
|
||||||
<ProjectReference Include="..\FFMpegCore\FFMpegCore.csproj"/>
|
<ProjectReference Include="..\FFMpegCore\FFMpegCore.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
15
FFMpegCore/Extend/TimeSpanExtensions.cs
Normal file
15
FFMpegCore/Extend/TimeSpanExtensions.cs
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
namespace FFMpegCore.Extend;
|
||||||
|
|
||||||
|
public static class TimeSpanExtensions
|
||||||
|
{
|
||||||
|
public static string ToLongString(this TimeSpan timeSpan)
|
||||||
|
{
|
||||||
|
var hours = timeSpan.Hours;
|
||||||
|
if (timeSpan.Days > 0)
|
||||||
|
{
|
||||||
|
hours += timeSpan.Days * 24;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $"-ss {hours:00}:{timeSpan.Minutes:00}:{timeSpan.Seconds:00}.{timeSpan.Milliseconds:000}";
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,6 @@
|
||||||
namespace FFMpegCore.Arguments
|
using FFMpegCore.Extend;
|
||||||
|
|
||||||
|
namespace FFMpegCore.Arguments
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents seek parameter
|
/// Represents seek parameter
|
||||||
|
@ -12,25 +14,6 @@ public EndSeekArgument(TimeSpan? seekTo)
|
||||||
SeekTo = seekTo;
|
SeekTo = seekTo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Text
|
public string Text => SeekTo.HasValue ? $"-to {SeekTo.Value.ToLongString()}" : string.Empty;
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (SeekTo.HasValue)
|
|
||||||
{
|
|
||||||
var hours = SeekTo.Value.Hours;
|
|
||||||
if (SeekTo.Value.Days > 0)
|
|
||||||
{
|
|
||||||
hours += SeekTo.Value.Days * 24;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $"-to {hours.ToString("00")}:{SeekTo.Value.Minutes.ToString("00")}:{SeekTo.Value.Seconds.ToString("00")}.{SeekTo.Value.Milliseconds.ToString("000")}";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return string.Empty;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
namespace FFMpegCore.Arguments
|
using FFMpegCore.Extend;
|
||||||
|
|
||||||
|
namespace FFMpegCore.Arguments
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents seek parameter
|
/// Represents seek parameter
|
||||||
|
@ -12,25 +14,6 @@ public SeekArgument(TimeSpan? seekTo)
|
||||||
SeekTo = seekTo;
|
SeekTo = seekTo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Text
|
public string Text => SeekTo.HasValue ? $"-ss {SeekTo.Value.ToLongString()}" : string.Empty;
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (SeekTo.HasValue)
|
|
||||||
{
|
|
||||||
var hours = SeekTo.Value.Hours;
|
|
||||||
if (SeekTo.Value.Days > 0)
|
|
||||||
{
|
|
||||||
hours += SeekTo.Value.Days * 24;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $"-ss {hours.ToString("00")}:{SeekTo.Value.Minutes.ToString("00")}:{SeekTo.Value.Seconds.ToString("00")}.{SeekTo.Value.Milliseconds.ToString("000")}";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return string.Empty;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<IsPackable>true</IsPackable>
|
<IsPackable>true</IsPackable>
|
||||||
<Description>A .NET Standard FFMpeg/FFProbe wrapper for easily integrating media analysis and conversion into your .NET applications</Description>
|
<Description>A .NET Standard FFMpeg/FFProbe wrapper for easily integrating media analysis and conversion into your .NET applications</Description>
|
||||||
<PackageVersion>5.0.1</PackageVersion>
|
<PackageVersion>5.0.2</PackageVersion>
|
||||||
<PackageOutputPath>../nupkg</PackageOutputPath>
|
<PackageOutputPath>../nupkg</PackageOutputPath>
|
||||||
<PackageReleaseNotes>
|
<PackageReleaseNotes>
|
||||||
</PackageReleaseNotes>
|
</PackageReleaseNotes>
|
||||||
|
@ -13,12 +13,12 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="..\README.md" Pack="true" PackagePath="\"/>
|
<None Include="..\README.md" Pack="true" PackagePath="\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Instances" Version="3.0.0"/>
|
<PackageReference Include="Instances" Version="3.0.0" />
|
||||||
<PackageReference Include="System.Text.Json" Version="7.0.1"/>
|
<PackageReference Include="System.Text.Json" Version="7.0.2" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -50,7 +50,7 @@ private MediaFormat ParseFormat(Format analysisFormat)
|
||||||
{
|
{
|
||||||
var bitDepth = int.TryParse(stream.BitsPerRawSample, out var bprs) ? bprs :
|
var bitDepth = int.TryParse(stream.BitsPerRawSample, out var bprs) ? bprs :
|
||||||
stream.BitsPerSample;
|
stream.BitsPerSample;
|
||||||
return bitDepth == 0 ? null : (int?)bitDepth;
|
return bitDepth == 0 ? null : bitDepth;
|
||||||
}
|
}
|
||||||
|
|
||||||
private VideoStream ParseVideoStream(FFProbeStream stream)
|
private VideoStream ParseVideoStream(FFProbeStream stream)
|
||||||
|
@ -126,7 +126,7 @@ public static class MediaAnalysisUtils
|
||||||
{
|
{
|
||||||
private static readonly Regex DurationRegex = new(@"^(\d+):(\d{1,2}):(\d{1,2})\.(\d{1,3})", RegexOptions.Compiled);
|
private static readonly Regex DurationRegex = new(@"^(\d+):(\d{1,2}):(\d{1,2})\.(\d{1,3})", RegexOptions.Compiled);
|
||||||
|
|
||||||
internal static Dictionary<string, string>? ToCaseInsensitive(this Dictionary<string, string>? dictionary)
|
internal static Dictionary<string, string> ToCaseInsensitive(this Dictionary<string, string>? dictionary)
|
||||||
{
|
{
|
||||||
return dictionary?.ToDictionary(tag => tag.Key, tag => tag.Value, StringComparer.OrdinalIgnoreCase) ?? new Dictionary<string, string>();
|
return dictionary?.ToDictionary(tag => tag.Key, tag => tag.Value, StringComparer.OrdinalIgnoreCase) ?? new Dictionary<string, string>();
|
||||||
}
|
}
|
||||||
|
@ -195,11 +195,6 @@ public static TimeSpan ParseDuration(string duration)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TimeSpan ParseDuration(FFProbeStream ffProbeStream)
|
|
||||||
{
|
|
||||||
return ParseDuration(ffProbeStream.Duration);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int ParseRotation(FFProbeStream fFProbeStream)
|
public static int ParseRotation(FFProbeStream fFProbeStream)
|
||||||
{
|
{
|
||||||
var displayMatrixSideData = fFProbeStream.SideData?.Find(item => item.TryGetValue("side_data_type", out var rawSideDataType) && rawSideDataType.ToString() == "Display Matrix");
|
var displayMatrixSideData = fFProbeStream.SideData?.Find(item => item.TryGetValue("side_data_type", out var rawSideDataType) && rawSideDataType.ToString() == "Display Matrix");
|
||||||
|
|
|
@ -3,27 +3,10 @@
|
||||||
|
|
||||||
namespace FFMpegCore.Helpers
|
namespace FFMpegCore.Helpers
|
||||||
{
|
{
|
||||||
public class FFProbeHelper
|
public static class FFProbeHelper
|
||||||
{
|
{
|
||||||
private static bool _ffprobeVerified;
|
private static bool _ffprobeVerified;
|
||||||
|
|
||||||
public static int Gcd(int first, int second)
|
|
||||||
{
|
|
||||||
while (first != 0 && second != 0)
|
|
||||||
{
|
|
||||||
if (first > second)
|
|
||||||
{
|
|
||||||
first -= second;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
second -= first;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return first == 0 ? second : first;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void RootExceptionCheck()
|
public static void RootExceptionCheck()
|
||||||
{
|
{
|
||||||
if (GlobalFFOptions.Current.BinaryFolder == null)
|
if (GlobalFFOptions.Current.BinaryFolder == null)
|
||||||
|
|
Loading…
Reference in a new issue