0.5.8 (2009/07/20)
   Fix potential crash in audio capturing code.
   Fix time overflow in ~2000s.
   Fix default output file not containing current path where
    glc-capture is issued.

0.5.7 (2008/08/25)
   Add better output filename format handling. Available
    tags now include strings like application name or
    current date.
   Add support for switching to another stream file during
    capturing. '<Shift>F9' works like regular capture button
    but increments %capture% in filename and reopens file.
   Added simple stream state tracker.

0.5.6 (2008/07/13)
   Change stream on-disk format to reduce write() calls.
   Disable forced synchronization by default.
   Disable PBO by default.
   Add LZJB compression support.
   Add --version options to glc-capture and glc-play.
   Generate version.h based on git HEAD.
   Some minor scale bug fixes.

0.5.5 (2008/04/20)
   Fixed glXCreateWindow() related crash.
   Improved video playback code.
   Better command line argument parsing in encode.sh.
   Changed ALSA playback mode to blocking.

0.5.4 (2008/04/11)
   Fixed audio duration calculations. Fixes pauses in audio when
    exporting as WAV.
   Added generic stream demuxer: copy.

0.5.3 (2008/04/04)
   New stream format v3. Old v2 files aren't supported any more.
   Fix 4GiB file size limit in 32-bit environment.
   Use alsa_ prefix for all ALSA specific parts.

0.5.2 (2008/03/14)
   Implement video playback using power-of-two textures when
    GL_ARB_texture_non_power_of_two extension is not available.
   Fix some X11 hooks related segfaults (wine crashing at winex11).

0.5.1 (2008/03/10)
   New CMake build system.
   Some minor bugfixes.

0.5.0 (2008/02/28)
   Reorganized old core into core, util, state and log parts.
   Filter configuration moved from core. Core now contains only core
    settings and state.
   Redesigned core & filters API.
   glc-play, glc-capture and glc-hook separated from glc libraries.
   glc library headers are now installed into /usr/include/glc.
   Public API is now completely documented.

0.4.6 (2008/01/26)
   Better multilib support in Makefile.
   Add support for exporting frames into PNG images.
   Don't truncate output file if it can't be locked.
   Fix sonames.

0.4.5 (2007/12/27)
   Use synchronous IO which removes lag spikes caused by glibc flushing
    its output buffers to disk.
   Lock stream file. It is now easier to detect when multiple programs
    try to capture into same file.
   ALSA playback device is now configurable (-d).
   Stop playing when a video stream window is closed.
   Handle frame drops better.
   Lots of bugfixes and cleanups.

0.4.4 (2007/12/25)
   Fixed wine audio system hang.

0.4.3 (2007/12/22)
   Append current working directory into output file names if absolute
    path is not specified. Fixes files appearing into different
    directory when running glc-capture against some shell script
    -wrapped applications.
   Hook snd_pcm_mmap_writei() and snd_pcm_mmap_writen(). Fixes capturing
    wine applications when "Hardware Acceleration" is not "Full".
   Print out totals of each video and audio stream when extracting stream
    information.

0.4.2 (2007/12/15)
   Improved audio capture system:
    Lots of threading bug fixes.
    Performance improvement: use busy waiting only if the pcm is opened
    in asynchronous mode.
    Wine audio quality problems fixed.
   Fixed large file support in 32-bit environment.
   Rewritten signals/thread waiting framework: workaround possible
   glibc bug.
   A bunch of random bugfixes.

0.4.1 (2007/12/6)
   Reimplemented elfhacks symbol handling, finding symbols should be
    faster and binaries with DT_GNU_HASH are supported.
    This fixes potential audio stream duplication issue and crashes
    when ALSA/glibc is compiled with --hash-style=gnu.
   Clean up log format and include message level information in log.
   Added -s all (show complete file information) option to glc-play.
   Some bugfixes (large file handling, alsa crashes).

0.4.0 (2007/11/25)
   ALSA audio recording support (eg. record voice from mic).
   Support for rescaling pictures to specified size (aspect ratio is
     preserved) at playback/export.
   Extend scale to support YCBCR_420JPEG.
   Cleaned up source code layout.
   Split libglc to libglc-core, libglc-capture, libglc-play, libglc-export
     and libglc-hook.
   Clean up glc-capture command line arguments and argument parsing.

