version 0.5.4:
    - fix a potential use of free'd memory when using the --optimize mode with --remux

version 0.5.3:
    - write CRC-32 elements on key parts for better file safety (not in unsafe mode)
    - don't write a Cue if there is only one Cluster

version 0.5.2:
    - fix the use of <input> <output> file use in the command line
    - don't allow source video tracks with 0 pixel values
    - fix a bug/crash when moving a whole Block to the next Cluster
    - fix a crash when handling files with CRC (like AviMux GUI files)

version 0.5.1:
    - fix an issue when fixing aspect ratio that only had one value (width or height) set

version 0.5.0:
    - prepend the output filename with "clean." if no output filename is specified
    - fix a bug when header compression was used but not lacing
    - add a --no-optimize option to forbid track compression
    - add a mkWDclean tool to remove the track compression from the output files

version 0.4.6:
    - remove bad cropping values
    - fix some potential issues when EBML lacing and header stripping was combined
    - support zlib compressed input and output tracks
    - don't try to strip headers of track with zlib compression or encryption
    - force zlib compression for a set of codecs (S_USF, S_VOBSUB, S_HDMV/PGS, B_VOBBTN) in --optimize mode

version 0.4.5:
    - fix --remux when BlockGroup was encountered (rather than SimpleBlock)
    - fix --optimize on video tracks

version 0.4.4:
    - fix a possible infinite loop when only --optimize was used
    - fix a potential timecode issue at the cluster boundaries

version 0.4.3:
    - fix a bug in the segment size when a placeholder was added for later tag reference
    - reject files that don't have an EBML header
    - add --help and --version CLI options
    - put the timecodescale first in the segment info, put the duration just after
    - fix the amount of phases displayed

version 0.4.2:
    - use DAR aspect ratio when pixels are not accurate enough
    - bootstrap.sh should now call the correct coremake config depending on the host platform
    - rename boostrap.sh to configure
    - avoid crashing with files that have no TrackInfo
    - read and skip custome elements rather than discarding (could result in corruption)
    - avoid a possible output corruption when the Segment size is much smaller than the original
    - fix the AppWriting string when there was no library in the source file
    - don't keep elements that are not valid for the output profile
    - check that track attachment links point to valid attachments and remove the invalid ones

version 0.4.1:
    - fix a possible data corruption when optimizing blocks
    - add a --quiet option to only output errors
    - keep the discardable flag as-is when reclustering
    - fix the --timecodescale handling

version 0.4.0:
    - allow using compressed headers (with --optimize) automatically picking the best size
    - delete CRC-32 elements until we can update them correctly
    - display the 64 bits integers correctly on all platforms
    - write the Cluster PrevSize and position in the Segment by default (can be disabled with --unsafe)
    - reserve a place after the SeekHead for a reference to Tags when they are not there (for easy editing)
    - make sure audio/subtitles frames are all keyframes (no known codec so far are not)
    - make sure the lacing flag in the track info matches what is used in the file
    - clean Haali's style aspect ratio (16/9 instead of the pixel values)
    - remove values that are the same as their (indirect) default values (like DisplayWidth/DisplayHeight and OutputSamplingFreq)
    - put the TrackNumber, TrackType and CodecId at the front of the Track elements

version 0.3.1:
    - output an error when the remuxing is not possible due to a low TimecodeScale (thanks to Ben Danper)
    - add a --timecodescale <v> option to force the global timecodescale

version 0.3.0:
    - always put the matching audio frames before the video frames
    - do a "relacing" when remuxing to put audio frames close to the corresponding video keyframes (not all audio codecs are supported)
      for Vorbis (via Tremor), MP3, AC3, E-AC3, AAC, DTS

version 0.2.5:
    - make sure only V_VP8 and A_VORBIS tracks are kept for webm
    - disable writing webm v1 (--doctype 3)
    - fix some default values in chapters
    - fix reading of elements with unknown/infinite sizes

version 0.2.4:
    - in --live mode the Cluster also have an infinite/unknown size
    - remove the Cluster duration from the --live mode

version 0.2.3:
    - add a --live option to create ouptut files that look like a live stream (not seekable)
    - do not write ClusterPosition and PrevSize (until we support it)
    - do not silently force a doctype change, but tell the user the CLI to use

version 0.2.2:
    - unobfuscate the 'webm' and 'V_VP8' strings
    - fix a crash when reading Sorenson Squeeze files (Ebml Void in the header)

version 0.2.1:
    - add an option to change the DocType name/version (no validity check)
    - put the (re)muxing date in the file (or if there was no date)

version 0.2.0:
    - add an option to remux files with better Cluster boundaries
    - enforce mandatory elements are always (virtually) there
    - remove Master elements that are missing mandatory elements and are not unique in the context

version 0.1.5:
    - create Cues from scratch
    - add a "--keep-cues" option to keep the original Cues instead of creating from scratch

version 0.1.4:
    - Allow files with no Track/Clusters (a file with only "logical" chapters is possible)

version 0.1.3:
    - By default build with support for large files (>4GB)
    - Sort the Cue entries
    - Optimize the Cue/Block linking speed by starting from, the previous matching Cluster found

version 0.1.2:
    - Fix the wrong EBML header in release builds (doh!)

version 0.1.1:
    - Fix the Seek Head computing mismatch for large files
    - Add a progress info during the cleaning (in 3 phases)

version 0.1.0:
    - Initial public release