Isaac Connor
4915e940b7
clean out old mutex. Add event_mutex to protect around event creation/deletion
2021-02-12 10:14:35 -05:00
Isaac Connor
5663b05260
Merge pull request #3159 from Carbenium/camera-raii
...
Let Monitor own its Camera
2021-02-11 15:22:56 -05:00
Peter Keresztes Schmidt
3d759e1fe0
Monitor: Some reformatting of previously touched lines
2021-02-11 20:02:08 +01:00
Peter Keresztes Schmidt
c0151caa64
Monitor: Signal by making the camera a unique_ptr the ownership relation
...
In addition we get RAII and thus automatic destruction of the camera when the monitor is destructed.
Monitor API change: getCamera -> LoadCamera
If additional properties of the camera are needed externally they should be exposed directly via Monitor.
2021-02-11 19:22:22 +01:00
Peter Keresztes Schmidt
35514649c9
Monitor: Make audio and video streams directly accessible
...
Also remove Camera::getId() which returend the monitor ID. Since a camera is owned by an monitor, there is no need for this. Also it causes a circular include.
2021-02-11 19:22:22 +01:00
Peter Keresztes Schmidt
ede811df50
zmc: Simplify Monitor's shutdown procedure
...
disconnect() is already called in the destructor. Since `monitors` goes out of scope all instances will get automatically destructed. There is no need to manually call disconnect().
2021-02-11 19:22:22 +01:00
Peter Keresztes Schmidt
91aeb325dd
Monitor: Close monitor on destruction
...
This ensures the proper shutdown sequence when not calling Close() externally (e.g when reconnecting).
2021-02-11 19:22:22 +01:00
Peter Keresztes Schmidt
0a665c0710
Monitor: Close the associated camera when closing the monitor
...
The camera is owned by the monitor. There is no reason to keep the camera open, when the owner is closed.
2021-02-11 19:22:22 +01:00
Isaac Connor
79d4f65164
Merge branch 'master' of github.com:zoneminder/ZoneMinder
2021-02-11 11:50:09 -05:00
Isaac Connor
231c9303fd
Handle null vidWidth
2021-02-11 11:50:05 -05:00
Isaac Connor
2742485a61
Merge pull request #3157 from Carbenium/zmc-deadlock
...
Fix a possible deadlock on zmc shutdown and reconnect
2021-02-11 11:28:36 -05:00
Isaac Connor
af354eb718
Merge pull request #3158 from Carbenium/tsan
...
Build: Add ThreadSanitizer (TSan) support
2021-02-11 10:19:31 -05:00
Peter Keresztes Schmidt
42484e6434
zmc: Fix a deadlock on shutdown/reconnection
...
First stop the analysis threads, then close the monitors and thus drain the packet queues before trying to join the analysis threads since they might hang while waiting for the next packet to arrive.
2021-02-11 15:48:22 +01:00
Peter Keresztes Schmidt
4c07bf5aae
Build: Add ThreadSanitizer (TSan) support
...
Enable it by setting -DTSAN=1
This setting is mutually exclusive with -DASAN
2021-02-11 00:38:31 +01:00
Isaac Connor
33cabd3621
Merge pull request #3156 from dodexahedron/3155-log-copies-and-moves
...
Added logging for copies/moves to zmfilter.pl
2021-02-10 17:35:06 -05:00
Brandon Thetford
a7eab75cf9
Added logging for copies/moves to zmfilter.pl
2021-02-10 15:31:10 -07:00
Isaac Connor
cca4d18d26
need <algorithm> for std::max
2021-02-10 17:29:51 -05:00
Isaac Connor
51f2d120e4
Free raw image after motion detection when doing passthrough and not saving jpegs
2021-02-10 17:07:58 -05:00
Isaac Connor
cc09f68426
We use our own jquery. Debian can do it's own thing
2021-02-10 17:07:18 -05:00
Isaac Connor
393e8b582a
Move the logic of whether to queue a packet into packetqueue::queuePacket
2021-02-10 14:11:00 -05:00
Isaac Connor
0a1bd3537d
ready_count is now max(warmup_count,pre_event_count). This should ensure that we have enough packets in the packet queue when creating an event.
2021-02-10 13:54:20 -05:00
Isaac Connor
991e8dc860
Include mysqld_error.h so we can test for specific errors
2021-02-10 13:54:20 -05:00
Isaac Connor
64cfac9255
Only loop on SQL insert for wait timeout error, not others
2021-02-10 13:54:20 -05:00
Isaac Connor
a6827674f9
Merge pull request #3154 from Carbenium/no-queue
...
Monitor: Don't push packets into the packet queue when in Monitor mode
2021-02-10 10:41:56 -05:00
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
c8f4a18c7c
Use more modern way of including style sheet. Hopefully fixes deprecated add_stylesheet
2021-02-10 10:01:15 -05: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
b18522b6c0
Merge branch 'master' of github.com:ZoneMinder/zoneminder
2021-02-09 20:29:45 -05:00
Isaac Connor
fab7efa003
Fix PrimeCapture on local cams. We need to be able to call it for each monitor
2021-02-09 20:29:37 -05: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