3.2.12 Summary of Changes

Bugfixes
   * Fixed name space clash with libjpeg8 (Kenneth Lavrsen)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2010x01x22x084753
   * Fixed FFV1 codec encode with ffmpeg (Angel Carpintero)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2010x04x13x032553 
   * Fix conv_uyvyto420p segfault ( William M Brack )
   * Enhancing the palette selection ( William M Brack ) 
   * Fix zombies on OpenBSD. (Mark Feenstra)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2010x04x28x054348

3.2.11.1 Sumary of Changes

Bugfixes
   * Fix Segfault on reload or quit for vloopback (maybe other v4l1 devices too) (Peter Holik)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2009x06x17x090603
   * Fix fd leaks in external pipe. (Angel Carpintero)
   * Avoid possible stack smashing in v4l_open_vidpipe(). (Angel Carpintero)
   * Allow compile with OpenSuse ffmpeg package (15594svn-20081010)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/SupportQuestion2008x10x25x070400 (Angel Carpintero)
   * Fix warning for syslog().  (Angel Carpintero)
   * Better detection of ffmpeg  
     http://www.lavrsen.dk/foswiki/pub/Motion/ReleaseNoteMotion3x2x11/ffmpeg-detection.diff.gz 
     (Angel Carpintero) 
   * Fix warning for __USE_GNU redefined (Peter Holik) 
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2009x06x17x122137 (Peter Holik)
   * Allow compile with NetBSD and make LP64 compliant video_freebsd.c (Andreas Wrede)
   * Fix segfault for new libjpeg v7. (Angel Carpintero)
   

3.2.11 Summary of Changes

Features
   * Added support for ffmpeg-2008-04-09 port version of FreeBSD.
   * Remove mjpegtools dependencies and integrate only needed functions from library. (Angel Carpintero)
   * Allow change/setup framerate in FreeBSD using pwcbsd. (Angel Carpintero)
   * Get rid of ffmpeg-config in configure.in for debian. (Angel Carpintero)


Bugfixes
   * Fix Problem Encoding 1280x1024 resolution videos  
     http://www.lavrsen.dk/foswiki/bin/view/Motion/SupportQuestion2008x06x11x183727 (Angel Carpintero)
   * Add a new parameter netcam_tolerant_check, to be less strict with some buggy network cameras firmwares.
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2008x06x19x123218 (Angel Carpintero)
   * Fix round robin in BSD switching to METEOR_CAP_SINGLE. (Angel Carpintero)   
   * Fix rotate for v4l2 devices using JPEG / MJPEG palettes. (Angel Carpintero)
   * Fix v4l2_palette http://www.lavrsen.dk/foswiki/bin/view/Motion/UvcvideoMjpegPatch (Gerrit Hannaert)
   * Fix warning for x86_64 in conf.c using pointers LP64 compliant ( Angel Carpintero ).

3.2.10.1 Summary of Changes

Bugfixes
    * Fix a security issue in web control interface http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=484572
      (Angel Carpintero) 


3.2.10 Summary of Changes

Features
   * Added the pre_capture buffer redesign to throttle load and enhance pre_capture feature.
     http://www.lavrsen.dk/foswiki/bin/view/Motion/PreCaptureRedesign (Dag Erlandsson).
   * Added preview center feature.
     http://www.lavrsen.dk/foswiki/bin/view/Motion/PreviewCenter (Dag Erlandsson).	
   * Removed low_cpu feature, as it is not really compatible with pre_capture and a lot of other
     features rely on the pre_capture buffer behind the scenes. (Joerg Weber)
   * Removed night_compensate feature. This functionality is covered by noise_tune. (Joerg Weber)
   * Implemented a new reference frame algorithm to improve object recognition and location. (Joerg Weber)
   * Improved smartmask feature: real moving objects don't trigger the mask anymore. (Joerg Weber)
   * Added area_detect feature. New config options: area_detect, on_area_detected. (Joerg Weber)
   * Added help in http control 
     http://www.lavrsen.dk/foswiki/bin/view/Motion/FeatureRequest2007x11x19x181541 (Angel Carpintero)
   * Added Choose V4L2 palette http://www.lavrsen.dk/foswiki/bin/view/Motion/FeatureRequest2007x11x19x032318
     (Angel Carpintero)  
   * Improved http control ( 'back' link, select box, show current values when are going to be changed ). 
     (Angel Carpintero)
   * Improved thread handling, single threads can be stopped/restarted (Dag Erlandsson)
   * Watchdog, restart hang threads (Dag Erlandsson)
   * Added ON_CAMERA_LOST event (Dag Erlandsson)
   * Motion start if a camera isn't there at start, retries to connect if lost (Dag Erlandsson)
   * Netcam Keepalive and HTTP/1.1 http://www.lavrsen.dk/foswiki/bin/view/Motion/FeatureRequest2007x01x22x231542 
    (Simon Walls)
   * Added mov , Quicktime file format (Andrew Hamilton).
   * Added to configure.in --with-pwcbsd to allow compile motion in freebsd with webcam support instead of bktr
     (Angel Carpintero)

Bugfixes
   * Fixed a problem with locate and fixed mask overlay (Dag Erlandsson).
   * Preview pictures get the timestamp of moment they were captured (Dag Erlandsson).
   * Fixed http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2007x10x23x093651 (Angel Carpintero)
   * Fix process_id_file when is passed from command line (Angel Carpintero)
   * Fix http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2007x10x27x150419 (Angel Carpintero)
   * Fix http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2007x11x25x102808 (Angel Carpintero)
   * Avoid random errors , initialising some structs for V4L1 
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2007x11x26x010755 (Jason Sharpee & Angel Carpintero)
   * Fix motion segfault because ffmpeg API change 
     http://www.lavrsen.dk/foswiki/bin/view/Motion/SupportQuestion2007x12x29x175530 (Angel Carpintero)
   * Little fix in ffmpeg.c comparing version of LIBAVFORMAT_BUILD, since ffmpeg svn -r4486 LIBAVFORMAT_BUILD and
     LIBAVCODEC_BUILD uses LIBAVFORMAT_VERSION_INT ((49<<16)+(0<<8)+0) and LIBAVCODEC_VERSION_INT ((49<<16)+(0<<8)+0)
     (Angel Carpintero)	
   * Fix choose v4l2 palette , http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2008x01x21x043812   (Onakra)
   * Get current directory to allow write motion.conf properly 
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2008x02x25x013419 (John Bray) 
   * Fix broken PostgreSQL detection for custom location, 
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2008x02x25x025134 ( Angel Carpintero )
   * Fixed stepper when is used track_auto on ( Angel Carpintero ).
   * Better debug in netcam for "Error reading image header" 
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2008x02x27x092849 (Simon Walls)


3.2.9 Formal Release - Summary of Changes

Features
   * Removed debian ( to avoid conflicts with debian package) and FreeBSD
     ( no needed to deploy BSD port here ) directories. ( Angel Carpintero )
   * Added --chuid motion to debian init.d script. ( Angel Carpintero )
   * Added Flash video format (FLV) to ffmpeg.
     http://www.lavrsen.dk/foswiki/bin/view/Motion/FeatureRequest2007x07x19x131921 (Timo Taskinen).
   * Added FFV1 ( FF video codec 1 ) codec , Lossless encoding
     http://www.lavrsen.dk/foswiki/bin/view/Motion/LosslessEncoding (Andrew Hamilton).


Bugfixes
   * Fix segfault in webhttpd.c on motion restart (Angel Carpintero)
   * Fix segfault in debian http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2007x09x24x175945
     (Angel Carpintero)
   * Fix http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=391055 , change
     motion man page , -d requires level. (Angel Carpintero)
   * Handle mjpeg decoding and fix colour issue adding mjpegtools dependency
     http://www.lavrsen.dk/foswiki/bin/view/Motion/MjpegColorIssue
     http://www.lavrsen.dk/foswiki/bin/view/Motion/MjpegToYUV420pPatch
     (Marius Rieder, Angel Carpintero).
   * Add debug level > 5 to get logs from v4l2_select_input, v4l2_set_control and v4l2_set_input.
     (Angel Carpintero)


3.2.8 Formal Release - Summary of Changes

Features
   * Added connection status for all devices available from http web interface.
     (Angel Carpintero).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/FeatureRequest2006x11x09x050638
   * Improved deb packaging, install the init.d script. (Angel Carpintero).
   * Added swf codec to video creation (Bowser Pete, Andy Brown).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/FFmpegSWFcreation
   * Added V4L2 support (Krzysztof Blaszkowski, Angel Carpintero).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/VideoForLinuxTwoDiscussion,
   * Added support for V4L2_PIX_FMT_SBGGR8 ( bayer ), V4L2_PIX_FMT_SN9C10X,
     V4L2_PIX_FMT_MJPEG and V4L2_PIX_FMT_UYVY (Angel Carpintero).
   * ucvideo track pan/tilt support ( Michal Licko ,Dirk Wesenberg and
     Angel Carpintero )
     http://www.lavrsen.dk/foswiki/bin/view/Motion/LinuxUvcTrackingPatch 
   * Added a FreeBSD directory to allow people from BSD to get a daily version
     and create a port. (Angel Carpintero).
   * Removed mysql dependency from debian package and added a note to setup
     motion to run as daemon to create the pid file. (Angel Carpintero).
   * Changed the way configure search mysql headers and libs, added 3 parameters
     to configure --without-mysql to disable support, --with-mysql-include
     directory of mysql.h and --with-mysql-lib directory of libmysqlclient.a or
     libmysqlclient.so (Angel Carpintero).
   * Added MYSQL_OPT_RECONNECT flag for mysql connection (MYSQL 5.x only) and 
     changed default value for mysql_host (Angel Carpintero).

Bugfixes
   * Removed a duplicate call to jpeg_destroy_decompress already is called from
     netcam_image_conv (Krzysztof Blaszkowski).
   * Fix http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2006x10x10x081903,
     reconnect to mysql if connection dropped (Angel Carpintero).
   * Fix memory management in ffmpeg.c  (Rafis Khayrullin).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2006x12x19x062432	
   * Fix of ffmpeg_avcodec_log code (Alain Guidez).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2007x03x25x074612
   * Fix a segfault adding correct size to be used for bayer2rgb24()
     (Damian Wrobel)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2007x03x30x175913
   * Fix an error in FreeBSD, the use of capture even fields depends on height
     value. (Angel Carpintero)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2006x12x03x073610	
   * Fixed autodetection for VIA cpu, no needed to use --without-optimizecpu.
     Added many others (Angel Carpintero)
   * Fix, don't remove pid file when motion reload config file( HUP signal )
     (Angel Carpintero).
   * Fix compilation broken by uvc track type. (Angel Carpintero).
   * Fixed the thread number assignment which could goof up if netcams started
     very quickly before all thread were created at startup. (Kenneth Lavrsen)
   * Fix RoundRobin v4l2 buffers in driver when switching input,
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2007x07x07x182605 
     (Dag Erlandsson and Angel Carpintero).
   * Check EIO for VIDIOC_DQBUF to workaround saa7134 problem. 
     (Dag Erlandsson and Angel Carpintero).
   * Change bayer2rgb24() to fix a problem with sn9c102 driver
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2007x06x05x012249 
     (Jared D and Angel Carpintero).	
	
3.2.7 Formal Release - Summary of Changes

Features
   * Removed the minimum_gap feature which was utterly useless (Kenneth Lavrsen)
   * Added new feature: minimum_frame_time which enables capturing at a lower rate
     than 2 frames per second (Kenneth Lavrsen and Angel Carpintero)
   * Made the creation of reference frame and the decay mechanism depending
     on how much motion was detected relative to threshold setting (Joerg Weber)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/ReferenceFramePatch
   * Added process_id_file feature (Angel Carpintero)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/FeatureRequest2006x06x06x123003

