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

William M Brack
		- Added patch that enables Motion to work with vloopback version 0.94
		and kernel 2.6.10+. (patch by William M Brack).
		http://www.lavrsen.dk/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 (William M Brack) 
		- Code cleanup from a valgrind analysis (William M. Brack).


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

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.
		-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
		
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. (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 seg fault 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).
	
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
		
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

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

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

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, bugreport and remarks to this project
