Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
df69b09
Ah, so the DirectShow AVI writer case does work, but I thought it was…
joncampbell123 Nov 24, 2023
739779c
The latest KKapture BASS interception crashes older demos that use th…
joncampbell123 Nov 24, 2023
33df3f8
reference bass libraries including ones dug up from the Wayback Machine
joncampbell123 Nov 25, 2023
09bdf15
change stdext::hash_map to std::unordered_map, which should make VS20…
joncampbell123 Nov 25, 2023
1dc75bc
Move pragma pack down, VS2022 windows.h checks structure alignment an…
joncampbell123 Nov 25, 2023
86ee74e
Bring in the baseclasses code from the Windows 7 SDK
joncampbell123 Nov 25, 2023
0e0f05c
Bring in base classes and make them compile
joncampbell123 Nov 25, 2023
cb6e1ea
Make BaseClasses part of the KKapture solution so it compiles with KK…
joncampbell123 Nov 25, 2023
103bfea
Update gitignore. Also note the latest changes
joncampbell123 Nov 25, 2023
6db06a6
To make future AVI writing debugging easier, add 'Self Test' option t…
joncampbell123 Nov 26, 2023
cf65028
Bring in fake screen res from KKapture 1.02
joncampbell123 Nov 26, 2023
150ac64
Incorporate fake screen mode from KKapture 1.02
joncampbell123 Nov 26, 2023
e5a6d98
Allow user to control test pattern resolution using 'Extra Screen Res…
joncampbell123 Nov 26, 2023
a2786dd
Whoops, nBlockAlign already counts channels
joncampbell123 Nov 26, 2023
7cc8389
Allow ESC key to cancel Please Attach Debugger message
joncampbell123 Nov 26, 2023
bfdffbe
Intercept ChangeDisplaySettings too
joncampbell123 Nov 26, 2023
67fd67b
Fix mhook failure to redirect GetTickCount() in Windows 11
joncampbell123 Nov 26, 2023
8ba6a51
Fix failure to patch FSOUND_GetCurrentPosition()
joncampbell123 Nov 26, 2023
e81c538
Copy WAV writer from BMP output into segmented AVI writer. The segmen…
joncampbell123 Nov 26, 2023
af156ba
Add option to force DPI awareness (and therefore disable DPI scaling)…
joncampbell123 Nov 26, 2023
0de0207
Fix WAV writer for VFW AVI code
joncampbell123 Nov 26, 2023
1074ed3
Fix typo that calls the wrong Real function for DirectDraw7::Lock and…
joncampbell123 Nov 26, 2023
e65e99d
Add option to prevent the demo from setting topmost state in case you…
joncampbell123 Nov 28, 2023
1e8489a
Ensure Format pointer is NULL after delete. Debug builds set the poin…
joncampbell123 Nov 28, 2023
3c2143d
Microframe idea: Instead of stepping by video frames, step by microfr…
joncampbell123 Nov 29, 2023
4e976cb
Revise microframes
joncampbell123 Nov 29, 2023
2b7379c
Help apply the microframe change to all video interception
joncampbell123 Nov 29, 2023
a4c242f
Sleep() interception has been causing stalls in Windows common contro…
joncampbell123 Nov 29, 2023
b9eea33
Adjust Sleep() fix
joncampbell123 Nov 29, 2023
b8dd35f
Fix Sleep(1) causing unnecessary delays when used by the Windows comm…
joncampbell123 Nov 29, 2023
068342f
Revise sleep and frame timing bugs
joncampbell123 Nov 30, 2023
e64cf86
Hack fix
joncampbell123 Nov 30, 2023
c3c7e80
wait for resync event properly, again
joncampbell123 Nov 30, 2023
43523be
Revise Sleep() handling, which seems to be better
joncampbell123 Nov 30, 2023
06c5ee2
notes
joncampbell123 Nov 30, 2023
7b220e2
Make the topmost prevention try not to confuse windows common control…
joncampbell123 Dec 4, 2023
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
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,5 @@
ipch/
Debug/
Release/
dshow_base/strmbase_d.lib
dshow_base/strmbase_r.lib
Binary file added dshow_base/.vs/baseclasses/v17/Browse.VC.db
Binary file not shown.
Binary file added dshow_base/.vs/baseclasses/v17/Solution.VC.db
Binary file not shown.
354 changes: 354 additions & 0 deletions dshow_base/BaseClasses.vcxproj

