Thanks go to:

Jeroen Vreeken
     *** Original writer of this great program! ***
     From 3.1.12 these contributions:
   * Rewrite of PWC tracking code.
   * Motion-control action.quit fix.
   * 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.

Kalle Andersson
   * Created a 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.

Ryan Ayers
   * Implemented 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.
   * Improved configure's ability to find custom installations of
     ffmpeg.
   * Misc. cosmetic changes in the code.
   * Rewrote the ffmpeg functions completely added support for
     new codecs/formats mpeg4 and msmpeg4. mpeg1 was improved also.
   * Misc. improvement of the mpeg4 feature and new ffmpeg code.

Paul Beltrani
   * Implemented a fix/work around to a bug related to building and installing
     RPMs on Suse.
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x07x14x212356

Michael Newlyn Blake
   * For setting up the motion mailinglist and the onsave command.

Krzysztof Blaszkowski
   * Removed a duplicate call to jpeg_destroy_decompress already is called from netcam_image_conv. 
   * Added V4L2 support http://www.lavrsen.dk/twiki/bin/view/Motion/VideoForLinuxTwoDiscussion, (Krzysztof Blaszkowski, Angel Carpintero).

Mathias Bogaert
   * Lots of good ideas and the motion logos

William M Brack
   * Added patch that enables Motion to work with vloopback version 0.94
     and kernel 2.6.10+.
     http://www.lavrsen.dk/twiki/bin/view/Motion/MotionAndVloopbackVideoDotCPatch
   * Added support in configure for athlon64 from
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x01x30x190907
     (Angel Carpintero and William M Brack)
   * Fixed some gcc warnings
   * Code cleanup from a valgrind analysis.
   * Implemented WebcamShortWriteHandling patch
     http://www.lavrsen.dk/twiki/bin/view/Motion/WebcamShortWriteHandlingPatch
   * 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)
   * Complete rewrite of the Netcam code. Should fix many of the reported and
     still open netcam bugs.
     http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamCodeRewritePatch
   * Improved the error reporting in the Netcam code and did a few minor
     corrections and code cleanups.
   * 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.
     http://www.lavrsen.dk/twiki/bin/view/Motion/ErrorLoggingEnhancementPatch
   * Fixed a buf in video.c so that VIDEO_PALETTE_GREY cameras now actually work.
   * Re-mplementation of optional Proxy Server for Network Cameras.
     http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamProxyServerPatch
   * Added the missing rotate feature in the new netcam code (Billl Brack)
   * Netcam error handling improvements and cleanup from Valgrind analysis.
   * 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.
   * 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.
     http://www.lavrsen.dk/twiki/bin/view/Motion/ReduceWarningsPatch
   * Fixed error message with unknown config option.
   * Enhanced compatibility with Lumenera.
   * Moved the motion_loop initialization into a new function motion_init.
   * netcam code now waits for the next frame to arrive for a limited period
     in order to avoid too many duplicate images.
   * Last --with-developer-flags warnings eliminated simply by swapping the
     order of the #include statements in the sources (Bill Brack and Kenneth Lavrsen).
   * Enhancement to Netcam Code for Connection to Pixord Cameras.
     http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamFixPixordBug
   * Fix related to connecting to the netcam. From mailing list 23 Dec 2005.
   * Fixed problem related to fetching images from Network camera and error
     handling when it fails. Motion would end in infinite loops.
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x03x10x000151
   * Fix conv_uyvyto420p segfault.
   * Enhancing the palette selection.

John Bray
   * Get current directory to allow write motion.conf properly 
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2008x02x25x013419

Andy Brown 
   * Add swf codec to video creation (on behalf of Bowser Pete).

Ashley Cambrell
   * PostgreSQL support, put_jpeg_grey(), webcam bugfixes.

