File: CREDITS

package info (click to toggle)
motion 3.2.3-2.1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 1,612 kB
  • ctags: 1,330
  • sloc: ansic: 11,669; sh: 2,906; makefile: 198
file content (892 lines) | stat: -rw-r--r-- 46,075 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
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.

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.

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 cleansups.
		- Implemented a much easier to use motion_log function which replaces the
		calls to prinf 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 Walgrind 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.

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 (implemented by Angel Carpintero)
		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 (Angel Carpintero) including:
		   - Populate the motion_log to the whole motion source code. 
		   - Fixed FreeBSD copilation. 
		   - Added the posiblity 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'. (Angel Carpintero).
		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
	
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
		
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.

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
		
Peter Holik
		- Netcam First Header patch. If an error with jpeg decompression occured 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.

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
		- Fixed the ffmpeg code so that Motion also compiles against libavcodec
		build 4754 or later.
		- Fixed a bug in the autobrightness algoritm.
		- 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
		
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 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).
		- 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 descripter 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 algoritm. 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 sinple 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 presense 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.
		
	
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
		
Bill Maidment		
		- Fixed bug reporting errors when creating symlink to last snap.
		
Philip Marien		
		- Fixed a problem when compiling with --without-v4l configuration.
		
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
		- 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 Stabilty 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)
		   - 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.
		http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamStabilityPatch
		- More Netcam Stability Fixes (snap11-post1-4) (Christopher Price)
		   - 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 redudant code removed.
		   - Consolated 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.
		http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamStabilityPatch
		- More Netcam Stability Fixes (snap12-post1) (Christopher Price)
	 	  - Newrote url parser, better syntax checking and error handling of urls.
		  - Userpass now allowed in url (http://user:pass@example.com/).
		  Netcam_userpass has precedence, it will override a userpass embedded in
		  the url.
		http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamStabilityPatch

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

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)
		- 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 algoritm.
		- 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 algoritm so that locate feature and tracking
		features includes all labelled areas above threshold.
		http://www.lavrsen.dk/twiki/bin/view/Motion/ImprovedLabellingPatch
		

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