Bugfixes
   * Fixed problem related to fetching images from Network camera and error
     handling when it fails. Motion would end in infinite loops (Bill Brack).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2006x03x10x000151
   * Improved reporting of thread numbers during startup in setup mode.
     (Peter Smith and Kenneth Lavrsen)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/SlightlyImprovedThreadCreationLogging
   * Ffmpeg code mutex locking fix (Peter Smith)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2006x04x07x164654
   * Ffmpeg avicodec logging improved (Peter Smith and Kenneth Lavrsen)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/FfmpegAvicodecLogging
   * Improved upon a few ambiguous log messages which may be emitted by the Event
     handling code with regards to Ffmpeg (Peter Smith)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/LoggingEventFix
   * Implemented a fix for the rare problem where some experienced that the
     move file names would only consist of the extension .mpg or .avi with no
     name in front. The root cause was the use of sprintf for appending to
     strings. (Mike Kenney and Kenneth Lavrsen)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/SupportQuestion2005x09x05x133031
     http://www.lavrsen.dk/foswiki/bin/view/Motion/SupportQuestion2006x06x19x174238
   * Altered the risky use of sprintf to snprintf in all places related to
     use with config strings that can become very long (Kenneth Lavrsen)
   * Removed annoying debug messages (v4l_set_input really needed ?) in the FreeBSD
     version (Angel Carpintero)
   * Fixed the check for ffmpeg version. In rev 5503 of ffmpeg the FFMPEG_VERSION_INT
     was removed from libavcodec/avcodec.h. Instead we now use the equivalent
     LIBAVFORMAT_BUILD >= 4616 which is the 0.4.9pre1 version of ffmpeg.
     (Kenneth Lavrsen)
   * Fixed segfault when netcam_url has no service ( http , ftp ) (Angel Carpintero)
   * Fixed interlace issue with METEOR_GEO_EVEN_ONLY in FreeBSD (Angel Carpintero)
   * Fixed possible syntax error in configure related to MySQL (Angel Carpintero)
   * Avoid open file descriptor when connecting to network cameras fails (Peter Holik) 
     http://www.lavrsen.dk/foswiki/bin/view/Motion/AvoidOpenfiledescriptors
   * Fixed http pause feature so that pausing thread 0 now pauses all threads.
     (GunnarSkjold)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2006x07x10x111239
   * Put a new global mutex around avcodec_close to avoid problems with not thread
     safe functions in ffmpeg (Angel Carpintero)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2006x04x07x164654
   * On FreeBSD configure defines a redundant freebsd for motion. Fixed by replacing
     -D__freebsd_ by BSD macro  included in sys/param.h for BSD platforms.
     (JukkaUkkonen and Angel Carpintero)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2006x07x08x070417
   * For BSD platforms changed to using native pthreads as default and adding
     linuxthreads as a optional parameter from configure. (Angel Carpintero)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2006x07x08x071646
   * Smartmask overlay feature did not set intensity correctly. (Kenneth Lavrsen)


3.2.6 Formal Bugfix Release.
   * Fixed bug where variables time_last_frame and time_current_frame had been
     extended to also be used for snapshot feature but declaration was hidden
     between #ifdef HAVE_FFMPEG. (Kenneth Lavrsen)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2006x03x09x012244
   * Fixed a bug that only allowed remote control of max 9 cameras. Now
     Motion can present up to 99 cameras in its http remote control interface
     (Angel Carpintero based on idea by Chuck Sheehan)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHttpManyThreads
   * text_changes now shows a '-' when motion detection is paused instead of
     just showing 0 (Kenneth Lavrsen)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/FeatureRequest2006x03x16x095713

3.2.5.1  Doc and man page correction
   * ffmpeg_filename has changed name to movie_filename to prepare for
     alternative movie encoding to the current ffmpeg based implementation
     and ffmpeg_filename will then be a bad name (Kenneth Lavrsen)
   * Man page corrected.

3.2.5   Formal Release. Summary of changes

   * Fixed misc problems in FreeBSD. (Angel Carpintero)
      * Update README.FreeBSD
      * Fix problems with tuner_device and frequency, now by default is not
        defined to allow use any input without problem.
      * Replace strndup() by memcpy() in netcam.c
      * Merged configure.in.freebsd with configure.in (configure.in.freebsd
        deleted)
      * Remove a warning when used --without-bktr
      * Remove cpu optimization (is broken)
   * Fixed memory leak in ffmpeg code. (Andrew Hamilton)
   * Fixed http control of pan and tilt (Angel Carpintero)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x12x22x122649
   * Fixed netcamera bug related to separating frames in an mjpeg stream.
     (Peter Holik). From mailing list 23 Dec 2005.
   * Fix related to connecting to the netcam (William Black)
     From mailing list 23 Dec 2005.
   * Changed CHANGELOG to same bullet format as used by Foswiki to make it easier
     to write release notes (Kenneth Lavrsen)
   * Changed CREDITS to same bullet format as CHANGELOG (Kenneth Lavrsen)
   * Fixed sql_mask not initialised correctly (Angel Carpintero)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2006x01x09x175603 
   * Fixed the management of strings from http remote control , setting to NULL 
     when they are set to "blank" and fixes a problem with despeckle , that didn't 
     allow to remove labeling action from http remote control. (Angel Carpintero)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/FixStringsAndDisableLabeling
   * Fix many typos in comments ( i ran aspell against the code ). Also there's a 
     fix to free cnt->eventtime_tm when motion exits. (Angel Carpintero)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/FixTypoInComments
   * Fix the problem that happens in FreeBSD and Debian Sarge because 
     version of ffmpeg is LIBAVFORMAT_BUILD < 4629. ( Pete Shipley and Angel Carpintero)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2006x01x12x120335
   * Updated motion.spec. Changing D_FORTIFY_SOURCE=2 by D_FORTIFY_SOURCE=1 to fix
     problem related to building with ffmpeg. (Angel Carpintero)
   * Implemented fix for missed snapshots with slow network cameras (Kenneth Lavrsen)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2006x02x07x162149
   * Added some constants in video.c function v4l_picture_controls() which can help
     people hack an optimal set of values for controlling auto brightness for their
     particular camera. For now I am do not want to add all of these to the already
     too large number of motion config options. Maybe based on feedback we can
     permanently change the constants and add an additional auto brightness option.
     Or maybe a combined option that sets more constant based on an algorithm.
     (Kenneth Lavrsen)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2006x02x07x212816
   * Fixed a syntax error in picture.c get_pgm() which caused the program to segfault 
     when a mask file size did not match the picture size. Now the program
     correctly gives an error message and continues without the mask. (Kenneth
     Lavrsen).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x10x08x150720
   * Added Tilt support to stepper track. ( Angel Carpintero ).
   * CPU VIA Ezra C3 autodetection support added. (James Van Vleet)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/VIAEzraC3Patch
   * Fixed mysql configure auto-detection for x64 systems. ( Angel Carpintero)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/SupportQuestion2006x03x02x152208
   * Added the ffmpeg_deinterlace feature (Andrew Hamilton)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionffmpegDeinterlace 	

3.2.4   Formal Release. Summary of changes

Features
   * New text option text_event and new conversion specifier %C. Option
     text_event defines the value %C which then can be used in filenames and
     text_right/text_left. The text_event/%C uses the time stamp for the first
     image detected in a new event. Default value is %Y%m%d%H%M%S. %C is an empty
     string when no event is in progress (gap period expired). Pre_captured
     and minimum_motion_frames images are time stamped before the event happens
     so %C in text_left/right does not have any effect on those images.
   * Added new option track_auto which is a boolean option (on or off)
     with default value off. This enables people to start Motion with auto
     tracking enabled. Changing the config value for track_auto and
     enabling the auto tracking via the httpd track/auto has the exact same
     effect.
   * Added 3 new tracking options: track_step_angle_x, track_step_angle_y,
     and track_move_wait. The options track_step_angle control the movement
     during auto tracking and are currently only active for the pwc type
     tracking. The idea is that they can later also be used for the generic
     tracking as it evolves. The track_move_wait controls the number of frames
     after the camera has moved (auto or manual) during which motion detection
     is disabled. This option should be set so low that the motion detection
     is re-enabled the minute the camera is standing still again.
   * Added new sql_query option. This in combination with conversion
     specifiers incl the two new %f and %n enables the user to use any database
     structure they please. Adding fields is now a simple matter of modifying
     the sql query.
   * Added the %t conversion specifier which is the thread (camera) number.
   * Added two new conversion specifiers: %f which is filename (full path)
     and %n which is filetype (sqltype) valid in on_picture_save, on_movie_start,
     on_movie_end and sql_query. This also means that filename is no longer
     appended at the end of the 3 on_xxxx commands.
   * http control had a number of small improvements.
   * Added the debian sub directory so that people can build the deb package.
   * Enhanced netcam compatibility with Lumenera and Pixord Cameras.
   * Netcam feature now supports both http and ftp.
   * Added an infinite retry scheme for netcams that are not available
     when Motion is started. Instead of just dying, Motion now retries every
     10 seconds until the netcam is available. Until the netcam is available
     Motion enters a mode showing a grey image with a text information which
     is fed to webcam, timelapse, snapshots, vloopback etc. If the actual
     height and width of the netcam does not match the dimensions in the
     config file Motion will perform a quick restart.
   * Added a better error handling of a netcam that changes dimensions
     while Motion is running. Instead of just writing error messages Motion
     restarts quickly to recover from this change.
   * FreeBSD Code improvements including set/get hue, saturation, contrast
     and brightness, support large resolutions.
   * RPM specs file changed as suggested for use in the Livna repository.
   * Changed the sequence of events connected with creating files. Data is
     now written to the databases (if used) before an external commends is
     on (on_xxxx options) allowing the external program to use the new data
     in the database.
   * Motion is now also works on MaxOSX with similar feature set as FreeBSD.

Bugfixes
   * netcam code now waits for the next frame to arrive for a limited period
     in order to avoid too many duplicate images.
   * Motion loop resets its frame timer when the image received is from a netcam.
     This lowers the actual framerate of Motion to the rate the netcam can actually
     keep up with.
   * Removed all warnings when running ./configure --with-developer-flags.
   * Fixed error message with unknown config option.
   * Fixed small mistake in allocating memory for cnt->imgs.common_buffer.
   * Implemented a speed-up patch of the draw text feature.
   * Introduced check for device image size being a multiple of 16.
   * Switchfilter feature repaired.
   * Fixed small bug where motion was detected when using a tracking camera and
     the camera moved to center position when gap period expires.
   * Implemented fix to configure so that LDFLAGS from the environment are used
     when making the Makefile.
   * Changed configure so that --with-jpeg-mmx is default off as a reaction to
     known problems seen when using the jpeg-mmx library.
   * The lightswitch and switchfilter features have changed to ensure that both
     algorithms work on raw unfiltered motion pixels which they both were designed
     for.
   * Fixed bug related to init of mutex in netcam code.
   * Fixed small bug where the displayed time in the grey error image
     shown during start with unavailable netcam could show a garbage value
     under rare circumstances.
   * Restored the function sigchild_handler so it contains the same code
     as before motion-3.2.1_snap9. They is done in an attempt to fix an old
     problem with zombie child processes that has shown up again.
   * Added a work-around so people in FreeBSD that uses a capture card
     where input 1 is not tuner can use motion if frequency is set -1 in
     motion.conf or thread#.conf


3.2.4     Detailed changes for 3.2.4
snap1
   * Removed all warnings originating from the motion sources when running
     ./configure --with-developer-flags.
     The modifications were done by the following people: Peter Holik, Bill Brack,
     Angel Carpintero and Kenneth Lavrsen.
     We now encourage developers to ensure that new code is checked with
     --with-developer-flags and code made so that no new warnings shows originating
     from the motion sources.
     http://www.lavrsen.dk/foswiki/bin/view/Motion/ReduceWarningsPatch
   * Fixed error message with unknown config option (Bill Brack)
   * Fixed small mistake in allocating memory for cnt->imgs.common_buffer
     (Angel Carpintero).
   * Implemented a speed-up patch of the draw text feature (Peter Holik).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/DrawTextspeedup
   * http control updated: (null) messages replaced by "disabled", last parameter
     in conf/list are displayed correctly and only in Main thread. When motion runs
     with only one thread, it displays "No threads". (Angel Carpintero)
   * Enhanced compatibility with Lumenera (Bill Brack)
   * http control: selectbox instead of a textfield for changing boolean configs
     (Peter Holik and Angel Carpintero).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/WebhttpEnhancements.
   * Introduced check for device image size being a multiple of 16 (Peter Holik).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/NetcamModulo16Patch
   * Added the debian sub directory so that people can build the deb package
     (Angel Carpintero).
   * Sync configure.in.freebsd (adding support for jpeg-mmx, developer-flags and
     some cosmetic changes ) (Angel Carpintero)
   * Implemented --with-developer-flags fixes in FreeBSD code (Angel Carpintero).
   * Implemented Threadnr in TLS (thread-local storage)patch. It puts the thread
     number into TLS and modifies motion_log() so that we do not have to drag the
     cnt struct around just to be able to print the thread number in the log and
     on the console. (Per Jönsson with additional removal of unused cnt by
     Kenneth Lavrsen).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/ThreadNrTlsPatch
   * Moved the motion_loop initialisation into a new function motion_init
     (Bill Brack).
   * Removed old unused code related to read mode (not mmap) from V4L devices
     (Kenneth Lavrsen).
   * In v4l_start change map from unsigned char * to void * to be ANSI C compliant
     with mmap (Angel Carpintero)
   * http control: Changed disabled to (not defined) when displaying option list
     (Angel Carpintero)
   * netcam code now waits for the next frame to arrive for a limited period
     in order to avoid too many duplicate images (Bill Brack).
   * Motion loop resets its frame timer when the image received is from a netcam.
     This lowers the actual framerate of Motion to the rate the netcam can actually
     keep up with. (Kenneth Lavrsen)
   * Last --with-developer-flags warnings eliminated simply by swapping the
     order of the #include statements in the sources (Bill Brack and Kenneth Lavrsen).
   * FreeBSD Code improvements by Angel Carpintero
      * Implemented set/get hue , saturation , contrast and brightness.
      * Better support to capture with big resolution ( 640x480 , 768x576 ).
      * Update Readme adding information about "how to configure a capture
        card and settings" , update packages dependencies .
      * Remove support for libjpeg-mmx , motion segfault ( future fix ).
      * Cosmetics changes in configure.in.freebsd ( replace --without-v4l by
        without-bktr ).
      * Cleanup code and fix warnings.