Angel Carpintero
   * Improved configure process which automatically detects presence
     of xmlrpc-c and ffmpeg and makes the Makefile accordingly.
   * Improvement of configure reporting of missing shared libraries.
   * Fix for building motion without ffmpeg (missing #ifdef round newly
     added ffmpeg timelapse code)
   * Implemented RH (sysV) and Debian type control scripts for /etc/init.d
   * Memory clean-up improvements when Motion exits normally.
   * Provided several improvements of error handling.
   * Ported Motion to FreeBSD.
   * Created the spec file so that Kenneth can build RPMS when releasing
     Motion.
   * Improved error handling for the netcam functions.
   * Implemented fix for compiling errors when building the FreeBSD version
     without bktr support.
   * Added a new config option --without-optimizecpu which disables the
     CPU specific compiler optimizations introduced with the rotate phase 2
     patch.
   * 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. (with
     Christopher Price).
   * Improved the Netcam patch (Angel Carpintero)
     http://www.lavrsen.dk/twiki/pub/Motion/StreamingNetcamWithoutCurl/
     (pre2 patch fixes problem with not detecting Content-length and segfaults
     in netcam)
   * 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. (with Kenneth Lavrsen)
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2004x10x26x134906
   * Improved the Netcam patch (Angel Carpintero)
     http://www.lavrsen.dk/twiki/pub/Motion/StreamingNetcamWithoutCurl/
     (pre3 reconnection feature added)
   * Fixed several bugs in new netcam code introduced in 3.1.18
     (Angel Carpintero)
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x01x16x030209
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x02x01x071546
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x02x03x035918
   * 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
   * Major new feature. XMLRPC is replaced by a simpler http remote control
     interface.
     http://www.lavrsen.dk/twiki/bin/view/Motion/MotionHttpControl
   * Fixed netcam->userpass problem
   * Added support in configure for athlon64 from
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x01x30x190907
     (Angel Carpintero and William M Brack)
   * Updated code so Motion again runs on FreeBSD.
   * Removed check for memmem from configure.
   * Updated http control interface so that an additional check is done
     before saving config files.
   * Fixed a problem with URLs http://192.168.1.3:8080/0 which did not
     work without a trailing space.
   * Fix the compile issue with official ffmpeg packages from debian.
   * Added basic authentication to the http control interface introducing new
     config option control_authentication.
   * Fixed memory leak when restarting Motion from http control.
   * Small improvement in configure script for Debian.
   * 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.
   * http interface small fixes (motion-3.2.1_snap14-small-fixes 1.1) incl
     Add 'back' link to response_client errors.
     http://www.lavrsen.dk/twiki/bin/view/Motion/MotionHttpControl
   * Made the http control interface more RFC compliant.
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x05x02x180550
   * 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/twiki/bin/view/Motion/BugReport2005x05x02x205307,
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x05x07x042849
   * In httpd control code: Fixed RAW syntax following API specs.
     http://www.lavrsen.dk/twiki/bin/view/Motion/MotionHttpControl
   * MotionHttpControl Patch motion-3.2.1_snap18-pre1 v,1.0 19 May 2005.
     Fixed some HTTP response codes and added header copyrights.
     http://www.lavrsen.dk/twiki/bin/view/Motion/MotionHttpControl
   * Fixed problem compiling "ffmpeg reports only YUV420 is supported" when
     ffmpeg is a recent CVS version.
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x05x22x213229
   * Bug fix in netcam code: Sometimes motion try to free an invalid memory area
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x05x21x105335
   * Small configure fix related to --without-v4l.
   * Fixes for http control HTML code.
   * Added init script to RPM.
   * Pthread deadlock in motion 3.2.1 fixed.
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x05x26x125712
   * http lockup bugfixes and ConvertSignalToSigaction only for webhttpd
   * alg_draw_location: Use temporary variables to store the values used in
     for() loops instead of compute them in each loop
     http://www.lavrsen.dk/twiki/bin/view/Motion/ImproveAlgDrawLocation.
   * Small speed boost to the function draw_textn (Andrew Hamilton and
     Angel Carpintero).
     http://www.lavrsen.dk/twiki/bin/view/Motion/DrawTextnImprovement
   * 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.
     http://www.lavrsen.dk/twiki/bin/view/Motion/AvoidCleanupSegfault
   * Changed the configure script so that rpms can be made by normal non-root
     users.
   * Above change in configure script for 64 bit ffmpeg support also implemented
     in the freeBSD configure.
   * Webhttp control interface fixed so it also works in FreeBSD.
   * Fixed a bug in the webhttpd code related to pan/tilt. Bug was introduced in
     snap4 (Angel Carpintero, Kenneth Lavrsen).
   * 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/twiki/bin/view/Motion/LibJpegMmx
   * Fixed memory leak in webhttpd related to use of strdup.
   * Error Logging Enhancement Patch v 1.3 including:
      * 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
      * http://www.lavrsen.dk/twiki/bin/view/Motion/ErrorLoggingEnhancementPatch
   * 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'. 
     http://www.lavrsen.dk/twiki/bin/view/Motion/MotionHttpControl.
   * Fixed a bug in the http control code that failed to accept a client
     connecting in some systems
   * 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.
     http://www.lavrsen.dk/twiki/bin/view/Motion/ReduceWarningsPatch
   * Fixed small mistake in allocating memory for cnt->imgs.common_buffer.
   * 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".
   * http control: selectbox instead of a textfield for changing boolean configs
     (Peter Holik and Angel Carpintero)
     http://www.lavrsen.dk/twiki/bin/view/Motion/WebhttpEnhancements.
   * Added the debian sub directory so that people can build the deb package.
   * Sync configure.in.freebsd (adding support for jpeg-mmx, developer-flags and
     some cosmetic changes ).
   * Implemented --with-developer-flags fixes in FreeBSD code.
   * In v4l_start change map from unsigned char * to void * to be ANSI C compliant
     with mmap
   * http control: Changed disabled to (not defined) when displaying option list.
   * 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.
   * Implemented fix to configure so that LDFLAGS from the environment are used
     when making the Makefile.
     http://www.lavrsen.dk/twiki/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.
   * Added the %t conversion specifier to show the thread number.
     http://www.lavrsen.dk/twiki/bin/view/Motion/ThreadConversionSpecifierPatch
   * Fixed bug related to init of mutex in netcam code.
   * Netcam_ftp code fixes (Angel Carpintero and Asbjørn Pettersen)
     http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamWithFtpEnhancements
   * Enhanced ffmpeg detection.
     http://www.lavrsen.dk/twiki/bin/view/Motion/BetterFFmpegDetection
   * 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/twiki/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.
   * Fixed misc problems in FreeBSD.
      * 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 http control of pan and tilt.
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x12x22x122649
   * Fixed sql_mask not initialised correctly
     http://www.lavrsen.dk/twiki/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. 
     http://www.lavrsen.dk/twiki/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.
     http://www.lavrsen.dk/twiki/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/twiki/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) 
   * Added Tilt support to stepper track.
   * Fixed mysql configure auto-detection for x64 systems.
     http://www.lavrsen.dk/twiki/bin/view/Motion/SupportQuestion2006x03x02x152208
   * 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/twiki/bin/view/Motion/WebHttpManyThreads
   * Removed annoying debug messages (v4l_set_input really needed ?) in the FreeBSD
     version.
   * Added new feature: minimum_frame_time which enables capturing at a lower rate
     than 2 frames per second (Kenneth Lavrsen and Angel Carpintero)
   * Fix segfault when netcam_url has no service ( http , ftp )
   * Fixed interlace issue with METEOR_GEO_EVEN_ONLY in FreeBSD
   * Fixed possible syntax error in configure related to MySQL
   * Put a new global mutex around avcodec_close to avoid problems with not thread
     safe functions in ffmpeg
   * Put a new global mutex around avcodec_close to avoid problems with not thread
     safe functions in ffmpeg.
     http://www.lavrsen.dk/twiki/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/twiki/bin/view/Motion/BugReport2006x07x08x070417
   * For BSD platforms changed to using native pthreads as default and adding
     linuxthreads as a optional parameter from configure.
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x07x08x071646
   * Added process_id_file feature
     http://www.lavrsen.dk/twiki/bin/view/Motion/FeatureRequest2006x06x06x123003
   * Add connection status for all devices available from http web interface.
     http://www.lavrsen.dk/twiki/bin/view/Motion/FeatureRequest2006x11x09x050638
   * Improved deb packaging , install the init.d script.
   * Reconnect to mysql if connection dropped.
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x10x10x081903	
   * Track pan/tilt support for uvcvideo ( Michal Licko ,Dirk Wesenberg and Angel Carpintero )
     http://www.lavrsen.dk/twiki/bin/view/Motion/LinuxUvcTrackingPatch
   * Added V4L2 support http://www.lavrsen.dk/twiki/bin/view/Motion/VideoForLinuxTwoDiscussion, (Krzysztof Blaszkowski, Angel Carpintero).
   * Added support for V4L2_PIX_FMT_SBGGR8 ( bayer ), V4L2_PIX_FMT_SN9C10X, V4L2_PIX_FMT_MJPEG and V4L2_PIX_FMT_UYVY. 
   * Added a FreeBSD directory to allow people from BSD to get a daily version and create a port. 
   * Removed mysql dependency from debian package and added a note to setup motion to run as daemon to create the pid file.
   * 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
   * Fix an error in FreeBSD , the use of capture even fields depends on height value.
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x12x03x073610
   * Fixed autodetection for VIA cpu , no needed to use --without-optimizecpu. Added many others.
   * Fix , don't remove pid file when motion reload config file( HUP signal ).
   * Fix compilation broken by uvc track type.
   * Fix RoundRobin v4l2 buffers in driver when switching input,
     http://www.lavrsen.dk/twiki/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/twiki/bin/view/Motion/BugReport2007x06x05x012249
     (Jared D and Angel Carpintero).  
   * Added MYSQL_OPT_RECONNECT flag for mysql connection (MYSQL 5.x only) and 
     changed default value for mysql_host.
   * Fix http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=391055 , change
     motion man page , -d requires level.
   * Handle mjpeg decoding and fix colour issue adding mjpegtools dependency
     http://www.lavrsen.dk/twiki/bin/view/Motion/MjpegColorIssue
     http://www.lavrsen.dk/twiki/bin/view/Motion/MjpegToYUV420pPatch
     (Marius Rieder, Angel Carpintero).
   * Fix segfault in webhttpd.c on motion restart.
   * Fix segfault in debian http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2007x09x24x175945  
   * Add debug level > 5 to get logs from v4l2_select_input, v4l2_set_control and v4l2_set_input.
   * Removed debian ( to avoid conflicts with debian package) and FreeBSD
     ( no needed to deploy BSD port here ) directories.
   * Improve debian package, create user/group motion and added --chuid motion to init script.
   * Added help in http control http://www.lavrsen.dk/twiki/bin/view/Motion/FeatureRequest2007x11x19x181541
   * Fixed http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2007x10x23x093651
   * Fix process_id_file when is passed from command line 
   * Fix http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2007x10x27x150419
   * Added Choose V4L2 palette http://www.lavrsen.dk/twiki/bin/view/Motion/FeatureRequest2007x11x19x032318
   * Improved in http control ( 'back' link, select box, show current values when are going to be changed ). 
   * Fix http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2007x11x25x102808
   * Avoid random errors , initialising some structs for V4L1 
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2007x11x26x010755 (Jason Sharpee & Angel Carpintero)
   * Fix motion segfault because ffmpeg API change
     http://www.lavrsen.dk/twiki/bin/view/Motion/SupportQuestion2007x12x29x17553
   * 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)
   * Fix broken PostgreSQL detection for custom location,
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2008x02x25x025134
   * Fixed stepper when is used track_auto on.
   * Added to configure.in --with-pwcbsd to allow compile motion in freebsd with webcam support instead of bktr.
   * IPV6 for http-control and webcam stream not netcam yet http://www.lavrsen.dk/twiki/bin/view/Motion/IPv6
     (Jeroen Massar & Angel Carpintero)
   * Fix a security issue in web control interface http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=484572
   * Fix Problem Encoding 1280x1024 resolution videos
     http://www.lavrsen.dk/twiki/bin/view/Motion/SupportQuestion2008x06x11x183727
   * Add write/read nonblock functions in webhttpd( timeout on read/write).
   * Add a new parameter netcam_tolerant_check, to be less strict with some buggy network cameras firmwares.
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2008x06x19x123218
   * Remove mjpegtools dependencies and integrate only needed functions from library.  
   * Fix rotate for v4l2 devices using JPEG / MJPEG palettes.
   * External pipe to allow external video encoders 
     http://www.lavrsen.dk/twiki/bin/view/Motion/DarkwindHackeronMotionPatching (Bill Payne, Angel Carpintero)
   * Allow change/setup framerate in FreeBSD using pwcbsd
   * Get rid of ffmpeg-config in configure.in for debian.
   * Fix warning for x86_64 in conf.c using pointers LP64 compliant.
   * Fix warning for syslog() , Added support for some new bayer palettes introduced in kernel 2.6.27.
     http://www.lavrsen.dk/twiki/bin/view/Motion/FeatureRequest2008x10x15x130110
     Increased buffer in ffmpeg to allow encoding at 1600x1200
   * Avoid possible stack smashing in v4l_open_vidpipe().
   * Allow compile with OpenSuse ffmpeg package (15594svn-20081010)
     http://www.lavrsen.dk/twiki/bin/view/Motion/SupportQuestion2008x10x25x070400
   * Avoid segfault detecting strerror_r() version GNU or SUSv3.
   * Fix fd leaks in external pipe. 
   * Fix segfault for new libjpeg v7.
   * Allow to change Standard method ( PAL / NECAM / SECAM ).
   * Exit when image dimension are not modulo 16.
   * Avoid logs flooding using some options of netcam_keepalive and try to discard images with
     weird header Content-Lenght 0.
   * Only use post capture when we setup to record videos with external pipe or ffmpeg.
   * Fixed FFV1 codec encode with ffmpeg.
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2010x04x13x032553
   * No PQfinish().
   * Added a conditional check for avformat_alloc_context , av_avformat_alloc_context to fix
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2011x10x05x071936
   * Added a new starting option -m to disable motion detection.
 
