v2.2.6
- Added OS version info
- Added plugin function enumeration to the "avsinfo" log
- Couple of bugs fixed
- Minor tweaks

v2.2.5
- Added dependency checking for avisynth.dll
- More detailed and comprehensive plugin error messages relating to potentially missing dependencies

v2.2.4
- Added DLL dependency checking
- Various fixes

v2.2.3
- New ini setting "SkipSpeedTest", see documentation.
  I put back the script test at the start because it is the best method to determine a suitable
  interval for measuring CPU/GPU/memory usage and minimizing the overhead for these measurements.

v2.2.2
- Added ini option "LogFileDateTimeSuffix" which makes adding the date/time suffix for .log/.csv files
  optional.
- More detailed error messages when using "-avsinfo" and plugin loading failures

v2.2.1
- New ini option "LogDirectory". If specified, all .log and .csv files will be created in that directory.
- All .log and .csv files now have a suffix containing date and time of creation.
- Various fixes

v2.2.0
- Settings in an existing INI file will no longer be overwritten with default settings
  by a new version of AVSMeter.
- ["-avsinfo" switch] Invoke "LoadPlugin" test for each DLL in the auto-load directory/directories
- ["-avsinfo" switch] Combined with "-l" or "-log", writes the info to a file ("avsinfo.log" in the current directory)
- Cosmetics

v2.1.9
- Bug fix for audio-only scripts not being detected properly (this bug was introduced in 2.1.7)
- ["-avsinfo" switch] There is now a section for each plugin type (C / CPP)

v2.1.8
- ["-avsinfo" switch] Additional error handling to the plugin enumeration:
  - Test DLLs if they are valid Avisynth plugins
  - 64/32 bit mismatch detection
- Separate sections for CPP- and C-plugins

v2.1.7
- Removed the initial speed test.
- ["-avsinfo" switch] Now also lists all plugin DLLs (with version info if present)
  found in the directory/directories which are referenced in the registry

v2.1.6
- "Efficiency index" ini setting disabled by default
- Minor tweaks
- Documentation update

v2.1.5
- Added "Efficiency index" display (FPS / CPU usage)

v2.1.4
- Fixed a problem with the time stamp determination
- Fixed a minor timing issue
- Some cosmetic improvements

v2.1.3
- Added some more info to the log and info screen
- Minor exception handling improvements
- Refactoring
- Cosmetics

v2.1.2
- Added switch "-csv" so this option can be set on the command line as well
- Added switch "-avsinfo"
- Added average time/frame to the csv file output

v2.1.1
- Added ini setting "AVSDLL". The user can specify the avisynth.dll to be used.
- Added handler for C structured exceptions

v2.1.0
- Fixes for potential timing issues when releasing the script environment
- Additional error handling
- Cosmetics

v2.0.9
- Added ini setting "CreateCSV". This setting creates a .csv file (along with the .log file)
  containing the performance data formatted as comma-separated values for direct import
  in Excel or a similar spread sheet program (OpenOffice, LibreOffice).
- Added a slight delay between reading the last frame and calling "DeleteScriptEnvironment()"
  to avoid sync issues with some plugins.

v2.0.8
- Added "DisplayFPS" and "DisplayTPF" ini file settings. The user can now choose between having
  FPS or/and TPF (Time/Frame in milliseconds) printed to the console.
- Added AVISYNTH_INTERFACE_VERSION to the log file
- Added INI setting "AutoCompleteExtension" which makes the feature added in v2.0.7 optional
- Minor fixes

v2.0.7
- Fixed broken plugin autoload directory enumeration.
- If .avs file extension is missing, it will be added silently.

v2.0.6
- Added ini option "ConUseSTDOUT".

v2.0.5
- Added plugin directory info for AVS+ 32 and 64 Bit to the log file.
- Added avisynth.dll linker/compiler version to the log file
- Minor fixes

v2.0.4
- Added GPU/VPU data to the performance data section in the log file
- Changed app icon
- Added INI setting for "TimeLimit"
- Put back INI settings for "MonitorGPULoad" and "ProcessPriority"
- Code cleanup, refactoring

