Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V.5.2.0 #563

Merged
merged 111 commits into from
Mar 5, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
86a5003
Set ContinuousIntegrationBuild to true
rosenbjerg Feb 22, 2023
cc2d989
CI yaml fixes
rosenbjerg Feb 22, 2023
06f5bfa
Update CI paths
rosenbjerg Feb 22, 2023
e9264a3
Update ci.yml
rosenbjerg Feb 22, 2023
3878916
Add chapters to FFProbe
phillipfisher Feb 25, 2023
ba78512
ChapterData.Duration as computed property
rosenbjerg Apr 12, 2023
0ac3514
Verify Chapters property is initialized to non-null in test
rosenbjerg Apr 12, 2023
b248830
feature: custom ffprobe arguments
vfrz Apr 12, 2023
4b0cd92
Add test
vfrz Apr 12, 2023
66c166f
Try fix encoding
vfrz Apr 12, 2023
338274b
Try fix encoding 2
vfrz Apr 12, 2023
bf06a80
Add test again
vfrz Apr 12, 2023
d9c4595
fix: readme minor mistakes.
NaBian Apr 21, 2023
a920ab2
Fix issue where ffmpeg can't be found if x64/x86 folders exist withou…
devedse May 5, 2023
97b9fa6
Merge pull request #433 from NaBian/patch-1
rosenbjerg May 6, 2023
69b01c9
Add CopyCodecArgument
rpaschoal May 16, 2023
643952d
Add "WithCopyCodec" option
rpaschoal May 16, 2023
6c2311c
Update "SaveM3U8Stream" method to use "WithCopyCodec" option
rpaschoal May 16, 2023
6df9495
Merge pull request #445 from rpaschoal/feature/codec-copy
rosenbjerg May 21, 2023
78ca5dd
Merge branch 'main' into main
rosenbjerg Aug 23, 2023
71a5553
Merge branch 'main' into feature/custom-ffprob-arguments
rosenbjerg Aug 24, 2023
4be90f0
Merge branch 'main' into main
rosenbjerg Aug 24, 2023
42f9005
Add support for multiple outputs and tee muxer.
duggaraju Sep 8, 2023
b31c8da
Fix tags container null ref exception
rosenbjerg Oct 5, 2023
5fbe71b
Update dependencies
rosenbjerg Oct 5, 2023
55b1946
Update FFProbeTests.cs
rosenbjerg Oct 5, 2023
3085fa4
Merge pull request #477 from rosenbjerg/bugfix/fix-null-ref-exception…
rosenbjerg Oct 5, 2023
7f283e9
Merge branch 'main' into main
rosenbjerg Oct 5, 2023
54e5d08
Merge branch 'main' into feature/custom-ffprob-arguments
rosenbjerg Oct 5, 2023
4a39e23
Merge branch 'main' into main
rosenbjerg Oct 5, 2023
d229649
Merge branch 'main' into main
rosenbjerg Oct 5, 2023
ed30b14
Align with main branch
rosenbjerg Oct 5, 2023
d30629f
Merge pull request #443 from devedse/main
rosenbjerg Oct 5, 2023
21c02ba
Merge branch 'main' into main
rosenbjerg Oct 5, 2023
20a5b15
Merge pull request #416 from phillipfisher/main
rosenbjerg Oct 5, 2023
f8407bc
Merge branch 'main' into pr/431
rosenbjerg Oct 5, 2023
ed2b950
Merge pull request #431 from vfrz/feature/custom-ffprob-arguments
rosenbjerg Oct 5, 2023
bc6defe
Merge branch 'main' into main
rosenbjerg Oct 5, 2023
d90b482
Merge pull request #473 from duggaraju/main
rosenbjerg Oct 5, 2023
df123bb
Fix: Changed "Chapter" Modell since "Id", "Start" and "End" returned …
vortex852456 Oct 16, 2023
eb221c3
Merge pull request #478 from vortex852456/main
rosenbjerg Oct 25, 2023
ef08fd9
Add HDR color properties support in FFProbe analysis
Jan 29, 2024
8a764ec
Add MultiInputArgument
AddyMills Mar 1, 2024
8f6d1aa
Update MultiInput to IEnumerable
AddyMills Mar 1, 2024
d836501
Change string array to IEnumerable
AddyMills Mar 3, 2024
622db96
Add MultiInput Test
AddyMills Mar 3, 2024
bb341e6
Update one more instance of string[] to IEnumerable
AddyMills Mar 3, 2024
31b117d
Remove whitespace
AddyMills Mar 3, 2024
94db493
Add IEnumerable tests for inputs
AddyMills Mar 4, 2024
82cc971
fix: Snapshots from rotated videos should have correct width/height
Hagfjall Mar 30, 2024
7697e27
made test resize the output
Hagfjall Mar 30, 2024
fe4b79e
fix linting
Hagfjall Mar 30, 2024
9007883
Feat: add av1 support for smaller snapshots and videos
BenediktBertsch Jun 8, 2024
5e62d9b
Merge branch 'main' into chore/deterministic-dotnet-builds
vladjerca Jun 28, 2024
06b9667
>24hr Duration handling added in FFMpegArgumentProcessor
alahane-techtel Jul 1, 2024
745fe2a
removed unnecessary usings
alahane-techtel Jul 1, 2024
8d7d37a
removed unnecessary tests
alahane-techtel Jul 1, 2024
49c2941
Remove JSON vulnerability Reference
AddyMills Sep 1, 2024
f86d999
feat: add video-stream level to ffprobe analysis
Kaaybi Sep 18, 2024
d5a2e5c
chore: bump system.text.json to v8.0.4
Kaaybi Sep 18, 2024
c4232b7
Added Copy option to Audio
brett-baker Nov 1, 2024
72eddfc
Add CropArgument
brett-baker Nov 2, 2024
ff42378
null check on title to not fail Media Analysis
brett-baker Nov 13, 2024
f3be9f2
Update JSON Reference
AddyMills Nov 17, 2024
aabd5cc
Revert "Update JSON Reference"
AddyMills Nov 17, 2024
8309951
Reapply "Update JSON Reference"
AddyMills Nov 17, 2024
cefc8ef
Merge pull request #498 from Tomiscout/main
rosenbjerg Dec 4, 2024
cf91118
Merge branch 'main' into add-video-stream-level-to-ffprobe-analysis
rosenbjerg Dec 4, 2024
9942e54
Merge branch 'main' into main
rosenbjerg Dec 4, 2024
b1d9089
Merge branch 'main' into bump-system-text-json-v8.0.4
rosenbjerg Dec 4, 2024
8636817
Merge branch 'main' into hagfjall/fix-509-snapshot-rotation
rosenbjerg Dec 4, 2024
cf513aa
Use .NET 8 in workflows
rosenbjerg Dec 4, 2024
410e940
Use .NET 8 for Examples and Test
rosenbjerg Dec 4, 2024
79ea2a9
Bump System.Text.Json to 9.0.0
rosenbjerg Dec 4, 2024
63fe3a6
Set ProduceReferenceAssembly to true
rosenbjerg Dec 4, 2024
dc165f9
Bump workflow actions
rosenbjerg Dec 4, 2024
d4dcf86
Use macos-13 runner
rosenbjerg Dec 4, 2024
0cd4e07
Bump test packages
rosenbjerg Dec 4, 2024
cf8f7cc
Call MoveNext before accessing Current
rosenbjerg Dec 4, 2024
a3a3144
Bump codecov/codecov-action and set CODECOV_TOKEN
rosenbjerg Dec 4, 2024
71981ad
Merge pull request #543 from Kaaybi/bump-system-text-json-v8.0.4
rosenbjerg Dec 4, 2024
a41ec3a
Merge branch 'main' into main
rosenbjerg Dec 4, 2024
40a3609
Merge branch 'main' into main
rosenbjerg Dec 4, 2024
e8ef580
Merge branch 'main' into main
rosenbjerg Dec 4, 2024
4a6abef
Merge branch 'main' into add-video-stream-level-to-ffprobe-analysis
rosenbjerg Dec 4, 2024
045068c
Merge branch 'main' into main
rosenbjerg Dec 4, 2024
9b6626f
Merge branch 'main' into hagfjall/fix-509-snapshot-rotation
rosenbjerg Dec 4, 2024
4eb515d
Merge pull request #542 from Kaaybi/add-video-stream-level-to-ffprobe…
rosenbjerg Dec 4, 2024
a4b9a88
Merge pull request #527 from alahane-techtel/main
rosenbjerg Dec 4, 2024
5bddf38
Merge pull request #523 from BenediktBertsch/main
rosenbjerg Dec 4, 2024
5d654af
dotnet format
rosenbjerg Dec 4, 2024
0a3be1e
Merge pull request #510 from Hagfjall/hagfjall/fix-509-snapshot-rotation
rosenbjerg Dec 4, 2024
69535d6
dotnet format
rosenbjerg Dec 4, 2024
10bc004
Merge pull request #546 from brett-baker/main
rosenbjerg Dec 4, 2024
71e3684
Merge pull request #505 from AddyMills/main
rosenbjerg Dec 4, 2024
09faf34
Merge branch 'main' into chore/deterministic-dotnet-builds
rosenbjerg Dec 4, 2024
dedd913
Bump packages
rosenbjerg Dec 4, 2024
217c1d9
Bump extension package nuget version
rosenbjerg Dec 4, 2024
c7f8c19
Specify codecov os
rosenbjerg Dec 4, 2024
9d0f889
Use codecov/codecov-action@v4 instead of 5
rosenbjerg Dec 4, 2024
8656a86
Merge pull request #409 from rosenbjerg/chore/deterministic-dotnet-bu…
rosenbjerg Dec 4, 2024
82387df
Merge branch 'main' into bump-dependencies
rosenbjerg Dec 4, 2024
6836b14
Merge pull request #551 from rosenbjerg/bump-dependencies
rosenbjerg Dec 4, 2024
855e6ec
Bump Instances
rosenbjerg Dec 5, 2024
1c4333e
Merge pull request #552 from rosenbjerg/bump-dependencies--instances
rosenbjerg Dec 5, 2024
f5a8cf5
v 5.2.0
rosenbjerg Feb 16, 2025
cc1d9d4
Only run CI for PRs
rosenbjerg Feb 16, 2025
19c83b8
Update property for Prepare FFMpeg CI step
rosenbjerg Feb 16, 2025
df08334
Specify ffmpeg version used for CI
rosenbjerg Feb 18, 2025
0e9ceee
Use different ffmpeg version
rosenbjerg Feb 18, 2025
37973c3
Use different ffmpeg version
rosenbjerg Feb 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 17 additions & 18 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,53 +1,52 @@
name: CI