Jared D
   * Change bayer2rgb24() to fix a problem with sn9c102 driver
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2007x06x05x012249
     (Jared D and Angel Carpintero).

John Edwards
   * Added the 'pal-nc' norm.

Dag Erlandsson
   * Fix RoundRobin v4l2 buffers in driver when switching input,
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2007x07x07x182605
     (Dag Erlandsson and Angel Carpintero).
   * Check EIO for VIDIOC_DQBUF to workaround saa7134 problem.
     (Dag Erlandsson and Angel Carpintero). 
   * Added the pre_capture buffer redesign to throttle load and enhance pre_capture feature.
     http://www.lavrsen.dk/twiki/bin/view/Motion/PreCaptureRedesign
   * Fixed a problem with locate and fixed mask overlay
   * Added preview center feature.
     http://www.lavrsen.dk/twiki/bin/view/Motion/PreviewCenter
   * Fixed timestamp for preview pictures.
   * Insert Blanking frames http://www.lavrsen.dk/twiki/bin/view/Motion/FeatureRequest2007x12x16x132522
     
Stephen Farrugia
   * Fixing the division by zero problem.
     This makes motion a lot more stable.

Michael Finsterbusch

   * Add authentication  methods 'Basic Authentication' and 'Digest Authentication' 
     to the "Live Stream Server". 
     http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionStreamAuthPatch

