Commit Graph

17866 Commits

Author SHA1 Message Date
Peter Keresztes Schmidt 2f5dff7244 Monitor: Don't push packets into the packet queue when in Monitor mode
There is no consumer for the packets in this mode, so don't queue them up. This saves quite a bit of RAM for mode of operation.
2021-02-10 16:13:47 +01:00
Isaac Connor c32fbed88a
Merge pull request #3153 from Carbenium/drop-zma
Drop relicts of zma
2021-02-10 08:31:13 -05:00
Peter Keresztes Schmidt 687ba03eb4 Drop relicts of zma 2021-02-10 13:26:25 +01:00
Isaac Connor 2308bfab8e Add groovy and hirsute to ubuntu builds 2021-02-09 23:32:27 -05:00
Isaac Connor 8f783c0ec4 Must also include cstdarg for va_start etc al 2021-02-09 23:32:27 -05:00
Isaac Connor 9879a40c4b Must include cstring 2021-02-09 23:32:27 -05:00
Andrew Bauer 2a440685eb remove zma binary from rpm specfile 2021-02-09 20:55:52 -06:00
Isaac Connor dcf1ff3133
Merge pull request #3152 from Carbenium/ffmpeg-warnings
Fix some ffmpeg deprecation warnings
2021-02-09 20:15:41 -05:00
Isaac Connor 7ed7ee887b
Merge pull request #3151 from Carbenium/analysis-thread-crash
AnalysisThread: Make the class un-movable
2021-02-09 18:21:35 -05:00
Peter Keresztes Schmidt a66a9a6f10 Rtsp: Use AvStream.codecpar if available
.codec has been deprecated in libavf 57.33.100
2021-02-10 00:21:23 +01:00
Peter Keresztes Schmidt e18f9e1f03 FFmpeg: Drop function which is not needed with supported ffmpeg versions
avformat_alloc_output_context2 was introduced in libavformat 53.2 (2011). Drop our own implementation which was used if the library version wasn't available. It isn't used anymore an causes compile warnings.
2021-02-10 00:21:23 +01:00
Peter Keresztes Schmidt d0b80d63c3 FFmpeg: Fix a version check to avoid deprecation warnings on newer systems 2021-02-10 00:20:34 +01:00
Peter Keresztes Schmidt 0380bee130 AnalysisThread: Make the class un-movable
We depend on an unchanged value of "this" after the creation of the thread otherwise undefined values would be accessed within the std::thread.
2021-02-09 23:54:50 +01:00
Peter Keresztes Schmidt 8fa1249b33 Utils: Add some helper to create unique_ptrs
They follow the C++14 API and can be removed once the language level is increased.
2021-02-09 23:52:13 +01:00
Isaac Connor 67cd038a4f Include pre-alarm frames in db 2021-02-09 15:33:09 -05:00
Isaac Connor 727594e3af Fix rotated images by allocating image with camera dimensions 2021-02-09 14:53:14 -05:00
Isaac Connor 13d72bdec6 Merge branch 'master' of github.com:ZoneMinder/zoneminder 2021-02-09 14:24:20 -05:00
Isaac Connor 470739e1d5 Add debugging if streamStatus.status doesn't exist 2021-02-09 14:24:09 -05:00
Isaac Connor 79ac92c76d spacing 2021-02-09 14:23:47 -05:00
Isaac Connor 1780cfbff1 Add frames_duration 2021-02-09 14:23:34 -05:00
Isaac Connor c2ac171811 truncate file when logging to 255 chars so it gets into the db 2021-02-09 14:23:15 -05:00
Isaac Connor 9b3d423f3d Separate duration==endtime-starttime from Frames Duration 2021-02-09 14:22:23 -05:00
Isaac Connor a5519075f5 Also save ALERT frames to db 2021-02-09 14:22:02 -05:00
Isaac Isaac c233bf3463 spacing and a fix for duplicated for loop setting up rtsp server 2021-02-09 13:18:34 -05:00
Isaac Isaac 032420beb2 Don't need to init mVideoStream etc as they are done in Camera(). Set stream_index in packet. 2021-02-09 13:16:19 -05:00
Isaac Connor 05b5927f01 Don't queue audio packets if we aren't saving audio 2021-02-09 11:54:38 -05:00
Isaac Connor 1bce4f6bfa When flushing queues, will return 0 when done. Handle it. Also set next dts from pkt, not opkt 2021-02-09 11:30:42 -05:00
Isaac Connor e3eebeb9dd Must return ret to handle case where ret=0. 2021-02-09 11:30:06 -05:00
Isaac Connor aab3aed791
Merge pull request #3145 from Carbenium/analysis-thread
AnalysisThread: Move it over to std::thread
2021-02-09 09:26:47 -05:00
Isaac Connor 1bd2fd639e
Merge pull request #3147 from Carbenium/issue-3146
Build: Work around CMake version on Xenial not supporting cxx_std_* flags
2021-02-09 09:26:22 -05:00
Isaac Connor 98d030a5d8
Merge pull request #3148 from Carbenium/comms-namespace
Fix some RTSP server related crashes
2021-02-09 09:16:51 -05:00
Peter Keresztes Schmidt 23a4b5087c RTSPServerThread: Fix a crash during construction
It's a bad idea to use a shared_ptr instance from which the data just got moved away. Rename the instance variable to distinguish them.
2021-02-09 14:50:07 +01:00
Peter Keresztes Schmidt 4056782954 Comms: Move all classes to ZM:: namespace
The Socket class collides with a class named the same way from liblive555. This confuses the linker and links the wrong object leading to a crash when connecting to the RTSP server.
2021-02-09 14:45:33 +01:00
Peter Keresztes Schmidt 426cace32e Build: Raise required CMake version to 3.5.0
This is the version found in Xenial which is the oldest we support.
2021-02-09 13:20:27 +01:00
Peter Keresztes Schmidt 4ebfbdef5d Build: Work around CMake version on Xenial not supporting cxx_std_* flags
Closes #3146
2021-02-09 13:20:27 +01:00
Peter Keresztes Schmidt 888ddc5d63 AnalysisThread: Sprinkle some more std::chrono 2021-02-09 12:26:53 +01:00
Peter Keresztes Schmidt 3ba8ff604f AnalysisThread: Use std::this_thread::sleep_for instead of usleep 2021-02-09 12:26:53 +01:00
Peter Keresztes Schmidt 4cd70fec1a Utils: Add some typedefs for std::chrono durations 2021-02-09 12:26:53 +01:00
Peter Keresztes Schmidt b22dbd4788 AnalysisThread: Move it over to std::thread 2021-02-09 12:26:53 +01:00
Isaac Connor 11d6de1aca
Merge pull request #3144 from Carbenium/asan
Build: Add support for compiler specific options and ASan support
2021-02-08 17:28:18 -05:00
Peter Keresztes Schmidt 424e6e14f6 Build: Add -DASAN option to build with AddressSanitizer support
Use this option only for debugging purposes.
2021-02-08 23:13:31 +01:00
Peter Keresztes Schmidt 825ca07561 Build: Use zm-* interfaces to set cxx standard and warning flags 2021-02-08 23:08:22 +01:00
Peter Keresztes Schmidt 00104b020c Build: Link our libs and executable targets against zm-core-interface 2021-02-08 23:08:22 +01:00
Peter Keresztes Schmidt 44be2ccf6c Build: Add a set of interface targets which can be used to set compilation options
zm-compile-option-interface:
  Use to set various compiler/linker flags

