Motion - Bug Report 2004x 12x 02x 115356

BUG: rotate 180 option create segfault

This program runs well straight from the debian package with the given config file. However, when I add the command "rotate 180" in the config file, motion segfault.

Test case

Console output: root@stargate:/boot# motion Processing thread 0 - config file /home/jeremy/.motion/motion.conf Thread0 device: /dev/video0 input: 8 free(): invalid pointer 0x4060b008! Segmentation fault root@stargate:/boot#

Since I installed a binary Debian package I have no output for ./configure or make, sorry.

Here is the config file used:

# /etc/motion/motion.conf
#
# motion example config file provided by the Debian motion package.
#
# You may want to investigate /usr/share/doc/motion/examples/motion-dist.conf.gz
# for further configuration options. Also, refer to the motion man page and
# /usr/share/doc/motion/motion_guide.html for information on configuration options.


############################################################
# Daemon
############################################################

#Start in daemon (background) mode and release terminal (default: off)
##daemon on


###########################################################
# Capture device options
############################################################

#Videodevice to be used for capturing  (default /dev/video0)
videodevice /dev/video0

#The video input to be used (default: 8)
#Should normally be set to 1 for video/TV cards, and 8 for USB cameras
input 8

#The video norm to use (only for video capture and TV tuner cards)
#Values: 0 (PAL), 1 (NTSC), 2 (SECAM), 3 (PAL NC no colour). Default: 0 (PAL)
norm 0

#The frequency to set the tuner to (kHz) (only for TV tuner cards) (default: 0)
frequency 0

#Image width (pixels). Valid range: Camera dependent, default: 352
width 320

#Image height (pixels). Valid range: Camera dependent, default: 288
height 240

#Maximum number of frames to be captured per second.
#Valid range: 2-100. Default: 100 (almost no limit).
framerate 4

#URL to use if you are using a network camera, size will be autodetected (incl http://)
#Must be a URL that returns single jpeg pictures. Default: Not defined
; netcam_url value

#Username and password for network camera (only if required). Default: not defined
; netcam_userpass value

#Let motion regulate the brightness of a video device (default: off)
#Only recommended for cameras without auto brightness
##auto_brightness off
auto_brightness on

rotate 180

############################################################
# Round Robin (multiple inputs on same video device name)
############################################################

#Number of frames to capture in each roundrobin step (default: 1)
roundrobin_frames 1

#Number of frames to skip before each roundrobin step (default: 1)
roundrobin_skip 1

#Try to filter out noise generated by roundrobin (default: 0)
switchfilter 0


############################################################
# Motion Detection Settings:
############################################################

#Threshold for number of changed pixels in an image that
#triggers motion detection (default: 1500)
threshold 1500

#Automatically tune the threshold down if possible (default: on)
threshold_tune off

#Noise threshold for the motion detection (default: 32)
noise_level 32

#Automatically tune the noise threshold (default: on)
noise_tune off

#Enables motion to adjust its detection/noise level for very dark frames
#don't mix with noise_tune (default: off)
night_compensate off

#Despeckle motion image using (e)rode or (d)ilate (Default: not defined)
#Recommended value is EedD. Any combination (and number of) of E, e, d, and D is valid.
#Comment out to disable
despeckle EedD

#PGM file to use as a sensitivity mask.
#Full path name to. (Default: not defined)
; mask_file value

#Try to filter out sudden light switches (default: off)
lightswitch off

#Picture frames must contain motion at least the specified number of frames
#in a row before they are detected as true motion. At the default of 1, all
#motion is detected. Valid range: 1 to thousands, recommended 1-10
minimum_motion_frames 1

#Specifies the number of pre-captured (buffered) pictures from before motion
#was detected that will be output at motion detection (default: 0)
pre_capture 0

#Number of frames to capture after motion is no longer detected (default: 0)
post_capture 0

#Minimum gap between two events (seconds) (default: 60)
#An event is defined as a series of motion images taken within a short timeframe.
gap 60

#Minimum gap in seconds between the storing pictures while detecting motion.
#Default: 0 = as fast as possible (given by the camera framerate)
minimum_gap 0