Mark Feenstra
   * Fix zombies on OpenBSD.
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2010x04x28x054348

Miguel Freitas
   * Came up with the round robing idea.

David Fries
   * Fix webhttpd race condition crash with SIGHUP, add it to running thread counter
   * Allow text format specifiers to take a width like printf would.
   * Add power_line_frequency configuration item to improve image quality.

Aaron Gage
   * Pointed me to the vid_mmap/int problem when calling SYNC in
     video.c

Giacomo Graziosi
   * Sqlite3 support http://www.lavrsen.dk/twiki/bin/view/Motion/SQLite3Patch

Christophe Grenier
   * Fixed some file descriptor leaks in webcam.c and netcam.c.
   * 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()
   * Contributed with most of the code for 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.
   * 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.
     http://www.lavrsen.dk/twiki/bin/view/Motion/ChdirNetCamWgetPatch
   * In netcam-wget header_get() didn't always in add a \0 string terminator.
     This was fixed.
     http://www.lavrsen.dk/twiki/bin/view/Motion/ChdirNetCamWgetPatch
   * Made a pthread fix.
     http://www.lavrsen.dk/twiki/bin/view/Motion/PthreadFixPatch
   * Implemented the conversion of signal to sigaction which should be more
     thread safe. Hopefully this still keeps Motion from making Zombies.
     http://www.lavrsen.dk/twiki/bin/view/Motion/ConvertSignalToSigaction

Mihnea-Costin Grigore
   * Fixed the oldlayout behaviour of snapshots.
   * Fixed snapshot link extension.
   * Added the snapshot_overwrite option.
   * Fix for correct mpeg names when using mpeg_encode.

Alain Guidez
   * Fix of ffmpeg_avcodec_log code.
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2007x03x25x074612

Jan Gyselinck
   * Original time/date-stamp code.
   * ppm support
   * Good ideas

Colling H
   * New frame_limit.

Steffen Haas
   * Improved on screen display by adding more symbols and lower
     case letters.

Andrew Hamilton
   * Small speed boost to the function draw_textn (Andrew Hamilton and
     Angel Carpintero).
     http://www.lavrsen.dk/twiki/bin/view/Motion/DrawTextnImprovement
   * 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.
     http://www.lavrsen.dk/twiki/bin/view/Motion/TextScalingPatch
   * Fixed memory leak in ffmpeg code.
   * Added the ffmpeg_deinterlace feature
     http://www.lavrsen.dk/twiki/bin/view/Motion/MotionffmpegDeinterlace 
   * Added FFV1 ( FF video codec 1 ) codec , Lossless encoding
     http://www.lavrsen.dk/twiki/bin/view/Motion/LosslessEncoding 
   * Added mov , Quicktime file format (Andrew Hamilton).

Gerrit Hannaert

   * Fix v4l2_palette http://www.lavrsen.dk/twiki/bin/view/Motion/UvcvideoMjpegPatch