Large diffs are not rendered by default.

222 changes: 222 additions & 0 deletions dshow_base/BaseClasses.vcxproj.filters
Original file line number Diff line number Diff line change
@@ -0,0 +1,222 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="amextra.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="amfilter.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="amvideo.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="arithutil.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="combase.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cprop.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="ctlutil.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="ddmm.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="dllentry.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="dllsetup.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="mtype.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="outputq.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="perflog.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="pstream.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="pullpin.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="refclock.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="renbase.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="schedule.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="seekpt.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="source.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="strmctl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="sysclock.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="transfrm.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="transip.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="videoctl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="vtrans.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="winctrl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="winutil.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="wxdebug.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="wxlist.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="wxutil.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="amextra.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="amfilter.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="cache.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="combase.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="cprop.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="ctlutil.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="ddmm.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="dllsetup.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="dxmperf.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="fourcc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="measure.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="msgthrd.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="mtype.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="outputq.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="perflog.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="perfstruct.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="pstream.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="pullpin.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="refclock.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="reftime.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="renbase.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="schedule.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="seekpt.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="source.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="streams.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="strmctl.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="sysclock.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="transfrm.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="transip.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="videoctl.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="vtrans.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="winctrl.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="winutil.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wxdebug.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wxlist.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wxutil.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>
30 changes: 30 additions & 0 deletions dshow_base/UpgradeLog.XML
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type='text/xsl' href='_UpgradeReport_Files/UpgradeReport.xslt'?><UpgradeLog>
<Properties><Property Name="Solution" Value="baseclasses">
</Property><Property Name="Solution File" Value="C:\Users\jonat\source\repos\joncampbell123\directshow\baseclasses\baseclasses.sln">
</Property><Property Name="Date" Value="Thursday, November 23, 2023">
</Property><Property Name="Time" Value="19:13 PM">
</Property></Properties><Event ErrorLevel="0" Project="" Source="baseclasses.sln" Description="File successfully backed up as C:\Users\jonat\source\repos\joncampbell123\directshow\baseclasses\baseclasses.sln.old">
</Event><Event ErrorLevel="0" Project="BaseClasses" Source="BaseClasses.vcproj" Description="Converting project file 'C:\Users\jonat\source\repos\joncampbell123\directshow\baseclasses\BaseClasses.vcproj'.">
</Event><Event ErrorLevel="1" Project="BaseClasses" Source="BaseClasses.vcproj" Description="This application has been updated to include settings related to the User Account Control (UAC) feature of Windows Vista. By default, when run on Windows Vista with UAC enabled, this application is marked to run with the same privileges as the process that launched it. This marking also disables the application from running with virtualization. You can change UAC related settings from the Property Pages of the project.">
</Event><Event ErrorLevel="1" Project="BaseClasses" Source="BaseClasses.vcproj" Description="VCWebServiceProxyGeneratorTool is no longer supported. The tool has been removed from your project settings.">
</Event><Event ErrorLevel="1" Project="BaseClasses" Source="BaseClasses.vcproj" Description="MSB8012: $(TargetName) ('BaseClasses') does not match the Librarian's OutputFile property value 'Debug\strmbasd.lib' ('strmbasd') in project configuration 'Debug|Win32'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetName) property value matches the value specified in %(Lib.OutputFile).">
</Event><Event ErrorLevel="1" Project="BaseClasses" Source="BaseClasses.vcproj" Description="MSB8012: $(TargetPath) ('C:\Users\jonat\source\repos\joncampbell123\directshow\baseclasses\Debug\BaseClasses.lib') does not match the Librarian's OutputFile property value 'Debug\strmbasd.lib' ('C:\Users\jonat\source\repos\joncampbell123\directshow\baseclasses\Debug\strmbasd.lib') in project configuration 'Debug|Win32'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Lib.OutputFile).">
</Event><Event ErrorLevel="1" Project="BaseClasses" Source="BaseClasses.vcproj" Description="MSB8012: $(TargetName) ('BaseClasses') does not match the Librarian's OutputFile property value 'x64\Debug\strmbasd.lib' ('strmbasd') in project configuration 'Debug|x64'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetName) property value matches the value specified in %(Lib.OutputFile).">
</Event><Event ErrorLevel="1" Project="BaseClasses" Source="BaseClasses.vcproj" Description="MSB8012: $(TargetPath) ('C:\Users\jonat\source\repos\joncampbell123\directshow\baseclasses\x64\Debug\BaseClasses.lib') does not match the Librarian's OutputFile property value 'x64\Debug\strmbasd.lib' ('C:\Users\jonat\source\repos\joncampbell123\directshow\baseclasses\x64\Debug\strmbasd.lib') in project configuration 'Debug|x64'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Lib.OutputFile).">
</Event><Event ErrorLevel="1" Project="BaseClasses" Source="BaseClasses.vcproj" Description="MSB8012: $(TargetName) ('BaseClasses') does not match the Librarian's OutputFile property value 'Release\strmbase.lib' ('strmbase') in project configuration 'Release|Win32'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetName) property value matches the value specified in %(Lib.OutputFile).">
</Event><Event ErrorLevel="1" Project="BaseClasses" Source="BaseClasses.vcproj" Description="MSB8012: $(TargetPath) ('C:\Users\jonat\source\repos\joncampbell123\directshow\baseclasses\Release\BaseClasses.lib') does not match the Librarian's OutputFile property value 'Release\strmbase.lib' ('C:\Users\jonat\source\repos\joncampbell123\directshow\baseclasses\Release\strmbase.lib') in project configuration 'Release|Win32'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Lib.OutputFile).">
</Event><Event ErrorLevel="1" Project="BaseClasses" Source="BaseClasses.vcproj" Description="MSB8012: $(TargetName) ('BaseClasses') does not match the Librarian's OutputFile property value 'x64\Release\strmbase.lib' ('strmbase') in project configuration 'Release|x64'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetName) property value matches the value specified in %(Lib.OutputFile).">
</Event><Event ErrorLevel="1" Project="BaseClasses" Source="BaseClasses.vcproj" Description="MSB8012: $(TargetPath) ('C:\Users\jonat\source\repos\joncampbell123\directshow\baseclasses\x64\Release\BaseClasses.lib') does not match the Librarian's OutputFile property value 'x64\Release\strmbase.lib' ('C:\Users\jonat\source\repos\joncampbell123\directshow\baseclasses\x64\Release\strmbase.lib') in project configuration 'Release|x64'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Lib.OutputFile).">
</Event><Event ErrorLevel="1" Project="BaseClasses" Source="BaseClasses.vcproj" Description="MSB8012: $(TargetName) ('BaseClasses') does not match the Librarian's OutputFile property value 'Debug_MBCS\strmbasd.lib' ('strmbasd') in project configuration 'Debug_MBCS|Win32'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetName) property value matches the value specified in %(Lib.OutputFile).">
</Event><Event ErrorLevel="1" Project="BaseClasses" Source="BaseClasses.vcproj" Description="MSB8012: $(TargetPath) ('C:\Users\jonat\source\repos\joncampbell123\directshow\baseclasses\Debug_MBCS\BaseClasses.lib') does not match the Librarian's OutputFile property value 'Debug_MBCS\strmbasd.lib' ('C:\Users\jonat\source\repos\joncampbell123\directshow\baseclasses\Debug_MBCS\strmbasd.lib') in project configuration 'Debug_MBCS|Win32'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Lib.OutputFile).">
</Event><Event ErrorLevel="1" Project="BaseClasses" Source="BaseClasses.vcproj" Description="MSB8012: $(TargetName) ('BaseClasses') does not match the Librarian's OutputFile property value 'x64\Debug_MBCS\strmbasd.lib' ('strmbasd') in project configuration 'Debug_MBCS|x64'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetName) property value matches the value specified in %(Lib.OutputFile).">
</Event><Event ErrorLevel="1" Project="BaseClasses" Source="BaseClasses.vcproj" Description="MSB8012: $(TargetPath) ('C:\Users\jonat\source\repos\joncampbell123\directshow\baseclasses\x64\Debug_MBCS\BaseClasses.lib') does not match the Librarian's OutputFile property value 'x64\Debug_MBCS\strmbasd.lib' ('C:\Users\jonat\source\repos\joncampbell123\directshow\baseclasses\x64\Debug_MBCS\strmbasd.lib') in project configuration 'Debug_MBCS|x64'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Lib.OutputFile).">
</Event><Event ErrorLevel="1" Project="BaseClasses" Source="BaseClasses.vcproj" Description="MSB8012: $(TargetName) ('BaseClasses') does not match the Librarian's OutputFile property value 'Release_MBCS\strmbase.lib' ('strmbase') in project configuration 'Release_MBCS|Win32'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetName) property value matches the value specified in %(Lib.OutputFile).">
</Event><Event ErrorLevel="1" Project="BaseClasses" Source="BaseClasses.vcproj" Description="MSB8012: $(TargetPath) ('C:\Users\jonat\source\repos\joncampbell123\directshow\baseclasses\Release_MBCS\BaseClasses.lib') does not match the Librarian's OutputFile property value 'Release_MBCS\strmbase.lib' ('C:\Users\jonat\source\repos\joncampbell123\directshow\baseclasses\Release_MBCS\strmbase.lib') in project configuration 'Release_MBCS|Win32'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Lib.OutputFile).">
</Event><Event ErrorLevel="1" Project="BaseClasses" Source="BaseClasses.vcproj" Description="MSB8012: $(TargetName) ('BaseClasses') does not match the Librarian's OutputFile property value 'x64\Release_MBCS\strmbase.lib' ('strmbase') in project configuration 'Release_MBCS|x64'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetName) property value matches the value specified in %(Lib.OutputFile).">
</Event><Event ErrorLevel="1" Project="BaseClasses" Source="BaseClasses.vcproj" Description="MSB8012: $(TargetPath) ('C:\Users\jonat\source\repos\joncampbell123\directshow\baseclasses\x64\Release_MBCS\BaseClasses.lib') does not match the Librarian's OutputFile property value 'x64\Release_MBCS\strmbase.lib' ('C:\Users\jonat\source\repos\joncampbell123\directshow\baseclasses\x64\Release_MBCS\strmbase.lib') in project configuration 'Release_MBCS|x64'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Lib.OutputFile).">
</Event><Event ErrorLevel="0" Project="BaseClasses" Source="BaseClasses.vcproj" Description="Done converting to new project file 'C:\Users\jonat\source\repos\joncampbell123\directshow\baseclasses\BaseClasses.vcxproj'.">
</Event><Event ErrorLevel="3" Project="BaseClasses" Source="BaseClasses.vcproj" Description="Converted">
</Event><Event ErrorLevel="0" Project="" Source="baseclasses.sln" Description="Solution converted successfully">
</Event><Event ErrorLevel="3" Project="" Source="baseclasses.sln" Description="Converted">
</Event></UpgradeLog>
Loading