0.3.11 (2007/11/10)
   Color correction support; either use gamma values stored to stream
    at capture time (XF86VidModeSetGamma) or set custom gamma, brightness
    and contrast values at playback/export.
   Parallel compression support.
   Some bugfixes (double word -aligned image data).

0.3.10 (2007/10/29)
   Support for -fvisibility=hidden
   Fix crash/hooking when multiple hooks (eg. mumble overlay) is present.
   Wrap __libc_dlsym()

0.3.9 (2007/10/28)
   Logging framework: should help in debugging and testing.
   Support for locking fps when capturing.
   elfhacks: no more need to read data from filesystem, API change.
   Some gl_capture cleanups (finally).
   A bunch of bugfixes (PBO, handle EOF gracefully...).

0.3.8 (2007/10/26)
   Changed some default values for capture:
    Use GL_BGRA if ycbcr conversion or scaling is enabled.
    Capture front buffer.
    Disable indicator since it wont work when capturing front buffer.
    Use 25MiB for unscaled and uncompressed buffer.
   A few minor bugfixes (possible segfault at scaler and fix default
    silence threshold).

0.3.7 (2007/10/23)
   Fix lzo & quicklz decompression.

0.3.6 (2007/10/23)
   Support for QuickLZ compression.
   Use GL_PACK_ALIGNMENT 8 for faster readback.
   Fullscreen playback support.
   Made initialization thread-safe which fixes possible crash
    when capturing multithreaded application.

0.3.5 (2007/10/21)
   Scaler (both scale and ycbcr) bugfixes.
   Added sample build script (glc-build.sh).

0.3.4 (2007/10/17)
   Use 3D engine to draw frames instead of directly drawing pixels.
    Much smoother scaling while playing.
   More verbose IO error messages.
   Fixed audio skip calculations. Seeking doesn't cause audio desync
    any more.
   Some build-related fixes.

0.3.3 (2007/10/15)
   Reworked playback architecture. Should handle simultaneous audio
    and video streams better.
   Fix alsa async mode capture.
   Properly kill glc at error.

0.3.2 (2007/10/14)
   Hopefully fixed that crippling bash bug, glc-capture -s against
    scripts should be perfectly safe now.

