/* $Id: ChangeLog,v 1.78 2003/09/28 02:51:55 matju Exp $ */

version 0.7.5 (2003.09.16):

 * type aliases: int32,i32,i; int16,i16,s; uint8,u8,b; float32,f32,f
 * added support for float64 (alias f64, d)
 * added support for int64 (alias i64, l)
 * doc: added number type table
 * @convolve: supports even-sized grids
 * fixed bug: puredata gf clock ran way too fast
 * rewrote the profiler subsystem (and removed bugs)
 * @scale_by: now works with any number of channels
 * renamed samples/ to jmax_examples/
 * Algebraic Properties Descriptions (internal, used for accelerations)
 * @convolve,@outer,@for,@inner,@draw_polygon: much faster
 * quicktime: support for pluggable codecs (eg: dv, divx, rpza, ...)
 * quicktime: fixed more bugs
 * quicktime: major speed increase
 * quicktime: added "colorspace" option
 * videodev: fixed bugs
 * videodev: removed obsolete option "noinit"
 * videodev: added option "colormodel" (especially because of new camera drivers)
 * sdl: added automatic resizing of window
 * png: read support
 * jMax bridge: more stable than ever
 * PureData bridge: *much* more stable than ever
 * Operator1, Operator2 renamed to Numop1, Numop2
 * x11: now also called "window", so you can write "@out window", "open window"
 * new object classes:
     @draw_image: picture-in-picture, with alpha blending, etc
     jmax4_udpsend: send to a jMax 4.0.x system via UDP
     jmax4_udpreceive: receive from a jMax 4.0.x system via UDP
     pd_netsend: send to a pd system via UDP
     pd_netreceive: receive from a pd system via UDP
     @eight: (like @four, but with eight of them ;-)
     peephole: like [@out x11] but as inset of a patcher (jMax 2.5 only)

version 0.7.2 (2003.04.24):

 * fixed bugs in: make install, jpeg reading
 * added support for float32
 * added direct .jmax decoding
 * added direct .pd encoding
 * pd examples moved to separate directory
 * ported some .jmax examples to .pd (automated) (8 out of 21)
 * added motion_detect.pd
 * new classes: demux, and more jmax emulations
 * @in,@out: keyword "option" may be omitted
 * configure: added --ruby-prefix
 * adding custom C++ pre-preprocessor
 * better type checking of message arguments (better error reporting too)
 * @print supports 3 dimensions, and msg "base" with arg 2,8,10,16
 * can now write loadbang-messages into an object box using the comma
 * major cleanup of the source code
 * added operator *>>8 (multiplication by value then division by 256)
 * new classes: @rgb_to_yuv, @yuv_to_rgb
 * @rotate now works with multiple axis (can work on 3D points, etc)

version 0.7.1 (2003.03.24):

 * fixed important bugs (crashes and such)
 * @store,@ can now receive in inlet 1 while sending from outlet 0.
 * @, when inlet 1 grid size is small but not 1, is now much faster.
 * added memcpy() usage logging (see profiler_dump)
 * added examples: drag_rectangle.jmax, plot.jmax, eclipse.jmax
 * added example: cellular_1d.pd
 * added classes: fork, jmax_udpsend, jmax_udpreceive
 * added classes: @rotate, @remap_image, @type
 * added operators: gcd,lcm (common divisors/multiples)
 * quicktime: added encoding, added seek, fixed bugs
 * @in inlet 1 tells frame number (int), end-of-file (bang)
 * @in: added: set, option loop (controlling auto-rewind)
 * updated cross_fade.jmax (much faster)
 * @two,@three,@four allow inlet 0 bang trigger
 * configure: simpler config for jMax 2.5
 * PD help patches (by Uli Berthold)
 * PD: "make install" takes care of help patches and library
 * CVS web interface on artengine.ca (thanks to Alex)

