3.0.6 Froze 3.0.6 Netcam retries on failure Webcam disconnect and denial of service fixes. 3.0.5 Froze 3.0.5 Fixed ffmpeg segfaults. Removed motion.conf* from install section in Makefile Fixed mail option. 3.0.4 Froze 3.0.4 netcam open now also uses an tmpfile. Open mpeg files using append. 3.0.3 Froze 3.0.3 Added drawtext options for usertext. Modified draw.c for alignment and border check. Moved call to ffmpeg_init() to main() to avoid image corruption. Removed call to put_mysql() in event_pgsql_newfile() 3.0.2 Froze 3.0.2 Changed strtok() call for argument in conf.c arguments with '=' in them are now allowed. 3.0.1 Froze 3.0.1 Added 'dist' and 'updateguide' options to Makefile. Added motion_guide.html to documentation. Fixed mpeg names when using oldlayout. Updated manpage. Added check to low_cpu frame_delay calculation for a maximum of 1 second. 3.0.0 Froze 3.0.0 Added string.h to ffmpeg.c 2.9.12 Froze 2.9.12 Added ffmpeg_bps option. Fixed devpipe instead of devmpipe in motion.c 2.9.11 Froze 2.9.11 Added all config files to examples in Makefile Fixed YUV422 converter for real :) Use 2 as minimum fps for ffmpeg (less produces a floating point exeption) 2.9.10 Froze 2.9.10 Fixed YUV422 to YUV420 converter. Fixed oldlayout for ffmpeg files. Added -lz for mysql. Removed TODO from makefile. 2.9.9 Froze 2.9.9 Fixed leaks in webcam.c Fixed mask image use (imgs.motionsize instead of imgs.size) Don't try to detect motion with threshold set to 0. 2.9.8 Froze 2.9.8 Always try to remove snapshot link. Cleande up config file. Cleaned up ppm code, now loads pgm greyscale files. Fixed max_mpeg_time segfault in ffmpeg close event. Added -lm for libavcodec. Updated FAQ. Added timelaps option. Fixed SIGHUP handling. Added /usr/local/mysql/include and /usr/local/mysql/lib to configure script and fixed bogus error message. Fixed snapshot location (missing filepath) 2.9.7 Froze 2.9.7 Fixed some more #endif statements Use cnt->lastrate for ffmpeg framerate. Fixed ffmpeg code for RGB and GREY images. Added YUV422 support (converted to YUV420P) Added roundrobing on frequency. 2.9.6 Froze 2.9.6 Tweaked autobrightness mode. Added webcam_maxrate option. Reversed image and boundary in webcam code. Added framerate control. Added webcam_motion config option. New frame_limit code. Fixed include files for ffmpeg.h Code cleanup. Removed SIGHUP handler. Removed draw on motion images. Added speed and stepsize options to tracking code. Reversed the night compensation. Removed ffmpeg error in max mpegtime code. Fixed #endif statements in header files. Changed 'deamon' to 'daemon' 2.9.5 Froze 2.9.5 Added missing time.h define in webcam.c Added 'frequency' option for v4l tuners. Fixed max mpeg time with ffmpeg encoding Added path for mpeg_encode (problems with PATH variable) Fixed deamon mode. Changed overlay to white on black (more readable). 2.9.4 Froze 2.9.4 Added webcam option. Moved reference image update before draw() Added fclose() to put_picture() 2.9.3 Froze 2.9.3 Added GNU license to all file headers. New netcam code Fixed snapshot filenames Use correct image sizes (no more width*height*3) 2.9.2 Froze 2.9.2 Added ffmpeg code (from monitor) for realtime mpeg encoding. Moved image creation to event.c Moved put_picture functions to picture.c Added support for Y plane images (YUV420P and GREYSCALE) Set default jpeg quality from 50 to 75 PostgreSQL support Moved event handlers from motion.c to event.c Introduced new event() functions. Updated xml-rpc rmon code. 2.9.1 Froze 2.9.1 Fixed lastsnap symlink for new layout. switchfilter added post_capture option added Round robbing_skip added Added roundrobing_frames option. 2.9.0 Froze 2.9.0 Shuffled everything around and added 'struct context', this should make motion ready for some serious threading. Added xml-rpc remote monitoring. Higher quality settings for mpeg. Added missing w to getopt in conf.c Removed c++ style '//' comments, they're EVIL. Removed some old outcommented code. 2.6.3 froze 2.6.3 Fixed removal of directories after mpeg creation. Added new netcam code. 2.6.2 froze 2.6.2 Added support for YUV420P palette to video.c, this should fix problems with the Philips webcams. 2.6.1 froze 2.6.1 Changed system() calls into remove() and symlink(). oldlayout option now also affects snapshots. Fixed snapshot link name (ppm vs jpg). Added new snapshot_overwrite option. Changed directory permissions to 0755 instead of 0750. Made timestamp overlay better readable, it is now black or white depending on the back color. 2.6.0 froze 2.6.0 Updated manpage. Added iomojo Smilecam support. Added uninstall option to Makefile Added config file location to the FAQ. Made timestamp overlay inverse of original pixel instead of white. Created 'struct images' to minimize the passing of arguments between functions. Move contents of various header files around to make things more sane. Made locate box inverse off original pixel instead of white. Created alg.c and alg.h, they contain all functions that have something to do with the motion detection algoritmes. Renamed video.c functions to vid_xxxxx. Created video.h Improved stepper tracking code. Tracking code cleanup, multiple tracking interfaces are now possible. Added diff_hybrid, a combination of diff_fast and diff_standard Introduced some pointer magic in the locate functions. Added experimental diff_fast. Fixed SIGHUP handling and blocking. Added auto_bright option. 2.5.0 froze 2.5.0 Updated documentation, config files, man page. Freeing 'line' in decompress_jpeg, this fixes a memory leak when using Axis cameras. Implemented SIGHUP handler for reloading config files. Added realconfig option for starting multiple motion processes or loading alternative config files. Added 'jpg_cleanup' to the manpage. Made 'low_cpu' lower on cpu. Fixed mpeg creation for old layout. Moved mpeg movies into year/month/day dir. Remove empty directories when doing jpg_cleanup. 2.4.2 froze 2.4.2 Fixed low_cpu option to be actually low on the cpu. Fixed missing case for '-w' in conf.c. 2.4.1 froze 2.4.1 New version numbering: ala linux kernel Fixed includes for track.c 2.4 froze 2.4 Complete rewrite of the tracking stuff... it now uses a serial stepper motor interface (and actually works!) Fixed division by zero in ajdust_rate code Added 'low_cpu' option for minimizing the cpu load while not detecting any motion. Added 'oldlayout' option for using the old style filenames. Added automatic location of vloopback inputs by using /proc/video/vloopback/vloopbacks. Fixed '-l' option Uploaded motion to the sourceforge CVS Alphabetized CREDITS file. Added 'pal-nc' norm. 2.3 froze 2.3 Started faq. Includec fix for bad 'strtok' in glibc with RH 7.0 Added \t as a delimiter for config files. Made mpeg creation checks more sane. 2.2 froze 2.2 Fixed segfault bug with filebase creation. Added creation of mpegs when killed or when getting SIGUSR1 or when max_mpeg_time has been reached. 2.1 froze 2.1 Only create directories if they are going to be used. Changed SYNC ioctl argument to int in video.c Added realmotion option Default config changed: -gap is now 60 instead of 300 seconds. -locate is on by default (-l function now works reversed) -night_compensate is on by default Added mpeg framerate adjustment. Added night_compenstate for dark pictures. 2.0 froze 2.0 Integrated motion tracking. Improved lightswitch detection. Added clipcount in video.c, quickcam should work good now. 1.99 froze 1.99 Fixed memory leak in mpeg creation. Created put_picture for saving images. Moved lightswitch code out of main loop. Merged exec_externcommand, exec_onsavecommand and exec_onmpegcommand into exec_command Added onmpeg command. 1.81 froze 1.81 Fixed segfault bug in 'mysql_password' option. 1.8 froze 1.8 Added video loopback for motion pictures. Location box is now only enlarged for heads, not for feet. Merged in Axis 2100 camera support. conf.c now also looks for '~/.motion/motion.conf'. Moved filebase creation to mkfilebase Minor improvements. Loopback feed during lightswitch. 1.7 froze 1.7 Little bit of code cleanup Splitted motion.c in motion.c and video.c Changed config.in to correctly detect the mysql libraries and include files. 1.6 froze 1.6 Motion now has its own mailinglist: motion@frogtown.com Added MySQL support Added creation of symbolic link to snapshots Changed file names of snapshots 1.5 froze 1.5 Added video loopback support for realtime viewing. Fixed division by zero bug. Added install option to Makefile. Fixed bug that prevented external commands, mail and sms from being called at the first event. 1.4 froze 1.4 Added lightswitch filter Updated manpage 1.3 froze 1.3 Added minimum gap option. Changed /007 to /a, not a real change but more sane. Added mask option. Added get_ppm for reading ppm files Optimized greyscale blowup code. Added 'FORCE_ENCODE_LAST_FRAME' to mpeg params file. Experimental tracking routines for mini ssc library 1.2 froze 1.2 Fixed some exit(-1) to exit(1) Updated manpage with the new options. Added adjustable noise level. Snapshots can be made in ppm format to. Fixed signal blocking code (this time right?) 1.1 froze 1.1 Motion now has it own logos!!!! Added timestamp to picture. Added ppm output format. Rewrote locate function, small things (like fish :) don't disturb the locate option anymore. Added break for -B option 1.0 froze 1.0 Went back to alarm for automated snapshots (signals should work with bttv now) Moved usage to conf.c Finished manpage Added check for existing target dir. Moved diff calculation and image_out generation out of main loop, adding other methods is easier this way. Removed sanity check for output formats since someone might want no pictures at all but only warning messages. Make snapshots seperately from other pictures. New snapshot names: YYYYMMDDHHMMSS-snapshot Motion images are encoded to mpeg movies to. Made movie file names and counter sane. 0.99-2 froze 0.99-2 Added signal blocking during ioctls, bttv should now continue to work when receiving signals. Snapshots with no movement don't go to the movies ;) Also flush buffers when making snapshots. Fixed for segfault when there is no config file. (Second time, remember to fix the current version next time) 0.99 Last beta before 1.0 mpeg movies get timestamp in filename mpeg_encode is now called from within motion added chdir, filename generation is now much easier Added check for complete frames with read 0.8 froze 0.8 Added script for mpeg_encode Moved getopt stuff to conf.c Added conf.h and conf.c for config file parsing Added -f option for frame rate limit Fixed frame nr count (starts at 0 again instead of 1 in v0.7) 0.7 froze 0.7 Added event nr to the filename, settable with -g (gap). Added genhtml.sh (for creating a static version of show.cgi) New show.cgi Option for saving both motion and normal images. Moved image_ref update into diff for loop. -a option does not use alarm anymore, bttv card users can use it to (they just miss the SIGALRM option...) Added picture size settings for read. Moved read back in, after mmap failure motion we fall back to normal reads. Greyscale camera fix Added check for capture failure 0.6 froze 0.6 Fixed stupid typo for execute option (forgot the shift) Added -l option for locating and marking movement Added buffer flush to keep log files up to date 0.5 froze 0.5 Added contrib dir with infra red script Option to always output changes between images Output of motion images configure script 0.4 froze 0.4 Gave the help text a new look. Overall cleanup (moving defines to motion.h) Added -E option for executing external commands 0.3 froze 0.3 New homepage: http://motion.technolust.cx Fixed -t option (target path) Changed from read to mmap for bttv cards Added input and norm selection Added alarm signal handler and snapshot (-a) option (does not work with bttv....) 0.2 froze 0.2 Updated README and TODO Added SMS and mail alert messages Changed file name format to YYYYMMDDHHMMSS-fn.jpg (fn=framenumber) Added deamonize option Cleaned up includes Decaying reference picture added Renamed image1 and image2 to image_ref and image_new 0.1 Initial release