#Maximum length in seconds of an mpeg movie (common for ffmpeg and Berkeley types)
#When value is exceeded a new mpeg file is created. (Default: 0 = infinite)
max_mpeg_time 0

#Number of frames per second to capture when not detecting
#motion (saves CPU load) (Default: 0 = disabled)
low_cpu 0

#Always save images even if there was no motion (default: off)
output_all off


############################################################
# Image File Output
############################################################

#Output 'normal' pictures when motion is detected (default: on)
output_normal on

#Output pictures with only the pixels moving object (green ghost images) (default: off)
output_motion off

#The quality (in percent) to be used by the jpeg compression (default: 75)
quality 75

#Output ppm images instead of jpeg (default: off)
ppm off


############################################################
# Film (mpeg) File Output - ffmpeg based
############################################################

#Use ffmpeg's libavcodec to encode mpeg movies in realtime (default: off)
#ffmpeg_cap_new on

#Use ffmpeg to make movies with only the pixels moving
#object (green ghost images) (default: off)
#ffmpeg_cap_motion on

#Use ffmpeg to encode a timelapse movie (default value 0 = off - else save frame every Nth second)
#ffmpeg_timelapse 0

#The file rollover mode of the timelapse video
#Valid values: hourly, daily (default), weekly-sunday, weekly-monday, monthly, manual
#ffmpeg_timelapse_mode daily

#Bitrate to be used by the ffmpeg encoder (default: 400000)
#ffmpeg_bps 500000


############################################################
# Film (mpeg) File Output - Berkeley mpeg_encode Based
############################################################

#Use mpeg_encode from Berkeley to encode movies  (default: off)
mpeg_encode off

#Path to the mpeg_encode binary (default: /usr/bin/mpeg_encode)
mpeg_encode_bin /usr/bin/mpeg_encode

#Adjust the number of frames for an mpeg movie (only mpeg_encode) to get 25fps  (default: off)
adjust_rate off

#Delete jpeg images after they have been converted to movies by mpeg_encode (default: off)
#This option is only used when mpeg_encode is on
jpg_cleanup off


############################################################
# Snapshots (Traditional Periodic Webcam File Output)
############################################################

#Make automated snapshot every N seconds (default: 0 = disabled)
snapshot_interval 0


############################################################
# Text Display
# %Y = year, %m = month, %d = date,
# %H = hour, %M = minute, %S = second, %T = HH:MM:SS
# %v = event, %q = frame number, \n = new line
# You can put quotation marks around the text to allow
# leading spaces
############################################################

#Locate and draw a box around the moving object (default: off)
locate off

#Draws the timestamp using same options as C function strftime(3)
#Default: %Y-%m-%d\n%T = date in ISO format and time in 24 hour clock
#Text is placed in lower right corner
text_right %Y-%m-%d\n%T-%q

#Draw a user defined text on the images using same options as C function strftime(3)
#Default: Not defined = no text
#Text is placed in lower left corner
; text_left value

#Draw the number of changed pixed on the images (default: off)
#Will normally be set to off except when you setup and adjust the motion settings
#Text is placed in upper right corner
text_changes off


############################################################
# Target Directories and filenames For Images And Films
# For the options snapshot_, jpeg_, mpeg_ and timelapse_filename
# you can use conversion specifiers
# %Y = year, %m = month, %d = date,
# %H = hour, %M = minute, %S = second,
# %v = event, %q = frame number
# Quotation marks round string are allowed.
############################################################

#Target base directory for pictures and films
#target_dir /var/www/cam1
target_dir /home/jeremy/webcam

#File path for snapshots (jpeg or ppm) relative to target_dir
#Default: %v-%Y%m%d%H%M%S-snapshot
#Default value is equivalent to legacy oldlayout option
#For Motion 3.0 compatible mode choose: %Y/%m/%d/%H/%M/%S-snapshot
#File extension .jpg or .ppm is automatically added so do not include this.
#Note: A symbolic link called lastsnap.jpg created in the target_dir will always
#point to the latest snapshot, unless snapshot_filename is exactly 'lastsnap'
snapshot_filename %v-%Y%m%d%H%M%S-snapshot