v2.0.3
- Added switch "timelimit" which terminates the program after a specified time
- Removed (temporarily) "timeout" option due to thread sync issues with some filters
- Removed some INI settings that are already covered by command line switches

v2.0.2
- Added more info to the log file (script name, command line switches, plugin directory)
- Everything pertaining to information about the loaded Avisynth DLL including utility
  functions is now wrapped into one class.
- Various fixes

v2.0.1
- Command line processing improvements
- Detection of outdated INI file didn't work properly. Fixed.
- Updated GPU memory monitoring to support cards with dedicated/dynamic memory

v2.0.0
- Dropped support for Avisynth 2.5x. At least AVS 2.6 Alpha4 or AVS+ r1576 are required
- Added location of the loaded avisynth.dll to the log file
- Added detection of outdated INI file
- Refactoring

v1.9.8
- Added monitoring of the NVIDIA Video Engine load (PureVideo SIP)
- Added switch and INI setting for specifying the process priority
- Refactoring, cosmetics and some minor fixes

v1.9.7
- Fix for potential problems with the latest AVS+ versions

v1.9.6
- Better detection of attempts to load 64 Bit avisynth.dll with 32 Bit AVSMeter and vice versa
- Added "UseFixedFrameInterval" ini setting ("-f" command line switch)
- Updated Avisynth headers to the latest version from (AVS+) Git
- Other minor fixes

v1.9.5
- Improved and more elaborate exception handling (Win32 API)
- Added GPU memory usage to the console display and log
- Fixed a bug related to audio only clips

v1.9.4
- Added a stream buffer flush to the console text output. Buffered text output through stdout/stderr
  caused problems with console re-direction for folks who use AVSMeter in their GUIs.
- Corrected a minor display bug
- Other minor corrections/refactoring

v1.9.3
- More GPU info added to the log file
- Fixed a stupid bug in the command line parser
- Removed the Admin privilege test
- Added command line options for frame range and timeout
- All text output goes now to stderr, except the usage info invoked by "-help" or "-h"

v1.9.2
- GPU/driver info is added to the log file when GPU monitoring is enabled/active
- Optimizations, cleanup and cosmetics

v1.9.1
- Added switch "-gpu" to enable GPU monitoring from the command line. The switch overrides the INI setting "MonitorGPULoad=0".
- Added a check to make sure the user has admin privileges
- In some rare cases, Avisynth gets stuck on reading a single frame, mostly the first frame due to an extremely slow script,
  buggy decoder, etc. There is now a configurable timeout in AVSMeter.ini:
  "ReadTimeout=120" sets the timeout to 120 seconds which is also the default. Once the configured time has expired,
  AVSMeter will terminate. Values from 10 to 3600 seconds are allowed.
- Some refactoring and minor fixes

v1.9.0
- Added GPU monitoring

v1.8.3
- Internal memory usage tweaks
- Better error handling of wrong INI file settings
- Version info from the VERSION_INFO resource is now displayed in addition to the
  version string returned by Avisynth.
- Changed "UseColour" INI setting to "UseColor"
- Many other fixes/refactoring

v1.8.2
- Simplified and improved code for releasing the pointer to "IScriptEnvironment"
- Added text colouring to the console output. This can be disabled by setting
  "UseColour=0" in the INI file.

v1.8.1
- Merged the 32 Bit versions into one binary. This binary should be compatible with all
  32 Bit Avisynth versions out there.
- The implicit log file creation in case of an error that was implemeted in v1.4.8 is now
  working again.

v1.8.0
- Made sure all return paths in "main" return the correct value ("-1" -> error; "0" -> OK)
- Other error handling improvements

v1.7.9
- Improved exception handling
- More accurate timing functionality for very fast scripts
- Cosmetics and minor fixes/refactoring

v1.7.8
- Cosmetics and minor fixes/refactoring
- Updated compiler for all binaries to VC10

v1.7.7
- Fixed a bug that would terminate AVSMeter if the number of frames returned from a script is 1
- Updated avisynth.h for AVS+ interface to the latest version from Git

v1.7.6
- Added audio info to the log file

v1.7.5
- Refactoring
- New INI setting: "AllowOnlyOneInstance". When set to "1" (default), only one
  instance of AVSMeter can run at the same time.
