1. Add eventstart/eventend as options for webcontrol api.
2. Revise action names on webcontrol html.
3. Revise variable name in code from makemovie to event_stop.
4. Revise some code indentation for code-folding in IDE
Closes#796
1. Add separate stream for motion images.
2. Add separate stream for source images from camera.
3. Add additional preview option(3) for showing live stream next to motion stream.
4. Add additional preview option(4) for showing source images from camera.
5. Refactor webu_stream to improve efficiency
6. Improved shutdown process for webu_streams.
7. Revised variable name in webu_html to correlate with what it contains.(camid instead of thrd)
Revisions to configuration options.
1. Revise config options to be `movie_` and `picture_`
2. Revise config options to align with topic and code.
* motion_video_pipe, ipv6_enabled, rtsp_uses_tcp
* switchfilter, logfile, process_id_file
3. Revise depreciated options to still be valid for webcontrol and config files.
4. Revise distributed config files to only include most common options
5. Revise sequence of config options to be arranged by topic.
6. Revise code to use names consistent with config parms.
7. Revise manual, guide and code to specify same default values.
8. Update guide and manual to reflect revised option names.
Implement micro-httpd for providing webcontrol and streams
1. Add tls support for webcontrol and streams. aka ssl/tls, https
2. Add functionality to provide streams on single port
3. Add functionality for additional authentication methods of webcontrol.
4. Add functionality for providing static images
5. Update documentation for new functionality.
6. Resolve issue with stream_preview_newline
7. Add functionality for specifying camera in webcontrol and streams via camera_id
8. Depreciated functionality to specify substream via port
9. Add functionality to specify substream via a URL
10. Revise `quit` to only be available via text (programmatic) interface
11. Added functionality for CORS header on webcontrol interface
Closes#526Closes#661Closes#709Closes#737Closes#750
1. Revise v4l2 for new control option of vid_control_params
2. Refactor most of the video_v4l2.c code
3. Revisions required for video_bktr.c
4. Revise sequence for configuration parms on webui to ensure similar parameters are together.
Closes#363Closes#551Closes#552Closes#582Closes#608Closes#613
* Fix pthread_setname_np detection
Commit 6617c6f2c8 replaced
AC_LINK_IFELSE with AC_COMPILE_IFELSE. This has broken the
pthread_setname_np detection as compilation will always succeed even if
pthread_setname_np is not available (if the function is not found, a
simple warning will be displayed in config.log).
The correct fix is to put back AC_LINK_IFELSE with -pthread in LIBS
otherwise compilation will fail on toolchain without pthread_setname_np.
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
* Check for pthread_getname_np
On some toolchains (like musl), pthread_setname_np is available but not
pthread_getname_np so add this check in configure.ac
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
* Revision for detection of XSI vs GNU variants of strerror
Implement a new configuration option which allows users to specify the
type of parameters which can be accessed via the webcontrol page. The
new option permits levels 0(none) to 3(restricted) with a default of
none. This option is to enhance the security associated with the
application for users that may expose the webcontrol port publicly.
Close#515
* High Resolution
Refactor the netcam_rtsp module and associated image variables to allow for processing a dual stream from rtsp cameras.
Continue the process of segregating the functionality of the netcams into distinct modules based upon their function.
* Add a runtime argument to dump config options
In order to simplify support requests, we can now dump all enabled
config options to the log(file), with argument 'o' for 'options'.
Any likely sensitive information will be redacted.
* Documentation update for dump config argument
1. Revised the MYSQL/PGSQL to search directories
2. Revised the MYSQL/PGSQL to use the package config files if available.
3. Revised the CPU options to honor the --without-optimizecpu option.
4. Revised the include for MYSQL/PGSQL to conform with search and package results.
Add an (int) flag to the context structure to flag config files
loaded by `camera_dir`. We do this to skip writing them out
as separate `camera` lines.
Also fixed the printing of a blank line to the config when
printing out the default disabled `camera` line.
pthread_setname_np is a nonstandard GNU extension so put back its
detection, deleted by commit ab5835d435,
to be able to cross-compile motion with non glibc toolchains
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
* Added <assert.h> to motion.h, so we can do assertions
* Changed the return-code semantics of rtsp_decode_video() and
rtsp_decode_packet() to a tristate: negative on error, zero if no
output is currently available, positive if output was successfully
obtained
* Assert that avcodec_send_packet() never returns AVERROR(EAGAIN)
(i.e. we never overfill the codec with packets)
* Treat AVERROR(EAGAIN) from avcodec_receive_frame() as a no-output,
non-error condition (it means we need to send more packets before we
can get a frame)
* Changed netcam_read_rtsp_image() to handle the case where the codec
has a frame ready for output without needing any new packets
* Simplified the logic in the netcam_read_rtsp_image() packet-read loop
* Improved wording of some log messages
* Removed needless variable initializations
This commit includes:
1. Consolidate functions into appropriate modules
2. Rename modules to reflect contents (v4l2, bktr, common)
3. Combines v4l2 and bktr so they can be used together
4. Implements functional prefixes
5. Uses HAVE_V4L2, HAVE_BKTR instead of WITHOUT_
6. Include pthread_np.h for FreeBSD
Only basic webp compression is supported (the only tunable is 0-100%
compression adjustment), without EXIF metadata.
Motion build scripts are configured to build in the support by default
and will emit an error if the needed library is missing. Suport can be
manualy disabled at configuration stage adding --without-libwebp.
Documentation update will follow in a separate commit.
Tested on x86-64 Linux only.
This commit adds the functionality to completely mask out
user specified areas of the images via a pgm file. The
masking is applied only to the y component of the image
From reviewing the resulting image, it does not appear that
it is necessary to apply the mask to the cr or cb components.
It may be desired to apply the mask to these components in the
future to have a true digital mask rather than just a visual
mask. As indicated in the code comments, the resulting blocked
section appear as white in the images since this facilitates
quicker processing.
This commit revises the time variable that is attached to the images
this revises from the tm structure to a timevalue structure so that we
can get to a precision level of greater than one second.