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 completly.
		
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.

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

Mathias Bogaert
		Lots of good ideas and the motion logos

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

Angel Carpintero's
		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.

John Edwards
		Added the 'pal-nc' norm.

Stephen Farrugia
		Fixing the division by zero problem.
		This makes motion a lot more stable.

Miguel Freitas
		Came up with the round robing idea.

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

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.

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.

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 Jnsson
		Added the rotate feature.
		
Matthias Kilian
		configure patch which enables configure	to find and use a
		dynamic library of ffmpegs libavcodec.so

Kenneth Lavrsen (Currently project managing Motion)
		Wrote the excellent Motion Guide.
		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.
	
Mike Lees
		Added the onffmpegclose feature.
		Fixed a serious stability issue related to syslog not being a fully
		re-entrant function.
		
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 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

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

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.

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/)
		
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.

Petter Reinholdtsen
		Adding the install option to the makefile.
		
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

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

Sean Watkins
		Created a centralized logging function that became event()
		
Joerg Weber	
		Added the new labeling motion detection feature.

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

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 extention 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.

Robert Eugene Wood
		Inverse pixels for locate box.

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.

	

Everybody who has contributed ideas and remarks to this project
