Isaac Connor
41dc0212e0
Move include of algorithm up to top to hopefully fix issues with min and max being defined elsewhere and so compile fails
2021-02-16 10:39:04 -05:00
Isaac Connor
a82247b105
Some cleanups in disconnect
2021-02-16 10:39:04 -05:00
Isaac Connor
a56d78bb04
Don't sleep if Analyse returns false and we are terminating
2021-02-16 10:39:04 -05:00
Isaac Connor
71183a6002
fix case of vidWidth. Fixes #3162
2021-02-14 16:28:08 -05:00
Isaac Connor
9c3bf0af1d
Always default to mp4 for now
2021-02-14 09:49:30 -05:00
Isaac Connor
99264e4072
Fix swscale failing on resolution change. Fixes #3161
2021-02-12 11:55:25 -05:00
Isaac Connor
5a910c4a4b
use lock_guard instead of unique_lock
2021-02-12 10:45:32 -05:00
Isaac Connor
2cb6d21faf
get rid of while loop in ::Analyze. Switch login on if Ready() to bail early so we don't indent so much.
2021-02-12 10:38:21 -05:00
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