version 0.7.0 (2003.02.01):

 * new classes: @cast, @join, @ravel, @grade, @perspective
 * new grid protocol supports several number types (added uint8,int16)
 * added number type support in most classes
 * added "option cast" for @in in some formats
 * can now specify number types in grid literals
 * added some MMX support (accelerates by 0%..40%)
 * @import: added optional 2nd arg specifying type.
 * @import: can convert symbols to grids of their ascii codes.
 * new [@import per_message] yields one grid per incoming message
 * [fps]: added options "user" "system" "cpu" for selecting clock
 * aalib: added options autodraw, draw, dump
 * aalib: added raw input (two channels: characters, attributes)
 * x11: added support for 256-color mode using a private colormap.
 * x11: added "use_stripes" for alternate 256-color rendering.
 * fixed problems with earlier versions of Ruby (like 1.6.2)
 * new samples: polygon.jmax
 * videodev_effects.jmax: added sort-effects, centre-of-gravity-tracking
 * the time profiler is back to working !!!
 * @scale_by, @downscale_by: added right inlet, for configuration
 * @store is a bit faster
 * ppm: accelerated by large amount
 * @outer,@inner,@inner2,@fold accelerated by obscene amount

version 0.6.5 (2003.01.10):

 * can now encode Targa-24, Targa-32, JPEG-24
 * can now output through aalib (ascii art library)
 * fixed problems with libruby.a
 * tested with the new version of Ruby (1.8)
 * new classes:
	fps, @rgb_to_greyscale, @greyscale_to_rgb, @solarize,
	@complex_sq, @export_symbol, @draw_polygon,
	@apply_colormap_channelwise
 * new class FPatcher, a ruby patcher/abstraction system
 * @scale_to,@contrast,@spread,@posterize now available in
	PureData & Ruby; they also now accept arguments.
 * [@scale_to]: back to working; inlets "height" and "width" merged
 * [route grid_begin] replaced by [route grid]
 * [route grid_end] replaced by [@finished]
 * Most everything is 10-50% faster
 * changes in the internal transmission of grids
 * new two-input operators: div, swapdiv, put, ignore
 * compilable on MacOS 10

version 0.6.4 (2002.12.23):

 * can now decode JPEG (using libjpeg.so)
 * many bugs fixed (especially in file formats)
 * operators: log* added; tanh renamed to tanh*
 * @two,@three,@four are no longer specific to the jMax side
 * format grid: option headerless for reading any kind of file
 * format grid: option headerful (revert to actual .grid format mode)
 * fixed problems with GNU C++ version 3
 * format ppm: accelerated writing
 * format modifier gzfile: gzip support also works with [@out]
 * format x11: the "here" specifier is now optional
 * added @checkers
 * [@scale_by {y x}] for different y,x scale factors
 * [@in blah blah] means "open blah blah" -> [@in] (and same with @out)
 * added @downscale_by with or without smoothing
 * format targa: can now decode 32 bit RGBA
 * @layer: combines RGBA foreground with RGB background, yielding RGB.
 * format grid options: endian big, endian little, endian same
 * formats ppm,grid: use 'option rewind' to overwrite same file
	(by default, rewind is no longer done after each frame)
	('option rewind' also rewinds on reading)

version 0.6.3 (2002.12.06):

 * removing the custom leak detector ("Valgrind" program used instead)
 * removed all (?) memory leaks
 * videodev: new options: frequency, transfer [read|mmap], noinit
 * profiler summary code rewritten
 * profiler wrapper code removed
 * x11: option setcursor <0-63>, option hidecursor
 * x11: outlet 0 tells cursor position / button state
 * more C++ification of the code
 * many bugs fixed (especially crashes)

