Motion - Release Note Motion 3x 2x 2

Motion Release 3.2.2 - Release Notes

Motion release 3.2.2 - 13 Aug 2005

Summary of changes since 3.2.1

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 algoritm 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 algoritm.
  • 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 seg faults).
  • 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 prinf 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.

Detailed Changes for each development release since 3.2.1

snap1

snap2
  • 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 presense 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 occured at connecting to a mjpeg streaming webcam, this patch skips this jpeg and tries to decompress next jpeg up to MAX_HEADER_RETRIES (20) (Peter Holik). http://www.lavrsen.dk/twiki/bin/view/Motion/NetcamFirstHeader

snap5

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

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

snap10
  • Error Logging Enhancement Patch v 1.3 http://www.lavrsen.dk/twiki/bin/view/Motion/ErrorLoggingEnhancementPatch (Angel Carpintero) including:
    • Populate the motion_log to the whole motion source code.
    • Fixed FreeBSD copilation.
    • Added the posiblity to pass NULL as struct context *
    • Removed unused errno variables.
    • Fixed errno in rotate.c , set to 0.
    • Fixed some errno flags in webhttpd.c and motion.c
    • Fixed a bug when not motion.conf is found
    • Removed printf from all files
    • Fixed the conf_list[] index in motion.c
  • RotateBswapFix Patch v 2 http://www.lavrsen.dk/twiki/bin/view/Motion/RotateBswapFix (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
  • 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 (Billl 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 Peter Holik (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
  • FreeBSD code changes not tested yet.

Release
  • Netcam error handling improvements and cleanup from Walgrind 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

Known Problems

  • See the http://www.lavrsen.dk/twiki/bin/view/Motion/BugReports for open bugs.
  • The pwc-ioctl.h is for pwc version 9.0.1, 10.0.6 and 10.0.7a. If you still use the pwc 8 series then you need to use the headerfile pwc-ioctl.h-pwc8.0 (copy the pwc-ioctl.h-pwc8.0 over pwc-ioctl.h). This is relevant for USB cameras using Philips chips.
  • Dimensions of camera image must have both height and width that are a multiple of 16. Thís is normally not a problem. All standard sizes like 640, 480, 352, 320, 288, 240, ...etc are multiples of 16.

Download

GPG Signature

Kenneth Lavrsen's public key can be found on keyservers or on this non-wiki webpage.

http://www.lavrsen.dk/publickey.htm

Signature is for the source tar.gz
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQBC/k4xMeY897Av6rIRArFTAJ9/68LYdNm0Wo2OF45Q4jyMJEsRfgCeIX/Y
W3GAeMX6+sU5Y6HSv5ZFhB0=
=kpxP
-----END PGP SIGNATURE----- 

-- KennethLavrsen - 13 Aug 2005
Topic revision: r4 - 13 Aug 2005, KennethLavrsen
Copyright © 1999-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Please do not email Kenneth for support questions (read why). Use the Support Requests page or join the Mailing List.
This website only use harmless session cookies. See Cookie Policy for details. By using this website you accept the use of these cookies.