snap2
   * Simplified rotation code based on the fact that images must have dimensions
     that are a multiple of 16 (Per Jönsson)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/RotateSimplificationPatch
   * Switchfilter feature repaired. It was called inside motion_detected()
     after overlays on cnt->img.out were added which meant that the feature also
     detected all the overlays, smartmasks, fixed mask and text. It is now moved
     to the motion_loop right after the lightswitch feature and before any
     overlays are added (Kenneth Lavrsen).
   * Fixed small bug where motion was detected when using a tracking camera and
     the camera moved to center position when gap period expires. The fix includes
     gathering the updating of reference frame in one place only in the motion_loop
     (Kenneth Lavrsen).
   * Implemented the new text option text_event and new conversion specifier %C.
     Option text_event defines the value %C which then can be used in filenames
     and text_right/text_left. The text_event/%C uses the time stamp for the first
     image detected in a new event. Default value is %Y%m%d%H%M%S. %C is an empty
     string when no event is in progress (gap period expired). Pre_captured
     and minimum_motion_frames images are time stamped before the event happens
     so %C in text_left/right does not have any effect on those images (Kenneth
     Lavrsen).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/EventConvertionSpecifierDiscussion
   * Renamed some variables related to time to be better descriptive of function
     and type (Kenneth Lavrsen).
   * Added new option 'sql_user_text'. This can be defined with the same
     conversion specifiers as text_xxx, on_xxxx and filenames. The SQL field
     text_left has been removed and replaced by a field user_text which is
     used for storing the interpreted value of sql_user_text (Kenneth Lavrsen)
   * Added new SQL field event_time_stamp of the type TIMESTAMP
     (Kenneth Lavrsen).

snap3
   * Enhancement to Netcam Code for Connection to Pixord Cameras (Bill Brack).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/NetcamFixPixordBug
   * Implemented fix to configure so that LDFLAGS from the environment are used
     when making the Makefile (Angel Carpintero).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x09x15x185558
   * Changed configure so that --with-jpeg-mmx is default off as a reaction to
     known problems seen when using the jpeg-mmx library (Angel Carpintero).
   * RPM specs file changed as suggested for use in the Livna repository.
     (Kenneth Lavrsen)
   * The lightswitch and switchfilter features have been moved up before the
     despeckle features are run. This should ensure that both algorithms work on
     raw unfiltered motion pixels which they both were designed for. (Kenneth
     Lavrsen)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x10x05x212444

snap4
   * Integrated NetcamWithFtp patch. To use ftp simply use a URL starting with
     ftp:// (Bill Brack). Code was additionally cleaned up by Kenneth Lavrsen.
     http://www.lavrsen.dk/foswiki/bin/view/Motion/NetcamWithFTP
   * Changed error handling in vid_start so that failing to open the video
     device no longer causes an exit but a return with error code -1. (Kenneth
     Lavrsen)
   * Added the %t conversion specifier to show the thread number. (Angel
     Carpintero).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/ThreadConversionSpecifierPatch
   * Added help texts in conf.c and motion-dist.conf describing the %t
     specifier. Added a good example of use in motion-dist.conf. (Kenneth
     Lavrsen).
   * Fixed bug related to init of mutex in netcam code (Angel Carpintero).
   * Improved fix for netcam mutex init (Bill Brack).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/NetcamFixPthreadInit
   * Netcam_ftp code fixes (Angel Carpintero and Asbjørn Pettersen)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/NetcamWithFtpEnhancements
   * Enhanced ffmpeg detection (Angel Carpintero).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BetterFFmpegDetection
   * Added two new conversion specifiers: %f which is filename (full path)
     and %n which is filetype (sqltype) valid in on_picture_save, on_movie_start,
     on_movie_end and sql_query. This also means that filename is no longer
     appended at the end of the 3 on_xxxx commands. (Kenneth Lavrsen)
   * Removed the sql_user_text option that was added in snap 2 (Kenneth
     Lavrsen)
   * Added new sql_query option. This in combination with conversion
     specifiers incl the two new %f and %n enables the user to use any database
     structure they please. Added fields is now a simple matter of modifying
     the sql query. The default is the same as the default in snap1.
     (Kenneth Lavrsen).
   * Changed the sequence of events connected with creating files. Data is
     now written to the databases (if used) before an external comments is
     on (on_xxxx options) allowing the external program to use the new data
     in the database (Kenneth Lavrsen).
   * Added an infinite retry scheme for netcams that are not available
     when Motion is started. Instead of just dying, Motion now retries every
     10 seconds until the netcam is available. Until the netcam is available
     Motion enters the normal flow with the same grey image with a text
     information being fed to webcam, timelapse, snapshots, vloopback etc.
     Motion uses the width and height from the config file for this. It is
     a good idea to setup width and height so it is the same as the netcam.
     If the dimensions are the same Motion will switch over to the netcam
     seemlessly. If the dimensions are different Motion will perform a quick
     restart so all the many internal buffers can be initialised properly
     (Kenneth Lavrsen).
   * Added a better error handling of a netcam that changes dimensions
     while Motion is running. Instead of just writing error messages Motion
     restarts quickly to recover from this change. Note the now more well
     defined error coding for vid_next for both netcams and V4L cams.
     (Kenneth Lavrsen)

snap5
   * Fixed small bug where the displayed time in the grey error image
     shown during start with unavailable netcam could show a garbage value
     under rare circumstances. (Kenneth Lavrsen).
   * Restored the function sigchild_handler so it contains the same code
     as before motion-3.2.1_snap9. They is done in an attempt to fix an old
     problem with zombie child processes that has shown up again.
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x11x13x115016
     (Kenneth Lavrsen).
   * Move the declaration of sig_handler_action and sigchild_action from
     the setup_signals function where they are local and will be destroyed
     and out in main just before setup_signals is called. Changed the
     function setup_signals so the two structs are passed as pointers.
     (Kenneth Lavrsen)

Release
   * Added new option track_auto which is a boolean option (on or off)
     with default value off. This enable people to start Motion with auto
     tracking enabled. Changing the config value for track_auto and
     enabling the auto tracking via the httpd track/auto has the exact same
     effect. (Kenneth Lavrsen)
   * Added 3 new tracking options: track_step_angle_x, track_step_angle_y,
     and track_move_wait. The options track_step_angle control the movement
     during auto tracking and are currently only active for the pwc type
     tracking. The idea is that they can later also be used for the generic
     tracking as it evolves. The track_move_wait controls the number of frames
     after the camera has moved (auto or manual) during which motion detection
     is disabled. This option should be set so low that the motion detection
     is re-enabled the minute the camera is standing still again. Feature
     originally made by Moshe Van Der Sterre. Kenneth Lavrsen extended it to
     be more generic.
     http://www.lavrsen.dk/foswiki/bin/view/Motion/PwcConfiguration
   * New Feature: Motion is now also supported on MaxOSX with similar
     feature set as for Free BSD. See README.MacOSX for details how to install
     it. (Angel Carpintero)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/MacOSXPatch
   * Added a work-around so people in FreeBSD that uses a capture card
     where input 1 is not tuner can use motion if frequency is set -1 in
     motion.conf or thread#.conf (Angel Carpintero).


3.2.3   Detailed changes for 3.2.3
        Bugfix release only. No new features.
   * Fixed a bug in the http control code that failed to accept a client
     connecting in some systems (Peter Holik).
   * Fixed a series of bugs where several feature were using the image buffer
     after text was added for noise tuning, auto_brightness, reference frame
     update when tracking etc. When a netcam failed to produce an image the
     text added to the previous image became motion detected also. The code is
     not changed so that the ring buffer is used for timestamped images
     and the image used for detection is in a buffer cnt->imgs.image_virgin.
     (Kenneth Lavrsen).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x08x15x140701
   * Auto brightness used the first image in ring buffer instead of the
     latest image and it used an image with time stamping. It now uses the new
     cnt->imgs.image_virgin buffer.
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x08x15x160208
   * Cleaned out unused code from httpd control (Angel Carpintero).
   * Option switch_filter used print_int instead of print_bool when motion.conf
     was saved (Kenneth Lavrsen).


3.2.2   Formal Release. Summary of changes

Features
   * New completely rewritten netcam code.
   * Proxy servers are again supported by netcam feature
   * New conversion specifier %o for threshold
   * New convertion specifier %Q for number of labels
   * Drawing of mask and smartmask in setup mode improved
   * Compilation of motion on 64 bit machines improved
   * RPMs can now be built by non-root user
   * Improved the labelling algorithm so that locate feature and tracking features
     includes all labelled areas above threshold
   * Motion now supports the mjpeg webcam stream while saving PPM images.
   * New improved webcam feature. When you set webcam_motion on Motion will now
     stream at 1 fps instead of none. When motion is detected the webcam stream
     increases to the limit set in the config file. This change makes the
     webcam_motion much more interesting. The previous function always ended up
     with clients timing out.
   * Implemented the libjpeg-mmx patch. Installing the MMX version of libjpeg
     can increase performance. Especially for machines with very little CPU power.
     It only modifies the configure script. If you do not have the libjpeg-mmx
     the configure script with ignore this and use the standard libjpeg.
     Note that RPMS will be built without this
   * Improved descriptions in motion.conf
   * Many small code speed optimizations.
   * Added new feature: Double size text. A new config option 'text_double' can
     be set 'on' and this scales the text to double size. Default is off.
   * Improved error handling of missing picture frames from camera. Especially
     network cameras will often not be able to provide a picture frame from time
     to time. Motion would retry before and eventually and rather quickly exit
     the camera thread and maybe completely exit. The improved handling now
     makes a copy of the previous frame for 30 seconds (longer if cpu_low is
     activated because the implementation is 30 X framerate frames) and then
     show a grey image with a message saying the connection is lost and an ISO
     format time stamp of first poor connection.
   * Added a configure option --with-developer-flags which enables many compiler
     warnings that can be used by developers to make code more robust. Not
     for normal users building Motion.
   * Included a CODE_STANDARD text file to help new developers make patches
     that are easier to integrate without too much manual editing.

Bug Fixes
   * Fixed a bug in the autobrightness algorithm
   * Fixed bug reporting errors when creating symlink to last snap
   * Improved code so that Motion no longer uses the tmpfile() function for
     buffering the frames of the mjpeg stream.
   * Implemented a fix/work around to a bug related to building and installing
     RPMs on Suse.
   * Improved signal handler
   * Code commented much more.
   * Many bugfixes to get Motion more stable (less segfaults)
   * Code improved to remove all warnings when compiled with gcc 4.0
   * Better FreeBSD support
   * Replace functions not threadsafe with threadsafe functions.
   * Implemented a much easier to use motion_log function which replaces the
     calls to printf and syslog. This code change as no impact to the user.
   * Fixed a bug in video.c so that VIDEO_PALETTE_GREY cameras now actually work.
   * Updated the ffmpeg.c code so that Motion can now be built with ffmpeg CVS
     release from the June/July 2005 timeframe.



3.2.2   Detailed changes for 3.2.2
snap1
   * Pthread deadlock in motion 3.2.1 fixed (Angel Carpintero)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x05x26x125712
   * http lockup bugfixes and ConvertSignalToSigaction only for webhttpd
     (Angel Carpintero)
   * alg_draw_location: Use temporary variables to store the values used in
     for() loops instead of compute them in each loop (Angel Carpintero).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/ImproveAlgDrawLocation
   * Small speed boost to the function draw_textn (Andrew Hamilton and
     Angel Carpintero).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/DrawTextnImprovement
   * Added two new convertion specifiers: %o for threshold and %Q for number
     of labels. (Kenneth Lavrsen)
   * Improved the config file description for pre_capture to get people to
     use small values (Kenneth Lavrsen).

snap2
   * Avoid Cleanup Segfault. Avoid Cleanup Segfault. Allocates filepath using
     strdup to avoid segfault is target_dir parameter is not supplied in
     motion.conf. Moves out from signal handler the cleanup for pipe and mpipe.
     (Angel Carpintero)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/AvoidCleanupSegfault
   * Major code cleanup concerning signedness of chars all over the code to
     allow compilation with gcc4.0 (like in Fedora Core 4) without any
     errors or warnings. This will probably require that some of the not yet
     included patches will have to be fixed because it it code all over the
     place that has been changed. (Kenneth Lavrsen)

snap3
   * Changed the order of drawing the red mask in setup mode so that the
     smartmask is drawn after the fixed mask (Joerg Weber).
   * Changed the configure script so that /usr/lib64 is also searched for
     the presence of ffmpeg (should fix the problem with 64 bit machines)
     (Kenneth Lavrsen).
   * Changed the configure script so that rpms can be made by normal non-root
     users (Angel Carpintero, Kenneth Lavrsen).