0.3.1 (2007/10/13)
   Support for non-integer fps.
   Cleaned up audio format message. Should be more extensible now.
   Stream version bump (won't play old streams, sorry...).
   Support for capturing only selected area (cropping).
   Configurable audio silence threshold.

0.3.0 (2007/10/11)
   Split gl to gl_capture and gl_play.
   Split audio to audio_capture and audio_play
   Fixed threading bugs in scale, ycbcr and rgb.
   PBO timestamps should be accurate now.
   Lots of glc-play fixes (properly kill both audio and gl at CANCEL,
    CANCEL at WM_DELETE_WINDOW...)
   Lots of minor cleanups.

0.2.9 (2007/10/08)
   Use getopt_long() in glc-play, should make it much more accessible.
   New glc-capture application which sets correct environment variables
     based on nice list of command line arguments.

0.2.8 (2007/10/07)
   some code documentation (will someone really dare to look at this
    code...)
   Worked around some signal problems by starting alsa & opengl when
    capturing really starts.

0.2.7 (2007/10/07)
   Y'CbCr -> BGR conversion (rgb.c)
   Threading improvements, for example scale, ycbcr, rgb and unpack
    create one thread per CPU. glc should now scale nicely up to n
    CPUs.

0.2.6 (2007/10/05)
   BGR -> Y'CbCr conversion target (ycbcr.c) with scaling support
    Set GLC_COLORSPACE=420jpeg to convert to Y'CbCr 420jpeg at capture
    time. Scaling is pretty cheap operation if colorspace conversion
    is enabled and vice versa.
   yuv4mpeg target
   export as yuv4mpeg stream, also to stdout
    f.ex. glc-play file.glc -o - -y 1 | mplayer -
   export one audio/picture stream
   export wav to stdout
    f.ex. glc-play file.glc -o - -a 1 | mplayer -demuxer 35 -
   new example script glc-play-mplayer
   modified glc-encode script to take advantage of pipes and yuv4mpeg
    export capability (mplayer's bgr24 -> yv12 is very ugly)
   cleaned up img.c and wav.c
   cleaned up glc-play, especially command line arguments
   read fps from file and use it for exporting pictures/video

0.2.5 (2007/10/04)
   initialize pack & file processors when recording is actually started
    => no more empty stream files
   compression can be disabled by setting GLC_COMPRESS=0
   some audio threading hacks
    Hooked snd_pcm_...() calls shouldn't block anymore if target buffer
    is not ready. Of course this results skipping in captured stream.
    Setting GLC_AUDIO_SKIP=0 allows snd_pcm_...() calls to enter busy
    waiting state and thus ensures high-quality audio capture.
   use GL_ARB_pixel_buffer_object, if available, to asynchronously transfer
    pictures from GPU
    set GLC_TRY_PBO=0 to disable
   GLC_CAPTURE_BGRA=1 enables capturing BGRA frames and converting them
    to BGR in software at scale

0.2.4 (2007/10/03)
   alsa hook bugfix

0.2.3 (2007/10/03)
   reorganized wrapper library code
   start capturing immediately (GLC_START=1) or when specific key combination
    is pressed (GLC_HOTKEY="<Shift>F8")
   draw simple indicator at upper left corner when recording
    set GLC_INDICATOR=0 to disable
    indicator is not included in the recorded stream

0.2.2 (2007/10/02)
   unhook only alsa modules
   audio playback support
   improved source tree layout and Makefile

0.2.1 (2007/10/01)
   ALSA capture redone, should be more compatible and much simplier
   GLC_AUDIO=0 environment variable disables audio capture
   custom signal handler to ensure that lib_close() is called at exit
    set GLC_SIGHANDLER=0 to disable
   non-interleaved audio stream support in (wav.c)
   unhook all alsa libraries => no audio stream duplication

0.2.0 (2007/09/30)
   ALSA audio capture support (audio.c)
    needs ALSA file plugin
   wav target (wav.c)

0.1.4 (2007/09/29)
   thread.c cleanups, utilize the new and improved fake dma implementation in
    packetstream 0.0.11

0.1.3 (2007/09/23)
   stream format improvements

0.1.2 (2007/09/22)
   generic stream processor thread (thread.c)
   use the new thread model where possible
    (gl_show, img, scale, info, pack, file)
    => much cleaner code and better error handling
   img has now better multictx support

0.1.1 (2007/09/21)
   improved info
   support for applications that have multiple drawables,
    even multithreaded

0.1.0 (2007/09/21)
   architechture improvements (= another massive cleanup)
   scaler has now its own thread (scale.c)
   primitive info target (info.c)
   deprecated environment variables:
     GLC_STATS
     GLC_UBUF
     GLC_CBUF
   new environment variables:
     GLC_CAPTURED_BUFFER_SIZE
     GLC_SCALED_BUFFER_SIZE
     GLC_COMPRESSED_BUFFER_SIZE

0.0.10 (2007/09/20)
   support for capturing at glFinish() (GLC_CAPTURE_GLFINISH)
    for example compiz needs this
   some additional cleanups

0.0.9 (2007/09/20)
   massive cleanups (nuked globals where possible and
    free memory at exit)
   fixed scaler segfault at resize

0.0.8 (2007/09/20)
   bilinear filtering support for scaling with ratio != 0.5
   adjustable capture buffer (GLC_CAPTURE)
   ajdustable uncompressed and compressed stream buffer
    size (GLC_UBUF and GLC_CBUF)

0.0.7 (2007/09/18)
   BMP bugfixes

0.0.6 (2007/09/17)
   minilzo support
   support for exporting frames as Win 3.x BGR BMP images
   example encoder.sh script for encoding exported BMP images to
    x264-encoded video
   configurable stats (GLC_STATS)

0.0.5 (2007/09/15)
   initial arbitrary ratio (< 1.0) scaler
   use 'elfhacks' to hook dlsym()

0.0.4 (2007/09/14)
   scaler improvements (GLC_SCALE)
   use PS_PACKET_TRY, insufficient disk performance shouldn't affect
    running application any more (unless it is also waiting for disk)

0.0.3 (2007/09/10)
   adjustable capture fps and stream file (GLC_FILE and GLC_FPS)
   initial scaling support (GLC_RESIZE)

0.0.2 (2007/09/10)
   initial release