on:
push:
branches:
- master
paths:
- .github/workflows/ci.yml
- FFMpegCore/**
- FFMpegCore.Test/**
pull_request:
branches:
- main
- release
paths:
- .github/workflows/ci.yml
- FFMpegCore/**
- FFMpegCore.Test/**
- .github/workflows/ci.yml
- Directory.Build.props
- FFMpegCore/**
- FFMpegCore.Test/**
- FFMpegCore.Extensions.SkiaSharp/**
- FFMpegCore.Extensions.System.Drawing.Common/**

jobs:
ci:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest, ubuntu-latest, macos-latest]
os: [windows-latest, ubuntu-latest, macos-13]
timeout-minutes: 7
steps:

- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Prepare .NET
uses: actions/setup-dotnet@v3
uses: actions/setup-dotnet@v4
with:
dotnet-version: '7.0.x'
dotnet-version: '8.0.x'

- name: Lint with dotnet
run: dotnet format FFMpegCore.sln --severity warn --verify-no-changes

- name: Prepare FFMpeg
uses: FedericoCarboni/setup-ffmpeg@v2
uses: FedericoCarboni/setup-ffmpeg@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
ffmpeg-version: 6.0.1
github-token: ${{ secrets.GITHUB_TOKEN }}

- name: Test with dotnet
run: dotnet test FFMpegCore.sln --collect "XPlat Code Coverage" --logger GitHubActions

- if: matrix.os == 'windows-latest'
name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: true
directory: FFMpegCore.Test/TestResults
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
os: windows
6 changes: 3 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Prepare .NET
uses: actions/setup-dotnet@v3
uses: actions/setup-dotnet@v4
with:
dotnet-version: '7.0.x'
dotnet-version: '8.0.x'

- name: Build solution
run: dotnet pack FFMpegCore.sln -c Release
Expand Down
9 changes: 9 additions & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,14 @@
<PackageProjectUrl>https://github.com/rosenbjerg/FFMpegCore</PackageProjectUrl>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<NeutralLanguage>en</NeutralLanguage>

<PublishRepositoryUrl>true</PublishRepositoryUrl>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
</PropertyGroup>

<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
</PropertyGroup>
</Project>
2 changes: 1 addition & 1 deletion FFMpegCore.Examples/FFMpegCore.Examples.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<TargetFramework>net8.0</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,17 @@
<PropertyGroup>
<IsPackable>true</IsPackable>
<Description>Image extension for FFMpegCore using SkiaSharp</Description>
<PackageVersion>5.0.0</PackageVersion>
<PackageVersion>5.0.2</PackageVersion>
<PackageOutputPath>../nupkg</PackageOutputPath>
<PackageReleaseNotes>
</PackageReleaseNotes>
<PackageReleaseNotes>Bump dependencies</PackageReleaseNotes>
<PackageTags>ffmpeg ffprobe convert video audio mediafile resize analyze muxing skiasharp</PackageTags>
<Authors>Malte Rosenbjerg, Vlad Jerca, Max Bagryantsev, Dimitri Vranken</Authors>
<ProduceReferenceAssembly>true</ProduceReferenceAssembly>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="SkiaSharp" Version="2.88.3" />
<PackageReference Include="SkiaSharp.NativeAssets.Linux.NoDependencies" Version="2.88.3" />
<PackageReference Include="SkiaSharp" Version="3.116.1" />
<PackageReference Include="SkiaSharp.NativeAssets.Linux.NoDependencies" Version="3.116.1" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@
<PropertyGroup>
<IsPackable>true</IsPackable>
<Description>Image extension for FFMpegCore using System.Common.Drawing</Description>
<PackageVersion>5.0.0</PackageVersion>
<PackageVersion>5.0.2</PackageVersion>
<PackageOutputPath>../nupkg</PackageOutputPath>
<PackageReleaseNotes>
</PackageReleaseNotes>
<PackageReleaseNotes>Bump dependencies</PackageReleaseNotes>
<PackageTags>ffmpeg ffprobe convert video audio mediafile resize analyze muxing</PackageTags>
<Authors>Malte Rosenbjerg, Vlad Jerca, Max Bagryantsev</Authors>
<ProduceReferenceAssembly>true</ProduceReferenceAssembly>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="System.Drawing.Common" Version="7.0.0"/>
<PackageReference Include="System.Drawing.Common" Version="9.0.2" />
</ItemGroup>

<ItemGroup>
Expand Down
122 changes: 122 additions & 0 deletions FFMpegCore.Test/ArgumentBuilderTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ namespace FFMpegCore.Test
public class ArgumentBuilderTest
{
private readonly string[] _concatFiles = { "1.mp4", "2.mp4", "3.mp4", "4.mp4" };
private readonly string[] _multiFiles = { "1.mp3", "2.mp3", "3.mp3", "4.mp3" };

[TestMethod]
public void Builder_BuildString_IO_1()
Expand Down Expand Up @@ -571,5 +572,126 @@ public void Builder_BuildString_GifPalette_NullSize_FpsSupplied()
-i "input.mp4" -filter_complex "[{streamIndex}:v] fps=10,split [a][b];[a] palettegen=max_colors=32 [p];[b][p] paletteuse=dither=bayer" "output.gif"
""", str);
}

[TestMethod]
public void Builder_BuildString_MultiOutput()
{
var str = FFMpegArguments.FromFileInput("input.mp4")
.MultiOutput(args => args
.OutputToFile("output.mp4", overwrite: true, args => args.CopyChannel())
.OutputToFile("output.ts", overwrite: false, args => args.CopyChannel().ForceFormat("mpegts"))
.OutputToUrl("http://server/path", options => options.ForceFormat("webm")))
.Arguments;
Assert.AreEqual($"""
-i "input.mp4" -c:a copy -c:v copy "output.mp4" -y -c:a copy -c:v copy -f mpegts "output.ts" -f webm http://server/path
""", str);
}

[TestMethod]
public void Builder_BuildString_MBROutput()
{
var str = FFMpegArguments.FromFileInput("input.mp4")
.MultiOutput(args => args
.OutputToFile("sd.mp4", overwrite: true, args => args.Resize(1200, 720))
.OutputToFile("hd.mp4", overwrite: false, args => args.Resize(1920, 1080)))
.Arguments;
Assert.AreEqual($"""
-i "input.mp4" -s 1200x720 "sd.mp4" -y -s 1920x1080 "hd.mp4"
""", str);
}

[TestMethod]
public void Builder_BuildString_TeeOutput()
{
var str = FFMpegArguments.FromFileInput("input.mp4")
.OutputToTee(args => args
.OutputToFile("output.mp4", overwrite: false, args => args.WithFastStart())
.OutputToUrl("http://server/path", options => options.ForceFormat("mpegts").SelectStream(0, channel: Channel.Video)))
.Arguments;
Assert.AreEqual($"""
-i "input.mp4" -f tee "[movflags=faststart]output.mp4|[f=mpegts:select=\'0:v:0\']http://server/path"
""", str);
}
[TestMethod]
public void Builder_BuildString_MultiInput()
{
var audioStreams = string.Join("", _multiFiles.Select((item, index) => $"[{index}:0]"));
var mixFilter = $"{audioStreams}amix=inputs={_multiFiles.Length}:duration=longest:dropout_transition=1:normalize=0[final]";
var ffmpegArgs = $"-filter_complex \"{mixFilter}\" -map \"[final]\"";
var str = FFMpegArguments
.FromFileInput(_multiFiles)
.OutputToFile("output.mp3", overwrite: true, options => options
.WithCustomArgument(ffmpegArgs)
.WithAudioCodec(AudioCodec.LibMp3Lame) // Set the audio codec to MP3
.WithAudioBitrate(128) // Set the bitrate to 128kbps
.WithAudioSamplingRate(48000) // Set the sample rate to 48kHz
.WithoutMetadata() // Remove metadata
.WithCustomArgument("-ac 2 -write_xing 0 -id3v2_version 0")) // Force 2 Channels
.Arguments;
Assert.AreEqual($"-i \"1.mp3\" -i \"2.mp3\" -i \"3.mp3\" -i \"4.mp3\" -filter_complex \"[0:0][1:0][2:0][3:0]amix=inputs=4:duration=longest:dropout_transition=1:normalize=0[final]\" -map \"[final]\" -c:a libmp3lame -b:a 128k -ar 48000 -map_metadata -1 -ac 2 -write_xing 0 -id3v2_version 0 \"output.mp3\" -y", str);
}
[TestMethod]
public void Pre_VerifyExists_AllFilesExist()
{
// Arrange
var filePaths = new List<string>
{
Path.GetTempFileName(),
Path.GetTempFileName(),
Path.GetTempFileName()
};
var argument = new MultiInputArgument(true, filePaths);
try
{
// Act & Assert
argument.Pre(); // No exception should be thrown
}
finally
{
// Cleanup
foreach (var filePath in filePaths)
{
File.Delete(filePath);
}
}
}

[TestMethod]
public void Pre_VerifyExists_SomeFilesNotExist()
{
// Arrange
var filePaths = new List<string>
{
Path.GetTempFileName(),
"file2.mp4",
"file3.mp4"
};
var argument = new MultiInputArgument(true, filePaths);
try
{
// Act & Assert
Assert.ThrowsException<FileNotFoundException>(() => argument.Pre());
}
finally
{
// Cleanup
File.Delete(filePaths[0]);
}
}

[TestMethod]
public void Pre_VerifyExists_NoFilesExist()
{
// Arrange
var filePaths = new List<string>
{
"file1.mp4",
"file2.mp4",
"file3.mp4"
};
var argument = new MultiInputArgument(true, filePaths);
// Act & Assert
Assert.ThrowsException<FileNotFoundException>(() => argument.Pre());
}
}
}
22 changes: 14 additions & 8 deletions FFMpegCore.Test/FFMpegCore.Test.csproj
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<TargetFramework>net8.0</TargetFramework>
<IsPackable>false</IsPackable>
<Nullable>disable</Nullable>
<LangVersion>default</LangVersion>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="coverlet.collector" Version="3.2.0">
<PackageReference Include="coverlet.collector" Version="6.0.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="FluentAssertions" Version="6.10.0" />
<PackageReference Include="GitHubActionsTestLogger" Version="2.0.1">
<PackageReference Include="FluentAssertions" Version="8.0.1" />
<PackageReference Include="GitHubActionsTestLogger" Version="2.4.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.0.2" />
<PackageReference Include="MSTest.TestFramework" Version="3.0.2" />
<PackageReference Include="SkiaSharp" Version="2.88.3" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.13.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.8.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.8.0" />
<PackageReference Include="SkiaSharp" Version="3.116.1" />
</ItemGroup>

<ItemGroup>
Expand Down Expand Up @@ -51,9 +51,15 @@
<None Update="Resources\input_3sec_rotation_90deg.mp4">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Resources\input_3sec_rotation_negative_90deg.mp4">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Resources\input_audio_only_10sec.mp4">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Resources\input_hdr.mov">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Resources\input_video_only_3sec.mp4">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
Expand Down
Loading
Loading