version 0.6.2 (2002.09.17):

 * jMax objects written in (or using) Ruby now can work in PureData too.
 * new format: SDL (portable output to window)
 * can now compile bridges without libruby.so
 * changed grid-protocol: added direct object-to-object streaming.
 * bug: gridflow's clock tick back to a decent value (sorry)
 * all inlets supporting grids also convert int/float as 0-D grids
 * @fold and @scan now accept grids in right inlet and constructor
 * @convolve is 2-3 times faster
 * %,swap% are now called rem,swaprem; new %,swap% is the true modulo.
 * @for now allows vectorial from/to/step values
 * @identity_transform removed, change to eg: [@for{0 0}{240 320}{1 1}]
 * PD users: grid literals are written like:
	[@for ( 0 0 ) ( 240 320 ) ( 1 1 )] with all those spaces
 * @inner,@inner2,@convolve can take right inlet grid as 4th argument
 * re-enabled and improved the memory leak detector (use --debug)
 * fixed many bugs and leaks
 * fixed bugs in @store
 * added sample: zoom.pd

version 0.6.1 (2002.08.29):

 * now compiling GridFlow as C++ (replacing C)
 * now you can use Ruby 1.7, which is faster
	note: if you do so, make sure your version is dated 2002
 * new objects: rubyprint, printargs, @print, @scan, @inner
 * new format: apple quicktime (using libquicktime.so)
 * @in gzip support (example: "open ppm gzfile teapot.ppm.gz")
	also works with targa and grid
 * BitPacking now supports 1 to 4 channels instead of just 3
 * using mkmf.rb makefile generation; some MSWindows support thru Cygwin
 * added geiger counter simulator in [rtmetro]
 * libruby.so is only needed when using GridFlow through jMax
 * now can do grid literals in @ and @outer, like [@ + {0 1}]
 * syntax of @redim,@import changed from [@redim 2 3] to [@redim {2 3}]
 * "3 3 # 1 0 0 1" into inlet does automatic @redim, for all objects
 * grid literals accept {2 3 # 1 4 5} as an implicit [@redim {2 3}]
 * objects rewritten in Ruby language: @in, @out
 * updated samples, templates, documentation.
 * fixed bugs

version 0.6.0 (2002.07.31):

 * THIS IS AN EXPERIMENTAL BRANCH (VERY BUGGY)
     REAL PROJECTS SHOULD USE VERSION 0.5.0 INSTEAD
 * GridFlow rewritten as a plugin for Ruby instead of jMax.
 * GridFlow now includes a Ruby-for-jMax bridge.
 * you need Ruby 1.6.6 (including libruby.so) or compatible
 * you don't need GNU Bash anymore (configurator is now a Ruby program)
 * format handlers for .ppm, .tga, .grid rewritten in Ruby
 * merged all Makefiles together, etc.
 * sources are in base/ and format/ instead of c/src/
 * many bugs removed, many bugs added.
 * will read ~/.gridflow_startup if it exists

version 0.5.0 (2002.06.08):

 * big changes to the internals (especially use of macros)
 * can compile without X11; added --no-x11 in ./configure
 * removed support for jMax 2.4
 * auto-detects jMax 2.5 and jMax 3.0
 * @inner renamed to @inner2 (new, proper @inner coming soon)
 * faster unary operators
 * added unary operator: sq (faster squaring)
 * further separation of GridFlow from jMax
 * major format API changes (added Stream class)
 * format "grid" now supports 8 bits per value
 * support for HeroineWarrior's LibMPEG3 (reading + seeking)
 * libmpeg.so (Greg Ward's) now also looked up as "libwardsmpeg.so"
 * added objects: rtmetro, pingpong
 * Moved CVS repository from Hostname.2y.net to Artengine.ca
 * updated samples

version 0.4.1 (2002.01.02):

 * cvs repository now has public access
 * now can run configure without jmax/fts being present
 * standalone version now works on Silicon Graphics and Corel Netwinder.
 * MPEG format readonly (single file at a time; mpeg video layer only)
 * grid TCP: non-blocking read
 * fixed all known memory leaks
 * X11 Shared Memory now disables itself properly on remote display
 * updated help files
 * updated help screenshots in the manual
 * fixed profiler bugs
 * fts emulation moved to c/src/ and tests moved to tests/

version 0.4.0 (2001.11.28):

 * package name changed from "video4jmax" to "gridflow"
 * documentation *rewritten*, more precise, more structured
 * documentation format is now XML (includes HTMLized version)
 * can now compile without jmax/fts (if you need quicker testing...)
 * added format "grid" for storing any kind of grid to disk.
 * added TCP client/server socket support (with format "grid" only)
 * added (timewise) profiler
 * @convolve now takes up to three arguments
 * Format API changes again
	* "connect" merged into "open"
	* "size" merged into "option"
	* @video_out merged into @out
 * format videodev can now do full framerate (instead of just half)
 * added X11 Shared Memory support (faster image transfer locally)
 * added @scale_by for quick scaling by integer factors.
 * @identity_transform, @scale_to are much faster.
 * many other accelerations

version 0.3.0 (2001.11.04):

 * reworked File Format API
 * grid objects now all accept lists of integers (auto-convert to 1D grid)
 * many accelerations (incl large speedup on chains of binary operations)
 * transformed @video_out (X11) into a "File Format" (really) and:
	* allows multiple displays
	* auto-resizing window
	* can set output as wallpaper
	* can read from the screen (screenshot)
	* @video_out now a backward-compatibility wrapper
 * format videodev now uses double buffer mmap (somewhat faster)
 * @video_in_file, @video_out_file renamed to @in, @out (with aliases)
 * new objects:
	@convolve, @inner, @for
 * more samples: Fire, Ripple, Game of Life, Chroma Key, Convolve, Saturation
 * much improved samples: Color Correction, Linear Transform.
 * use [@store uint8] for low-ram storage of values 0-255.
 * videodev: added option norm 0=pal 1=ntsc 2=secam 3=auto

version 0.2.2 (2001.08.15):

 * @video_out auto-updates on X11 ExposeEvent
 * updated documentation and help
 * fixed installation/config of help and summary
 * split BitPacking module from @video_out
 * added support for BTTV input (that is, using mmap() command)
 * new videodev options: channel,tuner,contrast,hue,etc.
 * now with 30 binary operators, and 3 unary operators
 * added many new samples
 * new objects:
	@!, @fold, @outer, @dim, @redim,
	@posterize, @contrast, @two, @three,
	@identity_transform, @scale_to, @spread

version 0.2.1 (2001.08.01):

 * added private CVS repository on hostname.2y.net
 * added configuration script (detects video4linux 1.x)
 * added documentation in HTML format
 * added File Format API
	* format "ppm": PPM P6 RGB24 support read-write
	* format "targa": Targa RGB24 support read-only
	* format "videodev": Video4linux read (using read() command only)
 * @store no longer slowing down its downstream
 * many other accelerations
 * Tuple changed to Dim; Index removed
 * Grid element type is typedef Number
 * @ supports grids in right inlet
 * now there are 20 binary operators

version 0.2.0 (2001.05.05):

 * package name changed from "video" to "video4jmax"
 * new kind of post() cancels repetitive log entries
 * major modifications to existing objects
 * new "grid transmission system"
	(Tuple,Index,GridInlet,GridOutlet,GridObject)
 * vout -> @video_out
 * vin_file -> @video_in_file
 * vout_file -> @video_out_file
 * added @import, @export
 * added @, @store

version 0.1.1 (2001.04.03):

 * removed vout's grab
 * vout width and height parameters swapped
 * vout_file class is mostly like vout but writes to a file in PPM format.

version 0.1.0 (2001.03.14):

 * fixed the bits_per_pixel bug
 * merged in some other variations on the main sample
 * included Christian's makefiles for jmax 2.5

version 0.0.7 (2001.03.08):

 * vout should support most types of RGB visuals now
 * autodraw now works: 0=none; 1=page; 2=line; 3=pixel
 * less global variables
 * putting all of this under the GPL

version 0.0.5 (2001.03.05):

 * vout class, two params: width, height; 24-bit BGR only; refresh by
finishing scanline or sending bang; "grab" (hack); "reset" for resetting
the pixel pointer. 