snap4
   * Fixed the ffmpeg code so that Motion also compiles against libavcodec
     build 4754 or later. (Per Jönsson)
   * Above change in configure script for 64 bit ffmpeg support also implemented
     in the freeBSD configure (Angel Carpintero)
   * Webhttp control interface fixed so it also works in FreeBSD (Angel
     Carpintero)
   * Improved the display of fixed mask. It is now shown as grey instead of
     red. This makes it easier to see the smart mask working when you also have
     a fixed mask (Joerg Weber).
   * Netcam First Header patch. If an error with jpeg decompression occurred at
     connecting to a mjpeg streaming webcam, this patch skips this jpeg and tries
     to decompress next jpeg up to MAX_HEADER_RETRIES (20) (Peter Holik).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/NetcamFirstHeader

snap5
   * Small improvement in framerate accuracy (Peter Holik).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/FramerateAdjust
   * Fixed a bug in the autobrightness algorithm (Per Johnsson)
   * Fixed a bug in the webhttpd code related to pan/tilt. Bug was introduced in
     snap4 (Angel Carpintero, Kenneth Lavrsen).
   * Improved the labelling algorithm so that locate feature and tracking features
     includes all labelled areas above threshold (Joerg Weber).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/ImprovedLabellingPatch
   * Fixed bug reporting errors when creating symlink to last snap (Bill Maidment)
   * Changed all use of localtime to localtime_r which is threadsafe
     (Kenneth Lavrsen).
   * Implemented a modified version of the WebcamCompressInMemory so that Motion
     no longer uses the tmpfile() function for buffering the frames of the mjpeg
     stream (Peter Holik).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/WebcamCompressInMemory
   * Modified the WebcamCompressInMemory patch so that Motion now supports the
     mjpeg webcam stream while being setup for saving PPM images (Kenneth Lavrsen).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/WebcamCompressInMemory
   * Major clean-up of code in picture.c and webcam.c so that function names and
     variable names are less confusing. Also added many comments in picture.c.
     (Kenneth Lavrsen).

snap6
   * Webcam code commented more (Kenneth Lavrsen)
   * New improved webcam feature. When you set webcam_motion on Motion will now
     stream at 1 fps instead of none. When motion is detected the webcam stream
     increases to the limit set in the config file. This change makes the
     webcam_motion much more interesting. The previous function always ended up
     with clients timing out. (Kenneth Lavrsen).

snap7
   * Implemented WebcamShortWriteHandling patch (Bill Brack)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/WebcamShortWriteHandlingPatch
   * Implemented the libjpeg-mmx patch. Installing the MMX version of libjpeg
     can increase performance. Especially for machines with very little CPU power.
     It only modifies the configure script. If you do not have the libjpeg-mmx
     the configure script with ignore this and use the standard libjpeg.
     Note that RPMS will be built without this (Peter Holik and Angel Carpintero).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/LibJpegMmx

snap8
   * Small code cleanup in webcam.c and picture.c and .h for the webcam code
     (Peter Holik and Kenneth Lavrsen)
   * Small code cleanup in motion.c for the variable holding the number of
     microseconds since epoch. The old code worked fine but relied on an integer
     overflow every 71 minutes. (Bill Brack and Kenneth Lavrsen)
   * Implemented a fix/work around to a bug related to building and installing
     RPMs on Suse. (Paul Beltrani)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x07x14x212356
   * Small speed optimization in the creation of reference frame (Peter Holik).
   * Complete rewrite of the Netcam code. Should fix many of the reported and
     still open netcam bugs. This is first release in a snapshot. Expect to find
     bugs. Testing is important. If you have a netcam please test this and report
     bugs.
     http://www.lavrsen.dk/foswiki/bin/view/Motion/NetcamCodeRewritePatch

snap9
   * Fixed bug related to disabled webcam or duplicate webcam port. Error log
     accept(): Socket operation on non-socket continuously written to syslog.
     (Kenneth Lavrsen)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x08x01x150922
   * Fixed memory leak in webhttpd related to use of strdup (Angel Carpintero).
   * Improved the error reporting in the Netcam code and did a few minor
     corrections and code cleanups (Bill Brack).
   * Implemented a much easier to use motion_log function which replaces the
     calls to printf and syslog. The implementation to actually use this has been
     implemented in video.c and the Netcam code files. Rest will be in next snap.
     This code change as no impact to the user (Bill Brack).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/ErrorLoggingEnhancementPatch
   * Fixed a bug in video.c so that VIDEO_PALETTE_GREY cameras now actually work
     (Bill Brack).
   * Implemented the conversion of signal to sigaction which should be more
     thread safe. Hopefully this still keeps Motion from making Zombies.
     (Christophe Grenier).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/ConvertSignalToSigaction
   * Added new feature: Double size text. A new config option 'text_double' can
     be set 'on' and this scales the text to double size. Default is off.
     (Andrew Hamilton).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/TextScalingPatch

snap10
   * Error Logging Enhancement Patch v 1.3 (Angel Carpintero) including:
     http://www.lavrsen.dk/foswiki/bin/view/Motion/ErrorLoggingEnhancementPatch
      * Populate the motion_log to the whole motion source code.
      * Fixed FreeBSD compilation.
      * Added the possibility to pass NULL as struct context *
      * Removed unused errno variables.
      * Fixed errno in rotate.c , set to 0.
      * Fixed some errno flags in webhttpd.c and motion.c
      * Fixed a bug when not motion.conf is found
      * Removed printf from all files
      * Fixed the conf_list[] index in motion.c
   * RotateBswapFix Patch v 2 (Per Jönsson) including:
      * cleanup in code comments
      * fix for __bswap_32 macro collision
      * fixed bug where initialization would be incomplete for invalid degrees
        of rotation
      * now uses motion_log for error reporting
     http://www.lavrsen.dk/foswiki/bin/view/Motion/RotateBswapFix
   * Re-mplementation of optional Proxy Server for Network Cameras (Bill Brack).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/NetcamProxyServerPatch
   * Included a CODE_STANDARD text file to help new developers make patches
     that are easier to integrate without too much manual editing. (Kenneth
     Lavrsen)
   * Added the missing rotate feature in the new netcam code (Bill Brack)

snap11
   * Updated the ffmpeg.c code so that Motion can now be built with ffmpeg CVS
     release from the June/July 2005 timeframe (Per Jönsson).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/FfmpegCodecPatch
   * Improved error handling of missing picture frames from camera. Especially
     network cameras will often not be able to provide a picture frame from time
     to time. Motion would retry before and eventually and rather quickly exit
     the camera thread and maybe completely exit. The improved handling now
     makes a copy of the previous frame for 5 seconds (longer if cpu_low is
     activated because the implementation is 5 X framerate frames) and then
     show a grey image with a message saying the connection is lost and an ISO
     format time stamp of first poor connection. (Kenneth Lavrsen).
   * Implemented version 2 of the NetcamErrorImprovementPatch which should
     work with the improved error handler. Changes include:
      * Changes handling of non-streaming camera to include a separate thread.
      * Changes the value returned from netcam_next to the motion main loop to
        indicate the status of the image returned.
      * Many changes to the comments, and some enhancement to the logic, to begin
        the implementation of points agreed on the NetcamRetryErrorDiscussion page.
      * Implements the triple-buffering scheme proposed by PeterHolik (but not the
        "Without Locking" portion of his proposal).
     Version 2 however does not seems to recover when an mjpeg stream resumes
     after a period of not being available. (Bill Brack)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/NetcamErrorImprovementPatch
   * Note: Snap11 release as a developer sync release. Bug reports welcome.
     FreeBSD code changes not tested yet.

Release
   * Netcam error handling improvements and cleanup from Walgrind analysis
     (Bill Brack).
   * Added a configure option --with-developer-flags which enables many compiler
     warnings that can be used by developers to make code more robust. Not
     for normal users building Motion (Bill Brack)
   * http-control: Fixed segfault when motion is restarted from command line
     ( kill -s 1 pid_motion ). Improved control code so Motion can Restart and
     Finish 'smoothly'. (Angel Carpintero).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionHttpControl
   * Changed the 5 second missed camera signal timeout to 30 seconds. (Kenneth
     Lavrsen)
   * Fixed bug where an extra jpeg is saved if you have output_normal=best
     and you stop motion after an event has ended. (Kenneth Lavrsen)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x08x05x173526



3.2.1   Detailed changes for 3.2.1 since 3.1.19_snap3
snap1
   * Major new feature. XMLRPC is replaced by a simpler http remote control
     interface (implemented by Angel Carpintero)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionHttpControl

snap2
   * Fixed netcam->userpass problem (Angel Carpintero)
   * Added support in configure for athlon64 from
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x01x30x190907
     (Angel Carpintero and William M Brack)
   * Fixed some gcc warnings (William M Brack)
   * Code cleanup from a valgrind analysis (William M. Brack).

snap3
   * Added Best Preview Patch (Joerg Weber)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BestPreviewShot

snap4
   * Fix for tracking control with http control (Angel Carpintero)
   * Added the new feature Setup Mode (Joerg Weber). This also enables
     much more error messages given to the console when in non-daemon mode
     while still preserving the messages in syslog which are important
     for daemon mode debugging.
     The patch is still being worked on and is not finished.
     Changes in the FreeBSD code are not yet tested.
     http://www.lavrsen.dk/foswiki/bin/view/Motion/SetupModePatch
     Remove most command line options and replace them by an option to specify
     location to motion.conf and a few options related to setting up motion.
     (Joerg Weber). This is also included in SetupModePatch.
   * Small improvement of the http control interface (link to setting itself
     on the html response when setting parameter) (Kenneth Lavrsen)

snap5
   * Fixed a bug in noise tune which was most visible at very low light.
     (Joerg Weber and Kenneth Lavrsen)
   * Further improvement in the setup mode. Messages are now prefixed by
     the thread number in [brackets]. Moved 2 functions from motion.c to
     picture.c. The setup mode patch is now considered finished. (Joerg Weber)

snap6
   * Netcam fixes and debug code by Christopher Price
     http://www.lavrsen.dk/foswiki/bin/view/Motion/NetcamStabilityPatch
     snap5_post1_video.c and snap5-post1 patches
   * Fixed netcam startup race condition.
   * Refactored image handling back to single unified function
   * Refactored reconnection algorithm
   * Jpeg only based connections should now use less cpu time
   * Temporarily removed support for devices that do not support content-length
     (in progress)
   * Synced syslog/printf style to new motion standard
   * Added developer debug trace defines/code
   * Defines now used for many constants

snap7
   * Improved console output in setup mode. Now also outputs threshold.
     (Joerg Weber)
   * Added some additional text to the motion http messages to the terminal
     so that you know where the messages come from. (Kenneth Lavrsen)
     Netcam Stability Patch version snap6-post1 (Christopher Price)
   * Added support for netcams without content-length header (streaming only)
   * Remove memmem from netcam_wget.[c|h] (no longer used)
   * Several miscellaneous code cosmetic changes
   * TODO: remove tests for memmem from configure

snap8
   * Added support for non-streaming (image based) netcams without content-length
     header. (3.2.1-snap7-post1 version of the Netcam Stability Patch by Christopher
     Price).
   * Improvement in the noise-tune algorithm (Joerg Weber)
   * Re-arranged many of the const char declarations so that they are always
     before any statements within a block { }. This is to avoid compiler errors
     with older but still used gcc versions such as 2.95. (Kenneth Lavrsen)
   * Changed the use of %zd to %llu in printf statements of size_t types.
     This is done to avoid compiler errors with older but still used gcc versions
     such as 2.95. (Kenneth Lavrsen)

snap9
   * Fixed even more gcc 2.95 compiler errors (declarations not at beginning
     of block) (Kenneth Lavrsen).
   * Removed a gcc 2.95 compiler warning (netcam.c:1036: warning: variable `pic'
     might be clobbered by `longjmp' or `vfork') (Kenneth Lavrsen)
   * The values for cnt->locate and cnt->new_img are now #defines in motion.h
     to enhance code readability (Kenneth Lavrsen).
   * The setting of sql_mask is now only done once per second to save CPU power
     (Kenneth Lavrsen)
   * Adding checking for conflict between control port and webcam port. Webcam
     port for a thread is disabled if it is set to the same value as the control
     port (Kenneth Lavrsen).
   * Fixed some file descriptor leaks in webcam.c and netcam.c (Christophe
     Grenier)
   * Added "motion-http:" prefix to error messages from the http control thread.
     (Kenneth Lavrsen)
   * Added additional error information when connection to MySQL fails (Kenneth
     Lavrsen)
   * Initiate cnt->event_nr to 1 to avoid code related to end of events and long
     mpeg films to be run during startup of Motion. (Kenneth Lavrsen)
   * Added new function in event.c close_anything_open() which is called from
     send_sms, send_mail and exec_command in order to prevent file descriptor and
     open sockets to be inherited by the shell causing freezing and instability.
     Code contributed by Christophe Grenier, Christopher Price and Kenneth Lavrsen.
   * Added new context global cnt_list.control_socket_server set by the httpd
     thread so that the above mentioned close_anything_open() can close open
     control sockets (Kenneth Lavrsen).
   * Renamed the top level global context structure to cnt_list so it can be
     reached from child threads and by above mentioned close_anything_open()
     (Christophe Grenier).