zm-feature-interface:
  Use to set required compiler features.
  See https://cmake.org/cmake/help/latest/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.html

zm-warning-interface:
  Use to set compiler warning flags. If need be a zm-no-warning-interface can be added which suppresses all warning for targets linked against it. Useful for in-tree dependencies from which we don't want compiler warnings.

zm-core-interface:
  That's the interface one should normally link against to get all the options.
2021-02-08 23:08:22 +01:00
Peter Keresztes Schmidt 407ea70991 Build: Add support for compiler detection
Using this system we can separate settings for different compilers nicely.
2021-02-08 23:08:22 +01:00
Peter Keresztes Schmidt 36253048f5 Build: Move platform detection to its own module 2021-02-08 23:08:22 +01:00
Isaac Connor 4d0800151a
Merge pull request #3143 from Carbenium/close-event-crash
Monitor: Don't segfault in closeEvent if mmap is already unmapped
2021-02-08 15:32:38 -05:00
Isaac Connor a7da2e9b8a
Merge pull request #3142 from Carbenium/log-db-lock
Logger: Try harder to obtain the DB lock
2021-02-08 15:30:22 -05:00
Peter Keresztes Schmidt 6fd6654488 Monitor: Don't segfault in closeEvent if mmap is already unmapped 2021-02-08 19:47:40 +01:00
Peter Keresztes Schmidt 7e7b1a0b1f Logger: Try harder to obtain the DB lock
Since we are now multi-threaded it can happen quite easily that a log message should be written to the DB on one thread while the other thread executes another query. Don't bail out immediately in the logging code, instead try to obtain the lock within 1s.
2021-02-08 19:07:01 +01:00