#File path for motion triggered images (jpeg or ppm) relative to target_dir
#Default: %v-%Y%m%d%H%M%S-%q
#Default value is equivalent to legacy oldlayout option
#For Motion 3.0 compatible mode choose: %Y/%m/%d/%H/%M/%S-%q
#File extension .jpg or .ppm is automatically added so do not include this
#For use of Berkeley mpeg_encode this parameter but be set as follows:
#If berkeley_single_directory = on: %v-%Y%m%d%H%M%S-%q
#If berkeley_single_directory = off: %Y/%m/%d/%H/%M/%S-%q
jpeg_filename %v-%Y%m%d%H%M%S-%q

#File path for motion triggered ffmpeg films (mpeg) relative to target_dir
#Default: %v-%Y%m%d%H%M%S
#Default value is equivalent to legacy oldlayout option
#For Motion 3.0 compatible mode choose: %Y/%m/%d/%H%M%S
#File extension .mpg is automatically added so do not include this
ffmpeg_filename %v-%Y%m%d%H%M%S

#File path for timelapse mpegs relative to target_dir (ffmpeg only)
#Default: %v-%Y%m%d-timelapse
#Default value is equivalent to legacy oldlayout option
#For Motion 3.0 compatible mode choose: %Y/%m/%d-timelapse
#File extension .mpg is automatically added so do not include this
timelapse_filename %v-%Y%m%d-timelapse

#Use single directory structure (For Berkeley mpeg_encode feature only)
#on = place mpeg_encode file in target_dir with name YYYYMMDDHHMMSS-n
#off (default) = place files as target_dir/YYYY/MM/DD/SS-n
berkeley_single_directory off

#File path for prediction files. (Default: %v-%Y%m%d%H%M%S)
#Default value is equivalent to legacy oldlayout option
#For Motion 3.0 compatible mode choose: %Y/%m/%d/%H%M%S
#File extension .desc is automatically added so do not include this
predict_filename %v-%Y%m%d%H%M%S


############################################################
# Live Webcam Server
############################################################

#The mini-http server listens to this port for requests (default: 0 = disabled)
webcam_port 0

#Quality of the jpeg images produced (default: 30)
webcam_quality 25

#Only output frames if motion is detected (default: off)
webcam_motion off

#Maximum framerate for webcam streams (default: 100)
webcam_maxrate 2

#Restrict webcam connections to localhost only (default: on)
webcam_localhost off

#Limits the number of images per connection (default: 0 = unlimited)
#Number can be defined by multiplying actual webcam rate by desired number of seconds
#Actual webcam rate is the smallest of the numbers framerate and webcam_maxrate
webcam_limit 0


############################################################
# XML-RPC Based Control
############################################################

#TCP/IP port for the xml-rpc server to listen on (default: 0 = disabled)
control_port 0

#Restrict control connections to localhost only (default: on)
control_localhost off


############################################################
# Tracking (Pan/Tilt)
############################################################

#Type of tracker (0=none (default), 1=stepper, 2=iomojo, 3=pwc)
track_type 0

#Serial port of motor (default: none)
; track_port value

#Motor number for x-axis (default: -1)
track_motorx -1

#Maximum value on x-axis (default: 0)
track_maxx 0

#ID of an iomojo camera if used (default: 0)
track_iomojo_id 0

#Speed to set the motor to (default: 255)
track_speed 255

#Number of steps to make (default: 40)
track_stepsize 0


############################################################
# External Commands, Warnings and Logging:
############################################################

#Output less information and don't sound beeps when detecting motion (default: off)
quiet on

#Always display the difference between captured and reference frame (default: off)
always_changes off

#Email address to send a warning to when detecting motion (default: none)
; mail value

#External command to be executed when detecting motion (default: none)
; execute value

#Number to send an sms to with sms_client (default: none)
; sms value

#Command to be executed each time an image is saved (default: none)
; onsave value

#Command to be executed each time an mpeg movie is created (default: none)
; onmpeg value

#Command to be executed each time a file generated by ffmpeg is closed (default: none)
; onffmpegclose value


############################################################
# Common Options For MySQL and PostgreSQL database features.
# Options require the MySQL/PostgreSQL options to be active also.
############################################################

