MainFrm: Use the volume step setting for the audio boost increments/decrements.
AppSettings: Change nVolumeStep and nSpeedStep to unsigned.
Partially re-write CVMROSD, this fixes a case of truncated pointers on x64, adds minor performance improvements and adds extensive ASSERT and TRACE functionality for debug builds.
Change the functions for detecting the display adapter in MPCVideoDecFilter for DXVA uses. Note that when not directly connected to the DXVA2 interface functions (EVR mostly), this function queries the adapter the main video window is on. That adapter is not necessarily the adapter the video renderer will be using, so this system is not ideal at all.
Change a few types, optimize a few loops for CDXAReader. Change _tcstol() to _tcstoul() once, as _tcstol() is only meant for signed integers.
Optimize and simplify the two ExtractMediaTypes functions in DSUtil.
Optimize HMSF2RT() in DSUtil.
Optimize the ConvertMBCS() and UrlEncode() functions.
Edit Scale2x.cpp: make the SSE2 routines x86 compatible, re-order EMMS instructions for MMX routines (SSE-level builds only), change the SSE2 and MMX routines to reside inside the same functions, implement compiler context switches, comment out unused functions, mark functions as static __forceinline and extern appropriately. No changes in functionality of the Scale2x() function.
Manually inline functions that were already marked for integration (__forceinline). Add CPUID -dependent context switches to the existing compiler context switches. No changes in functionality. Similar issues like the ones are/were present in Scale2x.cpp are also present in AvgLines.cpp, it could use the same optimizations.
libmpeg2; Remove a warning disable, remove inline assembly, edit the c++ code in copy_chunk() to avoid pointer aliasing performance issues, decrease the main loop size and correct some wrong types for working objects.
Amend changes to VMROSD, implement SetSize().
Remove problematic and useless check in Rasterizer::ScanConvert(). This check was hard-limiting working surface dimensions to 4000 pixels. It was in a routine that is really not prone to fault at all.
Add better support for long-style and UNC path/file names.
This is especially required for network locations. This does not patch the whole program. Various other parts of the code still include functions that can't deal with paths over the old MAX_PATH limitation, most notably: every routine that uses the ATL::CPath class functions.
As noted in the comments, there is no canonicalization routine available for long path/file names on systems before Windows 8. We would have to write our own routine if we want to implement such functionality.