Peter Holik
   * 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).
     http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamFirstHeader
   * Small improvement in framerate accuracy.
     http://www.lavrsen.dk/twiki/bin/view/Motion/FramerateAdjust
   * Implemented a modified version of the WebcamCompressInMemory so that Motion
     no longer uses the tmpfile() function for buffering the frames of the mjpeg
     stream.
     http://www.lavrsen.dk/twiki/bin/view/Motion/WebcamCompressInMemory
   * 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/twiki/bin/view/Motion/LibJpegMmx
   * Small code cleanup in webcam.c and picture.c and .h for the webcam code
     (Peter Holik and Kenneth Lavrsen).
   * Small speed optimization in the creation of reference frame.
   * 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.
     http://www.lavrsen.dk/twiki/bin/view/Motion/ReduceWarningsPatch
   * Implemented a speed-up patch of the draw text feature.
     http://www.lavrsen.dk/twiki/bin/view/Motion/DrawTextspeedup
   * http control: selectbox instead of a textfield for changing boolean configs
     (Peter Holik and Angel Carpintero).
     http://www.lavrsen.dk/twiki/bin/view/Motion/WebhttpEnhancements.
   * Introduced check for device image size being a multiple of 16.
     http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamModulo16Patch
   * Fixed netcamera bug related to separating frames in an mjpeg stream.
     From mailing list 23 Dec 2005.
   * Avoid open file descriptor when connecting to network cameras fails 
     http://www.lavrsen.dk/twiki/bin/view/Motion/AvoidOpenfiledescriptors
   * Fix Segfault on reload or quit for vloopback (maybe other v4l1 devices too)
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2009x06x17x090603
   * Fix warning for __USE_GNU redefined
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2009x06x17x122137  
   * Use static memory allocation in ffmpeg_deinterlace()
     http://www.lavrsen.dk/foswiki/bin/view/Motion/FfmpegDeinterlaceStatic
   * Atom optimizacion in configure.in 
     http://www.lavrsen.dk/foswiki/bin/view/Motion/AtomOptimizations


Wesley Hosking
   * For pointing me to the absence of a frame length check using
     read for capturing

Peter Ilin
   * Patch for handling vloopback pipes better when Motion receives
     SIGTERM or SIGHUB

Per Jönsson
   * Added the rotate feature.
   * Improved the Makefile with automatic check of dependencies and
     nicer output for the user.
     http://www.lavrsen.dk/twiki/bin/view/Motion/MakefileWithAutoDependencies
   * Improved rotate feature (speed)
     http://www.lavrsen.dk/twiki/bin/view/Motion/RotatePatch
   * Implemented new ffmpeg patch
     http://www.lavrsen.dk/twiki/bin/view/Motion/FfmpegPatch049
   * Implemented labelling speed patch
     http://www.lavrsen.dk/twiki/bin/view/Motion/LabelingSpeedPatch
   * Improved the signal handling of ctrl-C
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x01x06x181426
   * Fixed the ffmpeg code so that Motion also compiles against libavcodec
     build 4754 or later.
   * Fixed a bug in the autobrightness algorithm.
   * RotateBswapFix Patch v 2 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/twiki/bin/view/Motion/RotateBswapFix
   * 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/twiki/bin/view/Motion/ThreadNrTlsPatch
   * Simplified rotation code based on the fact that images must have dimensions
     that are a multiple of 16.
     http://www.lavrsen.dk/twiki/bin/view/Motion/RotateSimplificationPatch

Mike Kenney
   * 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/twiki/bin/view/Motion/SupportQuestion2005x09x05x133031
     http://www.lavrsen.dk/twiki/bin/view/Motion/SupportQuestion2006x06x19x174238

Rafis Khayrullin
   * Fix memory management in ffmpeg.c 
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x12x19x062432

Matthias Kilian
   * Configure patch which enables configure to find and use a
     dynamic library of ffmpegs libavcodec.so

Daniel Ladd
   * Fixed a bug in the rgb2yuv420p function.
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x03x30x011107