#Log to the database when creating motion triggered image file  (default: on)
sql_log_image on

#Log to the database when creating a snapshot image file (default: on)
sql_log_snapshot on

#Log to the database when creating motion triggered mpeg file (default: off)
sql_log_mpeg off

#Log to the database when creating timelapse mpeg file (default: off)
sql_log_timelapse off

#Log to the database when creating a prediction file (default: off)
sql_log_prediction off


############################################################
# Database Options For MySQL
############################################################

#Mysql database to log to (default: not defined)
; mysql_db value

#The host on which the database is located (default: not defined)
; mysql_host value

#User account name for MySQL database (default: not defined)
; mysql_user value

#User password for MySQL database (default: not defined)
; mysql_password value


############################################################
# Database Options For PostgreSQL
############################################################

#PostgreSQL database to log to (default: not defined)
; pgsql_db value

#The host on which the database is located (default: not defined)
; pgsql_host value

#User account name for PostgreSQL database (default: not defined)
; pgsql_user value

#User password for PostgreSQL database (default: not defined)
; pgsql_password value

#Port on which the PostgreSQL database is located (default: 5432)
pgsql_port 5432


############################################################
# Video Loopback Device (vloopback project)
############################################################

#Output images to a video4linux loopback device
#The value '-' means next available (default: not defined)
; video_pipe value

#Output motion images to a video4linux loopback device
#The value '-' means next available (default: not defined)
; motion_video_pipe value


############################################################
# Prediction Feature (experimental and incomplete)
############################################################

#Enable prediction
predict_enable off

#Threshold for prediction (default: 90)
predict_threshold 90

#Description for prediction
; predict_description (default: not defined) value


############################################################
# Debugging for Programmers - Ignore
# Thread Config Files - One for each camera
# If Only One Camera - Use default values in this file
############################################################

#Debug option for programmers - not normally used
debug_parameter 0

#thread /etc/motion/thread1.conf
#thread /etc/motion/thread2.conf
#thread /etc/motion/thread3.conf
#thread /etc/motion/thread4.conf

Environment

Motion version: 3.1.17
Shared libraries: curl 7.12.2-2
Server OS: Pure Debian system with Linux 2.4.26-1 (unmodified)

-- JeremyBrun - 02 Dec 2004

Follow up

There is a known issue with rotate which should be fixed in 3.1.18 (not yet released).

If I could kindly ask you to try it and report back if it fixes your problem. You have to build it from source. It is not difficult.

The latest snap is MotionRelease3x1x18snap7

I notice your config file contains the first sections twice. Is that a copy/paste error?

You can show a text file without TWiki interpreting anything by putting <VERBATIM> and </VERBATIM>

-- KennethLavrsen - 02 Dec 2004

Thank you for following up smile

I checked my config file and yes I did a cut/paste error. I don't think I will have time to try to install the last CVS snapshot because I have tons of things to do right now and the system works well anyway (I just don't use rotate).

However I observed another odd behaviour: when using rotate 90 or rotate 270 it seems that the "motion detection" gets trigger all the time. I mean, that even when nothing is moving in fromt of the webcam, it still capture picture at a very fast rate. A not change to the threshold level slows it down (I tried threshold up to 6000, no difference). Do you want me to fill up a more detail bug repport?

-- JeremyBrun - 03 Dec 2004

You description is fine.

I will let Per evaluate if this was part of the fixes made.

-- KennethLavrsen - 03 Dec 2004

Jeremy, this is strange - I cannot recall that the old rotate code segfaulted. Anyway, the rotate code in the upcoming 3.1.18 release has been rewritten substantially. When you find the time for it, please download the latest 3.1.18 snap and see if the problems (segfault + perpetual motion) remain.

-- PerJonsson - 20 Dec 2004

Fix record

We never got a reply from the submitter. But I am sure this is a duplicate of BugReport2005x01x13x131304 which has been resolved. Otherwise Jeremy must follow up reporting if the latest snaps of 3.1.18 do not solve the problem.

-- KennethLavrsen - 15 Jan 2005
Topic revision: r7 - 30 Jan 2005, KennethLavrsen
Copyright © 1999-2017 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.