Isaac Connor
01834d4ddc
finish converting Capture to std::shared_ptr
2021-05-09 07:35:47 -04:00
Isaac Connor
e970c46f7b
fix memleak. Fixes #3217
2021-05-09 07:18:36 -04:00
Isaac Connor
2cf6ad8089
Switch ZMPacket * to a shared_ptr<ZMPacket>. This is so that in LockedPacket we can unlock and then notify and be confident that packet_ won't have been deleted. Change ZMPacket->timestamp to be a timeval instead of timeval *. This might not have been necessary but I like it. No longer cuse the ZMPacket object to wrap the shared image buffers and timestamps. Use a vector for image_buffers.
2021-05-08 21:14:20 -04:00
Isaac Connor
9ee24170a9
use packetqueue.unlock instead of deleting the lock so that we wake up people waiting
2021-05-08 15:57:00 -04:00
Isaac Connor
d3e91da514
sigh. Move the snap unlock further down protecting another use of snap. Use a video test instead of image count to determine videoness of the snap
2021-05-08 12:35:28 -04:00
Isaac Connor
bd6566a819
Have to clearpacket while holding the lock on snap. Otherwise it can get deleted the moment we unlock it.
2021-05-08 12:26:13 -04:00
Isaac Connor
7efbf78260
Merge branch 'master' of github.com:ZoneMinder/zoneminder
2021-05-07 14:23:39 -04:00
Isaac Connor
a91197b47c
reset score_ to zero when we return for failing to meet pixel filters
2021-05-07 14:23:36 -04:00
Isaac Connor
4685c63fab
Add early return if pktQueue is empty so we can assume that it isn't below. Add notifications if we wake up and find that we have terminated so as to wake up any other waiters. Fixes failure to terminate when deinterlacing because both decoder and analysis are waiting
2021-05-07 14:04:51 -04:00
Isaac Connor
9c6d3989d3
Fix cases of failing to get second packet in de-interlacing
2021-05-07 14:03:36 -04:00
Isaac Connor
5ca5ce32e9
More debugging code, use nullptr instead of null
2021-05-07 09:11:00 -04:00
Isaac Connor
43f2f195f1
Fix a case in get_event_start_packet_it where if no pre_event_count we log an error and maybe don't start on a keyframe
2021-05-07 09:10:26 -04:00
Isaac Connor
4ea48708ed
move the code that waits for decoder to outside the motion detection area. In record mode decoding can happen behind analysis which seems like a good idea, except that then analysis won't free up the raw image.
2021-05-07 09:09:40 -04:00
Isaac Connor
442f126193
Fix compile on xenial which doesn't have hwaccel
2021-05-06 11:04:38 -04:00
Isaac Connor
b0b6de948d
Add h265 encoding with libx265, hevc_vaapi and hevc_nvenc
2021-05-05 16:47:39 -04:00
Isaac Connor
31a95fa27c
add nvenc support
2021-05-05 13:58:31 -04:00
Isaac Connor
3645ccea1b
Make vaapi accelerated encoding work
2021-05-04 20:20:33 -04:00
Isaac Connor
8f27db5d6f
Do not stop dbQueue in logTerm. dbQueue is not just for logging.
2021-05-04 14:22:02 -04:00
Isaac Connor
4f4a1a4565
if sendTextFrame fails, just exit.
2021-05-03 16:27:37 -04:00
Isaac Connor
934c726beb
Handle camera not being defined in SubpixelOrder and Colours. Remove subpixelorder as it exists in camera only
2021-05-03 15:19:45 -04:00
Isaac Connor
80d2f9f098
Revert "Don't consult a Camera object to return colours and subpixelorder, we have those as members. Fixes crash in zms"
...
This reverts commit 48f79da892
.
2021-05-03 14:19:34 -04:00
Isaac Connor
bc6ba0a772
Merge branch 'master' of github.com:ZoneMinder/zoneminder
2021-05-03 13:18:51 -04:00
Isaac Connor
8bd876d8c8
improve warning message to include the values that don't match
2021-05-03 13:18:39 -04:00
Isaac Connor
90dff85e40
Only default to BGRA when colours are > 1.
2021-05-03 13:17:58 -04:00
Isaac Connor
bf72bb2a22
Increase sleep after prime failure up to a minute.
2021-05-03 10:38:01 -04:00
Peter Keresztes Schmidt
e5ceed31cc
Image: Fix a typo introduced in 3f5dbb7780
2021-05-02 23:22:49 +02:00
Peter Keresztes Schmidt
e5613d0d27
Make sure all logging macro calls are terminated with a semicolon
2021-05-02 23:08:48 +02:00
Isaac Connor
260fcaadde
remove debug
2021-05-02 14:07:29 -04:00
Isaac Connor
3f5dbb7780
Default to rgba when subpixelorder is not specified
2021-05-02 14:07:29 -04:00
Isaac Connor
88147f3f7a
add another logInit so that early messages go to zms.log after loading config. Add Image::Initialise so that initialised flag will get set, and add a Deinitialise call so that ram allocated in zm_image gets freed.
2021-05-01 14:49:33 -04:00
Isaac Connor
59b1927ad6
do dbQUeue.stop in logTerm so we don't have to have an extra line in every executable
2021-05-01 14:49:33 -04:00
Isaac Connor
48f79da892
Don't consult a Camera object to return colours and subpixelorder, we have those as members. Fixes crash in zms
2021-05-01 14:49:33 -04:00
Isaac Connor
ad388e9fc5
Free up encodejpg_ccinfo in Deinitialize
2021-05-01 14:49:33 -04:00
Peter Keresztes Schmidt
14cb2bc3dd
zm_rtsp_server: Remove an unused variable
2021-05-01 00:24:54 +02:00
Peter Keresztes Schmidt
68bedfe48f
Fix logging format string mismatches
...
* Remove SZFMTD format macro and use %zu instead for size_t. %zu is understood by every compiler nowadays.
2021-04-30 00:26:24 +02:00
Peter Keresztes Schmidt
c3dd8d8a47
Logger: Annotate logPrint with format attribute
...
This allows the compiler to check for mismatches in the format string and the passed parameters.
2021-04-29 17:12:44 +02:00
Isaac Connor
0da4127114
cleanup ready_count update unneeded. Fix crash on reload due to being disconnected.
2021-04-29 07:07:12 -04:00
Isaac Connor
3d11366c0f
restart stream when RTSP stream name changes
2021-04-29 06:38:42 -04:00
Isaac Connor
1abadfafa1
Increase debug log level of allocating image
2021-04-28 16:13:57 -04:00
Isaac Connor
e53628e0bd
Remove old deinterlace code, make new code in ::decode. For 4 field, use the next image in the queue isntead of doing another capture
2021-04-28 16:13:41 -04:00
Isaac Connor
ba652af347
Define deinterlace values in an enum
2021-04-28 16:13:10 -04:00
Isaac Connor
a9ca6f8c13
Check for packets in the queue before we start traversing it to prevent crash
2021-04-28 12:12:24 -04:00
Isaac Connor
f61618b244
rework rtsp_server to look for new and free up old monitors
2021-04-27 16:35:13 -04:00
Peter Keresztes Schmidt
36205258c0
Image: Fix crash in Annotate in GRAY8 and RGB24 mode
...
Actually advance the image buffer pointer by one image line when looping through the codepoint lines.
2021-04-27 21:11:50 +02:00
Isaac Connor
2e35d94c94
Add missing source_
2021-04-27 10:34:22 -04:00
Isaac Connor
d9aac9bea9
it is ok to have empty monitors, should detect when new ones arrive
2021-04-27 10:28:46 -04:00
Isaac Connor
75973a2df1
Check for thread status before waiting. Fixes hang
2021-04-27 10:28:46 -04:00
Isaac Connor
9f49ac217e
add Stopped function to test whether the analysis thread is stopped from outside the class
2021-04-27 10:28:46 -04:00
Isaac Connor
df5b14dbd4
Merge pull request #3221 from Carbenium/zone-stats
...
Some optimizations/cleanups concerning Zones and ZoneStats
2021-04-27 09:26:07 -04:00
Isaac Connor
7bbcb7e36a
Merge pull request #3223 from Carbenium/font
...
Modernize the ZmFont API and add tests
2021-04-25 19:57:32 -04:00
Peter Keresztes Schmidt
3020acf994
ZmFont: Store character padding in font file
...
The size/variant specific character padding should be stored with the font data.
Modify the FontBitmapHeader accordingly and introduce a version field in the FontFileHeader
so we are able to check we have a font file with the right structure associated with that version.
The version field is set to 1 in this changeset.
2021-04-25 23:13:21 +02:00
Peter Keresztes Schmidt
a918e8aeba
Image: Modernize Annotate method
2021-04-25 23:13:21 +02:00
Peter Keresztes Schmidt
07e49e47af
utils: Add a clamping function mimicking std::clamp
...
This can be replaced with std::clamp in C++17.
2021-04-25 23:13:21 +02:00
Peter Keresztes Schmidt
0c939f45dd
ZmFont: Rework/modernize API
2021-04-25 23:13:21 +02:00
Peter Keresztes Schmidt
6d06eac55e
Monitor: Fix a crash when destroying a monitor (shutdown)
...
We have to make sure close_event_thread is joined before we destroy the thread object,
otherwise std::terminate will be called.
2021-04-25 23:09:32 +02:00
Peter Keresztes Schmidt
4180bc99ac
Zone: Sprinkle some const-ness
...
Keep references in for-loops const if no modifications are preformed on the object.
2021-04-25 22:34:33 +02:00
Peter Keresztes Schmidt
d4458d1216
Monitor: Store zones as vector instead of list
...
std::vector suits the usage pattern better with no random inserts/deletions
2021-04-25 22:29:18 +02:00
Peter Keresztes Schmidt
bb35d0a8bb
Frame: Auto-format
2021-04-25 22:29:18 +02:00
Peter Keresztes Schmidt
eb51408ef9
ZMPacket+Frame: Use vector to store ZoneStats
...
We don't any of the usage patterns that would warrant a std::list (random insert/deletion). Switch to vector which has much lower overhead for this kind of usage.
2021-04-25 22:29:18 +02:00
Peter Keresztes Schmidt
ad32a94931
ZoneStats: Rename members according to Google style guide
2021-04-25 17:18:07 +02:00
Peter Keresztes Schmidt
9e4674b53a
ZoneStats: Let the compiler define the copy constr. and assignment op.
...
There is no need for the user-defined versions since no manual resource management is done in the class.
Also a user-defined copy constructor or assignment operator prevents the implicit definition of a move constructor.
2021-04-25 17:18:07 +02:00
Isaac Connor
95a715a96a
When resume is given, clear the ref image, so that analysis can re-assign it. Don't do ref image in decode, leave it for analysis only. Handle zm_terminate after waiting for decode.
2021-04-23 14:52:29 -04:00
Isaac Connor
affac43964
Move DumpImgBuffer into public section so that we can clear an image instead of deleting it
2021-04-23 14:52:29 -04:00
Isaac Connor
76080cb857
add a stop function to dbQueue to clear out the queue before we kill log.
2021-04-23 09:25:07 -04:00
Isaac Connor
3e88f60f6d
Fix end code block comment on DetectMotion
2021-04-23 09:19:13 -04:00
Isaac Connor
b9fb08745c
Cleanup, fix length test for stats insert
2021-04-23 09:18:56 -04:00
Isaac Connor
9e890a7539
Add libcurl.so.4 as an option to load before libcurl-gnutls
2021-04-23 09:10:54 -04:00
Isaac Connor
27d200d376
Switch to using std::string for inserting frames and stats. We just can't know how long the sql will be and we aren't going to waste 2MB of ram on it. Remove unused functions.
2021-04-22 22:30:45 -04:00
Isaac Connor
8671e65517
More work on flushing out ZoneStats. Use references to avoid copying
2021-04-21 21:40:39 -04:00
Isaac Connor
be9c5d3f95
Introduce a ZoneStats structure/class and implement a list of them in packet, frame. Store the stats in a list in the packet until it is time to write them to the db in the event. Hence implement batched queuing of stats.
2021-04-21 17:51:43 -04:00
Isaac Connor
8ca93d2f0b
store event stats regardless of savejpegs or image availability
2021-04-21 14:59:57 -04:00
Isaac Connor
408e0963a0
Improve code and logging
2021-04-20 23:06:17 -04:00
Isaac Connor
b2f96728d5
Spacing and improve debugging
2021-04-20 23:06:04 -04:00
Isaac Connor
c48b42c2df
alarm frames without an image are still alarm frames. Count them in alarm count
2021-04-20 23:05:52 -04:00
Isaac Connor
fd72fbd2ac
Remove unused state var and unneeded if have_output
2021-04-20 17:22:35 -04:00
Isaac Connor
c7f06dda0b
Improve copy constructor to use initializers
2021-04-20 17:18:57 -04:00
Isaac Connor
a3379c986b
Only have fifo if HAVE_LIBSWRESAMPLE
2021-04-20 17:18:45 -04:00
Isaac Connor
1657d30be6
add override
2021-04-20 17:18:23 -04:00
Isaac Connor
9ea10584b7
pass fifo by const ref
2021-04-20 17:18:09 -04:00
Isaac Connor
9a54956163
pass fifo by const ref
2021-04-20 17:18:00 -04:00
Isaac Connor
c83b9190cb
pass peer_ip by const ref
2021-04-20 17:16:09 -04:00
Isaac Connor
05e7b6dfc5
add explicit
2021-04-20 17:15:53 -04:00
Isaac Connor
1f48dbbf6c
Use %u instead of %d for monitor id
2021-04-20 17:15:39 -04:00
Isaac Connor
6dc05ec942
add overrides
2021-04-20 17:09:51 -04:00
Isaac Connor
f23baf22de
Remove unused edges and slices
2021-04-20 17:09:42 -04:00
Isaac Connor
b6af846664
add missing initializers
2021-04-20 17:09:14 -04:00
Isaac Connor
beb2c4ddf7
fix redundant if
2021-04-20 17:09:00 -04:00
Isaac Connor
b37aa35085
improve scope of a,b
2021-04-20 17:07:07 -04:00
Isaac Connor
ccf1599b3a
use better variable names and avoid reusing user
2021-04-20 17:06:29 -04:00
Isaac Connor
de661752ce
pass jwt_token_str by reference
2021-04-20 17:04:45 -04:00
Isaac Connor
1f7da2835f
Fix overlaping use of i variable. Remove unused payloadDesc
2021-04-20 17:01:54 -04:00
Isaac Connor
21b6ac5a43
Make params const
2021-04-20 16:41:08 -04:00
Isaac Connor
da3a302ddd
improve scope of buffer_len
2021-04-20 16:38:42 -04:00
Isaac Connor
d86fc9fdd6
fix = operator to not require self-check
2021-04-20 16:35:47 -04:00
Isaac Connor
77055ee1cc
Remove unused code
2021-04-20 16:18:50 -04:00
Isaac Connor
7a674be285
Quiet cppcheck
2021-04-20 14:25:17 -04:00
Isaac Connor
32ae30a7b2
Fix alarm cause
2021-04-20 14:19:29 -04:00
Isaac Connor
433c3388fe
Pass where string by ref
2021-04-20 14:13:09 -04:00
Isaac Connor
6b1b873e9f
Reduce scope of vars, fix return value test of shmat
2021-04-20 14:10:58 -04:00
Isaac Connor
aad3b243c7
initialize padding
2021-04-20 14:10:33 -04:00
Isaac Connor
b0b95b57f8
packet can be const
2021-04-20 13:59:54 -04:00
Isaac Connor
320dfff5b2
Remove unused non blocking case
2021-04-20 13:59:07 -04:00
Isaac Connor
b62e8f7a81
mFormatContextPtr doesn't need to be a class member
2021-04-20 13:58:23 -04:00
Isaac Connor
45247c4d59
Add override to Close
2021-04-20 13:55:58 -04:00
Isaac Connor
ad830e43c6
clean up CheckSignal, getting rid of static vars
2021-04-20 13:26:47 -04:00
Isaac Connor
7561e88d9c
Change %d to %u for monitor id
2021-04-20 13:12:00 -04:00
Isaac Connor
c0c5c07ecf
Quiet cppcheck issues
2021-04-20 12:59:59 -04:00
Isaac Connor
813730f8b5
remove dead code
2021-04-20 12:59:41 -04:00
Isaac Connor
9249c736d5
Add overrides
2021-04-20 12:59:27 -04:00
Isaac Connor
bb0741dc6f
Add missing initializers
2021-04-20 12:59:19 -04:00
Isaac Connor
1beeea351b
Add overrides
2021-04-20 12:59:08 -04:00
Isaac Connor
4f71538334
Remove the unused non_blocking code
2021-04-20 12:58:55 -04:00
Isaac Connor
6ea4d4162f
Add overrides
2021-04-20 12:58:35 -04:00
Isaac Connor
fa3ce0d247
Add overrides
2021-04-20 12:58:17 -04:00
Isaac Connor
2d6d39acee
init mVncData
2021-04-20 11:48:21 -04:00
Isaac Connor
2469df3b67
add overrides to quiet cppcheck
2021-04-20 11:48:12 -04:00
Isaac Connor
44d4a79f70
Fixes by cppcheck
2021-04-20 11:39:37 -04:00
Isaac Connor
467baf8a95
fix bogus font validation
2021-04-20 11:37:57 -04:00
Isaac Connor
9970df7fde
Pass delta by ref for performance
2021-04-20 11:36:20 -04:00
Isaac Connor
c668eb7134
Add overrides to quiet cppcheck
2021-04-20 11:08:15 -04:00
Isaac Connor
2679b3a51a
fix use of %d when %u is wanted
2021-04-20 11:07:22 -04:00
Isaac Connor
19cb66b70d
fix use of %d when %u is wanted
2021-04-20 11:06:54 -04:00
Isaac Connor
e8b761d2bf
cppcheck cleanups
2021-04-20 11:04:27 -04:00
Isaac Connor
c833833a5e
quiet cppcheck by adding overrides
2021-04-20 11:01:02 -04:00
Isaac Connor
e5d4665a42
Quiet cpp-check complaints
2021-04-20 11:00:13 -04:00
Isaac Connor
b6fcadf31b
Put dbrow and fetch into a scope so that it goes away quick
2021-04-20 10:55:39 -04:00
Isaac Connor
0343642c42
duplicate test for neagtive timestamp
2021-04-20 10:54:24 -04:00
Isaac Connor
88a5afc1d2
Fix cpp-check reporting unused variable
2021-04-20 10:45:33 -04:00
Isaac Connor
51c4211ca6
Remove unused variable
2021-04-20 10:43:27 -04:00
Isaac Connor
ece981c018
Fix bool return value when int is desired
2021-04-20 10:41:41 -04:00
Isaac Connor
ff2017d8b0
Initialize video_sources and audio_sources to prevent crash
2021-04-20 09:22:37 -04:00
Isaac Connor
e0fc265263
spacing
2021-04-19 13:19:23 -04:00
Isaac Connor
f5e249a6f2
ifout an unused constructor in zone. Add polygon copy in copy constructor.
2021-04-19 13:19:17 -04:00
Isaac Connor
f3fb5885a0
Improve debugging
2021-04-19 13:18:35 -04:00
Isaac Connor
3fc9f5ac32
Prevent multiple threads being created by zmc restart by converting sources into a vector
2021-04-19 12:38:35 -04:00
Isaac Connor
c1035b7ffd
spacing, remove dead code
2021-04-19 10:26:08 -04:00
Isaac Connor
63d7c9a577
Don't tidy in extract as we assume the space will be used soon.
2021-04-19 10:26:08 -04:00
Isaac Connor
a9afdbddf1
Remove AddZones function and remove other commented out code
2021-04-19 10:26:08 -04:00
Isaac Connor
a38463f99e
spacing
2021-04-19 10:26:08 -04:00
Isaac Connor
8d883ee7bf
This breaks
2021-04-18 13:58:26 -04:00
Isaac Connor
07b3a7aa57
fix memleak caused by not deleting the packetlock when we can't get the lock
2021-04-17 12:50:26 -04:00
Isaac Connor
5b9745b652
fix memleak due to not delete audio_fifo and video_fifo
2021-04-17 12:50:26 -04:00
Isaac Connor
03767236d9
Clean up constructor/Setup functions. Add copy constructor. Change Load to return a std::list<Zone>
2021-04-17 12:50:26 -04:00
Isaac Connor
5ab9a48599
Don't grab lock in increment_it if we are deleting cuz we will hang
2021-04-17 12:50:26 -04:00
Isaac Connor
96deedfd53
add explicit to LockedPacket constructor
2021-04-17 12:50:26 -04:00
Isaac Connor
5ace2ca082
Fix loading Importance in sql. Change zones to a std::list<Zone>
2021-04-17 12:50:26 -04:00
Isaac Connor
7970bfd3d8
Implement a 10 second timeout in ffmpeg_camera. read_frame can block forever otherwise
2021-04-17 12:50:26 -04:00
Isaac Connor
df36623792
Put a \0 at the beginning of the buffer to help when printing out the contents
2021-04-17 12:50:26 -04:00
Isaac Connor
a0d08b8277
More debug in read_into
2021-04-17 12:50:26 -04:00
Isaac Connor
1d034b16dd
Must join the previous thread before starting a new one or we crash
2021-04-17 12:50:26 -04:00