snap10
   * Fixed a problem when compiling with --without-v4l configuration.
     (Philip Marien)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x03x27x112843
   * Threw away the file descriptor leak fix from snap 9 because it caused
     more trouble than it fixed. Removed the close_anything_open() and the
     cnt_list.control_socket_server field. Replaced it all with a simple
     piece of code that all server daemons call when started: setsid() followed
     by for (i=getdtablesize(); i>2; --i) close(i). Dirty and simple.
     (Kenneth Lavrsen)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x03x21x070534
   * Fixed a bug where rate of fetching picture frames was disturned by
     the signal SIG_CHLD from exec_command programs terminating. The symptom
     was that the number of post_capture frames became inaccurate and motion
     in mpegs did not have constant time between frames. (Kenneth Lavrsen)
   * Fixed a bug where motion did not work with gap=1 (Kenneth Lavrsen).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x01x30x073616
   * Added the feature gap=0 which now also works. It disables gap completely
     so that one single mpeg file is created. You can end the event from the
     remote control interface make movie feature using for example cron.
     This makes Motion close     the mpeg and make a new with event number increased
     by one. (Kenneth Lavrsen)
   * Improved the http remote control action features so that makemovie
     and snapshot for thread 0 (all) works on all threads instead of being
     ignored (Kenneth Lavrsen).
   * Moved some code in the beginning of the motion_loop to a position later
     to improve the accuracy of time calculations for the framerate (Kenneth
     Lavrsen)
   * Updated code so Motion again runs on FreeBSD (Angel Carpintero).
   * Removed check for memmem from configure (Angel Carpintero).
   * Updated http control interface so that an additional check is done
     before saving config files (Angel Carpintero).
   * Fixed a problem with URLs http://192.168.1.3:8080/0 which did not
     work without a trailing space (Angel Carpintero).

snap11
   * Implemented new Generic onxxxx features.
     Function --- Old Option --- New Option
     Start of event (first motion) --- execute --- on_event_start
     End of event (no motion for gap seconds) --- New! --- on_event_end
     Picture saved (jpg or ppm) --- onsave --- on_picture_save
     Movie starts (mpeg file opened) --- onmpeg --- on_movie_start
     Movie ends (mpeg file closed) --- onffmpegclose --- on_movie_end
     Motion detected  --- New! --- on_motion_detected
     http://www.lavrsen.dk/foswiki/bin/view/Motion/OnXxxCommandsPatch and
     http://www.lavrsen.dk/foswiki/bin/view/Motion/OnXxxxFeatureDiscussion
     (Joerg Weber)
   * More Netcam Stability Fixes (snap10-post1-6) (Christopher Price)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/NetcamStabilityPatch
      * Destroy mutexes in netcam_cleanup().
      * Add reconnection for netcam_start() - this may block other cameras
         from starting up!.
      * Added additional defines for reconnect retries.
      * Change reconnection timeouts to 60 seconds.
      * Reworked close(sock) in netcam_connect, to insure future changes
         won't forget to close the socket.
      * Reworked reconnection for netcam_start() - disabled by default, see
         source for INIT_RECONNECT_RETRIES.
      * Break some long lines in code.
      * Replaced sleep with nanosleep per suggestion by Kenneth Lavrsen.
      * Added additional header validation check.
      * Changed a couple fd references to use RBUF_FD.
      * Added error message if jpeglib error occurs.
      * Removed additional header validation check.
      * Limited times headers will be checked.
      * Removed mutex lock around netcam_start() in video.c, hopefully race
         conditions are fixed.
      * Added additional headers in http request.
      * Added back header validation (should fix netcam_read_header lockups).
      * Detect when there is no data on socket in netcam_read_ functions
         (should fix netcam_read_image_contentlength() and
         netcam_read_image_no_contentlength() lockups).
      * Rearranged timeout assignments for pthread_cond_timedwait() calls.
      * Adjusted TIMEOUT_COND_WHICH to 4 seconds.
   * Improvements of motion.conf help comments including improvements in new
     onxxxx options. (Kenneth Lavrsen)

snap12
   * Fixed a bug in the rgb2yuv420p function. (Daniel Ladd)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x03x30x011107
   * Fixed a bug of locate feature for movement images combined with the
     new output_normal best feature (Joerg Weber)
   * More Netcam Stability Fixes (snap11-post1-4) (Christopher Price)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/NetcamStabilityPatch
      * Reworked thread signal/wait conditions, should fix some race conditions.
      * Use gettimeofday() to determine thread timeouts, results in better accuracy.
      * Adjusted condition timeouts to smaller values due to usage of gettimeofday()
        and rework of thread signal/wait conditions.
      * Adjusted reconnection retries to 60 (every minute for an hour).
      * Fix bug where motion will not quit if requested when reconnecting.
      * Cruft, feature creep and redundant code removed.
      * Consolidated reconnection capability to unified netcam_reconnect function.
      * Rework netcam_start logic, minimize startup variables.
      * Rework netcam_stream_read and netcam_single_read logic.
      * Minor changes to netcam_next logic.
      * Fix bug in streaming camera without content-length, recent mod broke.
      * Fix bug in startup of single image reads without content-length.
   * Motion Guide refactored completely for 3.2.1 with better web navigation and
     auto generation of pages. Makefile updated so that the Motion Foswiki topic
     MotionGuideOneLargeDocument is fetched when updating the guide and making
     releases. (Kenneth Lavrsen).