- Added simple documentation to the distribution package

v1.7.4
- Some improvements in exception handling
- Regression: The changes to the initial speed evaluation introduced other problems, reverted to
  previous behaviour.
- More robust command line processing
- Cosmetics

v1.7.3
- Modified the initial speed test that determines the measurement interval. With some scripts,
  particularly with Avisynth MT, there are extreme time differences from one frame to the next,
  most likely due to caching. In order to determine the suitable interval, these differences
  have to be taken into account.
- Added 64-Bit build for Avisynth+ 64 Bit.
- Added "Current FPS" to the console display. It shows the speed for each frame interval.

v1.7.2
- Fixed a bug in the INI parser
- Added Version resource
- Refactoring

v1.7.1
- Reduced the minimum script running time required to collect performance data
- Minor tweaks and fixes

v1.7.0
- Wrote some handy string helper functions in order to remove the 3rd party (CStdString) dependency.
- Added detection routine for the 2.6 version that checks if avisynth.dll exports "AVS_Linkage".
- Reorganisation of utility classes/functions.

v1.6.2 / v1.5.7
- When an invalid frame range setting is specified in AVSMeter.ini, the program
  will display a warning message for 2 seconds and then continue with the default
  number of frames (which means processing all frames).

v1.6.1
- Dynamic loading of avisynth.dll
- Added progressive/interlaced info (through Avisynth API)
- Minor error handling improvements

v1.6.0
- Dropped Avisynth 2.5 support.

v1.5.6:
- Minor fixes

v1.5.5:
- Fixed a nasty bug where the program would crash when the script doesn't return a video clip
- Added an (undocumented) INI setting "LogEstimatedTime". When set to "1", this also displays/logs the
  estimated time in case the process was interrupted by the user

v1.5.4:
- Improved error handling
- Reduced internal memory usage
- Simplified the switches, it's now just "-i" for info and "-l" for log
- Added number of active threads to the performance data

v1.5.3:
- Better error handling in some rare scenarios
- Added switch "-i" (or "--info") which only displays/logs the clip info
- For consistency, the log switch is now "-l" (or "--log")

v1.5.2:
- For scripts with a frame time < 20ms (50 fps), the measurement interval is now 1 frame (previously 10 frames)
  Note: The smallest measurement interval for CPU and memory usage remains at ~100 ms
- Fixed potentially inaccurate timer readings from QueryPerformanceCounter() on multi-core CPUs
- Various minor bugs fixed
- Cosmetics

v1.5.1:
- Minor bug fixes
- Refactoring
- Optimizations

v1.5.0:
- Different implementation for the initial speed test (determination of measurement interval)
- Tamed the over-zealous auto-inlining from the Intel compiler

v1.4.9:
- Measurement interval for the performance data is now dynamic depending on the speed of the script
- Various fixes

v1.4.8:
- Create the log file irrespective of the "-log" switch or "CreateLog" INI setting if Avisynth
  throws an error (syntactic errors excluded) and causes the program to terminate.

v1.47:
- Various optimizations and fixes

v1.46:
- Added "InvokeDistributor" to the INI settings, might be useful for Avisynth MT users.
- Minor fixes

v1.45:
- More efficient code for string and file handling
- Minor cosmetic changes

v1.44:
- bug fixes
- more accurate memory usage reporting

v1.43:
- Various optimizations
- Minor bug fixes

v1.42:
- Fixed a couple of display bugs

v1.41:
- Added INI setting "FrameRange"

v1.40:
  New features:
- Display thread count, CPU and memory usage
- Improved console display and log file format.
- AVISynth 2.6 colour spaces are reported correctly

  Fixed:
- IScriptEnvironment wasn't released in some cases.
  Thanks to IanB for suggesting a workaround ("env->~IScriptEnvironment()")

v1.34:
- Added support to pause program execution.

v1.33:
- Added ini file support.

v1.32:
- added time/frame to the performance data
- cosmetics

v1.31:
- Added "performance data", a list with fps numbers for each frame interval

v1.30:
- Added log file functionality

v1.22:
- Fixed poorly formatted output when using Avisynth MT versions.