Kenneth Lavrsen (Currently project managing Motion)
   * Wrote the excellent Motion Guide. (Jeroen wrote this :-) )
   * Fixed low_cpu to check for a 1sec. maximum wait.
   * Updated manpage for 3.0.0
   * New usertext additions to draw.c
   * Fixed ffmpeg compatibility for ffmpeg 0.4.8
   * Fixed ffmpeg instability problem
   * Fixed "ioctl(VIDIOCGCHAN): Invalid argument" error
   * Changed motion.conf to motion-dist.conf.
   * Changed the parsing of the motion.conf and thread.conf files so
     that spaces are now allowed.
   * Changed the parsing of the user defined on screen display text
     so that you can enclose a string in "" both in config file
     and using the XML-RPC interface. Ie. you can use spaces in the
     text.
   * 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
     drawtext_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.
   * Fixed problem with strftime based names with event number %v when
     event numbers were higher than 99.
   * 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) (thanks Daniel).
   * Added setting access rights to 644 (755 for configure) when doing
     make dist.
   * Small improvement on xmlrpc-api.html document.
   * Fixed missing init of viddev.frequency causing VIDIOCGCHAN errors.
     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.
   * Kenneth Lavrsen changed the enhanced SQL config from single sql_mask
     option to 5 sel_log_ options for more user friendly control.
   * 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.
   * A few lines of code for Dan's improved handling of config strings.
   * 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.
   * Small improvements in messages sent to console and syslog during
     startup of Motion.
   * Fixed the problem with default strings being written to thread
     config files when using the XMLRPC command motion.conf.write.
   * Fixed memory leaks in new ffmpeg code.
   * 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.
   * Added seconds and frame fields to the database feature.
   * Fixed a small bug related to the filename given for onffmpegclose.
     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.
   * Added the new fields to the SQL security table camera (thread
     number), text (text_left) and time (timestamp).
   * 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.
   * 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.
   * Removed the obsolete Berkeley mpeg feature.
   * Corrected a small error in the usage help text
     http://www.lavrsen.dk/twiki/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/twiki/bin/view/Motion/BugReport2005x01x06x103939
   * 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. (with Angel Carpintero)
     http://www.lavrsen.dk/twiki/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.
   * 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).
   * 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/twiki/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 rollover happens on the hour and not one
     timelapse past the hour (Kenneth Lavrsen).
   * Fixed a bug in noise tune which was most visible at very low light.
   * 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.9.5.
   * 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.
   * Fixed even more gcc 2.95 compiler errors (declarations not at beginning
     of block).
   * Removed a gcc 2.95 compiler warning (netcam.c:1036: warning: variable `pic'
     might be clobbered by `longjmp' or `vfork').
   * The values for cnt->locate and cnt->new_img are now #defines in motion.h
     to enhance code readability.
   * The setting of sql_mask is now only done once per second to save CPU power.
   * 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.
   * Added "motion-http:" prefix to error messages from the http control thread.
     (Kenneth Lavrsen)
   * Added additional error information when connection to MySQL fails.
   * 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.
   * 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.
   * 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.
     http://www.lavrsen.dk/twiki/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.
   * Fixed a bug where motion did not work with gap=1.
     http://www.lavrsen.dk/twiki/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.
   * Improved the http remote control action features so that makemovie
     and snapshot for thread 0 (all) works on all threads instead of being
     ignored.
   * Moved some code in the beginning of the motion_loop to a position later
     to improve the accuracy of time calculations for the framerate.
   * Improvements of motion.conf help comments including improvements in new
     onxxxx options.
   * Motion Guide refactored completely for 3.2.1 with better web navigation and
     auto generation of pages. Makefile updated so that the Motion TWiki topic
     MotionGuideOneLargeDocument is fetched when updating the guide and making
     releases.
   * 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.
   * Changed the default values for a few options: quiet on, webcam_maxrate 1,
     threshold_tune off, webcam_quality 50.
   * Changed some cosmetics in the way motion.conf is written (space after #).
   * Updated the motion-dist.conf to use default values unless there is a reason
     not to.
   * 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.
     http://www.lavrsen.dk/twiki/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.
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x02x26x195358.
   * Made the http control HTML responses nicer to look at as sources and
     therefore easier to debug errors.
   * Code style cleanup of webhttpd.c.
   * 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/twiki/bin/view/Motion/BugReport2005x05x02x205307,
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x05x07x042849
   * 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.
     http://www.lavrsen.dk/twiki/bin/view/Motion/ExtendReplaceConversionSpecifiersDiscussion
     http://www.lavrsen.dk/twiki/bin/view/Motion/GenericTrackingPatch
   * Fixed a bug in switchfilter which caused motion detection to not work
     when the feature was enabled.
   * Fix for Unknown content type with lumenera cameras
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x05x06x174416
   * Man page updated. It is now semi-autogenerated in the Motion TWiki
     http://www.lavrsen.dk/twiki/bin/view/Motion/MotionOptionsAlphabeticalManpage
   * Added two new convertion specifiers: %o for threshold and %Q for number
     of labels.
   * Improved the config file description for pre_capture to get people to
     use small values.
   * 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.
   * Changed the configure script so that /usr/lib64 is also searched for
     the presence of ffmpeg (should fix the problem with 64 bit machines).
   * Changed the configure script so that rpms can be made by normal non-root
     users.
   * Fixed a bug in the webhttpd code related to pan/tilt. Bug was introduced in
     snap4 (Angel Carpintero, Kenneth Lavrsen).
   * Changed all use of localtime to localtime_r which is threadsafe.
   * Modified the WebcamCompressInMemory patch so that Motion now supports the
     mjpeg webcam stream while being setup for saving PPM images.
     http://www.lavrsen.dk/twiki/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.
   * Webcam code commented more.
   * 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.
   * 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)
   * Fixed bug related to disabled webcam or duplicate webcam port. Error log
     accept(): Socket operation on non-socket continuously written to syslog.
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x08x01x150922
   * Included a CODE_STANDARD text file to help new developers make patches
     that are easier to integrate without too much manual editing.
   * Changed the 5 second missed camera signal timeout to 30 seconds.
   * 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/twiki/bin/view/Motion/BugReport2005x08x05x173526
   * Option switch filter used print_int instead of print_bool when motion.conf
     was saved.
   * 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.
     http://www.lavrsen.dk/twiki/bin/view/Motion/ReduceWarningsPatch
   * 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/twiki/bin/view/Motion/ThreadNrTlsPatch
   * Removed old unused code related to read mode (not mmap) from V4L devices.
   * 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.
   * Last --with-developer-flags warnings eliminated simply by swapping the
     order of the #include statements in the sources (Bill Brack and Kenneth Lavrsen).
   * 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.
   * 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.
   * 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.
     http://www.lavrsen.dk/twiki/bin/view/Motion/EventConvertionSpecifierDiscussion
   * Renamed some variables related to time to be better descriptive of function
     and type.
   * 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.
   * Added new SQL field event_time_stamp of the type TIMESTAMP.
   * RPM specs file changed as suggested for use in the Livna repository.
   * 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.
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x10x05x212444
   * Added help texts in conf.c and motion-dist.conf describing the %t
     specifier. Added a good example of use in motion-dist.conf.
   * 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.
   * Removed the sql_user_text option that was added in snap 2
   * Added new sql_query option. This in combination with convertion
     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.
   * Change 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
   * 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 initialized properly.
   * 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.
   * 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.
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x11x13x115016
   * 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.
   * 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.
   * 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/twiki/bin/view/Motion/PwcConfiguration
   * Implemented fix for missed snapshots with slow network cameras
     http://www.lavrsen.dk/twiki/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.
     http://www.lavrsen.dk/twiki/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.
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x10x08x150720
   * 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.
   * 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.
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x03x09x012244
   * text_changes now shows a '-' when motion detection is paused instead of
     just showing 0
     http://www.lavrsen.dk/twiki/bin/view/Motion/FeatureRequest2006x03x16x095713
   * Improved reporting of thread numbers during startup in setup mode.
     (Peter Smith and Kenneth Lavrsen)
     http://www.lavrsen.dk/twiki/bin/view/Motion/SlightlyImprovedThreadCreationLogging
   * 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/twiki/bin/view/Motion/SupportQuestion2005x09x05x133031
     http://www.lavrsen.dk/twiki/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.
   * Removed the minimum_gap feature which was utterly useless
   * Added new feature: minimum_frame_time which enables capturing at a lower rate
     than 2 frames per second (Kenneth Lavrsen and 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.
   * Smartmask overlay feature did not set intensity correctly.
   * Fixed the thread number assignment which could goof up if netcams started very
     quickly before all thread were created at startup.
   * Fixed name space clash with libjpeg8
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2010x01x22x084753

Mike Lees
   * Added the onffmpegclose feature.
   * Fixed a serious stability issue related to syslog not being a fully
     re-entrant function.
   * Implemented the new brightness, contrast, hue, saturation features
     http://www.lavrsen.dk/twiki/bin/view/Motion/BrightnessContrastPatch

Wim Lewis

   * Added EXIF feature for jpeg images , http://www.lavrsen.dk/foswiki/bin/view/Motion/ExifTaggingPatch

Michal Licko
   * Track pan/tilt support for uvcvideo ( Michal Licko ,Dirk Wesenberg and Angel Carpintero )
     http://www.lavrsen.dk/twiki/bin/view/Motion/LinuxUvcTrackingPatch

Michael Luich

   * Added codec Ogg/Theora as new output format for regular movies.
     http://www.lavrsen.dk/foswiki/bin/view/Motion/OggTimelapse

Bill Maidment
   * Fixed bug reporting errors when creating symlink to last snap.

Philip Marien
   * Fixed a problem when compiling with --without-v4l configuration.

Jeroen Massar
   * IPV6 for http-control and webcam stream not netcam yet http://www.lavrsen.dk/twiki/bin/view/Motion/IPv6
     (Jeroen Massar & Angel Carpintero)

Lionnel Maugis
   * ffmpeg code

Andrew McCarthy
   * Added the netcam functionality to the original axis code.

Ian McConnell
   * Fixed the problem with Netcams and mask files.
   * New despeckle feature.
   * Flexible on screen display feature based on strftime.
   * Flexible strftime based path names.
   * Fixed problem with snapshot names when name is lastsnap.
   * Fix for snapshots when using the "lastsnap" filename.
   * Provided "timelapse closes mpeg file when set to zero" feature.

Randy McEoin
   * For adding the onmpeg command.

Marcel J.E. Mol
   * new show.cgi and genhtml.sh, -a without alarm, both motion
     and normal images, various improvements and ideas

Sean Murphy
   * Executing external commands

nemosoft
   * For his differential view in the camstream program.
     It inspired me (Jeroen) to make this. And for a great program to
     test my video loopback support. (www.smcc.demon.nl/camstream/)

nullset?
   * For the ir script to turn motion and lights on and of

Onakra
   * Fix choose v4l2 palette , http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2008x01x21x043812

Mikko Paananen
   * Changed netcam open to use pipes and fixed authentication.

Bill Payne,
   * External pipe to allow external video encoders 
     http://www.lavrsen.dk/twiki/bin/view/Motion/DarkwindHackeronMotionPatching (Angel Carpintero, Bill Payne)

Bowser Pete
   * Add swf codec to video creation.

Asbjørn Pettersen
   * Netcam_ftp code fixes (Angel Carpintero and Asbjørn Pettersen)
     http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamWithFtpEnhancements

Pawel Pierscionek
   * Signal blocking during ioctls.
   * Greyscale blowup optimization

Philippe Possemiers
   * For fixing the bug that prevented external commands, mail
     and sms from being called at the first event.
   * And for writing the send_jpg.py script.

Alan Post
   * Pointed me to the exit(-1) instead of exit(1) calls.

Christopher Price
   * 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. (with Angel
     Carpintero).
     http://www.lavrsen.dk/twiki/bin/view/Motion/StreamingNetcamWithoutCurl
   * Netcam fixes and debug code by Christopher Price
     http://www.lavrsen.dk/twiki/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
   * Netcam Stability Patch version snap6-post1
      * 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
   * Netcam Stability Patch version 3.2.1-snap7-post1
      * Added support for non-streaming (image based) netcams without
        content-lengthheader.
   * Contributed code for 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.
   * More Netcam Stability Fixes (snap10-post1-6)
     http://www.lavrsen.dk/twiki/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.
   * More Netcam Stability Fixes (snap11-post1-4) (Christopher Price)
     http://www.lavrsen.dk/twiki/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.
   * More Netcam Stability Fixes (snap12-post1) (Christopher Price)
     http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamStabilityPatch
      * 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.

Dietz Proepper
   * Always output diff count and output image type selection

rasca
   * A lot of the code in motion.c comes from his vidcat program
     which is part of the w3cam package. (jpeg creation and parts
     of the image capture function)
     (www.hdk-berlin.de/~rasca/w3cam/)

Michael Reuschling
   * 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/twiki/bin/view/Motion/BugReport2005x01x31x211756

Petter Reinholdtsen
   * Adding the install option to the makefile.

Isaac Richte
   * V4L2 fourcc GRBG not supported, updated default value for v4l2_palette 17.
     http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2009x10x29x222753

Marius Rieder
   * Handle mjpeg decoding and fix colour issue adding mjpegtools dependency
     http://www.lavrsen.dk/twiki/bin/view/Motion/MjpegColorIssue
     http://www.lavrsen.dk/twiki/bin/view/Motion/MjpegToYUV420pPatch
     (Marius Rieder, Angel Carpintero).

James A. Russo.
   * Implemented ffmpeg_timelapse_mode feature.
   * Implemented enhanced SQL features. This adds logging of mpeg
     and prediction events to the MySQL/PostgreSQL feature.
   * Replaced the mime file types by a more refined filetype
     scheme that allows more refined control for SQL and other
     future control.

Jason Sharpee
   * Avoid random errors , initialising some structs for V4L1
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2007x11x26x010755 (Jason Sharpee & Angel Carpintero)   


Pete Shipley
   * Fix the problem that happens in FreeBSD and Debian Sarge because
     version of ffmpeg is LIBAVFORMAT_BUILD < 4629. ( Angel Carpintero and Pete Shipley)
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x01x12x120335

Gunnar Skjold     
   * Fixed http pause feature so that pausing thread 0 now pauses all threads.
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x07x10x111239

Peter Smith
   * Improved reporting of thread numbers during startup in setup mode.
     (Peter Smith and Kenneth Lavrsen)
     http://www.lavrsen.dk/twiki/bin/view/Motion/SlightlyImprovedThreadCreationLogging
   * Ffmpeg code mutex locking fix
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x04x07x164654
   * Ffmpeg avicodec logging improved (Peter Smith and Kenneth Lavrsen)
     http://www.lavrsen.dk/twiki/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/twiki/bin/view/Motion/LoggingEventFix

Roberto Spadim
   * 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/twiki/bin/view/Motion/BugReport2005x05x02x205307,
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x05x07x042849

Daniel Sterling
   * Studies of the performance of Motion.
   * Night compensation fix.
   * 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 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 more comments to motion.c and conf.c.
   * 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.
   * Fixed a calculation error in alg_diff_fast().

Tommy Svensson
   * Wrote the original patch for supporting pan/tilt with Logitech
     Quickcam Sphere/Orbit

Timo Taskinen
   * Added Flash video format (FLV) to ffmpeg.   
     http://www.lavrsen.dk/twiki/bin/view/Motion/FeatureRequest2007x07x19x131921

technolust.cx
   * For hosting motion.technolust.cx

Mark Thomas
   * Created the original thread patch for motion enabling motion to
     watch multiple cameras.

Dirk Traenapp
   * Added the mpeg creation on exit and SIGUSR1, also made the start
     for max_mpeg_time.
   * Found the 'strtok' call that caused motion to crash under RH7.0

Jukka Ukkonen
   * 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/twiki/bin/view/Motion/BugReport2006x07x08x070417

Moshe Van Der Sterre
   * 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/twiki/bin/view/Motion/PwcConfiguration

Folkert Van Heusden
   * Maintained the code from version 3.1.9 till 3.1.12-rc1
     Including features like..
   * Error reporting to syslog.
   * Better memory allocation.
     low_cpu feature extension to configurable frame rate.
   * First work on Logitech Sphere/Orbit tracking.
   * Implemented original pre-record feature.
     Misc code optimisations
   * Closed 2 memory-leaks (two 'FILE *' were not closed) in the
     webcam-interface.

James Van Vleet
   * CPU VIA Ezra C3 autodetection support added.
     http://www.lavrsen.dk/twiki/bin/view/Motion/VIAEzraC3Patch	

Simon Walls
   * Netcam Keepalive and HTTP/1.1 http://www.lavrsen.dk/twiki/bin/view/Motion/FeatureRequest2007x01x22x231542 
   * Better debug in netcam for "Error reading image header" 
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2008x02x27x092849 (Simon Walls)

Sean Watkins
   * Created a centralized logging function that became event()

Joerg Weber
   * Added the new labeling motion detection feature.
   * Added the new Smartmask feature.
   * Implemented new preview patch (Joerg Weber)
     http://www.lavrsen.dk/twiki/bin/view/Motion/PreviewShotsPatch
   * Implemented an improvement of Smartmask so that the mask is cleared when
     the smart_mask_speed is set from a non-zero to zero
   * Implemented an improvement of noise_tune with smart mask (and probably
     also in general)
   * Added Best Preview Patch
     http://www.lavrsen.dk/twiki/bin/view/Motion/BestPreviewShot
   * 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.
     http://www.lavrsen.dk/twiki/bin/view/Motion/SetupModePatch
   * Fixed a bug in noise tune which was most visible at very low light.
   * Improved console output in setup mode. Now also outputs threshold.
   * Improvement in the noise-tune algorithm.
   * 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/twiki/bin/view/Motion/OnXxxCommandsPatch and
     http://www.lavrsen.dk/twiki/bin/view/Motion/OnXxxxFeatureDiscussion
   * Fixed small bug when pre_capture buffer is resized during operation.
   * Changed the order of drawing the red mask in setup mode so that the
     smartmask is drawn after the fixed mask.
   * 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.
   * Improved the labelling algorithm so that locate feature and tracking
     features includes all labelled areas above threshold.
     http://www.lavrsen.dk/twiki/bin/view/Motion/ImprovedLabellingPatch
   * Make the creation of reference frame and the decay mechanism depending
     on how much motion was detected relative to threshold setting.
     http://www.lavrsen.dk/twiki/bin/view/Motion/ReferenceFramePatch
   * Removed low_cpu feature.
   * Removed night_compensate feature
   * Implemented a new reference frame algorithm to improve object recognition and location.
   * Improved smartmask feature: real moving objects don't trigger the mask anymore.
   * Added area_detect feature.
   * Add draw a RED box around the movement as default.
   * Split locate_motion into separate 'mode' and 'style' option to allow all
     possible combinations.
   * Gapless_event mode.
   * Limit detection rate to 3fps at framerates above 5fps, to reduce CPU load.
   * Fixed mask overlay in setup mode is now green instead of white.
   
Dirk Wesenberg
   * Track pan/tilt support for uvcvideo ( Michal Licko ,Dirk Wesenberg and Angel Carpintero )
     http://www.lavrsen.dk/twiki/bin/view/Motion/LinuxUvcTrackingPatch	

Tristan Willy
   * Wrote Axis 2100 support and added the check for ~/.motion/motion.conf

Robert Eugene Wood
   * Inverse pixels for locate box.

Andreas Wrede
  * Allow compile with NetBSD and make LP64 compliant video_freebsd.c 

Damian Wrobel
   * Fix a segfault adding correct size to be used for bayer2rgb24(). 
     http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2007x03x30x175913

Yieldtech
   * These guys are making a complete linux based security system
     with motion as one of its components.
   * They did the mysql support, new fileformat and the symbolic
     link to the snapshots. You can find them at yieldtech.cz

Christian W. Zuckschwerdt
   * Modified the Makefile and configure files to be more flexible.

Mr-Dave
   * Primary maintainer since 2016


Everybody who has contributed ideas, bugreport and remarks to this project