snap13
   * Removed the debug_parameter option which had no use. Programmers can still
     use it because the code is only commented out. This change required a small
     update in the code that rewrites motion.conf so that a remote control command
     to write the config files still adds a text header for the thread section at
     the end of motion.conf (Kenneth Lavrsen).
   * Changed the default values for a few options: quiet on, webcam_maxrate 1,
     threshold_tune off, webcam_quality 50 (Kenneth Lavrsen).
   * Changed some cosmetics in the way motion.conf is written (space after #)
     (Kenneth Lavrsen).
   * Updated the motion-dist.conf to use default values unless there is a reason
     not to (Kenneth Lavrsen).
   * Fix the compile issue with official ffmpeg packages from debian (Angel
     Carpintero).
   * More Netcam Stability Fixes (snap12-post1) (Christopher Price)
      * Newrote url parser, better syntax checking and error handling of urls.
      * Userpass now allowed in url (http://user:pass@example.com/).
       Netcam_userpass has precedence, it will override a userpass embedded in
       the url.
     http://www.lavrsen.dk/foswiki/bin/view/Motion/NetcamStabilityPatch

snap14
   * Added basic authentication to the http control interface introducing new
     config option control_authentication. (Angel Carpintero)
   * Fixed memory leak when restarting Motion from http control (Angel
     Carpintero).
   * Small improvement in configure script for Debian (Angel Carpintero)
   * Added the ability to clear an option to off (bool), 0 (int) or undefined
     (string) by submitting blank entry field in the http control interface.
     (Angel Carpintero).

snap15
   * Added new feature which shows the fixed mask (in addition to the smart mask)
     in bright red on the Motion type images (Joerg Weber).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/FixedMaskFileOnMotionImagesPatch
   * Added new feature. When you specify a mask file in the config file and start
     Motion, and the mask file does not exist, Motion will create a new clear
     (white) mask file for you in the right size. Then it is easy to simply
     open the file in your favourite paint program and add the masking in black
     (Joerg Weber).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/FixedMaskFileOnMotionImagesPatch
   * Fixed a bug in the low_cpu feature where cpu load increased instead of
     decreasing because the framerate calculations were completely wrong. This was
     an old bug introduced in 3.0.1 (Kenneth Lavrsen).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x04x24x205933
   * Improved the auto-brightness algorithm. When auto-brightness is enabled
     the brightness option becomes a target value for the brightness level.
     This should also close a bug report (Kenneth Lavrsen).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x02x26x195358
   * http interface small fixes (motion-3.2.1_snap14-small-fixes 1.1) incl
     Add 'back' link to response_client errors (Angel Carpintero).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionHttpControl
   * Started adding tuner_number as option. This is not fully implemented. First
     code is added and rest will be done in next snap. (Kenneth Lavrsen)

snap16
   * Made the http control interface more RFC compliant (Angel Carpintero).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x05x02x180550
   * Made the http control HTML responses nicer to look at as sources and
     therefore easier to debug errors (Kenneth Lavrsen).
   * Code style cleanup of webhttpd.c (Kenneth Lavrsen).
   * Fixed compatibility problem with Palantir. Fixed by making output more
     compatible with RFC (\r\n). Original fixes by Roberto Spadim and Angel
     Carpintero. However this fix made Firefox flicker even more than it normally
     does. Final fix which works in both Palantir client, Firefox and Cambozola
     was made by Kenneth Lavrsen. This closes the following bugs:
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x05x02x205307,
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x05x07x042849

snap17
   * Fixed small bug when pre_capture buffer is resized during operation.
     (Joerg Weber).
   * In httpd control code: Fixed RAW syntax following API specs. (Angel
     Carpintero).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionHttpControl
   * Added new conversion specifiers: %D (diffs), (noise) %K (motion center x),
     %L (motion center y), %i (locate width x) and %J (locate width y). These
     changes also required a refactoring of the alg_locate code. This change
     is part of the implementation of a generic tracking feature and it enables
     implementing external programs that can perform simple prediction features.
     (Kenneth Lavrsen)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/ExtendReplaceConversionSpecifiersDiscussion
     http://www.lavrsen.dk/foswiki/bin/view/Motion/GenericTrackingPatch
   * Fixed a bug in switchfilter which caused motion detection to not work
     when the feature was enabled (Kenneth Lavrsen).

Release
   * Change the working directory to / in daemon mode. This way you don't have
     to kill motion to umount the partition from where you start it. (Christophe
     Grenier)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/ChdirNetCamWgetPatch
   * In netcam-wget header_get() didn't always in add a \0 string terminator.
     This was fixed by Christophe Grenier
     http://www.lavrsen.dk/foswiki/bin/view/Motion/ChdirNetCamWgetPatch
   * Fix for Unknown content type with lumenera cameras (Kenneth Lavrsen)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x05x06x174416
   * MotionHttpControl Patch motion-3.2.1_snap18-pre1 v,1.0 19 May 2005.
     Fixed some HTTP response codes and added header copyrights. (Angel Carpintero).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionHttpControl
   * Implemented pthread fix by Christophe Grenier.
     http://www.lavrsen.dk/foswiki/bin/view/Motion/PthreadFixPatch
   * Fixed problem compiling "ffmpeg reports only YUV420 is supported" when
     ffmpeg is a recent CVS version.     (Angel Carpintero)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x05x22x213229
   * Man page updated. It is now semi-autogenerated in the Motion Foswiki
     (Kenneth Lavrsen)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionOptionsAlphabeticalManpage
   * Bug fix in netcam code: Sometimes motion try to free an invalid memory area
     (Angel Carpintero)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x05x21x105335
   * Small configure fix related to --without-v4l (Angel Carpintero)
   * Fixes for http control HTML code (Angel Carpintero)
   * Added init script to RPM (Angel Carpintero)


3.1.19   Detailed changes for 3.1.19 snapshot releases since 3.1.18
snap1
   * Fixed bug which caused Motion 3.1.18 fail to save timelapse mpegs when
     setting ffmpeg_timelapse = 1 (fixed by Michael Reuschling)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x01x31x211756
   * Fixed several bugs in new netcam code introduced in 3.1.18
     (Angel Carpintero)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x01x16x030209
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x02x01x071546
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x02x03x035918
   * Added patch that enables Motion to work with vloopback version 0.94
     and kernel 2.6.10+. (patch by William M Brack).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionAndVloopbackVideoDotCPatch

snap2
   * Following bugfixes all by Angel Carpintero
      * Netcam code: Change printf() to fprintf().
      * Netcam code: Cleanup memory netcam (netcam.c , motion.c ).
      * Netcam code: Redesign of reconnection feature.
      * Configure: Added debug , conditional compile of xmlrpc-c
      * Fix a non allocated pointer to be freed.
      * Added fix to BugReport2005x02x11x170019
      * Added fix to BugReport2005x02x11x150802

snap3
   * Bugfixes by Angel Carpintero
      * fix motion.spec, motion.spec.in
      * typo in configure.in , configure.in.freebsd
      * fix version number


3.1.18   Formal Release - Summary of changes since 3.1.17.
   * Removed the Berkeley mpeg feature
   * New brightness, contrast, hue and saturation options.
   * Makefile with automatic check of dependencies and nicer user output.
   * Improvement of the rotate feature.
   * Added the new smart mask feature.
   * Added a new config option --without-optimizecpu which disables CPU
     specific compiler optimizations.
   * Configure help texts improved.
   * Added the pwc-10.0.5 version of pwc-ioctl.h. Also good for pwc 10.0.6.
   * Changing rotate, height and width via xmlrpc no longer affects the
     running program. This change is done because many internal data structures
     and memory allocations cannot handle change of image dimensions/size.
   * Enabled use of leading spaces when changing text_left and text_right via
     xmlrpc by using quotation marks if the value starts with a leading space.
   * Speed optimizations for dilate and labelling code.
   * Significant speed improvement in the motion detection algorithm.
   * Motion images are now gray scale instead of green. Smartmask is shown
     in red.
   * Implemented FreeBSD auto-detection CPU/ARCH fix.
   * Removed the never finished prediction feature.
   * Implemented a major improvement of noise_tune.
   * Implemented ffmpeg-0.4.9 support.
   * Default for option 'ffmpeg_video_codec' is now mpeg4. mpeg1 is now only
     supported with the old ffmpeg-0.4.8.
   * Option 'output_normal' value set to 'first' makes Motion only save a
     jpeg from the first motion detected picture frame in an event.
   * Implemented Streaming Netcam Without Curl which enables connecting to
     network cameras both with single jpeg frame mode and streaming mjpeg
     mode. This enables much higher framerates with Netcams.
   * Corrected a small error in the usage help text
   * Improved the help and doc texts for config option night_compensate.
   * Improved the signal handling of ctrl-C and kill.
   * Implemented a POSIX compliant SIGCHLD signal handler to avoid floods of
     warnings and script zombies in some RedHat versions.
   * Reporting of the changes of noise detection level is now only displayed
     in the console (daemon off) when the always_changes option is enabled.
   * Made the code in xmlrpc more correct and robust (handling of select()).
   * Fixed several bugs in the timelapse feature.


Detailed changes for all 3.1.18 snapshot releases since 3.1.17
snap1
   * Removed the Berkeley mpeg feature (code commented out)
   * Implemented a bugfixed version of
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BrightnessContrastPatch
     Released as snapshot for developers to merge other patches.
     The snap1 is not recommended for normal use.

snap2
   * Improved the Makefile with automatic check of dependencies and
     nicer output for the user.
     http://www.lavrsen.dk/foswiki/bin/view/Motion/MakefileWithAutoDependencies
   * Implemented first phase of the rotate patch. Need to fix the storage
     method for image height and width
     http://www.lavrsen.dk/foswiki/bin/view/Motion/RotatePatch

snap3
   * Implemented phase 2 of the rotate patch
   * Added brightness patch options to motion-dist.conf

snap4
   * Added the new smart mask feature. It is working but it is still under
     development. It currently outputs an extra smart mask timelapse movie
     when the normal timelapse is enabled. This will be removed in the final
     version. http://www.lavrsen.dk/foswiki/bin/view/Motion/PatchSmartMask
   * Added a new config option --without-optimizecpu which disables the
     CPU specific compiler optimizations introduced with the rotate phase 2
     patch. The purpose of the new option is to enable a packager to build
     an RPM or deb package which is not tied to a specific CPU type.
   * Man page updated with the new brightness and smart mask options.
   * Configure help texts improved.
   * Added the pwc-10.0.5 version of pwc-ioctl.h.
   * Changing rotate, height and width via xmlrpc no longer affects the
     running program. The user can change the options and write them to the
     config files and then restart motion. This change is done because many
     internal data structures and memory allocations cannot handle change
     of image dimensions/size.
   * Fixed the problem with leading spaces of text_left and text_right
     getting lost when saving with xmlrpc. For text_left and text_right
     Motion now puts the string in quotation marks if the value starts with
     a leading space.
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2004x10x24x135840

snap5
   * Implemented the November 10 update for smartmask
   * Started resolving some of the signed vs unsigned char problems. There
     is still much to do here. snap5 is released to make the developers up2date.

snap6
   * Merged in the DilateNineSpeedPatch
     http://www.lavrsen.dk/foswiki/bin/view/Motion/DilateNineSpeedPatch
   * Changed a few image char definitions to unsigned char. Still many to fix.

snap7
   * Implemented the 15-Nov-2004 Smartmask patch which removed the smartmask
     debugging timelapse code and instead adds the smartmask info to the
     motion images and jpegs as red areas. Normal motion is shown in black
     and white (greytones). This concludes Joerg Webers smartmask feature.
     The patch is now in ReleasedScheduled state for 3.1.18.
   * Implemented Angel Carpintero's FreeBSD auto-detection CPU/ARCH fix.
   * Merged in Per Johnsson's DilateFiveSpeedPatch
     http://www.lavrsen.dk/foswiki/bin/view/Motion/DilateFiveSpeedPatch
   * Removed the prediction feature from the code (commented out for now).
   * Included fix by Jan X.
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2004x11x13x202132

snap8
   * Implemented an improvement of Smartmask so that the mask is cleared when
     the smart_mask_speed is set from a non-zero to zero (by Joerg Weber)
   * Implemented an improvement of noise_tune with smart mask (and probably
     also in general) (by Joerg Weber)
   * Improved the picture control function so that cameras are only probed
     when needed to avoid USB errors. (Kenneth Lavrsen)
   * Implemented new ffmpeg patch (Per Jönsson)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/FfmpegPatch049
   * Implemented new preview patch (Joerg Weber)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/PreviewShotsPatch
   * Removed commented code from obsolete Berkeley and Prediction features
   * Implemented labelling speed patch (Per Jönsson)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/LabelingSpeedPatch

snap9
   * Implemented Streaming Netcam Without Curl which enables connecting to
     network cameras both with single jpeg frame mode and streaming mjpeg
     mode. This enables much higher framerates with Netcams. (by Christopher
     Price and Angel Carpintero).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/StreamingNetcamWithoutCurl
   * Implemented a significant speed improvement in the motion detection
     algorithm (by Per Jönsson).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/AlgDiffStandardMmxPatch
   * Fixed a small bug which caused in jumpy mpeg1 videos with ffmpeg 0.4.8.

snap10
   * Corrected a small error in the usage help text
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x01x05x174139
   * Improved the help text for config option night_compensate in docs,
     conf.c, motion man pages and config file.
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x01x06x103939
   * Improved the Netcam patch (Angel Carpintero)
     http://www.lavrsen.dk/foswiki/pub/Motion/StreamingNetcamWithoutCurl/
     (pre2 patch fixes problem with not detecting Content-length and segfaults
     in netcam)
   * Improved the signal handling of ctrl-C as suggested by Per Jonsson
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x01x06x181426
   * Implemented a POSIX compliant SIGCHLD signal handler as replacement for
     the traditional signal(SIGCHLD, SIG_IGN) which can cause floods of
     warnings in some RedHat versions. (Angel Carpintero and Kenneth Lavrsen)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2004x10x26x134906
   * Changed the reporting of the changes of noise detection level so that
     it is only displayed in the console (daemon off) when the always_changes
     option is enabled. (Kenneth Lavrsen)
   * Changed the ffmpeg>0.4.8 = no mpeg1 gcc warning message so that it is
     clear to people that it is information and not an error message.

snap11
   * Changed allocation of despeckle buffer to avoid a segfault when using
     a netcam where the image is wider than defined in motion.conf width.
   * The noise tune value displayed in the upper left corner along with
     number of changed pixels is no longer displayed (was there for debugging).
   * Improved the Netcam patch (Angel Carpintero)
     http://www.lavrsen.dk/foswiki/pub/Motion/StreamingNetcamWithoutCurl/
     (pre3 reconnection feature added)
   * Changed the SIGCHLD handler introduced in snap10 so that it is a shorter
     and faster function. Disabled this handler in the xmlrpc thread as this
     caused unnecessary loops of cpu cycles. Additionally made the code in
     xmlrpc more correct and robust (handling of select()) (Kenneth Lavrsen)
   * Fixed a bug in the timelapse feature. Both the rollover events of the
     timelapse video and timelapse shots could be missed if the CPU load was
     very high or the time was changes by ntp. Motion will now catch up a few
     seconds later if this happens. Also fixed the code for monthly rollover
     (Kenneth Lavrsen).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x01x23x133554

Release
   * Fixed a bug in the timelapse feature. Both the rollover events of the
     timelapse video and timelapse shots could be missed if the CPU load was
     very high or the time was changes by ntp. Motion will now catch up a few
     seconds later if this happens. Also fixed the code for monthly rollover
     (Kenneth Lavrsen).
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2005x01x23x133554
   * Small improvement in timelapse feature so that an image is added when
     the new mpeg is created and not waiting till the following timelapse
     (Kenneth Lavrsen).
   * Small improvement so that the timelapse rollover happens on the hour
     and not one timelapse past the hour (Kenneth Lavrsen).

3.1.17   Bugfix release
snap1
   * Removed annoying debug syslog message (input: #)
   * Implemented Peter Ilin's patch for handling vloopback pipes better
     when Motion receives SIGTERM or SIGHUB.
   * Implemented fix for compiling errors when building the FreeBSD version
     without bktr support.
     (http://www.lavrsen.dk/foswiki/bin/view/Motion/FreeBSDFixCompile)
   * Commented out many unnecessary syslog debug only messages. The commented
     out code was first patched by Mike Lees patch related to syslog causing
     instability and hanging motion processes.
     (http://www.lavrsen.dk/foswiki/bin/view/Motion/SyslogEventPatch).
   * Included Kalle Andersson's patch that ensures that Motion detaches from
     the stdin and stout devices so that a secure shell that was used to start
     Motion in daemon mode does not hang when you exit the shell.
     (http://www.lavrsen.dk/foswiki/bin/view/Motion/DaemonDetachFromSTDIO)

snap2
   * Implemented a new lightswitch feature so that is now triggers lightswitch
     detected based on the percentage of pixels set by the lightswitch option which
     is now an integer instead of a boolean. When lightswitch is detected motion
     skips 5 frames to allow camera to settle.
   * Fixed a bug in the autobrightness function.
   * Fixed a bug in netcam_start() - wrong imgs.size calculation

Release
   * Swapped width and height parameters in some functions. This has no influence
     on program execution. Just a cosmetic change.


3.1.16   Bugfix release
snap1
   * Fixed a configure error related to xmlrpc.
   * Fixed a bug in the SQL code related to file type.

Release
   * Fixed a segfault problem in alg.c related to the locate feature.
   * Made motion more robust to whitespace in its config files. It now
     accepts CR LF (DOS/Windows) and whitespace only lines no longer
     gives warning messages in syslog. Also cleaned up the conf.c
     function structure a little bit.


3.1.15   Summary of changes from 3.1.14 to 3.1.15.
New features:
   * ffmpeg now supports mpeg4 and msmpeg4 in addition to mpeg1. Timelapse
     mpegs are always made with mpeg1 because this allows appending to
     existing mpeg when motion or timelapse is restarted. This also meant
     a change of the configure option --with-libavcodec to --with-ffmpeg
     which now needs to point to the parent directory that holds libraries.
   * configure has been significantly improved so that most people can
     simply run ./configure, make and make install with no parameters and
     all libraries should be detected automatically if they are installed
     like in most distributions.
   * rotation feature added which allows the camera to be mounted upside
     down or in portrait.
   * SQL (Postgres and MySQL) table format has been changed. The time
     related fields such as minute, hour, day, month and year has been
     replaced by a timestamp field called 'time_stamp'. Additionally a
     field called 'frame' has been added so that each file can be correctly
     sorted based on time_stamp and frame (picture frame number within one
     second). An additional field called 'text_left' stores the displayed
     text given by config option 'text_left'. And a field 'camera' has been
     added which stores the thread number.
   * The %v (event) prefix has been removed from the default filename
     for timelapse mpegs. It makes little sense to have the current event
     number as part of the timelapse filename as default.
   * A new feature called 'labeling' was added which is a great enhancement
     to the motion detection algorithm. It ensures that only the largest
     area of movement is included in the detection and it prevents noise
     and wind from making false detection. It should also make tracking
     work better.
   * Angel Carpintero ported motion and it's main features to freeBSD.
     The freeBSD is still very much beta and because of limited access to
     hardware we need more people to test the various features.
   * Motion is now also released as an RPM with both mysql, postgres,
     libcurl and ffmpeg support.

Bugfixes:
   * Fixed the problem with default strings being written to thread
     config files when using the XMLRPC command motion.conf.write.
   * Implemented improvement of vid_putpipe so that Motion     does not spend
     time writing to a vloopback device which is not there.
   * Introduced reporting to syslog of writing to vloopback fails.
   * Memory clean-up improvements when Motion exits normally.
   * Fixed a small bug related to the filename given for onffmpegclose.
   * Provided more improvements of error handling.
   * Added additional error reporting to console.

3.1.15 Snapshot releases
snap1
   * Fixed the problem with default strings being written to thread
     config files when using the XMLRPC command motion.conf.write.

snap2
   * Implemented Ryan Ayers improvement of vid_putpipe so that Motion
     does not spend time writing to a vloopback device which is not there.
     Also introduced reporting to syslog of writing to vloopback fails.
   * Ryan Ayers improved configure's ability to find custom installations
     of ffmpeg.
   * Ryan Ayers provided misc. cosmetic changes in the code.
   * Ryan Ayers rewrote the ffmpeg functions completely added support for
     new codecs/formats mpeg4 and msmpeg4. mpeg1 was improved also.

snap3
   * Implemented Ryan Ayers simplified ffmpeg patch where 10 ffmpeg
     functions are reduced to 5. The memory leak related to an unused
     filehandle has been resolved.
   * Kenneth Lavrsen solved the timelapse related .mpeg.mpeg filename
     error.
   * Kenneth Lavrsen removed the memory leak in ffmpeg.c related to the
     use of strdup without a free.

snap4
   * Implemented Ryan Ayers snap3 based ffmpeg patch that cleans up the
     code significantly, forces timelapse. The list of improvements:
      * Forces timelapse to mpeg1 for the time being.
      * Removes FILE* f declaration in ffmpeg.h since we no longer need it.
      * Removes all picture_buf references.  This was carried over from
        output_example.c in ffmpeg-0.4.8.  However, we don't need it.
        That is allocating space for picture->data, but motion already
        takes care of this for us with the newimg variable.
      * Removed some old commented code ... tmpfilename, picture_buf stuff.
   * Included Angel Carpintero's memory clean-up improvements when Motion
     exits normally.

snap5
   * Added Per Jönsson's rotate feature. When set to non-zero some extra
     CPU time is used for the rotation.
   * Kenneth Lavrsen changed the ffmpeg code so that mpeg1 files are
     created using the libavcodec method and mpeg4 and msmpeg4 are created
     using the new libavframe method in ffmpeg.
   * Kenneth Lavrsen added seconds and frame fields to the database feature.
     This means that users must add these two fields to the table "security"
     in existing databases when upgrading to 3.1.15.
   * Kenneth Lavrsen removed the %v (event) prefix from the default filename
     for timelapse mpegs. It makes little sense to have the current event
     number as part of the timelapse filename as default.

snap6
   * Kenneth Lavrsen fixed a small bug related to the filename given for
     onffmpegclose.
   * Joerg Webers added the new labeling motion detection feature.
   * Angel Carpintero provided more improvements of error handling.

snap7
   * Kenneth Lavrsen changed the configure option --with-libavcodec to
   * --with-ffmpeg and updated Guide and man pages and text in code and
     config file to match the new shared library way of using ffmpeg
   * Angel Carpintero ported motion and it's main features to freeBSD.
     The freeBSD is still very much beta and because of limited access to
     hardware we need more people to test the various features.
   * Angel Carpintero created an updated specs file that enables Kenneth
     to build RPMs of Motion.

snap8
   * Kenneth Lavrsen added the new fields to the SQL security table
     camera (thread number), text (text_left) and time (timestamp).
   * Angel Carpintero improved error handling for the webcam functions.

Release
   * Kenneth Lavrsen simplified the sql functions (1 instead of 3)
     and ensured that the text field is not assigned when text_left is
     an empty string. This allows for the field to be auto defaulted.
   * Added additional error reporting to console.



3.1.14   2004 May 31
   * Included Ian McConnell's fix for snapshots when using the
     "lastsnap" filename.
   * Fixed the bug in advanced filename and text feature when event
     numbers go higher than 99.
   * Included Angel Carpintero's improvement of configure reporting of
     missing shared libraries (Kenneth Lavrsen improved it a little
     further).
   * Included Ian McConnell's timelapse close mpeg file when set to zero
     patch.
   * Changed motion-control to make a proper output from motion.conf.list.
   * Renamed ffmpeg_timelaps to ffmpeg_timelapse (we change now or never)
   * Corrected man page (\n).
   * Added setting access rights to 644 (755 for configure) when doing
     make dist.
   * Small improvement on xmlrpc-api.html document.
   * Included Angel Carpintero's fix for building motion without ffmpeg
     (missing #ifdef round newly added ffmpeg timelapse code)
   * Fixed missing init of viddev.frequency causing VIDIOCGCHAN errors.
   * Included Angel Carpintero's snap2 based patch for improving configure.
     XML-RPC changes of threshold and noise_level are now being used as
     long as threshold_tune and noise_level are not enabled.
   * Enabled the round robin feature to also work by changing frequency on
     the same device and same input.
   * Fixed the pre_capture feature so that it also stores the jpegs properly.
   * Fixed the ffmpeg_timelapse feature so that the calculated time is
     correct and the current image is used instead of an old image from
     position 0 in the pre_capture ring buffer.
   * Fixed ffmpeg routines so that also graytone images can be
     pre_captured and used with ffmpeg_timelapse.
   * Fixed the position of the incrementing of shots in the motion_loop
     so that it is correct before any functions use it.
   * Added quite many comments to the code to make it easier to maintain
     (more comments will be added).
   * Removed some old debugging printf's that were displayed in non-quiet
     mode.
   * Changed to snapshot feature from being alarm driven to being timer
     driven. This means that each thread can have its own interval
     value. The XML-RPC motion.action.snapshot still works. The SIGALRM
     method has been changed so that all thread that have the
     snapshot_interval non zero will take a snapshot when being signaled
     with SIGALRM. A negative value for snapshot_interval will activate
     the SIGALRM trigger but not the timing interval.
   * Implemented ffmpeg_timelapse_mode feature by James A. Russo.
   * Implemented RH (sysV) and Debian type control scripts for /etc/init.d
     by Angel Carpintero.
   * Implemented enhanced SQL features by James A. Russo. This adds logging
     of mpeg and prediction events to MySQL/PostgreSQL.
     James patch also replaced the mime file types by a more refined
     filetype scheme that allows more refined control for SQL and other
     future control.
   * Kenneth Lavrsen changed the enhanced SQL config from single sql_mask
     option to 5 sql_log_ options for more user friendly control.
   * Implemented Daniel Sterlings minimum_motion_frames feature.
   * Plugged a memory leak in the pre_capture feature.
   * Changed the behaviour of onsave back to original mode where also
     snapshots causes onsave command to be run.
   * Fixed a bug in frequency setting of V4L device.
   * Renamed snapshots_interval and snapshots_filename to snapshot_interval
     and snapshot_filename.
   * Changed the webcam_port value to 0 in motion-dist.conf to avoid that
     people get segmentation faults when having 2 or more cameras and
   * webcam_port not set in the thread config files.
   * Implemented Daniel Sterlings improved handling of config strings. This
     plugs the memory leak when changing string type options via XML-RPC.
   * It also makes the memory handling more elegant/optimal and finally
     it now allows strings to be as long as allowed by the environment
     variable PATH_MAX.
   * Kenneth and Daniel added many comments to motion.c and conf.c.
   * Daniel Sterling made the XMLRPC able to handle errors without crashing.
   * Daniel Sterling and Kenneth Lavrsen added a feature that checks for
     two threads having the same webcam_port. If this is the case the last
     thread gets its webcam disabled and a warning message is written
     to console and syslog.
   * Implemented Daniel Sterling's fix for a small calculation error in
     alg_diff_fast().
   * Small improvements in messages sent to console and syslog during
     startup of Motion.

3.1.13
   * Included Ian McConnell's despeckle feature (including extra
     improvement of the original patch).
   * Changed the name of motion.conf to motion-dist.conf to avoid
     make install overwrites your perfectly OK working motion.conf
     file when you re-install.
   * Updated the motion.spec.in. Not tested yet.
   * Included Matthias Kilian configure patch which enables configure
     to find and use a dynamic library of ffmpegs libavcodec.so .
   * Included Steffen Haas improved on screen display patch
     (plus some extra characters including a real space).
   * Changed the parsing of the motion.conf and thread.conf files so
     that spaces are now allowed. This also enables using a space in
     the user text. For XML-RPC you put text in "" if you need spaces.
   * Changed the XML-RPC function motion.conf.write so that undefined
     config options gets written into the main motion.conf file with
     the help line and the option prefixed by a '#'. Example
     # netcam_url value.
   * Added Mike Lees onffmpegclose feature which enabled a command to
     be executed each time a file generated by ffmpeg is closed.
   * Added Daniel Sterlings night compensate fix.
   * Added Angel Carpintero's improved configure process which
     automatically detects presence of xmlrpc-c and ffmpeg and makes
     the Makefile accordingly.
   * Included Ian McConnell's flexible on screen display feature and
     flexible strftime based path names.
   * Changed conf.c so that xml-rpc command motion.conf.write creates
     a much more user friendly motion.conf file.
   * Modified Ian's on screen display putting back the config parameter
     (draw)text_changes. If enabled the number of changed pixes are shown
     in the upper right corner of the image.
   * Removed the snap_override feature and reduced the oldlayout to an
     Berkeley mpeg_encode feature only renaming it to
     berkeley_single_directory. Instead the flexible filename
     feature now has oldlayout as default and the "new" directory layout
     specified in the motion.conf file.
   * Motion.conf sequency re-arranged so the important things comes first.
   * Changed names of many options to be more user friendly.
   * Renamed the options for displayed text to text_right, text_left and
     text_changes.
   * Change the parsing of config files so that the argument can be in
     quotation marks (" or ') allowing leading spaces for the text_left
     and text_right options. This means that you can place the text
     anywhere on the picture by using spaces and new lines \n.


3.1.12
   * Removed vid_keepalive
   * Added reentrant warning to codestyle answer in FAQ.
   * Rewrite of PWC tracking code.
   * Tracking is inactive by default.
   * Motion-control action.quit fix.
   * Netcam with mask fixed.
   * Added tracking options to xmlrpc interface.
   * Ignore SIGPIPE (crashes webcam code).
   * Changed fast algorithm to imgs.size/10000 steps.
   * Renamed prerecord to pre_capture to be more consistent with
     post_capture.
   * Redone pre_capture completely.

3.1.12
rc1  
   * added pre-record. with configparameter n_prerecord one can set
     the number of frames that should be recorded *before* the
     motion starts. for this feature to work, you need to set
     post capture to at the value given for n_prerecord! also:
     n_prerecord must be at least 1

3.1.11
   * found 2 memory-leaks (two 'FILE *' were not closed) in the
     webcam-interface
   * started working on support for logitech sphere/orbit tracking
     fixed bug in tracking routines (would sometimes use garbage
     coordinates)
   * added max-number-of-frames-limit to the webcaminterface (patch
     by Jeroen Vreeken)

3.1.10
   * added Kenneth's fixes for ffmpeg instability and the problem
     with the "ioctl(VIDIOCGCHAN): Invalid argument" error
   * small optimisation of rgb24toyuv420p (about 6% faster) so
     for certain video-devices things might be a little faster
   * optimized alg_diff_fast: about 50% faster
     made it compile again with 2.6.0-test9
   * noise tuning is now only done when there's no motion!
   * noise is resetted to the median of the tuned value and the
     configured value as soon as no motion is detected
   * fixed includes for mysql/psql (thanks Felix Finch!)

3.1.9
   * motion now logs to syslog instead of stderr, that way it is
     still possible to see what is going wrong when motion runs
     as a daemon process.
   * motion will now exit nicely when memory allocation fails
     instead of segfaulting
   * low_cpu now takes the number of frames per second to process
     when no motion is detected instead of on/off
   * "quick motion detection" is now only performed when motion
     is in "idle" mode.
   * added Kenneth's patch: motion with ffmpeg-0.4.8 now compiles
     again!
   * small optimalisation: if a file is created, the path is now
     only recreated when it did not already exist.


3.1.8 is the last version release by Jeroen Vreeken.
New maintainers are: Kenneth Lavrsen (http://www.lavrsen.dk/) and Folkert
van Heusden (http://www.vanheusden.com/).


3.1.8     Froze 3.1.8
     Can't use the same variable name twice in ppm code...

3.1.7     Froze 3.1.7
     Added codingstyle answer to faq
     yuv to rgb conversion for ppm images.
     Webcam close and denial of service fixes.
     Renamed roundrobing to roundrobin.
     Don't try to compile in xml-rpc support when not defined.

3.1.6     Froze 3.1.6
     Added output_all option for continuous file saving.
     Fixed picture saving on rgb files.
     Fixed off-by-one error in framerate calculation.

3.1.5     Froze 3.1.5
     Added motion.action.quit to xml-rpc api.
     Changed v4l code to convert rgb to yuv420p and
     removed support for rgb24 from all other files.
     Removed read() support from v4l code.
     Changed netcam code to output yuv420p images.
     Fixed libavcodec.h include in ffmpeg.h

3.1.4     Froze 3.1.4
     Fixed ffmpeg segfault.
     Removed motion.conf* from install section in Makefile
     Fixed mail option.
     Fixed conf list hang.

3.1.3     Froze 3.1.3
     Made timelaps interval variable.
     Added motion.conf.write to xmlrpc API
     Motion can write its own config file.
     Changed xmlrpc API to use strings for all option types.
     Added comment fields for config options.
     Added additional settings for ffmpeg.

3.1.2     Froze 3.1.2
     Use SO_REUSEADDR on http listen sockets.
     Added control_localhost and webcam_localhost options for
     binding servers to the loopback interface (default=on).
     xmlrpc-httpd now uses nonblocking io allowing for multiple
     connections to be handled at the same time.
     Set default for 'threshold_tune' and 'noise_tune' to yes.
     Added threshold_tune config option.

3.1.1     Froze 3.1.1
     Sync with 3.0.4
     Added xmlrpc motion-control.
     Changed description output to match input format.
     Added Server and Connection fields to the webcam code.
     Added threshold_tune????? for autotuning the max_changes level.
     Added noise_tune option for autotuning the noise level.
     Sync with 3.0.3

3.1.0     Froze 3.1.0
     Added predict evaluation.
     Added predict_description config option.
     Started with predict functions.
     Forked from 3.0.2

3.0.2     Froze 3.0.2
     Changed strtok() call for argument in conf.c arguments with
     '=' in them are now allowed.

3.0.1     Froze 3.0.1
     Added 'dist' and 'updateguide' options to Makefile.
     Added motion_guide.html to documentation.
     Fixed mpeg names when using oldlayout.
     Updated manpage.
     Added check to low_cpu frame_delay calculation for a maximum
     of 1 second.

3.0.0     Froze 3.0.0
     Added string.h to ffmpeg.c

2.9.12     Froze 2.9.12
     Added ffmpeg_bps option.
     Fixed devpipe instead of devmpipe in motion.c

2.9.11     Froze 2.9.11
     Added all config files to examples in Makefile
     Fixed YUV422 converter for real :)
     Use 2 as minimum fps for ffmpeg (less produces a floating point
     exception)

2.9.10     Froze 2.9.10
     Fixed YUV422 to YUV420 converter.
     Fixed oldlayout for ffmpeg files.
     Added -lz for mysql.
     Removed TODO from makefile.

2.9.9     Froze 2.9.9
     Fixed leaks in webcam.c
     Fixed mask image use (imgs.motionsize instead of imgs.size)
     Don't try to detect motion with threshold set to 0.

2.9.8     Froze 2.9.8
     Always try to remove snapshot link.
     Cleaned up config file.
     Cleaned up ppm code, now loads pgm greyscale files.
     Fixed max_mpeg_time segfault in ffmpeg close event.
     Added -lm for libavcodec.
     Updated FAQ.
     Added timelaps option.
     Fixed SIGHUP handling.
     Added /usr/local/mysql/include and /usr/local/mysql/lib to
     configure script and fixed bogus error message.
     Fixed snapshot location (missing filepath)

2.9.7     Froze 2.9.7
     Fixed some more #endif statements
     Use cnt->lastrate for ffmpeg framerate.
     Fixed ffmpeg code for RGB and GREY images.
     Added YUV422 support (converted to YUV420P)
     Added roundrobing on frequency.

2.9.6     Froze 2.9.6
     Tweaked autobrightness mode.
     Added webcam_maxrate option.
     Reversed image and boundary in webcam code.
     Added framerate control.
     Added webcam_motion config option.
     New frame_limit code.
     Fixed include files for ffmpeg.h
     Code cleanup.
     Removed SIGHUP handler.
     Removed draw on motion images.
     Added speed and stepsize options to tracking code.
     Reversed the night compensation.
     Removed ffmpeg error in max mpegtime code.
     Fixed #endif statements in header files.
     Changed 'deamon' to 'daemon'

2.9.5     Froze 2.9.5
     Added missing time.h define in webcam.c
     Added 'frequency' option for v4l tuners.
     Fixed max mpeg time with ffmpeg encoding
     Added path for mpeg_encode (problems with PATH variable)
     Fixed deamon mode.
     Changed overlay to white on black (more readable).

2.9.4     Froze 2.9.4
     Added webcam option.
     Moved reference image update before draw()
     Added fclose() to put_picture()

2.9.3     Froze 2.9.3
     Added GNU license to all file headers.
     New netcam code
     Fixed snapshot filenames
     Use correct image sizes (no more width*height*3)

2.9.2     Froze 2.9.2
     Added ffmpeg code (from monitor) for realtime mpeg encoding.
     Moved image creation to event.c
     Moved put_picture functions to picture.c
     Added support for Y plane images (YUV420P and GREYSCALE)
     Set default jpeg quality from 50 to 75
     PostgreSQL support
     Moved event handlers from motion.c to event.c
     Introduced new event() functions.
     Updated xml-rpc rmon code.

2.9.1     Froze 2.9.1
     Fixed lastsnap symlink for new layout.
     switchfilter added
     post_capture option added
     Round robbing_skip added
     Added roundrobing_frames option.

2.9.0     Froze 2.9.0
     Shuffled everything around and added 'struct context', this
     should make motion ready for some serious threading.
     Added xml-rpc remote monitoring.
     Higher quality settings for mpeg.
     Added missing w to getopt in conf.c
     Removed c++ style '//' comments, they're EVIL.
     Removed some old outcommented code.

2.6.3     froze 2.6.3
     Fixed removal of directories after mpeg creation.
     Added new netcam code.

2.6.2     froze 2.6.2
     Added support for YUV420P palette to video.c, this should fix
     problems with the Philips webcams.

2.6.1     froze 2.6.1
     Changed system() calls into remove() and symlink().
     oldlayout option now also affects snapshots.
     Fixed snapshot link name (ppm vs jpg).
     Added new snapshot_overwrite option.
     Changed directory permissions to 0755 instead of 0750.
     Made timestamp overlay better readable, it is now black
     or white depending on the back colour.

2.6.0     froze 2.6.0
     Updated manpage.
     Added iomojo Smilecam support.
     Added uninstall option to Makefile
     Added config file location to the FAQ.
     Made timestamp overlay inverse of original pixel instead of
     white.
     Created 'struct images' to minimize the passing of arguments
     between functions.
     Move contents of various header files around to make things
     more sane.
     Made locate box inverse off original pixel instead of white.
     Created alg.c and alg.h, they contain all functions that
     have something to do with the motion detection algorithms.
     Renamed video.c functions to vid_xxxxx.
     Created video.h
     Improved stepper tracking code.
     Tracking code cleanup, multiple tracking interfaces are now
     possible.
     Added diff_hybrid, a combination of diff_fast and diff_standard
     Introduced some pointer magic in the locate functions.
     Added experimental diff_fast.
     Fixed SIGHUP handling and blocking.
     Added auto_bright option.

2.5.0     froze 2.5.0
     Updated documentation, config files, man page.
     Freeing 'line' in decompress_jpeg, this fixes a memory leak
     when using Axis cameras.
     Implemented SIGHUP handler for reloading config files.
     Added realconfig option for starting multiple motion processes
     or loading alternative config files.
     Added 'jpg_cleanup' to the manpage.
     Made 'low_cpu' lower on cpu.
     Fixed mpeg creation for old layout.
     Moved mpeg movies into year/month/day dir.
     Remove empty directories when doing jpg_cleanup.

2.4.2     froze 2.4.2
     Fixed low_cpu option to be actually low on the cpu.
     Fixed missing case for '-w' in conf.c.

2.4.1     froze 2.4.1
     New version numbering: ala linux kernel
     Fixed includes for track.c

2.4     froze 2.4
     Complete rewrite of the tracking stuff... it now uses a serial
     stepper motor interface (and actually works!)
     Fixed division by zero in adjust_rate code
     Added 'low_cpu' option for minimizing the cpu load while not
     detecting any motion.
     Added 'oldlayout' option for using the old style filenames.
     Added automatic location of vloopback inputs by using
     /proc/video/vloopback/vloopbacks.
     Fixed '-l' option
     Uploaded motion to the sourceforge CVS
     Alphabetized CREDITS file.
     Added 'pal-nc' norm.

2.3     froze 2.3
     Started faq.
     Included fix for bad 'strtok' in glibc with RH 7.0
     Added \t as a delimiter for config files.
     Made mpeg creation checks more sane.

2.2     froze 2.2
     Fixed segfault bug with filebase creation.
     Added creation of mpegs when killed or when getting SIGUSR1
     or when max_mpeg_time has been reached.

2.1     froze 2.1
     Only create directories if they are going to be used.
     Changed SYNC ioctl argument to int in video.c
     Added realmotion option
     Default config changed:
      -gap is now 60 instead of 300 seconds.
      -locate is on by default (-l function now works reversed)
      -night_compensate is on by default
     Added mpeg framerate adjustment.
     Added night_compenstate for dark pictures.

2.0     froze 2.0
     Integrated motion tracking.
     Improved lightswitch detection.
     Added clipcount in video.c, quickcam should work good now.

1.99     froze 1.99
     Fixed memory leak in mpeg creation.
     Created put_picture for saving images.
     Moved lightswitch code out of main loop.
     Merged exec_externcommand, exec_onsavecommand and
     exec_onmpegcommand into exec_command
     Added onmpeg command.

1.81     froze 1.81
     Fixed segfault bug in 'mysql_password' option.

1.8     froze 1.8
     Added video loopback for motion pictures.
     Location box is now only enlarged for heads, not for feet.
     Merged in Axis 2100 camera support.
     conf.c now also looks for '~/.motion/motion.conf'.
     Moved filebase creation to mkfilebase
     Minor improvements.
     Loopback feed during lightswitch.

1.7     froze 1.7
     Little bit of code cleanup
     Splitted motion.c in motion.c and video.c
     Changed config.in to correctly detect the mysql libraries and
     include files.

1.6     froze 1.6
     Motion now has its own mailinglist: motion@frogtown.com
     Added MySQL support
     Added creation of symbolic link to snapshots
     Changed file names of snapshots

1.5     froze 1.5
     Added video loopback support for realtime viewing.
     Fixed division by zero bug.
     Added install option to Makefile.
     Fixed bug that prevented external commands, mail and sms from
     being called at the first event.

1.4     froze 1.4
     Added lightswitch filter
     Updated manpage

1.3     froze 1.3
     Added minimum gap option.
     Changed /007 to /a, not a real change but more sane.
     Added mask option.
     Added get_ppm for reading ppm files
     Optimized greyscale blowup code.
     Added 'FORCE_ENCODE_LAST_FRAME' to mpeg params file.
     Experimental tracking routines for mini ssc library

1.2     froze 1.2
     Fixed some exit(-1) to exit(1)
     Updated manpage with the new options.
     Added adjustable noise level.
     Snapshots can be made in ppm format to.
     Fixed signal blocking code (this time right?)

1.1     froze 1.1
     Motion now has it own logos!!!!
     Added timestamp to picture.
     Added ppm output format.
     Rewrote locate function, small things (like fish :) don't
     disturb the locate option anymore.
     Added break for -B option

1.0     froze 1.0
     Went back to alarm for automated snapshots
     (signals should work with bttv now)
     Moved usage to conf.c
     Finished manpage
     Added check for existing target dir.
     Moved diff calculation and image_out generation out of main
     loop, adding other methods is easier this way.
     Removed sanity check for output formats since someone might
     want no pictures at all but only warning messages.
     Make snapshots separately from other pictures.
     New snapshot names: YYYYMMDDHHMMSS-snapshot
     Motion images are encoded to mpeg movies to.
     Made movie file names and counter sane.

0.99-2     froze 0.99-2
     Added signal blocking during ioctls, bttv should now continue
     to work when receiving signals.
     Snapshots with no movement don't go to the movies ;)
     Also flush buffers when making snapshots.
     Fixed for segfault when there is no config file.
     (Second time, remember to fix the current version next time)

0.99     Last beta before 1.0
     mpeg movies get timestamp in filename
     mpeg_encode is now called from within motion
     added chdir, filename generation is now much easier
     Added check for complete frames with read

0.8     froze 0.8
     Added script for mpeg_encode
     Moved getopt stuff to conf.c
     Added conf.h and conf.c for config file parsing
     Added -f option for frame rate limit
     Fixed frame nr count (starts at 0 again instead of 1 in v0.7)

0.7     froze 0.7
     Added event nr to the filename, settable with -g (gap).
     Added genhtml.sh (for creating a static version of show.cgi)
     New show.cgi
     Option for saving both motion and normal images.
     Moved image_ref update into diff for loop.
   *a option does not use alarm anymore, bttv card users can use
     it to (they just miss the SIGALRM option...)
     Added picture size settings for read.
     Moved read back in, after mmap failure motion we fall back
     to normal reads.
     Greyscale camera fix
     Added check for capture failure

0.6     froze 0.6
     Fixed stupid typo for execute option (forgot the shift)
     Added -l option for locating and marking movement
     Added buffer flush to keep log files up to date

0.5     froze 0.5
     Added contrib dir with infra red script
     Option to always output changes between images
     Output of motion images
     configure script

0.4     froze 0.4
     Gave the help text a new look.
     Overall cleanup (moving defines to motion.h)
     Added -E option for executing external commands

0.3     froze 0.3
     New homepage: http://motion.technolust.cx
     Fixed -t option (target path)
     Changed from read to mmap for bttv cards
     Added input and norm selection
     Added alarm signal handler and snapshot (-a) option
     (does not work with bttv....)

0.2     froze 0.2
     Updated README and TODO
     Added SMS and mail alert messages
     Changed file name format to YYYYMMDDHHMMSS-fn.jpg
     (fn=framenumber)
     Added deamonize option
     Cleaned up includes
     Decaying reference picture added
     Renamed image1 and image2 to image_ref and image_new

0.1     Initial release
