Files
motion/CHANGELOG
2016-10-14 22:30:56 -06:00

2448 lines
128 KiB
Plaintext

Summary of Changes
Version 4.0 Changes Below
* PI Cam Support
* Web Interface fixes for preview, IPV6, HTML
* Allow for resize of mask file to match image
* FFMPEG Revisions (3.0, reporting of messages, FPS, timelapse)
* Fix image corruptions across threads
* Documentation updates to guide, manual, reference images.
* Add camera_name, camera_id, camera_dir options
* Configuration fixes (Pi3, JPeg Turbo, SDL, Fedora, BSD, systemd)
* travis build testing
* remove unused files(pwc-ioctl****.h, README.Axis)
* ffmpeg_variable_bitrate to values of 0-100 and ffmpeg fixes
* Better messages for pkg-config
* Fix timelapse crash when selecting mpeg4
Version 3.4.1 Changes Below
* Added suggestion for including pkgconf as part of build requirements
* Swap sequence of user ffmpeg path and PKG_CONFIG_PATH
* Allow : in non standard locations of netcam_url path.
* Eliminated the use of coded_frame (Was a redundant assignment)
* Revise HEVC to use H264 for older ffmpeg
* Add HEVC codec option for newer ffmpeg (momo-i)
* Makefile changes to align with Debian package and fixes from previous changes
* Revise description for netcam_url in configuration file.
* Change default for ffmpeg in configure.ac (Issue 795002,82)
To compile without ffmpeg now requires --without-ffmpeg option
* Change prefix to use sysconfdir instead. Install threadX.conf files to threadx-dist.conf
* Revise configure.ac to use pkg-config for ffmpeg(Rex Feany)
* Revise PIX_FMT to be able to use older ffmpeg versions.
* Revise PIX_FMT for newer ffmpeg(Rex Feany)
* Add patch for ports on proxy netcams from GVautier (issue 144906)
* Add patch from JonGuess(issue 151452) for treatment of partial netcam images.
* Consolidate the Sqlite3 options into the code standard.
* Draft revised motion_guide.html with new options.
* Revise manual to have current options.
* Tab/Space cleanup and validation security issue addressed. (issue 071831)
* Add preview to webcontrol page(issue 172526)
* Additional container fixes(requests/bugs 201900,110304,001656,050731)
* Remove depreciated deinterlace option
* Remove avformat_network_init call. Call was not needed and was leaking memory
* Add extra container options for ffmpeg videos
* Remove extra bytes before SOI marker on netcam images.
* Updated handling of lastsnap to permit subdirectory specification.
* Handle MJPEG streams from some Logitech webcams which send AVI1 instead of JFIF.
* Fix missing header for some builds(Jim Dodgen)
* Sqlite3 revisions (Jim Dodgen)
* Add new config options to the motion-dist.conf
* Allow text format specifiers to take a width like printf would. (David Fries)
* Allow text format specifiers to take a width like printf would. (David Fries)
* Add power_line_frequency configuration item to improve image quality. (David Fries)
* Fix webhttpd race condition crash with SIGHUP, add it to running thread counter (David Fries)
* Fix the GOP size for the created videos
* Fix netcam ftp functionality
* Fix Typo on the log level
* Fixed the network ftp image option.
* Lock thread on ffmpeg/libav init and open_codec
* Revise version number generated by script to indicate Unofficial-Git-'hash'
* Revised Changelog description for version 3.4
* Merge OpenBSD fixes from sthen pull request
* Revised picture.c to allow for modulo 8 pictures and adjusted netcam modules accordingly as well.(closes 135313)
* Changes to ffmpeg.h/ffmpeg.c to allow for compiling without ffmpeg/libav or with older versions.
* Merge mymalloc, free and casting changes from Alfred Klomp
* Merge bug fix for sizeof from Alfred Klomp
* Rewrote timelapse so that it works(closes 180501)
* Merge tosiara changes for version number
* Add copyright file for features added since 3.2.12
* Cleanup ffmpeg.c and plug memory leak
* Add support for latest version of ffmpeg/libav
* Tidy up packaging changes
* Add packaging fixes (infinity0)
* Revise version.sh to put out the git commit.
* Rollback revision to allow for a formal pull request.
* Reimplement changes not to be included in pull request from tosiara commit 9ebee031
* Implement requirement of modulo 16 to avoid seg fault when opening stream
* Add debian build files from trusty(14.04)
* Revise default values for motion.conf
* Revise CHANGELOG to conform with debian format
* Revised debian packaging files
* Implement new sequence for this file (CHANGELOG) newest to oldest.
Summary of Changes that were proposed to maintainer for a version 3.4
Features
* Insert Blanking frames http://www.lavrsen.dk/twiki/bin/view/Motion/FeatureRequest2007x12x16x132522 (Dag Erlandsson)
* IPV6 for http-control and webcam stream not netcam yet http://www.lavrsen.dk/twiki/bin/view/Motion/IPv6
(Jeroen Massar & Angel Carpintero)
* Experimental approach for MJPEG streams (Motion JPEG) for network cameras
http://www.lavrsen.dk/twiki/bin/view/Motion/LinksysWVC200SupportPatch ( ... )
* Add draw a RED box around the movement as default (Joerg Weber)
* Add write/read nonblock functions in webhttpd( timeout on read/write). (Angel Carpintero)
* More changes in option names from http://www.lavrsen.dk/twiki/bin/view/Motion/IntuitiveOptionNamesDiscussion
(Angel Carpintero)
* motion_locate new parameter names : red , center , redcross instead of only on, off. (Angel Carpintero)
* External pipe to allow external video encoders
http://www.lavrsen.dk/twiki/bin/view/Motion/DarkwindHackeronMotionPatching (Bill Payne, Angel Carpintero)
* Split locate_motion into separate 'mode' and 'style' option to allow all
possible combinations. (Joerg Weber)
* Implement 'gapless' event mode to allow for recording of movies without 'holes'. (Joerg Weber)
* Limit detection rate to 3fps at framerates above 5fps, to reduce CPU load. (Joerg Weber)
* Fix warning for syslog() , Added support for some new bayer palettes introduced in kernel 2.6.27.
http://www.lavrsen.dk/twiki/bin/view/Motion/FeatureRequest2008x10x15x130110
Increased buffer in ffmpeg to allow encoding at 1600x1200 (Angel Carpintero)
* Sqlite3 support http://www.lavrsen.dk/twiki/bin/view/Motion/SQLite3Patch (Giacomo Graziosi)
* New RPM SPEC file and startup scripts compliant with Fedora 10 guidelines and above (Steven Moix)
* Increase write buffer size for writing image files and ffmpegs
http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionWriteBuffersPatch (Craig West)
* Fixed mask overlay in setup mode is now green instead of white (Joerg Weber)
* Add new config option 'ipv6_enabled' to enable/disable IPV6 (Angel Carpintero)
* Remove VIDIOC_S_JPEGCOMP support is deprecated. (Angel Carpintero)
* Use static memory allocation in ffmpeg_deinterlace() (Peter Holik)
http://www.lavrsen.dk/foswiki/bin/view/Motion/FfmpegDeinterlaceStatic
* Atom optimizacion in configure.in (Peter Holik)
http://www.lavrsen.dk/foswiki/bin/view/Motion/AtomOptimizations
* Allow to change Standard method ( PAL / NECAM / SECAM ) (Angel Carpintero)
* Add authentication methods 'Basic Authentication' and 'Digest Authentication'
to the "Live Stream Server". (Michael Finsterbusch)
http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionStreamAuthPatch
* Implemented new logging system
http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionLog (Angel Carpintero)
* Added a macro MOTION_LOG , no need to add __FUNCTION__ anymore. (Angel Carpintero)
* Added EXIF feature for jpeg images , http://www.lavrsen.dk/foswiki/bin/view/Motion/ExifTaggingPatch (Wim Lewis)
* Improve detection of av_register_protocol() for ffmpeg (Angel Carpintero).
* Added support for libjpeg-turbo
http://www.lavrsen.dk/foswiki/bin/view/Motion/FeatureRequest2010x04x14x082244 (Angel Carpintero)
* Added new log type COR , to filter messages from CORE. (Angel Carpintero)
* Added a new starting option -m to disable motion detection. (Angel Carpintero)
* Allow image dimension not 4:3 changing a check of modulo 16 by modulo 8. (Jeroen Massar)
* Added codec Ogg/Theora as new output format for regular movies.
http://www.lavrsen.dk/foswiki/bin/view/Motion/OggTimelapse (Michael Luich)
* Added support for ffmpeg 0.11 new API.
* Added RSTP support for netcam ( merge https://github.com/hyperbolic2346/motion )
* Merge tosiara/rtsp branch (commit 46cfcf31d, 2014/05/21) (Mr-Dave)
* 3fps bugfix from SVN rev559 (tosiara, Joerg Weber)
* Buffer overflow vulnerabilities (hyperbolic2346)
* Redundand -- boundary prefix (torao)
* Removed compiler warnings: (Mr-Dave)
logger.c,jpegutils.c,netcam_ftp.c,track.c,
picture.c,webhttpd.c,stream.c,ffmpeg.c
* Bug fix as part of warnings in webhttpd.c fixed(Mr-Dave)
* Removed compiler warning regarding ffmpeg being newer than 0.4 version(Mr-Dave)
* New configure script and identification of ffmpeg version and additional libs. (Mr-Dave)
* Resolve additional compiler warnings in ffmpeg (Mr-Dave)
* Revised INSTALL with samples(Mr-Dave)
* Revisions for RTSP and code standard.(Mr-Dave)
* Plugged most memory leaks in RTSP. (Mr-Dave)
* Undo changes caused by code editor and other unnecessary changes (Mr-Dave)
* Moved call to netcam_shutdown_rtsp into netcam_cleanup where it belongs. (Mr-Dave)
* Regession fix for memory leaks and reconnection (Mr-Dave)
* Eliminated requirement to manually build FFMPEG for RTSP support. (Mr-Dave)
* Revised RTSP to support version 53 of libavformat (Mr-Dave)
* Revised FFMPEG.c to eliminate warnings and functions no longer supported by Libav/FFMPEG(Mr-Dave)
* Revised INSTALL to have sample PI configure option.(Mr-Dave)
* Revised configure.ac to generate compiler flag AVFMT_V53.(Mr-Dave)
* Revised INSTALL to indicate standard APT packages for RTSP (Mr-Dave)
* Revised configure.ac to recognize libavformat version 54 RTSP (Mr-Dave)
* Clean up the messaging for RTSP.
* Additional validations for RTSP connection and corrected free sequences
* Removed seg fault on failure to open first image, comments, isolation of RTSP
* Add AC_GNU_SOURCE macro to check for GNU C Library, fix compile when no FFMpeg.
* Implement inits of AV functions from bcl fork
* Add gray image upon disconnection
* Added tcp/udp transport config option from hyperbolic2346(commit 423ef7bb3)
* Revised comments to be in line with application standard.
* Restructure rtsp to handle rescaling and non YUV420 format, rotate, MJPEG input format
Bugfixes
* Avoid segfault detecting strerror_r() version GNU or SUSv3. (Angel Carpintero)
* Fix Segfault on reload or quit for vloopback (maybe other v4l1 devices too) (Peter Holik)
http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2009x06x17x090603
* Allow compile with NetBSD and make LP64 compliant video_freebsd.c (Andreas Wrede)
* Avoid compile vloopback in BSD (Angel Carpintero)
* V4L2 fourcc GRBG not supported, updated default value for v4l2_palette 17. (Isaac Richter)
http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2009x10x29x222753
* Exit when image dimension are not modulo 16. (Angel Carpintero)
* Avoid logs flooding using some options of netcam_keepalive and try to discard images with
weird header Content-Lenght 0. (Angel Carpintero)
* Only use post capture when we setup to record videos with external pipe or ffmpeg. (Angel Carpintero)
* Fix introduced bug for Content-Lenght = 0 in svn r476. (Angel Carpintero)
* Avoid segfault when motion cannot create a logfile. (Angel Carpintero)
* No mysql_close
http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2010x11x22x033859
* No PQfinish() (Angel Carpintero)
* Input for webcams has to be set to -1
http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2011x01x21x162309
* Added a conditional check for avformat_alloc_context , av_avformat_alloc_context to fix
http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2011x10x05x071936 (Angel Carpintero)
* Fix issue with JPEG , adding dinfo.do_fancy_upsampling = FALSE;
http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2011x08x20x194659
* Made micro-lightswitch optional (see lightwitch option in motion.conf)
* Fixed help text for options event_gap and area_detect
* Fixed motion.conf-dist , adding text according with config options.
* Fixed a bug in post_capture. It was missed under certain conditions.
* Fixed configure for SDL.
* Replace malloc() by calloc(). (Jeroen Massar)
* Free file descriptor buffers on exit.
* Avoid segfault when text_left or text_right uses non supported chars.
* Fixed leak in vloopback.
* Fixed a build of motion for some kernel version with not good videodev.h
* Netcam Modulo 8
3.2.12 Summary of Changes
Bugfixes
* Fixed name space clash with libjpeg8 (Kenneth Lavrsen)
http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2010x01x22x084753
* Fixed FFV1 codec encode with ffmpeg (Angel Carpintero)
http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2010x04x13x032553
* Fix conv_uyvyto420p segfault ( William M Brack )
* Enhancing the palette selection ( William M Brack )
* Fix zombies on OpenBSD. (Mark Feenstra)
http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2010x04x28x054348
3.2.11.1 Summary of Changes
Bugfixes
* Fix Segfault on reload or quit for vloopback (maybe other v4l1 devices too) (Peter Holik)
http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2009x06x17x090603
* Fix fd leaks in external pipe. (Angel Carpintero)
* Avoid possible stack smashing in v4l_open_vidpipe(). (Angel Carpintero)
* Allow compile with OpenSuse ffmpeg package (15594svn-20081010)
http://www.lavrsen.dk/twiki/bin/view/Motion/SupportQuestion2008x10x25x070400 (Angel Carpintero)
* Fix warning for syslog(). (Angel Carpintero)
* Better detection of ffmpeg
http://www.lavrsen.dk/foswiki/pub/Motion/ReleaseNoteMotion3x2x11/ffmpeg-detection.diff.gz
(Angel Carpintero)
* Fix warning for __USE_GNU redefined (Peter Holik)
http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2009x06x17x122137 (Peter Holik)
* Allow compile with NetBSD and make LP64 compliant video_freebsd.c (Andreas Wrede)
* Fix segfault for new libjpeg v7. (Angel Carpintero)
3.2.11 Summary of Changes
Features
* Added support for ffmpeg-2008-04-09 port version of FreeBSD.
* Remove mjpegtools dependencies and integrate only needed functions from library. (Angel Carpintero)
* Allow change/setup framerate in FreeBSD using pwcbsd. (Angel Carpintero)
* Get rid of ffmpeg-config in configure.in for debian. (Angel Carpintero)
Bugfixes
* Fix Problem Encoding 1280x1024 resolution videos
http://www.lavrsen.dk/twiki/bin/view/Motion/SupportQuestion2008x06x11x183727 (Angel Carpintero)
* Add a new parameter netcam_tolerant_check, to be less strict with some buggy network cameras firmwares.
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2008x06x19x123218 (Angel Carpintero)
* Fix round robin in BSD switching to METEOR_CAP_SINGLE. (Angel Carpintero)
* Fix rotate for v4l2 devices using JPEG / MJPEG palettes. (Angel Carpintero)
* Fix v4l2_palette http://www.lavrsen.dk/twiki/bin/view/Motion/UvcvideoMjpegPatch (Gerrit Hannaert)
* Fix warning for x86_64 in conf.c using pointers LP64 compliant ( Angel Carpintero ).
* Fix Segfault on reload or quit for vloopback (maybe other v4l1 devices too) ( Peter Holik )
http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2009x06x17x090603
3.2.10.1 Summary of Changes
Bugfixes
* Fix a security issue in web control interface http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=484572
(Angel Carpintero)
3.2.10 Summary of Changes
Features
* Added the pre_capture buffer redesign to throttle load and enhance pre_capture feature.
http://www.lavrsen.dk/twiki/bin/view/Motion/PreCaptureRedesign (Dag Erlandsson).
* Added preview center feature.
http://www.lavrsen.dk/twiki/bin/view/Motion/PreviewCenter (Dag Erlandsson).
* Removed low_cpu feature, as it is not really compatible with pre_capture and a lot of other
features rely on the pre_capture buffer behind the scenes. (Joerg Weber)
* Removed night_compensate feature. This functionality is covered by noise_tune. (Joerg Weber)
* Implemented a new reference frame algorithm to improve object recognition and location. (Joerg Weber)
* Improved smartmask feature: real moving objects don't trigger the mask anymore. (Joerg Weber)
* Added area_detect feature. New config options: area_detect, on_area_detected. (Joerg Weber)
* Added help in http control
http://www.lavrsen.dk/twiki/bin/view/Motion/FeatureRequest2007x11x19x181541 (Angel Carpintero)
* Added Choose V4L2 palette http://www.lavrsen.dk/twiki/bin/view/Motion/FeatureRequest2007x11x19x032318
(Angel Carpintero)
* Improved http control ( 'back' link, select box, show current values when are going to be changed ).
(Angel Carpintero)
* Improved thread handling, single threads can be stopped/restarted (Dag Erlandsson)
* Watchdog, restart hang threads (Dag Erlandsson)
* Added ON_CAMERA_LOST event (Dag Erlandsson)
* Motion start if a camera isn't there at start, retries to connect if lost (Dag Erlandsson)
* Netcam Keepalive and HTTP/1.1 http://www.lavrsen.dk/twiki/bin/view/Motion/FeatureRequest2007x01x22x231542
(Simon Walls)
* Added mov , Quicktime file format (Andrew Hamilton).
* Added to configure.in --with-pwcbsd to allow compile motion in freebsd with webcam support instead of bktr
(Angel Carpintero)
Bugfixes
* Fixed a problem with locate and fixed mask overlay (Dag Erlandsson).
* Preview pictures get the timestamp of moment they were captured (Dag Erlandsson).
* Fixed http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2007x10x23x093651 (Angel Carpintero)
* Fix process_id_file when is passed from command line (Angel Carpintero)
* Fix http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2007x10x27x150419 (Angel Carpintero)
* Fix http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2007x11x25x102808 (Angel Carpintero)
* Avoid random errors , initialising some structs for V4L1
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2007x11x26x010755 (Jason Sharpee & Angel Carpintero)
* Fix motion segfault because ffmpeg API change
http://www.lavrsen.dk/twiki/bin/view/Motion/SupportQuestion2007x12x29x175530 (Angel Carpintero)
* Little fix in ffmpeg.c comparing version of LIBAVFORMAT_BUILD, since ffmpeg svn -r4486 LIBAVFORMAT_BUILD and
LIBAVCODEC_BUILD uses LIBAVFORMAT_VERSION_INT ((49<<16)+(0<<8)+0) and LIBAVCODEC_VERSION_INT ((49<<16)+(0<<8)+0)
(Angel Carpintero)
* Fix choose v4l2 palette , http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2008x01x21x043812 (Onakra)
* Get current directory to allow write motion.conf properly
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2008x02x25x013419 (John Bray)
* Fix broken PostgreSQL detection for custom location,
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2008x02x25x025134 ( Angel Carpintero )
* Fixed stepper when is used track_auto on ( Angel Carpintero ).
* Better debug in netcam for "Error reading image header"
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2008x02x27x092849 (Simon Walls)
3.2.9 Formal Release - Summary of Changes
Features
* Removed debian ( to avoid conflicts with debian package) and FreeBSD
( no needed to deploy BSD port here ) directories. ( Angel Carpintero )
* Added --chuid motion to debian init.d script. ( Angel Carpintero )
* Added Flash video format (FLV) to ffmpeg.
http://www.lavrsen.dk/twiki/bin/view/Motion/FeatureRequest2007x07x19x131921 (Timo Taskinen).
* Added FFV1 ( FF video codec 1 ) codec , Lossless encoding
http://www.lavrsen.dk/twiki/bin/view/Motion/LosslessEncoding (Andrew Hamilton).
Bugfixes
* Fix segfault in webhttpd.c on motion restart (Angel Carpintero)
* Fix segfault in debian http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2007x09x24x175945
(Angel Carpintero)
* Fix http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=391055 , change
motion man page , -d requires level. (Angel Carpintero)
* Handle mjpeg decoding and fix colour issue adding mjpegtools dependency
http://www.lavrsen.dk/twiki/bin/view/Motion/MjpegColorIssue
http://www.lavrsen.dk/twiki/bin/view/Motion/MjpegToYUV420pPatch
(Marius Rieder, Angel Carpintero).
* Add debug level > 5 to get logs from v4l2_select_input, v4l2_set_control and v4l2_set_input.
(Angel Carpintero)
3.2.8 Formal Release - Summary of Changes
Features
* Added connection status for all devices available from http web interface.
(Angel Carpintero).
http://www.lavrsen.dk/twiki/bin/view/Motion/FeatureRequest2006x11x09x050638
* Improved deb packaging, install the init.d script. (Angel Carpintero).
* Added swf codec to video creation (Bowser Pete, Andy Brown).
http://www.lavrsen.dk/twiki/bin/view/Motion/FFmpegSWFcreation
* Added V4L2 support (Krzysztof Blaszkowski, Angel Carpintero).
http://www.lavrsen.dk/twiki/bin/view/Motion/VideoForLinuxTwoDiscussion,
* Added support for V4L2_PIX_FMT_SBGGR8 ( bayer ), V4L2_PIX_FMT_SN9C10X,
V4L2_PIX_FMT_MJPEG and V4L2_PIX_FMT_UYVY (Angel Carpintero).
* ucvideo track pan/tilt support ( Michal Licko ,Dirk Wesenberg and
Angel Carpintero )
http://www.lavrsen.dk/twiki/bin/view/Motion/LinuxUvcTrackingPatch
* Added a FreeBSD directory to allow people from BSD to get a daily version
and create a port. (Angel Carpintero).
* Removed mysql dependency from debian package and added a note to setup
motion to run as daemon to create the pid file. (Angel Carpintero).
* Changed the way configure search mysql headers and libs, added 3 parameters
to configure --without-mysql to disable support, --with-mysql-include
directory of mysql.h and --with-mysql-lib directory of libmysqlclient.a or
libmysqlclient.so (Angel Carpintero).
* Added MYSQL_OPT_RECONNECT flag for mysql connection (MYSQL 5.x only) and
changed default value for mysql_host (Angel Carpintero).
Bugfixes
* Removed a duplicate call to jpeg_destroy_decompress already is called from
netcam_image_conv (Krzysztof Blaszkowski).
* Fix http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x10x10x081903,
reconnect to mysql if connection dropped (Angel Carpintero).
* Fix memory management in ffmpeg.c (Rafis Khayrullin).
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x12x19x062432
* Fix of ffmpeg_avcodec_log code (Alain Guidez).
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2007x03x25x074612
* Fix a segfault adding correct size to be used for bayer2rgb24()
(Damian Wrobel)
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2007x03x30x175913
* Fix an error in FreeBSD, the use of capture even fields depends on height
value. (Angel Carpintero)
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x12x03x073610
* Fixed autodetection for VIA cpu, no needed to use --without-optimizecpu.
Added many others (Angel Carpintero)
* Fix, don't remove pid file when motion reload config file( HUP signal )
(Angel Carpintero).
* Fix compilation broken by uvc track type. (Angel Carpintero).
* Fixed the thread number assignment which could goof up if netcams started
very quickly before all thread were created at startup. (Kenneth Lavrsen)
* Fix RoundRobin v4l2 buffers in driver when switching input,
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2007x07x07x182605
(Dag Erlandsson and Angel Carpintero).
* Check EIO for VIDIOC_DQBUF to workaround saa7134 problem.
(Dag Erlandsson and Angel Carpintero).
* Change bayer2rgb24() to fix a problem with sn9c102 driver
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2007x06x05x012249
(Jared D and Angel Carpintero).
3.2.7 Formal Release - Summary of Changes
Features
* Removed the minimum_gap feature which was utterly useless (Kenneth Lavrsen)
* Added new feature: minimum_frame_time which enables capturing at a lower rate
than 2 frames per second (Kenneth Lavrsen and Angel Carpintero)
* Made the creation of reference frame and the decay mechanism depending
on how much motion was detected relative to threshold setting (Joerg Weber)
http://www.lavrsen.dk/twiki/bin/view/Motion/ReferenceFramePatch
* Added process_id_file feature (Angel Carpintero)
http://www.lavrsen.dk/twiki/bin/view/Motion/FeatureRequest2006x06x06x123003
Bugfixes
* Fixed problem related to fetching images from Network camera and error
handling when it fails. Motion would end in infinite loops (Bill Brack).
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x03x10x000151
* Improved reporting of thread numbers during startup in setup mode.
(Peter Smith and Kenneth Lavrsen)
http://www.lavrsen.dk/twiki/bin/view/Motion/SlightlyImprovedThreadCreationLogging
* Ffmpeg code mutex locking fix (Peter Smith)
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x04x07x164654
* Ffmpeg avicodec logging improved (Peter Smith and Kenneth Lavrsen)
http://www.lavrsen.dk/twiki/bin/view/Motion/FfmpegAvicodecLogging
* Improved upon a few ambiguous log messages which may be emitted by the Event
handling code with regards to Ffmpeg (Peter Smith)
http://www.lavrsen.dk/twiki/bin/view/Motion/LoggingEventFix
* Implemented a fix for the rare problem where some experienced that the
move file names would only consist of the extension .mpg or .avi with no
name in front. The root cause was the use of sprintf for appending to
strings. (Mike Kenney and Kenneth Lavrsen)
http://www.lavrsen.dk/twiki/bin/view/Motion/SupportQuestion2005x09x05x133031
http://www.lavrsen.dk/twiki/bin/view/Motion/SupportQuestion2006x06x19x174238
* Altered the risky use of sprintf to snprintf in all places related to
use with config strings that can become very long (Kenneth Lavrsen)
* Removed annoying debug messages (v4l_set_input really needed ?) in the FreeBSD
version (Angel Carpintero)
* Fixed the check for ffmpeg version. In rev 5503 of ffmpeg the FFMPEG_VERSION_INT
was removed from libavcodec/avcodec.h. Instead we now use the equivalent
LIBAVFORMAT_BUILD >= 4616 which is the 0.4.9pre1 version of ffmpeg.
(Kenneth Lavrsen)
* Fixed segfault when netcam_url has no service ( http , ftp ) (Angel Carpintero)
* Fixed interlace issue with METEOR_GEO_EVEN_ONLY in FreeBSD (Angel Carpintero)
* Fixed possible syntax error in configure related to MySQL (Angel Carpintero)
* Avoid open file descriptor when connecting to network cameras fails (Peter Holik)
http://www.lavrsen.dk/twiki/bin/view/Motion/AvoidOpenfiledescriptors
* Fixed http pause feature so that pausing thread 0 now pauses all threads.
(GunnarSkjold)
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x07x10x111239
* Put a new global mutex around avcodec_close to avoid problems with not thread
safe functions in ffmpeg (Angel Carpintero)
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x04x07x164654
* On FreeBSD configure defines a redundant freebsd for motion. Fixed by replacing
-D__freebsd_ by BSD macro included in sys/param.h for BSD platforms.
(JukkaUkkonen and Angel Carpintero)
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x07x08x070417
* For BSD platforms changed to using native pthreads as default and adding
linuxthreads as a optional parameter from configure. (Angel Carpintero)
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x07x08x071646
* Smartmask overlay feature did not set intensity correctly. (Kenneth Lavrsen)
3.2.6 Formal Bugfix Release.
* Fixed bug where variables time_last_frame and time_current_frame had been
extended to also be used for snapshot feature but declaration was hidden
between #ifdef HAVE_FFMPEG. (Kenneth Lavrsen)
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x03x09x012244
* Fixed a bug that only allowed remote control of max 9 cameras. Now
Motion can present up to 99 cameras in its http remote control interface
(Angel Carpintero based on idea by Chuck Sheehan)
http://www.lavrsen.dk/twiki/bin/view/Motion/WebHttpManyThreads
* text_changes now shows a '-' when motion detection is paused instead of
just showing 0 (Kenneth Lavrsen)
http://www.lavrsen.dk/twiki/bin/view/Motion/FeatureRequest2006x03x16x095713
3.2.5.1 Doc and man page correction
* ffmpeg_filename has changed name to movie_filename to prepare for
alternative movie encoding to the current ffmpeg based implementation
and ffmpeg_filename will then be a bad name (Kenneth Lavrsen)
* Man page corrected.
3.2.5 Formal Release. Summary of changes
* Fixed misc problems in FreeBSD. (Angel Carpintero)
* Update README.FreeBSD
* Fix problems with tuner_device and frequency, now by default is not
defined to allow use any input without problem.
* Replace strndup() by memcpy() in netcam.c
* Merged configure.in.freebsd with configure.in (configure.in.freebsd
deleted)
* Remove a warning when used --without-bktr
* Remove cpu optimization (is broken)
* Fixed memory leak in ffmpeg code. (Andrew Hamilton)
* Fixed http control of pan and tilt (Angel Carpintero)
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x12x22x122649
* Fixed netcamera bug related to separating frames in an mjpeg stream.
(Peter Holik). From mailing list 23 Dec 2005.
* Fix related to connecting to the netcam (William Black)
From mailing list 23 Dec 2005.
* Changed CHANGELOG to same bullet format as used by TWiki to make it easier
to write release notes (Kenneth Lavrsen)
* Changed CREDITS to same bullet format as CHANGELOG (Kenneth Lavrsen)
* Fixed sql_mask not initialised correctly (Angel Carpintero)
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x01x09x175603
* Fixed the management of strings from http remote control , setting to NULL
when they are set to "blank" and fixes a problem with despeckle , that didn't
allow to remove labeling action from http remote control. (Angel Carpintero)
http://www.lavrsen.dk/twiki/bin/view/Motion/FixStringsAndDisableLabeling
* Fix many typos in comments ( i ran aspell against the code ). Also there's a
fix to free cnt->eventtime_tm when motion exits. (Angel Carpintero)
http://www.lavrsen.dk/twiki/bin/view/Motion/FixTypoInComments
* Fix the problem that happens in FreeBSD and Debian Sarge because
version of ffmpeg is LIBAVFORMAT_BUILD < 4629. ( Pete Shipley and Angel Carpintero)
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x01x12x120335
* Updated motion.spec. Changing D_FORTIFY_SOURCE=2 by D_FORTIFY_SOURCE=1 to fix
problem related to building with ffmpeg. (Angel Carpintero)
* Implemented fix for missed snapshots with slow network cameras (Kenneth Lavrsen)
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x02x07x162149
* Added some constants in video.c function v4l_picture_controls() which can help
people hack an optimal set of values for controlling auto brightness for their
particular camera. For now I am do not want to add all of these to the already
too large number of motion config options. Maybe based on feedback we can
permanently change the constants and add an additional auto brightness option.
Or maybe a combined option that sets more constant based on an algorithm.
(Kenneth Lavrsen)
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2006x02x07x212816
* Fixed a syntax error in picture.c get_pgm() which caused the program to segfault
when a mask file size did not match the picture size. Now the program
correctly gives an error message and continues without the mask. (Kenneth
Lavrsen).
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x10x08x150720
* Added Tilt support to stepper track. ( Angel Carpintero ).
* CPU VIA Ezra C3 autodetection support added. (James Van Vleet)
http://www.lavrsen.dk/twiki/bin/view/Motion/VIAEzraC3Patch
* Fixed mysql configure auto-detection for x64 systems. ( Angel Carpintero)
http://www.lavrsen.dk/twiki/bin/view/Motion/SupportQuestion2006x03x02x152208
* Added the ffmpeg_deinterlace feature (Andrew Hamilton)
http://www.lavrsen.dk/twiki/bin/view/Motion/MotionffmpegDeinterlace
3.2.4 Formal Release. Summary of changes
Features
* New text option text_event and new conversion specifier %C. Option
text_event defines the value %C which then can be used in filenames and
text_right/text_left. The text_event/%C uses the time stamp for the first
image detected in a new event. Default value is %Y%m%d%H%M%S. %C is an empty
string when no event is in progress (gap period expired). Pre_captured
and minimum_motion_frames images are time stamped before the event happens
so %C in text_left/right does not have any effect on those images.
* Added new option track_auto which is a boolean option (on or off)
with default value off. This enables people to start Motion with auto
tracking enabled. Changing the config value for track_auto and
enabling the auto tracking via the httpd track/auto has the exact same
effect.
* Added 3 new tracking options: track_step_angle_x, track_step_angle_y,
and track_move_wait. The options track_step_angle control the movement
during auto tracking and are currently only active for the pwc type
tracking. The idea is that they can later also be used for the generic
tracking as it evolves. The track_move_wait controls the number of frames
after the camera has moved (auto or manual) during which motion detection
is disabled. This option should be set so low that the motion detection
is re-enabled the minute the camera is standing still again.
* Added new sql_query option. This in combination with convertion
specifiers incl the two new %f and %n enables the user to use any database
structure they please. Adding fields is now a simple matter of modifying
the sql query.
* Added the %t conversion specifier which is the thread (camera) number.
* Added two new conversion specifiers: %f which is filename (full path)
and %n which is filetype (sqltype) valid in on_picture_save, on_movie_start,
on_movie_end and sql_query. This also means that filename is no longer
appended at the end of the 3 on_xxxx commands.
* http control had a number of small improvements.
* Added the debian sub directory so that people can build the deb package.
* Enhanced netcam compatibility with Lumenera and Pixord Cameras.
* Netcam feature now supports both http and ftp.
* Added an infinite retry scheme for netcams that are not available
when Motion is started. Instead of just dying, Motion now retries every
10 seconds until the netcam is available. Until the netcam is available
Motion enters a mode showing a grey image with a text information which
is fed to webcam, timelapse, snapshots, vloopback etc. If the actual
height and width of the netcam does not match the dimensions in the
config file Motion will perform a quick restart.
* Added a better error handling of a netcam that changes dimensions
while Motion is running. Instead of just writing error messages Motion
restarts quickly to recover from this change.
* FreeBSD Code improvements including set/get hue, saturation, contrast
and brightness, support large resolutions.
* RPM specs file changed as suggested for use in the Livna repository.
* Changed the sequence of events connected with creating files. Data is
now written to the databases (if used) before an external comments is
on (on_xxxx options) allowing the external program to use the new data
in the database.
* Motion is now also works on MaxOSX with similar feature set as FreeBSD.
Bugfixes
* netcam code now waits for the next frame to arrive for a limited period
in order to avoid too many duplicate images.
* Motion loop resets its frame timer when the image received is from a netcam.
This lowers the actual framerate of Motion to the rate the netcam can actually
keep up with.
* Removed all warnings when running ./configure --with-developer-flags.
* Fixed error message with unknown config option.
* Fixed small mistake in allocating memory for cnt->imgs.common_buffer.
* Implemented a speed-up patch of the draw text feature.
* Introduced check for device image size being a multiple of 16.
* Switchfilter feature repaired.
* Fixed small bug where motion was detected when using a tracking camera and
the camera moved to center position when gap period expires.
* Implemented fix to configure so that LDFLAGS from the environment are used
when making the Makefile.
* Changed configure so that --with-jpeg-mmx is default off as a reaction to
known problems seen when using the jpeg-mmx library.
* The lightswitch and switchfilter features have changed to ensure that both
algorithms work on raw unfiltered motion pixels which they both were designed
for.
* Fixed bug related to init of mutex in netcam code.
* Fixed small bug where the displayed time in the grey error image
shown during start with unavailable netcam could show a garbage value
under rare circumstances.
* Restored the function sigchild_handler so it contains the same code
as before motion-3.2.1_snap9. They is done in an attempt to fix an old
problem with zombie child processes that has shown up again.
* Added a work-around so people in FreeBSD that uses a capture card
where input 1 is not tuner can use motion if frequency is set -1 in
motion.conf or thread#.conf
3.2.4 Detailed changes for 3.2.4
snap1
* Removed all warnings originating from the motion sources when running
./configure --with-developer-flags.
The modifications were done by the following people: Peter Holik, Bill Brack,
Angel Carpintero and Kenneth Lavrsen.
We now encourage developers to ensure that new code is checked with
--with-developer-flags and code made so that no new warnings shows originating
from the motion sources.
http://www.lavrsen.dk/twiki/bin/view/Motion/ReduceWarningsPatch
* Fixed error message with unknown config option (Bill Brack)
* Fixed small mistake in allocating memory for cnt->imgs.common_buffer
(Angel Carpintero).
* Implemented a speed-up patch of the draw text feature (Peter Holik).
http://www.lavrsen.dk/twiki/bin/view/Motion/DrawTextspeedup
* http control updated: (null) messages replaced by "disabled", last parameter
in conf/list are displayed correctly and only in Main thread. When motion runs
with only one thread, it displays "No threads". (Angel Carpintero)
* Enhanced compatibility with Lumenera (Bill Brack)
* http control: selectbox instead of a textfield for changing boolean configs
(Peter Holik and Angel Carpintero).
http://www.lavrsen.dk/twiki/bin/view/Motion/WebhttpEnhancements.
* Introduced check for device image size being a multiple of 16 (Peter Holik).
http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamModulo16Patch
* Added the debian sub directory so that people can build the deb package
(Angel Carpintero).
* Sync configure.in.freebsd (adding support for jpeg-mmx, developer-flags and
some cosmetic changes ) (Angel Carpintero)
* Implemented --with-developer-flags fixes in FreeBSD code (Angel Carpintero).
* Implemented Threadnr in TLS (thread-local storage)patch. It puts the thread
number into TLS and modifies motion_log() so that we do not have to drag the
cnt struct around just to be able to print the thread number in the log and
on the console. (Per Jönsson with additional removal of unused cnt by
Kenneth Lavrsen).
http://www.lavrsen.dk/twiki/bin/view/Motion/ThreadNrTlsPatch
* Moved the motion_loop initialization into a new function motion_init
(Bill Brack).
* Removed old unused code related to read mode (not mmap) from V4L devices
(Kenneth Lavrsen).
* In v4l_start change map from unsigned char * to void * to be ANSI C compliant
with mmap (Angel Carpintero)
* http control: Changed disabled to (not defined) when displaying option list
(Angel Carpintero)
* netcam code now waits for the next frame to arrive for a limited period
in order to avoid too many duplicate images (Bill Brack).
* Motion loop resets its frame timer when the image received is from a netcam.
This lowers the actual framerate of Motion to the rate the netcam can actually
keep up with. (Kenneth Lavrsen)
* Last --with-developer-flags warnings eliminated simply by swapping the
order of the #include statements in the sources (Bill Brack and Kenneth Lavrsen).
* FreeBSD Code improvements by Angel Carpintero
* Implemented set/get hue , saturation , contrast and brightness.
* Better support to capture with big resolution ( 640x480 , 768x576 ).
* Update Readme adding information about "how to configure a capture
card and settings" , update packages dependencies .
* Remove support for libjpeg-mmx , motion segfault ( future fix ).
* Cosmetics changes in configure.in.freebsd ( replace --without-v4l by
without-bktr ).
* Cleanup code and fix warnings.
snap2
* Simplified rotation code based on the fact that images must have dimensions
that are a multiple of 16 (Per Jönsson)
http://www.lavrsen.dk/twiki/bin/view/Motion/RotateSimplificationPatch
* Switchfilter feature repaired. It was called inside motion_detected()
after overlays on cnt->img.out were added which meant that the feature also
detected all the overlays, smartmasks, fixed mask and text. It is now moved
to the motion_loop right after the lightswitch feature and before any
overlays are added (Kenneth Lavrsen).
* Fixed small bug where motion was detected when using a tracking camera and
the camera moved to center position when gap period expires. The fix includes
gathering the updating of reference frame in one place only in the motion_loop
(Kenneth Lavrsen).
* Implemented the new text option text_event and new conversion specifier %C.
Option text_event defines the value %C which then can be used in filenames
and text_right/text_left. The text_event/%C uses the time stamp for the first
image detected in a new event. Default value is %Y%m%d%H%M%S. %C is an empty
string when no event is in progress (gap period expired). Pre_captured
and minimum_motion_frames images are time stamped before the event happens
so %C in text_left/right does not have any effect on those images (Kenneth
Lavrsen).
http://www.lavrsen.dk/twiki/bin/view/Motion/EventConvertionSpecifierDiscussion
* Renamed some variables related to time to be better descriptive of function
and type (Kenneth Lavrsen).
* Added new option 'sql_user_text'. This can be defined with the same
conversion specifiers as text_xxx, on_xxxx and filenames. The SQL field
text_left has been removed and replaced by a field user_text which is
used for storing the interpreted value of sql_user_text (Kenneth Lavrsen)
* Added new SQL field event_time_stamp of the type TIMESTAMP
(Kenneth Lavrsen).
snap3
* Enhancement to Netcam Code for Connection to Pixord Cameras (Bill Brack).
http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamFixPixordBug
* Implemented fix to configure so that LDFLAGS from the environment are used
when making the Makefile (Angel Carpintero).
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x09x15x185558
* Changed configure so that --with-jpeg-mmx is default off as a reaction to
known problems seen when using the jpeg-mmx library (Angel Carpintero).
* RPM specs file changed as suggested for use in the Livna repository.
(Kenneth Lavrsen)
* The lightswitch and switchfilter features have been moved up before the
despeckle features are run. This should ensure that both algorithms work on
raw unfiltered motion pixels which they both were designed for. (Kenneth
Lavrsen)
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x10x05x212444
snap4
* Integrated NetcamWithFtp patch. To use ftp simply use a URL starting with
ftp:// (Bill Brack). Code was additionally cleaned up by Kenneth Lavrsen.
http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamWithFTP
* Changed error handling in vid_start so that failing to open the video
device no longer causes an exit but a return with error code -1. (Kenneth
Lavrsen)
* Added the %t conversion specifier to show the thread number. (Angel
Carpintero).
http://www.lavrsen.dk/twiki/bin/view/Motion/ThreadConversionSpecifierPatch
* Added help texts in conf.c and motion-dist.conf describing the %t
specifier. Added a good example of use in motion-dist.conf. (Kenneth
Lavrsen).
* Fixed bug related to init of mutex in netcam code (Angel Carpintero).
* Improved fix for netcam mutex init (Bill Brack).
http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamFixPthreadInit
* Netcam_ftp code fixes (Angel Carpintero and Asbjørn Pettersen)
http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamWithFtpEnhancements
* Enhanced ffmpeg detection (Angel Carpintero).
http://www.lavrsen.dk/twiki/bin/view/Motion/BetterFFmpegDetection
* Added two new conversion specifiers: %f which is filename (full path)
and %n which is filetype (sqltype) valid in on_picture_save, on_movie_start,
on_movie_end and sql_query. This also means that filename is no longer
appended at the end of the 3 on_xxxx commands. (Kenneth Lavrsen)
* Removed the sql_user_text option that was added in snap 2 (Kenneth
Lavrsen)
* Added new sql_query option. This in combination with convertion
specifiers incl the two new %f and %n enables the user to use any database
structure they please. Added fields is now a simple matter of modifying
the sql query. The default is the same as the default in snap1.
(Kenneth Lavrsen).
* Changed the sequence of events connected with creating files. Data is
now written to the databases (if used) before an external comments is
on (on_xxxx options) allowing the external program to use the new data
in the database (Kenneth Lavrsen).
* Added an infinite retry scheme for netcams that are not available
when Motion is started. Instead of just dying, Motion now retries every
10 seconds until the netcam is available. Until the netcam is available
Motion enters the normal flow with the same grey image with a text
information being fed to webcam, timelapse, snapshots, vloopback etc.
Motion uses the width and height from the config file for this. It is
a good idea to setup width and height so it is the same as the netcam.
If the dimensions are the same Motion will switch over to the netcam
seemlessly. If the dimensions are different Motion will perform a quick
restart so all the many internal buffers can be initialized properly
(Kenneth Lavrsen).
* Added a better error handling of a netcam that changes dimensions
while Motion is running. Instead of just writing error messages Motion
restarts quickly to recover from this change. Note the now more well
defined error coding for vid_next for both netcams and V4L cams.
(Kenneth Lavrsen)
snap5
* Fixed small bug where the displayed time in the grey error image
shown during start with unavailable netcam could show a garbage value
under rare circumstances. (Kenneth Lavrsen).
* Restored the function sigchild_handler so it contains the same code
as before motion-3.2.1_snap9. They is done in an attempt to fix an old
problem with zombie child processes that has shown up again.
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x11x13x115016
(Kenneth Lavrsen).
* Move the declaration of sig_handler_action and sigchild_action from
the setup_signals function where they are local and will be destroyed
and out in main just before setup_signals is called. Changed the
function setup_signals so the two structs are passed as pointers.
(Kenneth Lavrsen)
Release
* Added new option track_auto which is a boolean option (on or off)
with default value off. This enable people to start Motion with auto
tracking enabled. Changing the config value for track_auto and
enabling the auto tracking via the httpd track/auto has the exact same
effect. (Kenneth Lavrsen)
* Added 3 new tracking options: track_step_angle_x, track_step_angle_y,
and track_move_wait. The options track_step_angle control the movement
during auto tracking and are currently only active for the pwc type
tracking. The idea is that they can later also be used for the generic
tracking as it evolves. The track_move_wait controls the number of frames
after the camera has moved (auto or manual) during which motion detection
is disabled. This option should be set so low that the motion detection
is re-enabled the minute the camera is standing still again. Feature
originally made by Moshe Van Der Sterre. Kenneth Lavrsen extended it to
be more generic.
http://www.lavrsen.dk/twiki/bin/view/Motion/PwcConfiguration
* New Feature: Motion is now also supported on MaxOSX with similar
feature set as for Free BSD. See README.MacOSX for details how to install
it. (Angel Carpintero)
http://www.lavrsen.dk/twiki/bin/view/Motion/MacOSXPatch
* Added a work-around so people in FreeBSD that uses a capture card
where input 1 is not tuner can use motion if frequency is set -1 in
motion.conf or thread#.conf (Angel Carpintero).
3.2.3 Detailed changes for 3.2.3
Bugfix release only. No new features.
* Fixed a bug in the http control code that failed to accept a client
connecting in some systems (Peter Holik).
* Fixed a series of bugs where several feature were using the image buffer
after text was added for noise tuning, auto_brightness, reference frame
update when tracking etc. When a netcam failed to produce an image the
text added to the previous image became motion detected also. The code is
not changed so that the ring buffer is used for timestamped images
and the image used for detection is in a buffer cnt->imgs.image_virgin.
(Kenneth Lavrsen).
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x08x15x140701
* Auto brightness used the first image in ring buffer instead of the
latest image and it used an image with time stamping. It now uses the new
cnt->imgs.image_virgin buffer.
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x08x15x160208
* Cleaned out unused code from httpd control (Angel Carpintero).
* Option switch_filter used print_int instead of print_bool when motion.conf
was saved (Kenneth Lavrsen).
3.2.2 Formal Release. Summary of changes
Features
* New completely rewritten netcam code.
* Proxy servers are again supported by netcam feature
* New conversion specifier %o for threshold
* New convertion specifier %Q for number of labels
* Drawing of mask and smartmask in setup mode improved
* Compilation of motion on 64 bit machines improved
* RPMs can now be built by non-root user
* Improved the labelling algorithm so that locate feature and tracking features
includes all labelled areas above threshold
* Motion now supports the mjpeg webcam stream while saving PPM images.
* 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.
* 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
* Improved descriptions in motion.conf
* Many small code speed optimizations.
* 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.
* Improved error handling of missing picture frames from camera. Especially
network cameras will often not be able to provide a picture frame from time
to time. Motion would retry before and eventually and rather quickly exit
the camera thread and maybe completely exit. The improved handling now
makes a copy of the previous frame for 30 seconds (longer if cpu_low is
activated because the implementation is 30 X framerate frames) and then
show a grey image with a message saying the connection is lost and an ISO
format time stamp of first poor connection.
* 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.
* Included a CODE_STANDARD text file to help new developers make patches
that are easier to integrate without too much manual editing.
Bug Fixes
* Fixed a bug in the autobrightness algorithm
* Fixed bug reporting errors when creating symlink to last snap
* Improved code so that Motion no longer uses the tmpfile() function for
buffering the frames of the mjpeg stream.
* Implemented a fix/work around to a bug related to building and installing
RPMs on Suse.
* Improved signal handler
* Code commented much more.
* Many bugfixes to get Motion more stable (less segfaults)
* Code improved to remove all warnings when compiled with gcc 4.0
* Better FreeBSD support
* Replace functions not threadsafe with threadsafe functions.
* Implemented a much easier to use motion_log function which replaces the
calls to printf and syslog. This code change as no impact to the user.
* Fixed a bug in video.c so that VIDEO_PALETTE_GREY cameras now actually work.
* Updated the ffmpeg.c code so that Motion can now be built with ffmpeg CVS
release from the June/July 2005 timeframe.
3.2.2 Detailed changes for 3.2.2
snap1
* Pthread deadlock in motion 3.2.1 fixed (Angel Carpintero)
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x05x26x125712
* http lockup bugfixes and ConvertSignalToSigaction only for webhttpd
(Angel Carpintero)
* alg_draw_location: Use temporary variables to store the values used in
for() loops instead of compute them in each loop (Angel Carpintero).
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
* Added two new convertion specifiers: %o for threshold and %Q for number
of labels. (Kenneth Lavrsen)
* Improved the config file description for pre_capture to get people to
use small values (Kenneth Lavrsen).
snap2
* 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.
(Angel Carpintero)
http://www.lavrsen.dk/twiki/bin/view/Motion/AvoidCleanupSegfault
* 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. (Kenneth Lavrsen)
snap3
* Changed the order of drawing the red mask in setup mode so that the
smartmask is drawn after the fixed mask (Joerg Weber).
* Changed the configure script so that /usr/lib64 is also searched for
the presence of ffmpeg (should fix the problem with 64 bit machines)
(Kenneth Lavrsen).
* Changed the configure script so that rpms can be made by normal non-root
users (Angel Carpintero, Kenneth Lavrsen).
snap4
* Fixed the ffmpeg code so that Motion also compiles against libavcodec
build 4754 or later. (Per Jönsson)
* Above change in configure script for 64 bit ffmpeg support also implemented
in the freeBSD configure (Angel Carpintero)
* Webhttp control interface fixed so it also works in FreeBSD (Angel
Carpintero)
* 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 (Joerg Weber).
* Netcam First Header patch. If an error with jpeg decompression occurred at
connecting to a mjpeg streaming webcam, this patch skips this jpeg and tries
to decompress next jpeg up to MAX_HEADER_RETRIES (20) (Peter Holik).
http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamFirstHeader
snap5
* Small improvement in framerate accuracy (Peter Holik).
http://www.lavrsen.dk/twiki/bin/view/Motion/FramerateAdjust
* Fixed a bug in the autobrightness algorithm (Per Johnsson)
* Fixed a bug in the webhttpd code related to pan/tilt. Bug was introduced in
snap4 (Angel Carpintero, Kenneth Lavrsen).
* Improved the labelling algorithm so that locate feature and tracking features
includes all labelled areas above threshold (Joerg Weber).
http://www.lavrsen.dk/twiki/bin/view/Motion/ImprovedLabellingPatch
* Fixed bug reporting errors when creating symlink to last snap (Bill Maidment)
* Changed all use of localtime to localtime_r which is threadsafe
(Kenneth Lavrsen).
* Implemented a modified version of the WebcamCompressInMemory so that Motion
no longer uses the tmpfile() function for buffering the frames of the mjpeg
stream (Peter Holik).
http://www.lavrsen.dk/twiki/bin/view/Motion/WebcamCompressInMemory
* Modified the WebcamCompressInMemory patch so that Motion now supports the
mjpeg webcam stream while being setup for saving PPM images (Kenneth Lavrsen).
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.
(Kenneth Lavrsen).
snap6
* Webcam code commented more (Kenneth Lavrsen)
* 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. (Kenneth Lavrsen).
snap7
* Implemented WebcamShortWriteHandling patch (Bill Brack)
http://www.lavrsen.dk/twiki/bin/view/Motion/WebcamShortWriteHandlingPatch
* 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
snap8
* 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)
* Implemented a fix/work around to a bug related to building and installing
RPMs on Suse. (Paul Beltrani)
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x07x14x212356
* Small speed optimization in the creation of reference frame (Peter Holik).
* Complete rewrite of the Netcam code. Should fix many of the reported and
still open netcam bugs. This is first release in a snapshot. Expect to find
bugs. Testing is important. If you have a netcam please test this and report
bugs.
http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamCodeRewritePatch
snap9
* Fixed bug related to disabled webcam or duplicate webcam port. Error log
accept(): Socket operation on non-socket continuously written to syslog.
(Kenneth Lavrsen)
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x08x01x150922
* Fixed memory leak in webhttpd related to use of strdup (Angel Carpintero).
* Improved the error reporting in the Netcam code and did a few minor
corrections and code cleanups (Bill Brack).
* Implemented a much easier to use motion_log function which replaces the
calls to printf and syslog. The implementation to actually use this has been
implemented in video.c and the Netcam code files. Rest will be in next snap.
This code change as no impact to the user (Bill Brack).
http://www.lavrsen.dk/twiki/bin/view/Motion/ErrorLoggingEnhancementPatch
* Fixed a bug in video.c so that VIDEO_PALETTE_GREY cameras now actually work
(Bill Brack).
* Implemented the conversion of signal to sigaction which should be more
thread safe. Hopefully this still keeps Motion from making Zombies.
(Christophe Grenier).
http://www.lavrsen.dk/twiki/bin/view/Motion/ConvertSignalToSigaction
* 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.
(Andrew Hamilton).
http://www.lavrsen.dk/twiki/bin/view/Motion/TextScalingPatch
snap10
* Error Logging Enhancement Patch v 1.3 (Angel Carpintero) including:
http://www.lavrsen.dk/twiki/bin/view/Motion/ErrorLoggingEnhancementPatch
* Populate the motion_log to the whole motion source code.
* Fixed FreeBSD compilation.
* Added the possibility to pass NULL as struct context *
* Removed unused errno variables.
* Fixed errno in rotate.c , set to 0.
* Fixed some errno flags in webhttpd.c and motion.c
* Fixed a bug when not motion.conf is found
* Removed printf from all files
* Fixed the conf_list[] index in motion.c
* RotateBswapFix Patch v 2 (Per Jönsson) 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
* Re-mplementation of optional Proxy Server for Network Cameras (Bill Brack).
http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamProxyServerPatch
* Included a CODE_STANDARD text file to help new developers make patches
that are easier to integrate without too much manual editing. (Kenneth
Lavrsen)
* Added the missing rotate feature in the new netcam code (Bill Brack)
snap11
* Updated the ffmpeg.c code so that Motion can now be built with ffmpeg CVS
release from the June/July 2005 timeframe (Per Jönsson).
http://www.lavrsen.dk/twiki/bin/view/Motion/FfmpegCodecPatch
* Improved error handling of missing picture frames from camera. Especially
network cameras will often not be able to provide a picture frame from time
to time. Motion would retry before and eventually and rather quickly exit
the camera thread and maybe completely exit. The improved handling now
makes a copy of the previous frame for 5 seconds (longer if cpu_low is
activated because the implementation is 5 X framerate frames) and then
show a grey image with a message saying the connection is lost and an ISO
format time stamp of first poor connection. (Kenneth Lavrsen).
* Implemented version 2 of the NetcamErrorImprovementPatch which should
work with the improved error handler. Changes include:
* Changes handling of non-streaming camera to include a separate thread.
* Changes the value returned from netcam_next to the motion main loop to
indicate the status of the image returned.
* Many changes to the comments, and some enhancement to the logic, to begin
the implementation of points agreed on the NetcamRetryErrorDiscussion page.
* Implements the triple-buffering scheme proposed by PeterHolik (but not the
"Without Locking" portion of his proposal).
Version 2 however does not seems to recover when an mjpeg stream resumes
after a period of not being available. (Bill Brack)
http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamErrorImprovementPatch
* Note: Snap11 release as a developer sync release. Bug reports welcome.
FreeBSD code changes not tested yet.
Release
* Netcam error handling improvements and cleanup from Valgrind analysis
(Bill Brack).
* 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 (Bill Brack)
* 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
* Changed the 5 second missed camera signal timeout to 30 seconds. (Kenneth
Lavrsen)
* 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
3.2.1 Detailed changes for 3.2.1 since 3.1.19_snap3
snap1
* 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
snap2
* Fixed netcam->userpass problem (Angel Carpintero)
* 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).
snap3
* Added Best Preview Patch (Joerg Weber)
http://www.lavrsen.dk/twiki/bin/view/Motion/BestPreviewShot
snap4
* Fix for tracking control with http control (Angel Carpintero)
* 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.
The patch is still being worked on and is not finished.
Changes in the FreeBSD code are not yet tested.
http://www.lavrsen.dk/twiki/bin/view/Motion/SetupModePatch
Remove most command line options and replace them by an option to specify
location to motion.conf and a few options related to setting up motion.
(Joerg Weber). This is also included in SetupModePatch.
* Small improvement of the http control interface (link to setting itself
on the html response when setting parameter) (Kenneth Lavrsen)
snap5
* Fixed a bug in noise tune which was most visible at very low light.
(Joerg Weber and Kenneth Lavrsen)
* Further improvement in the setup mode. Messages are now prefixed by
the thread number in [brackets]. Moved 2 functions from motion.c to
picture.c. The setup mode patch is now considered finished. (Joerg Weber)
snap6
* 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
snap7
* Improved console output in setup mode. Now also outputs threshold.
(Joerg Weber)
* Added some additional text to the motion http messages to the terminal
so that you know where the messages come from. (Kenneth Lavrsen)
Netcam Stability Patch version snap6-post1 (Christopher Price)
* 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
* TODO: remove tests for memmem from configure
snap8
* Added support for non-streaming (image based) netcams without content-length
header. (3.2.1-snap7-post1 version of the Netcam Stability Patch by Christopher
Price).
* Improvement in the noise-tune algorithm (Joerg Weber)
* 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.95. (Kenneth Lavrsen)
* 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. (Kenneth Lavrsen)
snap9
* Fixed even more gcc 2.95 compiler errors (declarations not at beginning
of block) (Kenneth Lavrsen).
* Removed a gcc 2.95 compiler warning (netcam.c:1036: warning: variable `pic'
might be clobbered by `longjmp' or `vfork') (Kenneth Lavrsen)
* The values for cnt->locate and cnt->new_img are now #defines in motion.h
to enhance code readability (Kenneth Lavrsen).
* The setting of sql_mask is now only done once per second to save CPU power
(Kenneth Lavrsen)
* 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 (Kenneth Lavrsen).
* Fixed some file descriptor leaks in webcam.c and netcam.c (Christophe
Grenier)
* Added "motion-http:" prefix to error messages from the http control thread.
(Kenneth Lavrsen)
* Added additional error information when connection to MySQL fails (Kenneth
Lavrsen)
* 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. (Kenneth Lavrsen)
* 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 (Kenneth Lavrsen).
* 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()
(Christophe Grenier).
snap10
* Fixed a problem when compiling with --without-v4l configuration.
(Philip Marien)
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x03x27x112843
* Threw away the file descriptor leak fix from snap 9 because it caused
more trouble than it fixed. Removed the close_anything_open() and the
cnt_list.control_socket_server field. Replaced it all with a simple
piece of code that all server daemons call when started: setsid() followed
by for (i=getdtablesize(); i>2; --i) close(i). Dirty and simple.
(Kenneth Lavrsen)
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. (Kenneth Lavrsen)
* Fixed a bug where motion did not work with gap=1 (Kenneth Lavrsen).
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. (Kenneth Lavrsen)
* Improved the http remote control action features so that makemovie
and snapshot for thread 0 (all) works on all threads instead of being
ignored (Kenneth Lavrsen).
* Moved some code in the beginning of the motion_loop to a position later
to improve the accuracy of time calculations for the framerate (Kenneth
Lavrsen)
* Updated code so Motion again runs on FreeBSD (Angel Carpintero).
* Removed check for memmem from configure (Angel Carpintero).
* Updated http control interface so that an additional check is done
before saving config files (Angel Carpintero).
* Fixed a problem with URLs http://192.168.1.3:8080/0 which did not
work without a trailing space (Angel Carpintero).
snap11
* 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
(Joerg Weber)
* More Netcam Stability Fixes (snap10-post1-6) (Christopher Price)
http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamStabilityPatch
* Destroy mutexes in netcam_cleanup().
* Add reconnection for netcam_start() - this may block other cameras
from starting up!.
* Added additional defines for reconnect retries.
* Change reconnection timeouts to 60 seconds.
* Reworked close(sock) in netcam_connect, to insure future changes
won't forget to close the socket.
* Reworked reconnection for netcam_start() - disabled by default, see
source for INIT_RECONNECT_RETRIES.
* Break some long lines in code.
* Replaced sleep with nanosleep per suggestion by Kenneth Lavrsen.
* Added additional header validation check.
* Changed a couple fd references to use RBUF_FD.
* Added error message if jpeglib error occurs.
* Removed additional header validation check.
* Limited times headers will be checked.
* Removed mutex lock around netcam_start() in video.c, hopefully race
conditions are fixed.
* Added additional headers in http request.
* Added back header validation (should fix netcam_read_header lockups).
* Detect when there is no data on socket in netcam_read_ functions
(should fix netcam_read_image_contentlength() and
netcam_read_image_no_contentlength() lockups).
* Rearranged timeout assignments for pthread_cond_timedwait() calls.
* Adjusted TIMEOUT_COND_WHICH to 4 seconds.
* Improvements of motion.conf help comments including improvements in new
onxxxx options. (Kenneth Lavrsen)
snap12
* Fixed a bug in the rgb2yuv420p function. (Daniel Ladd)
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x03x30x011107
* Fixed a bug of locate feature for movement images combined with the
new output_normal best feature (Joerg Weber)
* More Netcam Stability Fixes (snap11-post1-4) (Christopher Price)
http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamStabilityPatch
* Reworked thread signal/wait conditions, should fix some race conditions.
* Use gettimeofday() to determine thread timeouts, results in better accuracy.
* Adjusted condition timeouts to smaller values due to usage of gettimeofday()
and rework of thread signal/wait conditions.
* Adjusted reconnection retries to 60 (every minute for an hour).
* Fix bug where motion will not quit if requested when reconnecting.
* Cruft, feature creep and redundant code removed.
* Consolidated reconnection capability to unified netcam_reconnect function.
* Rework netcam_start logic, minimize startup variables.
* Rework netcam_stream_read and netcam_single_read logic.
* Minor changes to netcam_next logic.
* Fix bug in streaming camera without content-length, recent mod broke.
* Fix bug in startup of single image reads without content-length.
* 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. (Kenneth Lavrsen).
snap13
* 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 (Kenneth Lavrsen).
* Changed the default values for a few options: quiet on, webcam_maxrate 1,
threshold_tune off, webcam_quality 50 (Kenneth Lavrsen).
* Changed some cosmetics in the way motion.conf is written (space after #)
(Kenneth Lavrsen).
* Updated the motion-dist.conf to use default values unless there is a reason
not to (Kenneth Lavrsen).
* Fix the compile issue with official ffmpeg packages from debian (Angel
Carpintero).
* 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
snap14
* Added basic authentication to the http control interface introducing new
config option control_authentication. (Angel Carpintero)
* Fixed memory leak when restarting Motion from http control (Angel
Carpintero).
* Small improvement in configure script for Debian (Angel Carpintero)
* 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.
(Angel Carpintero).
snap15
* Added new feature which shows the fixed mask (in addition to the smart mask)
in bright red on the Motion type images (Joerg Weber).
http://www.lavrsen.dk/twiki/bin/view/Motion/FixedMaskFileOnMotionImagesPatch
* Added new feature. When you specify a mask file in the config file and start
Motion, and the mask file does not exist, Motion will create a new clear
(white) mask file for you in the right size. Then it is easy to simply
open the file in your favourite paint program and add the masking in black
(Joerg Weber).
http://www.lavrsen.dk/twiki/bin/view/Motion/FixedMaskFileOnMotionImagesPatch
* 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 (Kenneth Lavrsen).
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x04x24x205933
* Improved the auto-brightness algorithm. When auto-brightness is enabled
the brightness option becomes a target value for the brightness level.
This should also close a bug report (Kenneth Lavrsen).
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x02x26x195358
* http interface small fixes (motion-3.2.1_snap14-small-fixes 1.1) incl
Add 'back' link to response_client errors (Angel Carpintero).
http://www.lavrsen.dk/twiki/bin/view/Motion/MotionHttpControl
* Started adding tuner_number as option. This is not fully implemented. First
code is added and rest will be done in next snap. (Kenneth Lavrsen)
snap16
* Made the http control interface more RFC compliant (Angel Carpintero).
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x05x02x180550
* Made the http control HTML responses nicer to look at as sources and
therefore easier to debug errors (Kenneth Lavrsen).
* Code style cleanup of webhttpd.c (Kenneth Lavrsen).
* 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
snap17
* Fixed small bug when pre_capture buffer is resized during operation.
(Joerg Weber).
* In httpd control code: Fixed RAW syntax following API specs. (Angel
Carpintero).
http://www.lavrsen.dk/twiki/bin/view/Motion/MotionHttpControl
* Added new conversion specifiers: %D (diffs), (noise) %K (motion center x),
%L (motion center y), %i (locate width x) and %J (locate width y). These
changes also required a refactoring of the alg_locate code. This change
is part of the implementation of a generic tracking feature and it enables
implementing external programs that can perform simple prediction features.
(Kenneth Lavrsen)
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 (Kenneth Lavrsen).
Release
* 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. (Christophe
Grenier)
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 by Christophe Grenier
http://www.lavrsen.dk/twiki/bin/view/Motion/ChdirNetCamWgetPatch
* Fix for Unknown content type with lumenera cameras (Kenneth Lavrsen)
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x05x06x174416
* MotionHttpControl Patch motion-3.2.1_snap18-pre1 v,1.0 19 May 2005.
Fixed some HTTP response codes and added header copyrights. (Angel Carpintero).
http://www.lavrsen.dk/twiki/bin/view/Motion/MotionHttpControl
* Implemented pthread fix by Christophe Grenier.
http://www.lavrsen.dk/twiki/bin/view/Motion/PthreadFixPatch
* Fixed problem compiling "ffmpeg reports only YUV420 is supported" when
ffmpeg is a recent CVS version. (Angel Carpintero)
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x05x22x213229
* Man page updated. It is now semi-autogenerated in the Motion TWiki
(Kenneth Lavrsen)
http://www.lavrsen.dk/twiki/bin/view/Motion/MotionOptionsAlphabeticalManpage
* Bug fix in netcam code: Sometimes motion try to free an invalid memory area
(Angel Carpintero)
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x05x21x105335
* Small configure fix related to --without-v4l (Angel Carpintero)
* Fixes for http control HTML code (Angel Carpintero)
* Added init script to RPM (Angel Carpintero)
3.1.19 Detailed changes for 3.1.19 snapshot releases since 3.1.18
snap1
* 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
* 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
* 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
snap2
* Following bugfixes all by Angel Carpintero
* 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
snap3
* Bugfixes by Angel Carpintero
* fix motion.spec, motion.spec.in
* typo in configure.in , configure.in.freebsd
* fix version number
3.1.18 Formal Release - Summary of changes since 3.1.17.
* Removed the Berkeley mpeg feature
* New brightness, contrast, hue and saturation options.
* Makefile with automatic check of dependencies and nicer user output.
* Improvement of the rotate feature.
* Added the new smart mask feature.
* Added a new config option --without-optimizecpu which disables CPU
specific compiler optimizations.
* Configure help texts improved.
* Added the pwc-10.0.5 version of pwc-ioctl.h. Also good for pwc 10.0.6.
* Changing rotate, height and width via xmlrpc no longer affects the
running program. This change is done because many internal data structures
and memory allocations cannot handle change of image dimensions/size.
* Enabled use of leading spaces when changing text_left and text_right via
xmlrpc by using quotation marks if the value starts with a leading space.
* Speed optimizations for dilate and labelling code.
* Significant speed improvement in the motion detection algorithm.
* Motion images are now gray scale instead of green. Smartmask is shown
in red.
* Implemented FreeBSD auto-detection CPU/ARCH fix.
* Removed the never finished prediction feature.
* Implemented a major improvement of noise_tune.
* Implemented ffmpeg-0.4.9 support.
* Default for option 'ffmpeg_video_codec' is now mpeg4. mpeg1 is now only
supported with the old ffmpeg-0.4.8.
* Option 'output_normal' value set to 'first' makes Motion only save a
jpeg from the first motion detected picture frame in an event.
* 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.
* Corrected a small error in the usage help text
* Improved the help and doc texts for config option night_compensate.
* Improved the signal handling of ctrl-C and kill.
* Implemented a POSIX compliant SIGCHLD signal handler to avoid floods of
warnings and script zombies in some RedHat versions.
* Reporting of the changes of noise detection level is now only displayed
in the console (daemon off) when the always_changes option is enabled.
* Made the code in xmlrpc more correct and robust (handling of select()).
* Fixed several bugs in the timelapse feature.
Detailed changes for all 3.1.18 snapshot releases since 3.1.17
snap1
* Removed the Berkeley mpeg feature (code commented out)
* Implemented a bugfixed version of
http://www.lavrsen.dk/twiki/bin/view/Motion/BrightnessContrastPatch
Released as snapshot for developers to merge other patches.
The snap1 is not recommended for normal use.
snap2
* Improved the Makefile with automatic check of dependencies and
nicer output for the user.
http://www.lavrsen.dk/twiki/bin/view/Motion/MakefileWithAutoDependencies
* Implemented first phase of the rotate patch. Need to fix the storage
method for image height and width
http://www.lavrsen.dk/twiki/bin/view/Motion/RotatePatch
snap3
* Implemented phase 2 of the rotate patch
* Added brightness patch options to motion-dist.conf
snap4
* Added the new smart mask feature. It is working but it is still under
development. It currently outputs an extra smart mask timelapse movie
when the normal timelapse is enabled. This will be removed in the final
version. http://www.lavrsen.dk/twiki/bin/view/Motion/PatchSmartMask
* Added a new config option --without-optimizecpu which disables the
CPU specific compiler optimizations introduced with the rotate phase 2
patch. The purpose of the new option is to enable a packager to build
an RPM or deb package which is not tied to a specific CPU type.
* Man page updated with the new brightness and smart mask options.
* Configure help texts improved.
* Added the pwc-10.0.5 version of pwc-ioctl.h.
* Changing rotate, height and width via xmlrpc no longer affects the
running program. The user can change the options and write them to the
config files and then restart motion. This change is done because many
internal data structures and memory allocations cannot handle change
of image dimensions/size.
* Fixed the problem with leading spaces of text_left and text_right
getting lost when saving with xmlrpc. For text_left and text_right
Motion now puts the string in quotation marks if the value starts with
a leading space.
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2004x10x24x135840
snap5
* Implemented the November 10 update for smartmask
* Started resolving some of the signed vs unsigned char problems. There
is still much to do here. snap5 is released to make the developers up2date.
snap6
* Merged in the DilateNineSpeedPatch
http://www.lavrsen.dk/twiki/bin/view/Motion/DilateNineSpeedPatch
* Changed a few image char definitions to unsigned char. Still many to fix.
snap7
* Implemented the 15-Nov-2004 Smartmask patch which removed the smartmask
debugging timelapse code and instead adds the smartmask info to the
motion images and jpegs as red areas. Normal motion is shown in black
and white (greytones). This concludes Joerg Webers smartmask feature.
The patch is now in ReleasedScheduled state for 3.1.18.
* Implemented Angel Carpintero's FreeBSD auto-detection CPU/ARCH fix.
* Merged in Per Johnsson's DilateFiveSpeedPatch
http://www.lavrsen.dk/twiki/bin/view/Motion/DilateFiveSpeedPatch
* Removed the prediction feature from the code (commented out for now).
* Included fix by Jan X.
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2004x11x13x202132
snap8
* Implemented an improvement of Smartmask so that the mask is cleared when
the smart_mask_speed is set from a non-zero to zero (by Joerg Weber)
* Implemented an improvement of noise_tune with smart mask (and probably
also in general) (by Joerg Weber)
* Improved the picture control function so that cameras are only probed
when needed to avoid USB errors. (Kenneth Lavrsen)
* Implemented new ffmpeg patch (Per Jönsson)
http://www.lavrsen.dk/twiki/bin/view/Motion/FfmpegPatch049
* Implemented new preview patch (Joerg Weber)
http://www.lavrsen.dk/twiki/bin/view/Motion/PreviewShotsPatch
* Removed commented code from obsolete Berkeley and Prediction features
* Implemented labelling speed patch (Per Jönsson)
http://www.lavrsen.dk/twiki/bin/view/Motion/LabelingSpeedPatch
snap9
* 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. (by Christopher
Price and Angel Carpintero).
http://www.lavrsen.dk/twiki/bin/view/Motion/StreamingNetcamWithoutCurl
* Implemented a significant speed improvement in the motion detection
algorithm (by Per Jönsson).
http://www.lavrsen.dk/twiki/bin/view/Motion/AlgDiffStandardMmxPatch
* Fixed a small bug which caused in jumpy mpeg1 videos with ffmpeg 0.4.8.
snap10
* 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
* 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)
* Improved the signal handling of ctrl-C as suggested by Per Jonsson
http://www.lavrsen.dk/twiki/bin/view/Motion/BugReport2005x01x06x181426
* 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. (Angel Carpintero and Kenneth Lavrsen)
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.
snap11
* Changed allocation of despeckle buffer to avoid a segfault when using
a netcam where the image is wider than defined in motion.conf width.
* The noise tune value displayed in the upper left corner along with
number of changed pixels is no longer displayed (was there for debugging).
* Improved the Netcam patch (Angel Carpintero)
http://www.lavrsen.dk/twiki/pub/Motion/StreamingNetcamWithoutCurl/
(pre3 reconnection feature added)
* 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
Release
* 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 timelapse rollover happens on the hour
and not one timelapse past the hour (Kenneth Lavrsen).
3.1.17 Bugfix release
snap1
* Removed annoying debug syslog message (input: #)
* Implemented Peter Ilin's patch for handling vloopback pipes better
when Motion receives SIGTERM or SIGHUB.
* Implemented fix for compiling errors when building the FreeBSD version
without bktr support.
(http://www.lavrsen.dk/twiki/bin/view/Motion/FreeBSDFixCompile)
* Commented out many unnecessary syslog debug only messages. The commented
out code was first patched by Mike Lees patch related to syslog causing
instability and hanging motion processes.
(http://www.lavrsen.dk/twiki/bin/view/Motion/SyslogEventPatch).
* Included Kalle Andersson's 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.
(http://www.lavrsen.dk/twiki/bin/view/Motion/DaemonDetachFromSTDIO)
snap2
* 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
Release
* Swapped width and height parameters in some functions. This has no influence
on program execution. Just a cosmetic change.
3.1.16 Bugfix release
snap1
* Fixed a configure error related to xmlrpc.
* Fixed a bug in the SQL code related to file type.
Release
* Fixed a segfault problem in alg.c related to the locate feature.
* Made motion more robust to whitespace in its config files. It now
accepts CR LF (DOS/Windows) and whitespace only lines no longer
gives warning messages in syslog. Also cleaned up the conf.c
function structure a little bit.
3.1.15 Summary of changes from 3.1.14 to 3.1.15.
New features:
* ffmpeg now supports mpeg4 and msmpeg4 in addition to mpeg1. Timelapse
mpegs are always made with mpeg1 because this allows appending to
existing mpeg when motion or timelapse is restarted. This also meant
a change of the configure option --with-libavcodec to --with-ffmpeg
which now needs to point to the parent directory that holds libraries.
* configure has been significantly improved so that most people can
simply run ./configure, make and make install with no parameters and
all libraries should be detected automatically if they are installed
like in most distributions.
* rotation feature added which allows the camera to be mounted upside
down or in portrait.
* SQL (Postgres and MySQL) table format has been changed. The time
related fields such as minute, hour, day, month and year has been
replaced by a timestamp field called 'time_stamp'. Additionally a
field called 'frame' has been added so that each file can be correctly
sorted based on time_stamp and frame (picture frame number within one
second). An additional field called 'text_left' stores the displayed
text given by config option 'text_left'. And a field 'camera' has been
added which stores the thread number.
* The %v (event) prefix has been removed from the default filename
for timelapse mpegs. It makes little sense to have the current event
number as part of the timelapse filename as default.
* A new feature called 'labeling' was added which is a great enhancement
to the motion detection algorithm. It ensures that only the largest
area of movement is included in the detection and it prevents noise
and wind from making false detection. It should also make tracking
work better.
* Angel Carpintero ported motion and it's main features to freeBSD.
The freeBSD is still very much beta and because of limited access to
hardware we need more people to test the various features.
* Motion is now also released as an RPM with both mysql, postgres,
libcurl and ffmpeg support.
Bugfixes:
* Fixed the problem with default strings being written to thread
config files when using the XMLRPC command motion.conf.write.
* Implemented improvement of vid_putpipe so that Motion does not spend
time writing to a vloopback device which is not there.
* Introduced reporting to syslog of writing to vloopback fails.
* Memory clean-up improvements when Motion exits normally.
* Fixed a small bug related to the filename given for onffmpegclose.
* Provided more improvements of error handling.
* Added additional error reporting to console.
3.1.15 Snapshot releases
snap1
* Fixed the problem with default strings being written to thread
config files when using the XMLRPC command motion.conf.write.
snap2
* Implemented Ryan Ayers 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.
* Ryan Ayers improved configure's ability to find custom installations
of ffmpeg.
* Ryan Ayers provided misc. cosmetic changes in the code.
* Ryan Ayers rewrote the ffmpeg functions completely added support for
new codecs/formats mpeg4 and msmpeg4. mpeg1 was improved also.
snap3
* Implemented Ryan Ayers simplified ffmpeg patch where 10 ffmpeg
functions are reduced to 5. The memory leak related to an unused
filehandle has been resolved.
* Kenneth Lavrsen solved the timelapse related .mpeg.mpeg filename
error.
* Kenneth Lavrsen removed the memory leak in ffmpeg.c related to the
use of strdup without a free.
snap4
* Implemented Ryan Ayers snap3 based ffmpeg patch that cleans up the
code significantly, forces timelapse. The list of improvements:
* Forces timelapse to mpeg1 for the time being.
* Removes FILE* f declaration in ffmpeg.h since we no longer need it.
* Removes all picture_buf references. This was carried over from
output_example.c in ffmpeg-0.4.8. However, we don't need it.
That is allocating space for picture->data, but motion already
takes care of this for us with the newimg variable.
* Removed some old commented code ... tmpfilename, picture_buf stuff.
* Included Angel Carpintero's memory clean-up improvements when Motion
exits normally.
snap5
* Added Per Jönsson's rotate feature. When set to non-zero some extra
CPU time is used for the rotation.
* Kenneth Lavrsen 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.
* Kenneth Lavrsen added seconds and frame fields to the database feature.
This means that users must add these two fields to the table "security"
in existing databases when upgrading to 3.1.15.
* Kenneth Lavrsen removed the %v (event) prefix from the default filename
for timelapse mpegs. It makes little sense to have the current event
number as part of the timelapse filename as default.
snap6
* Kenneth Lavrsen fixed a small bug related to the filename given for
onffmpegclose.
* Joerg Webers added the new labeling motion detection feature.
* Angel Carpintero provided more improvements of error handling.
snap7
* Kenneth Lavrsen 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
* Angel Carpintero ported motion and it's main features to freeBSD.
The freeBSD is still very much beta and because of limited access to
hardware we need more people to test the various features.
* Angel Carpintero created an updated specs file that enables Kenneth
to build RPMs of Motion.
snap8
* Kenneth Lavrsen added the new fields to the SQL security table
camera (thread number), text (text_left) and time (timestamp).
* Angel Carpintero improved error handling for the webcam functions.
Release
* Kenneth Lavrsen 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.
3.1.14 2004 May 31
* Included Ian McConnell's fix for snapshots when using the
"lastsnap" filename.
* Fixed the bug in advanced filename and text feature when event
numbers go higher than 99.
* Included Angel Carpintero's improvement of configure reporting of
missing shared libraries (Kenneth Lavrsen improved it a little
further).
* Included Ian McConnell's timelapse close mpeg file when set to zero
patch.
* 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).
* Added setting access rights to 644 (755 for configure) when doing
make dist.
* Small improvement on xmlrpc-api.html document.
* Included Angel Carpintero's fix for building motion without ffmpeg
(missing #ifdef round newly added ffmpeg timelapse code)
* Fixed missing init of viddev.frequency causing VIDIOCGCHAN errors.
* Included Angel Carpintero's snap2 based patch for improving configure.
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.
* Implemented ffmpeg_timelapse_mode feature by James A. Russo.
* Implemented RH (sysV) and Debian type control scripts for /etc/init.d
by Angel Carpintero.
* Implemented enhanced SQL features by James A. Russo. This adds logging
of mpeg and prediction events to MySQL/PostgreSQL.
James patch also replaced the mime file types by a more refined
filetype scheme that allows more refined control for SQL and other
future control.
* Kenneth Lavrsen changed the enhanced SQL config from single sql_mask
option to 5 sql_log_ options for more user friendly control.
* Implemented Daniel Sterlings minimum_motion_frames feature.
* Plugged a memory leak in the pre_capture feature.
* 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.
* Renamed snapshots_interval and snapshots_filename to snapshot_interval
and snapshot_filename.
* 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 Daniel Sterlings 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 many comments to motion.c and conf.c.
* Daniel Sterling 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.
* Implemented Daniel Sterling's fix for a small calculation error in
alg_diff_fast().
* Small improvements in messages sent to console and syslog during
startup of Motion.
3.1.13
* Included Ian McConnell's despeckle feature (including extra
improvement of the original patch).
* Changed the name of motion.conf to motion-dist.conf to avoid
make install overwrites your perfectly OK working motion.conf
file when you re-install.
* Updated the motion.spec.in. Not tested yet.
* Included Matthias Kilian configure patch which enables configure
to find and use a dynamic library of ffmpegs libavcodec.so .
* Included Steffen Haas improved on screen display patch
(plus some extra characters including a real space).
* Changed the parsing of the motion.conf and thread.conf files so
that spaces are now allowed. This also enables using a space in
the user text. For XML-RPC you put text in "" if you need spaces.
* Changed the XML-RPC function motion.conf.write so that undefined
config options gets written into the main motion.conf file with
the help line and the option prefixed by a '#'. Example
# netcam_url value.
* Added Mike Lees onffmpegclose feature which enabled a command to
be executed each time a file generated by ffmpeg is closed.
* Added Daniel Sterlings night compensate fix.
* Added Angel Carpintero's improved configure process which
automatically detects presence of xmlrpc-c and ffmpeg and makes
the Makefile accordingly.
* Included Ian McConnell's flexible on screen display feature and
flexible strftime based path names.
* 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
(draw)text_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.
3.1.12
* Removed vid_keepalive
* Added reentrant warning to codestyle answer in FAQ.
* Rewrite of PWC tracking code.
* Tracking is inactive by default.
* Motion-control action.quit fix.
* Netcam with mask fixed.
* Added tracking options to xmlrpc interface.
* Ignore SIGPIPE (crashes webcam code).
* Changed fast algorithm to imgs.size/10000 steps.
* Renamed prerecord to pre_capture to be more consistent with
post_capture.
* Redone pre_capture completely.
3.1.12
rc1
* added pre-record. with configparameter n_prerecord one can set
the number of frames that should be recorded *before* the
motion starts. for this feature to work, you need to set
post capture to at the value given for n_prerecord! also:
n_prerecord must be at least 1
3.1.11
* found 2 memory-leaks (two 'FILE *' were not closed) in the
webcam-interface
* started working on support for logitech sphere/orbit tracking
fixed bug in tracking routines (would sometimes use garbage
coordinates)
* added max-number-of-frames-limit to the webcaminterface (patch
by Jeroen Vreeken)
3.1.10
* added Kenneth's fixes for ffmpeg instability and the problem
with the "ioctl(VIDIOCGCHAN): Invalid argument" error
* small optimisation of rgb24toyuv420p (about 6% faster) so
for certain video-devices things might be a little faster
* optimized alg_diff_fast: about 50% faster
made it compile again with 2.6.0-test9
* noise tuning is now only done when there's no motion!
* noise is resetted to the median of the tuned value and the
configured value as soon as no motion is detected
* fixed includes for mysql/psql (thanks Felix Finch!)
3.1.9
* motion now logs to syslog instead of stderr, that way it is
still possible to see what is going wrong when motion runs
as a daemon process.
* motion will now exit nicely when memory allocation fails
instead of segfaulting
* low_cpu now takes the number of frames per second to process
when no motion is detected instead of on/off
* "quick motion detection" is now only performed when motion
is in "idle" mode.
* added Kenneth's patch: motion with ffmpeg-0.4.8 now compiles
again!
* small optimisation: if a file is created, the path is now
only recreated when it did not already exist.
3.1.8 is the last version release by Jeroen Vreeken.
New maintainers are: Kenneth Lavrsen (http://www.lavrsen.dk/) and Folkert
van Heusden (http://www.vanheusden.com/).
3.1.8 Froze 3.1.8
Can't use the same variable name twice in ppm code...
3.1.7 Froze 3.1.7
Added codingstyle answer to faq
yuv to rgb conversion for ppm images.
Webcam close and denial of service fixes.
Renamed roundrobing to roundrobin.
Don't try to compile in xml-rpc support when not defined.
3.1.6 Froze 3.1.6
Added output_all option for continuous file saving.
Fixed picture saving on rgb files.
Fixed off-by-one error in framerate calculation.
3.1.5 Froze 3.1.5
Added motion.action.quit to xml-rpc api.
Changed v4l code to convert rgb to yuv420p and
removed support for rgb24 from all other files.
Removed read() support from v4l code.
Changed netcam code to output yuv420p images.
Fixed libavcodec.h include in ffmpeg.h
3.1.4 Froze 3.1.4
Fixed ffmpeg segfault.
Removed motion.conf* from install section in Makefile
Fixed mail option.
Fixed conf list hang.
3.1.3 Froze 3.1.3
Made timelaps interval variable.
Added motion.conf.write to xmlrpc API
Motion can write its own config file.
Changed xmlrpc API to use strings for all option types.
Added comment fields for config options.
Added additional settings for ffmpeg.
3.1.2 Froze 3.1.2
Use SO_REUSEADDR on http listen sockets.
Added control_localhost and webcam_localhost options for
binding servers to the loopback interface (default=on).
xmlrpc-httpd now uses nonblocking io allowing for multiple
connections to be handled at the same time.
Set default for 'threshold_tune' and 'noise_tune' to yes.
Added threshold_tune config option.
3.1.1 Froze 3.1.1
Sync with 3.0.4
Added xmlrpc motion-control.
Changed description output to match input format.
Added Server and Connection fields to the webcam code.
Added threshold_tune????? for autotuning the max_changes level.
Added noise_tune option for autotuning the noise level.
Sync with 3.0.3
3.1.0 Froze 3.1.0
Added predict evaluation.
Added predict_description config option.
Started with predict functions.
Forked from 3.0.2
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
exception)
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.
Cleaned 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 colour.
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 algorithms.
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 adjust_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.
Included 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_compensate 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 separately 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