mirror of
https://github.com/rosenbjerg/FFMpegCore.git
synced 2024-11-14 02:04:14 +01:00
dd2bfac840
Former-commit-id: 1b2af5fd1f
80 lines
3.1 KiB
C#
80 lines
3.1 KiB
C#
using FFMpegCore.Builders.MetaData;
|
|
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Text.RegularExpressions;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace FFMpegCore.Test
|
|
{
|
|
[TestClass]
|
|
public class MetaDataBuilderTests
|
|
{
|
|
[TestMethod]
|
|
public void TestMetaDataBuilderIntegrity()
|
|
{
|
|
var source = new
|
|
{
|
|
Album = "Kanon und Gigue",
|
|
Artist = "Pachelbel",
|
|
Title = "Kanon und Gigue in D-Dur",
|
|
Copyright = "Copyright Lol",
|
|
Composer = "Pachelbel",
|
|
Genres = new[] { "Synthwave", "Classics" },
|
|
Tracks = new[]
|
|
{
|
|
new { Duration = TimeSpan.FromSeconds(10), Title = "Chapter 01" },
|
|
new { Duration = TimeSpan.FromSeconds(10), Title = "Chapter 02" },
|
|
new { Duration = TimeSpan.FromSeconds(10), Title = "Chapter 03" },
|
|
new { Duration = TimeSpan.FromSeconds(10), Title = "Chapter 04" },
|
|
}
|
|
};
|
|
|
|
var builder = new MetaDataBuilder()
|
|
.WithTitle(source.Title)
|
|
.WithArtists(source.Artist)
|
|
.WithComposers(source.Composer)
|
|
.WithAlbumArtists(source.Artist)
|
|
.WithGenres(source.Genres)
|
|
.WithCopyright(source.Copyright)
|
|
.AddChapters(source.Tracks, x => (x.Duration, x.Title));
|
|
|
|
var metadata = builder.Build();
|
|
var serialized = MetaDataSerializer.Instance.Serialize(metadata);
|
|
|
|
Assert.IsTrue(serialized.StartsWith(";FFMETADATA1", StringComparison.OrdinalIgnoreCase));
|
|
Assert.IsTrue(serialized.Contains("genre=Synthwave; Classics", StringComparison.OrdinalIgnoreCase));
|
|
Assert.IsTrue(serialized.Contains("title=Chapter 01", StringComparison.OrdinalIgnoreCase));
|
|
Assert.IsTrue(serialized.Contains("album_artist=Pachelbel", StringComparison.OrdinalIgnoreCase));
|
|
}
|
|
|
|
[TestMethod]
|
|
public void TestMapMetadata()
|
|
{
|
|
//-i "whaterver0" // index: 0
|
|
//-f concat -safe 0
|
|
//-i "\AppData\Local\Temp\concat_b511f2bf-c4af-4f71-b9bd-24d706bf4861.txt" // index: 1
|
|
//-i "\AppData\Local\Temp\metadata_210d3259-3d5c-43c8-9786-54b5c414fa70.txt" // index: 2
|
|
//-map_metadata 2
|
|
|
|
var text0 = FFMpegArguments.FromFileInput("whaterver0")
|
|
.AddMetaData("WhatEver3")
|
|
.Text;
|
|
|
|
var text1 = FFMpegArguments.FromFileInput("whaterver0")
|
|
.AddDemuxConcatInput(new[] { "whaterver", "whaterver1" })
|
|
.AddMetaData("WhatEver3")
|
|
.Text;
|
|
|
|
|
|
|
|
Assert.IsTrue(Regex.IsMatch(text0, "metadata_[0-9a-f-]+\\.txt\" -map_metadata 1"), "map_metadata index is calculated incorrectly.");
|
|
Assert.IsTrue(Regex.IsMatch(text1, "metadata_[0-9a-f-]+\\.txt\" -map_metadata 2"), "map_metadata index is calculated incorrectly.");
|
|
}
|
|
}
|
|
}
|