170 lines
10 KiB
XML
170 lines
10 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
<Import Project="$(SolutionDir)/Tixl.props" />
|
|
<PropertyGroup>
|
|
<TargetFramework>net10.0-windows</TargetFramework>
|
|
<ImplicitUsings>disable</ImplicitUsings>
|
|
<Nullable>disable</Nullable>
|
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
|
<RootNamespace>Video</RootNamespace>
|
|
<AssemblyName>$(RootNamespace)</AssemblyName>
|
|
<Configurations>Debug;Release</Configurations>
|
|
<Platforms>AnyCPU</Platforms>
|
|
<VersionPrefix>1.0.0</VersionPrefix>
|
|
<HomeGuid>00000000-0000-0000-0000-000000000000</HomeGuid>
|
|
<EditorVersion>4.2.0</EditorVersion>
|
|
<IsEditorOnly>false</IsEditorOnly>
|
|
<DisableTransitiveProjectReferences>true</DisableTransitiveProjectReferences>
|
|
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
|
<Deterministic>true</Deterministic>
|
|
<NoWarn>$(NoWarn);NU1900;NU1701</NoWarn>
|
|
<PackageId>eb0ba418-08c9-444a-ba70-6abc7b5b1d47</PackageId>
|
|
<IsArchived>false</IsArchived>
|
|
</PropertyGroup>
|
|
<!-- Operator global usings — mirrors Lib so the FFmpeg video operators compile unchanged when moved here. -->
|
|
<ItemGroup>
|
|
<Using Include="System" />
|
|
<Using Include="System.Numerics" />
|
|
<Using Include="System.Linq" />
|
|
<Using Include="System.Linq.Enumerable" Static="True" />
|
|
<Using Include="System.Collections" />
|
|
<Using Include="System.Linq.Expressions" />
|
|
<Using Include="System.Collections.Generic" />
|
|
<Using Include="System.Collections.Concurrent" />
|
|
<Using Include="System.Collections.ObjectModel" />
|
|
<Using Include="System.Diagnostics.CodeAnalysis" />
|
|
<Using Include="System.Runtime.CompilerServices" />
|
|
<Using Include="System.Text" />
|
|
<Using Include="System.Net" />
|
|
<Using Include="System.Net.Http" />
|
|
<Using Include="System.Threading.Tasks" />
|
|
<Using Include="System.IO" />
|
|
<Using Include="T3.Core.Logging" />
|
|
<Using Include="System.Runtime.InteropServices" />
|
|
<Using Include="T3.Core.Operator" />
|
|
<Using Include="T3.Core.Operator.Attributes" />
|
|
<Using Include="T3.Core.Operator.Slots" />
|
|
<Using Include="T3.Core.DataTypes" />
|
|
<Using Include="T3.Core.Operator.Interfaces" />
|
|
<Using Include="T3.Core.Resource" />
|
|
<Using Alias="Buffer" Include="SharpDX.Direct3D11.Buffer" />
|
|
<Using Alias="ShaderResourceView" Include="SharpDX.Direct3D11.ShaderResourceView" />
|
|
<Using Alias="UnorderedAccessView" Include="SharpDX.Direct3D11.UnorderedAccessView" />
|
|
<Using Alias="CullMode" Include="SharpDX.Direct3D11.CullMode" />
|
|
<Using Alias="FillMode" Include="SharpDX.Direct3D11.FillMode" />
|
|
<Using Alias="TextureAddressMode" Include="SharpDX.Direct3D11.TextureAddressMode" />
|
|
<Using Alias="Filter" Include="SharpDX.Direct3D11.Filter" />
|
|
<Using Alias="Format" Include="SharpDX.DXGI.Format" />
|
|
<Using Alias="Texture2DDescription" Include="SharpDX.Direct3D11.Texture2DDescription" />
|
|
<Using Alias="Texture3DDescription" Include="SharpDX.Direct3D11.Texture3DDescription" />
|
|
<Using Alias="RenderTargetBlendDescription" Include="SharpDX.Direct3D11.RenderTargetBlendDescription" />
|
|
<Using Alias="SamplerState" Include="SharpDX.Direct3D11.SamplerState" />
|
|
<Using Alias="UnorderedAccessViewBufferFlags" Include="SharpDX.Direct3D11.UnorderedAccessViewBufferFlags" />
|
|
<Using Alias="RawRectangle" Include="SharpDX.Mathematics.Interop.RawRectangle" />
|
|
<Using Alias="RawViewportF" Include="SharpDX.Mathematics.Interop.RawViewportF" />
|
|
<Using Alias="ResourceUsage" Include="SharpDX.Direct3D11.ResourceUsage" />
|
|
<Using Alias="ResourceOptionFlags" Include="SharpDX.Direct3D11.ResourceOptionFlags" />
|
|
<Using Alias="InputLayout" Include="SharpDX.Direct3D11.InputLayout" />
|
|
<Using Alias="PrimitiveTopology" Include="SharpDX.Direct3D.PrimitiveTopology" />
|
|
<Using Alias="BlendState" Include="SharpDX.Direct3D11.BlendState" />
|
|
<Using Alias="Comparison" Include="SharpDX.Direct3D11.Comparison" />
|
|
<Using Alias="BlendOption" Include="SharpDX.Direct3D11.BlendOption" />
|
|
<Using Alias="BlendOperation" Include="SharpDX.Direct3D11.BlendOperation" />
|
|
<Using Alias="BindFlags" Include="SharpDX.Direct3D11.BindFlags" />
|
|
<Using Alias="ColorWriteMaskFlags" Include="SharpDX.Direct3D11.ColorWriteMaskFlags" />
|
|
<Using Alias="CpuAccessFlags" Include="SharpDX.Direct3D11.CpuAccessFlags" />
|
|
<Using Alias="DepthStencilView" Include="SharpDX.Direct3D11.DepthStencilView" />
|
|
<Using Alias="DepthStencilState" Include="SharpDX.Direct3D11.DepthStencilState" />
|
|
<Using Alias="RenderTargetView" Include="SharpDX.Direct3D11.RenderTargetView" />
|
|
<Using Alias="RasterizerState" Include="SharpDX.Direct3D11.RasterizerState" />
|
|
<Using Alias="Point" Include="T3.Core.DataTypes.Point" />
|
|
<Using Alias="Texture2D" Include="T3.Core.DataTypes.Texture2D" />
|
|
<Using Alias="Texture3D" Include="T3.Core.DataTypes.Texture3D" />
|
|
<Using Alias="Vector2" Include="System.Numerics.Vector2" />
|
|
<Using Alias="Vector3" Include="System.Numerics.Vector3" />
|
|
<Using Alias="Vector4" Include="System.Numerics.Vector4" />
|
|
<Using Alias="Matrix4x4" Include="System.Numerics.Matrix4x4" />
|
|
<Using Alias="Quaternion" Include="System.Numerics.Quaternion" />
|
|
<Using Alias="Int2" Include="T3.Core.DataTypes.Vector.Int2" />
|
|
<Using Alias="Int3" Include="T3.Core.DataTypes.Vector.Int3" />
|
|
<Using Alias="Int4" Include="T3.Core.DataTypes.Vector.Int4" />
|
|
<Using Alias="ResourceManager" Include="T3.Core.Resource.ResourceManager" />
|
|
<Using Alias="ComputeShader" Include="T3.Core.DataTypes.ComputeShader" />
|
|
<Using Alias="PixelShader" Include="T3.Core.DataTypes.PixelShader" />
|
|
<Using Alias="VertexShader" Include="T3.Core.DataTypes.VertexShader" />
|
|
<Using Alias="GeometryShader" Include="T3.Core.DataTypes.GeometryShader" />
|
|
<Using Alias="SampleDescription" Include="SharpDX.DXGI.SampleDescription" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\..\Core\Core.csproj" Private="false" PrivateAssets="all" />
|
|
<ProjectReference Include="..\..\Logging\Logging.csproj" Private="false" PrivateAssets="all" />
|
|
<!-- FFmpeg video services (decode + encode). -->
|
|
<ProjectReference Include="..\..\VideoServices\VideoServices.csproj" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<!-- FFmpeg natives for this package's video operators. Sdcb.FFmpeg = LGPL managed bindings; the native
|
|
shared DLLs come from FFmpeg.LGPL (BtbN lgpl-shared, avcodec-61 = FFmpeg 7.x, no gpl/nonfree flags),
|
|
NOT Sdcb.FFmpeg.runtime.windows-x64 (GPL, rejected by FfmpegLibrary's guardrail). Pinned to 20250329
|
|
(newest avcodec-61); 20250330 bumped to avcodec-62, which the Sdcb 7.0.0 bindings don't match. -->
|
|
<PackageReference Include="Sdcb.FFmpeg" Version="7.0.0" />
|
|
<PackageReference Include="FFmpeg.LGPL" Version="20250329.1.0" />
|
|
</ItemGroup>
|
|
<ItemGroup Label="OperatorPackages">
|
|
<Operators Include="lib" Version="1.0.0" ResourcesOnly="False" />
|
|
<Operators Include="Types" Version="1.0.0" ResourcesOnly="False" />
|
|
</ItemGroup>
|
|
<!-- Copy package content into this project's own output only (not transitively). -->
|
|
<ItemGroup Condition="'$(Configuration)' == 'Release'">
|
|
<PackageAssets Include="Assets/**/*" Exclude="bin/**" />
|
|
<PackageSymbols Include="**/*.t3" Exclude="bin/**" />
|
|
<PackageSymbolUis Include="**/*.t3ui" Exclude="bin/**" />
|
|
<PackageSourceCode Include="**/*.cs" Exclude="bin/**;obj/**" />
|
|
<PackageMeta Include=".meta/**/*" />
|
|
</ItemGroup>
|
|
<Target Name="CopyPackageContent" AfterTargets="AfterBuild" Condition="'$(Configuration)' == 'Release'">
|
|
<Copy SourceFiles="@(PackageAssets)" DestinationFiles="@(PackageAssets->'$(OutputPath)/Assets/%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="true" />
|
|
<Copy SourceFiles="@(PackageSymbols)" DestinationFiles="@(PackageSymbols->'$(OutputPath)/Symbols/%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="true" />
|
|
<Copy SourceFiles="@(PackageSymbolUis)" DestinationFiles="@(PackageSymbolUis->'$(OutputPath)/SymbolUis/%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="true" />
|
|
<Copy SourceFiles="@(PackageSourceCode)" DestinationFiles="@(PackageSourceCode->'$(OutputPath)/SourceCode/%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="true" />
|
|
<Copy SourceFiles="@(PackageMeta)" DestinationFiles="@(PackageMeta->'$(OutputPath)/.meta/%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="true" />
|
|
</Target>
|
|
<Target Name="ClearBuildOutput" BeforeTargets="BeforeBuild">
|
|
<ItemGroup>
|
|
<_StaleBuildOutput Include="bin/$(Configuration)/**/*" Exclude="bin/$(Configuration)/**/av*.dll;bin/$(Configuration)/**/sw*.dll;bin/$(Configuration)/**/postproc*.dll" />
|
|
</ItemGroup>
|
|
<Delete Files="@(_StaleBuildOutput)" ContinueOnError="true" />
|
|
</Target>
|
|
<Target Name="CreatePackageInfo" AfterTargets="AfterBuild">
|
|
<ItemGroup Label="Define json structure of referenced operator packages">
|
|
<OpPacks Include="@(Operators)">
|
|
<OpPackageInfoJson>{
|
|
"Identity": "%(Identity)",
|
|
"Version": "%(Version)",
|
|
"ResourcesOnly": "%(ResourcesOnly)"
|
|
}</OpPackageInfoJson>
|
|
</OpPacks>
|
|
</ItemGroup>
|
|
<PropertyGroup>
|
|
<OperatorReferenceArray>@(OpPacks -> '%(OpPackageInfoJson)', ',')</OperatorReferenceArray>
|
|
<OperatorPackageInfoJson>{
|
|
"HomeGuid": "$(HomeGuid)",
|
|
"PackageId": "$(PackageId)",
|
|
"RootNamespace": "$(RootNamespace)",
|
|
"AssemblyFileName": "$(RootNamespace)",
|
|
"Version": "$(VersionPrefix)",
|
|
"EditorVersion": "$(EditorVersion)",
|
|
"IsEditorOnly": "$(IsEditorOnly)",
|
|
"OperatorPackages": [$(OperatorReferenceArray)
|
|
]
|
|
}</OperatorPackageInfoJson>
|
|
</PropertyGroup>
|
|
<WriteLinesToFile File="$(OutputPath)/OperatorPackage.json" Lines="$(OperatorPackageInfoJson)" Overwrite="True" Encoding="UTF-8" />
|
|
</Target>
|
|
<!-- TiXL's operator loader resolves native DLLs flat next to the operator assembly. FFmpeg.LGPL's .targets
|
|
already copies the av/sw DLLs flat; this backstop also flattens any left under runtimes/win-x64/native/. -->
|
|
<Target Name="FlattenFFmpegNatives" AfterTargets="AfterBuild">
|
|
<ItemGroup>
|
|
<_FFmpegNativeDlls Include="$(OutputPath)/runtimes/win-x64/native/av*.dll;$(OutputPath)/runtimes/win-x64/native/sw*.dll;$(OutputPath)/runtimes/win-x64/native/postproc*.dll" />
|
|
</ItemGroup>
|
|
<Copy SourceFiles="@(_FFmpegNativeDlls)" DestinationFolder="$(OutputPath)" SkipUnchangedFiles="true" />
|
|
</Target>
|
|
</Project> |