Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
12 changes: 12 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,15 @@
[submodule "qsdecoder"]
path = qsdecoder
url = https://gitea.1f0.de/LAV/qsdecoder.git
[submodule "msvc/libs/dav1d/dav1d"]
path = msvc/libs/dav1d/dav1d
url = https://code.videolan.org/videolan/dav1d.git
[submodule "msvc/libs/libxml2/libxml2"]
path = msvc/libs/libxml2/libxml2
url = https://github.com/GNOME/libxml2.git
[submodule "msvc/libs/speex/speex"]
path = msvc/libs/speex/speex
url = https://github.com/xiph/speex.git
[submodule "msvc/libs/bzip2/bzip2"]
path = msvc/libs/bzip2/bzip2
url = https://sourceware.org/git/bzip2.git
94 changes: 94 additions & 0 deletions LAVFilters.sln
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,26 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LAVVideo", "decoder\LAVVide
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IntelQuickSyncDecoder", "qsdecoder\IntelQuickSyncDecoder.vcxproj", "{83F0170E-6AB3-467B-98D5-E061BD2BF00D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dav1d", "msvc\libs\dav1d\dav1d.vcxproj", "{2F967FEC-AF6A-57ED-8F1C-E997C7ACAF0D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libxml2", "msvc\libs\libxml2\libxml2.vcxproj", "{B53D6936-103E-5B67-B87E-57CC480D02C6}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "speex", "msvc\libs\speex\speex.vcxproj", "{D2F66BE1-0FAC-5F5F-93BD-F14DD1CC9D3B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bzip2", "msvc\libs\bzip2\bzip2.vcxproj", "{3D1587AF-615A-5B42-B4CE-AC95AFFA3B6C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opencore-amrnb", "msvc\libs\opencore-amr\opencore-amrnb.vcxproj", "{17B0D674-C717-5252-9CF5-3F875A046B4C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opencore-amrwb", "msvc\libs\opencore-amr\opencore-amrwb.vcxproj", "{5910550A-26D8-5EE8-9654-9FECA437D541}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
Release MSVC|Win32 = Release MSVC|Win32
Release MSVC|x64 = Release MSVC|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F475F86F-3F7F-4B1D-82A6-078339F599FD}.Debug|Win32.ActiveCfg = Debug|Win32
Expand Down Expand Up @@ -112,6 +126,86 @@ Global
{83F0170E-6AB3-467B-98D5-E061BD2BF00D}.Release|Win32.Build.0 = Release|Win32
{83F0170E-6AB3-467B-98D5-E061BD2BF00D}.Release|x64.ActiveCfg = Release|x64
{83F0170E-6AB3-467B-98D5-E061BD2BF00D}.Release|x64.Build.0 = Release|x64
{F475F86F-3F7F-4B1D-82A6-078339F599FD}.Release MSVC|Win32.ActiveCfg = Release|Win32
{F475F86F-3F7F-4B1D-82A6-078339F599FD}.Release MSVC|Win32.Build.0 = Release|Win32
{F475F86F-3F7F-4B1D-82A6-078339F599FD}.Release MSVC|x64.ActiveCfg = Release|x64
{F475F86F-3F7F-4B1D-82A6-078339F599FD}.Release MSVC|x64.Build.0 = Release|x64
{0A058024-41F4-4509-97D2-803A1806CE86}.Release MSVC|Win32.ActiveCfg = Release|Win32
{0A058024-41F4-4509-97D2-803A1806CE86}.Release MSVC|Win32.Build.0 = Release|Win32
{0A058024-41F4-4509-97D2-803A1806CE86}.Release MSVC|x64.ActiveCfg = Release|x64
{0A058024-41F4-4509-97D2-803A1806CE86}.Release MSVC|x64.Build.0 = Release|x64
{E2012DB5-33CB-44A7-B521-04287F6D0D80}.Release MSVC|Win32.ActiveCfg = Release|Win32
{E2012DB5-33CB-44A7-B521-04287F6D0D80}.Release MSVC|Win32.Build.0 = Release|Win32
{E2012DB5-33CB-44A7-B521-04287F6D0D80}.Release MSVC|x64.ActiveCfg = Release|x64
{E2012DB5-33CB-44A7-B521-04287F6D0D80}.Release MSVC|x64.Build.0 = Release|x64
{E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Release MSVC|Win32.ActiveCfg = Release|Win32
{E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Release MSVC|Win32.Build.0 = Release|Win32
{E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Release MSVC|x64.ActiveCfg = Release|x64
{E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Release MSVC|x64.Build.0 = Release|x64
{E1DA1B95-71F1-4C21-A271-121176925062}.Release MSVC|Win32.ActiveCfg = Release|Win32
{E1DA1B95-71F1-4C21-A271-121176925062}.Release MSVC|Win32.Build.0 = Release|Win32
{E1DA1B95-71F1-4C21-A271-121176925062}.Release MSVC|x64.ActiveCfg = Release|x64
{E1DA1B95-71F1-4C21-A271-121176925062}.Release MSVC|x64.Build.0 = Release|x64
{12154C64-9136-4C21-92FA-665008C6FD27}.Release MSVC|Win32.ActiveCfg = Release|Win32
{12154C64-9136-4C21-92FA-665008C6FD27}.Release MSVC|Win32.Build.0 = Release|Win32
{12154C64-9136-4C21-92FA-665008C6FD27}.Release MSVC|x64.ActiveCfg = Release|x64
{12154C64-9136-4C21-92FA-665008C6FD27}.Release MSVC|x64.Build.0 = Release|x64
{D29ADED3-086B-46A8-9455-97EFF6B14775}.Release MSVC|Win32.ActiveCfg = Release|Win32
{D29ADED3-086B-46A8-9455-97EFF6B14775}.Release MSVC|Win32.Build.0 = Release|Win32
{D29ADED3-086B-46A8-9455-97EFF6B14775}.Release MSVC|x64.ActiveCfg = Release|x64
{D29ADED3-086B-46A8-9455-97EFF6B14775}.Release MSVC|x64.Build.0 = Release|x64
{83F0170E-6AB3-467B-98D5-E061BD2BF00D}.Release MSVC|Win32.ActiveCfg = Release|Win32
{83F0170E-6AB3-467B-98D5-E061BD2BF00D}.Release MSVC|Win32.Build.0 = Release|Win32
{83F0170E-6AB3-467B-98D5-E061BD2BF00D}.Release MSVC|x64.ActiveCfg = Release|x64
{83F0170E-6AB3-467B-98D5-E061BD2BF00D}.Release MSVC|x64.Build.0 = Release|x64
{2F967FEC-AF6A-57ED-8F1C-E997C7ACAF0D}.Debug|Win32.ActiveCfg = Debug|Win32
{2F967FEC-AF6A-57ED-8F1C-E997C7ACAF0D}.Debug|x64.ActiveCfg = Debug|x64
{2F967FEC-AF6A-57ED-8F1C-E997C7ACAF0D}.Release|Win32.ActiveCfg = Release|Win32
{2F967FEC-AF6A-57ED-8F1C-E997C7ACAF0D}.Release|x64.ActiveCfg = Release|x64
{2F967FEC-AF6A-57ED-8F1C-E997C7ACAF0D}.Release MSVC|Win32.ActiveCfg = Release|Win32
{2F967FEC-AF6A-57ED-8F1C-E997C7ACAF0D}.Release MSVC|Win32.Build.0 = Release|Win32
{2F967FEC-AF6A-57ED-8F1C-E997C7ACAF0D}.Release MSVC|x64.ActiveCfg = Release|x64
{2F967FEC-AF6A-57ED-8F1C-E997C7ACAF0D}.Release MSVC|x64.Build.0 = Release|x64
{B53D6936-103E-5B67-B87E-57CC480D02C6}.Debug|Win32.ActiveCfg = Debug|Win32
{B53D6936-103E-5B67-B87E-57CC480D02C6}.Debug|x64.ActiveCfg = Debug|x64
{B53D6936-103E-5B67-B87E-57CC480D02C6}.Release|Win32.ActiveCfg = Release|Win32
{B53D6936-103E-5B67-B87E-57CC480D02C6}.Release|x64.ActiveCfg = Release|x64
{B53D6936-103E-5B67-B87E-57CC480D02C6}.Release MSVC|Win32.ActiveCfg = Release|Win32
{B53D6936-103E-5B67-B87E-57CC480D02C6}.Release MSVC|Win32.Build.0 = Release|Win32
{B53D6936-103E-5B67-B87E-57CC480D02C6}.Release MSVC|x64.ActiveCfg = Release|x64
{B53D6936-103E-5B67-B87E-57CC480D02C6}.Release MSVC|x64.Build.0 = Release|x64
{D2F66BE1-0FAC-5F5F-93BD-F14DD1CC9D3B}.Debug|Win32.ActiveCfg = Debug|Win32
{D2F66BE1-0FAC-5F5F-93BD-F14DD1CC9D3B}.Debug|x64.ActiveCfg = Debug|x64
{D2F66BE1-0FAC-5F5F-93BD-F14DD1CC9D3B}.Release|Win32.ActiveCfg = Release|Win32
{D2F66BE1-0FAC-5F5F-93BD-F14DD1CC9D3B}.Release|x64.ActiveCfg = Release|x64
{D2F66BE1-0FAC-5F5F-93BD-F14DD1CC9D3B}.Release MSVC|Win32.ActiveCfg = Release|Win32
{D2F66BE1-0FAC-5F5F-93BD-F14DD1CC9D3B}.Release MSVC|Win32.Build.0 = Release|Win32
{D2F66BE1-0FAC-5F5F-93BD-F14DD1CC9D3B}.Release MSVC|x64.ActiveCfg = Release|x64
{D2F66BE1-0FAC-5F5F-93BD-F14DD1CC9D3B}.Release MSVC|x64.Build.0 = Release|x64
{3D1587AF-615A-5B42-B4CE-AC95AFFA3B6C}.Debug|Win32.ActiveCfg = Debug|Win32
{3D1587AF-615A-5B42-B4CE-AC95AFFA3B6C}.Debug|x64.ActiveCfg = Debug|x64
{3D1587AF-615A-5B42-B4CE-AC95AFFA3B6C}.Release|Win32.ActiveCfg = Release|Win32
{3D1587AF-615A-5B42-B4CE-AC95AFFA3B6C}.Release|x64.ActiveCfg = Release|x64
{3D1587AF-615A-5B42-B4CE-AC95AFFA3B6C}.Release MSVC|Win32.ActiveCfg = Release|Win32
{3D1587AF-615A-5B42-B4CE-AC95AFFA3B6C}.Release MSVC|Win32.Build.0 = Release|Win32
{3D1587AF-615A-5B42-B4CE-AC95AFFA3B6C}.Release MSVC|x64.ActiveCfg = Release|x64
{3D1587AF-615A-5B42-B4CE-AC95AFFA3B6C}.Release MSVC|x64.Build.0 = Release|x64
{17B0D674-C717-5252-9CF5-3F875A046B4C}.Debug|Win32.ActiveCfg = Debug|Win32
{17B0D674-C717-5252-9CF5-3F875A046B4C}.Debug|x64.ActiveCfg = Debug|x64
{17B0D674-C717-5252-9CF5-3F875A046B4C}.Release|Win32.ActiveCfg = Release|Win32
{17B0D674-C717-5252-9CF5-3F875A046B4C}.Release|x64.ActiveCfg = Release|x64
{17B0D674-C717-5252-9CF5-3F875A046B4C}.Release MSVC|Win32.ActiveCfg = Release|Win32
{17B0D674-C717-5252-9CF5-3F875A046B4C}.Release MSVC|Win32.Build.0 = Release|Win32
{17B0D674-C717-5252-9CF5-3F875A046B4C}.Release MSVC|x64.ActiveCfg = Release|x64
{17B0D674-C717-5252-9CF5-3F875A046B4C}.Release MSVC|x64.Build.0 = Release|x64
{5910550A-26D8-5EE8-9654-9FECA437D541}.Debug|Win32.ActiveCfg = Debug|Win32
{5910550A-26D8-5EE8-9654-9FECA437D541}.Debug|x64.ActiveCfg = Debug|x64
{5910550A-26D8-5EE8-9654-9FECA437D541}.Release|Win32.ActiveCfg = Release|Win32
{5910550A-26D8-5EE8-9654-9FECA437D541}.Release|x64.ActiveCfg = Release|x64
{5910550A-26D8-5EE8-9654-9FECA437D541}.Release MSVC|Win32.ActiveCfg = Release|Win32
{5910550A-26D8-5EE8-9654-9FECA437D541}.Release MSVC|Win32.Build.0 = Release|Win32
{5910550A-26D8-5EE8-9654-9FECA437D541}.Release MSVC|x64.ActiveCfg = Release|x64
{5910550A-26D8-5EE8-9654-9FECA437D541}.Release MSVC|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
23 changes: 23 additions & 0 deletions msvc/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# msvc

MSBuild projects for the external libraries ffmpeg links against, so that a
`--toolchain=msvc` build of ffmpeg (`build_ffmpeg_msvc.sh`) can enable the same
libraries the GCC build does. The prebuilt archives under `thirdparty/` are
MinGW `.a` files and cannot be linked by `link.exe`.

libs/dav1d dav1d, submodule, pinned at a release tag
libs/libxml2 libxml2, submodule
libs/speex speex, submodule
libs/bzip2 bzip2, submodule
libs/opencore-amr opencore-amr, vendored (upstream has no git repository)

Each directory holds the project plus the generated headers that library's own
build system would otherwise produce (`config.h`, `vcs_version.h`, and so on).

The projects are in `LAVFilters.sln` but are **not** built by the default
`Release` and `Debug` configurations, which keep using the prebuilt MinGW
archives. Select the `Release MSVC` configuration to build them; they write
`bin_<platform>\lib` beside LAV's own libraries.

`common.props` is shared by all of them and imports `common\platform.props`,
so they follow the same toolset and SDK as the rest of LAV.
58 changes: 58 additions & 0 deletions msvc/common.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Shared by the projects under msvc\libs; import between Microsoft.Cpp.Default.props and Microsoft.Cpp.props. -->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<LavMsvcDir>$(MSBuildThisFileDirectory)</LavMsvcDir>
<LavRoot>$([MSBuild]::NormalizeDirectory('$(LavMsvcDir)..'))</LavRoot>
<LavBinSuffix Condition="'$(Configuration)'=='Debug'">d</LavBinSuffix>
<!-- same layout as common\common.props uses for LAV's own projects -->
<LavBin>$(LavRoot)bin_$(Platform)$(LavBinSuffix)\</LavBin>
<NasmFormat Condition="'$(Platform)'=='x64'">win64</NasmFormat>
<NasmFormat Condition="'$(Platform)'=='Win32'">win32</NasmFormat>
</PropertyGroup>
<Import Project="$(LavRoot)common\platform.props" />
<PropertyGroup Label="Configuration">
<!-- NotSet: these libraries do not expect UNICODE/_UNICODE (dav1d defines UNICODE itself) -->
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>false</WholeProgramOptimization>
<UseDebugLibraries Condition="'$(Configuration)'=='Debug'">true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup>
<IntDir>$(LavBin)thirdparty\msvc\$(ProjectName)\</IntDir>
<OutDir>$(LavBin)lib\</OutDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PreprocessorDefinitions>_WINDOWS;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Platform)'=='Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>false</SDLCheck>
<ControlFlowGuard>false</ControlFlowGuard>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<SupportJustMyCode>false</SupportJustMyCode>
</ClCompile>
<Lib>
<TargetMachine Condition="'$(Platform)'=='Win32'">MachineX86</TargetMachine>
<TargetMachine Condition="'$(Platform)'=='x64'">MachineX64</TargetMachine>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FunctionLevelLinking>true</FunctionLevelLinking>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<ClCompile>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
</Project>
1 change: 1 addition & 0 deletions msvc/libs/bzip2/bzip2
Submodule bzip2 added at 6a8690
41 changes: 41 additions & 0 deletions msvc/libs/bzip2/bzip2.vcxproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- generated by msvc/regen/gen-libs.sh - edit the source lists there, not here -->
<Project DefaultTargets="Build" ToolsVersion="17.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32"><Configuration>Debug</Configuration><Platform>Win32</Platform></ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64"><Configuration>Debug</Configuration><Platform>x64</Platform></ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32"><Configuration>Release</Configuration><Platform>Win32</Platform></ProjectConfiguration>
<ProjectConfiguration Include="Release|x64"><Configuration>Release</Configuration><Platform>x64</Platform></ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{3D1587AF-615A-5B42-B4CE-AC95AFFA3B6C}</ProjectGuid>
<ProjectName>bzip2</ProjectName>
<RootNamespace>bzip2</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<Import Project="$(MSBuildThisFileDirectory)..\..\common.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
<TargetName>bz2</TargetName>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="bzip2\blocksort.c"><ObjectFileName>$(IntDir)bzip2_blocksort.obj</ObjectFileName></ClCompile>
<ClCompile Include="bzip2\huffman.c"><ObjectFileName>$(IntDir)bzip2_huffman.obj</ObjectFileName></ClCompile>
<ClCompile Include="bzip2\crctable.c"><ObjectFileName>$(IntDir)bzip2_crctable.obj</ObjectFileName></ClCompile>
<ClCompile Include="bzip2\randtable.c"><ObjectFileName>$(IntDir)bzip2_randtable.obj</ObjectFileName></ClCompile>
<ClCompile Include="bzip2\compress.c"><ObjectFileName>$(IntDir)bzip2_compress.obj</ObjectFileName></ClCompile>
<ClCompile Include="bzip2\decompress.c"><ObjectFileName>$(IntDir)bzip2_decompress.obj</ObjectFileName></ClCompile>
<ClCompile Include="bzip2\bzlib.c"><ObjectFileName>$(IntDir)bzip2_bzlib.obj</ObjectFileName></ClCompile>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
</Project>
1 change: 1 addition & 0 deletions msvc/libs/dav1d/dav1d
Submodule dav1d added at b54625
Loading