Commit Graph

19236 Commits

Author SHA1 Message Date
Peter Keresztes Schmidt 3c85d63655 Polygon: Implement clipping to a boundary box
Using the Sutherland-Hodgman algorithms convex and concave subject polygons can be clipped
by convex clip polygons.
For now we only need clipping to rectangles (Box), so limit our implementation to that. If needed this can be
trivially extended to convex clip polygons (a check whether the clip polygon is actually convex has to be added).
If convex clip polygons are needed we have to switch to e.g the Vatti algorithm.
2021-05-16 19:41:45 +02:00
Peter Keresztes Schmidt 5af6d6af3d Polygon: Use std::vector to store the vertices 2021-05-16 16:42:58 +02:00
Peter Keresztes Schmidt eaf91fcf1f zm_define: Include cstddef so we have size_t 2021-05-16 16:42:58 +02:00
Peter Keresztes Schmidt 26bdf4ab1b Deduplicate Edge struct 2021-05-16 16:42:58 +02:00
Peter Keresztes Schmidt 783dc09b4e Box: Rename variables according to the styleguide 2021-05-16 16:42:58 +02:00
Peter Keresztes Schmidt 8f685b3d66 Box+Poly: Remove direct accessors to {Hi,Lo}{X,Y} 2021-05-16 16:42:58 +02:00
Peter Keresztes Schmidt c2a7f7b593 tests/Box: Add unit tests 2021-05-16 16:42:58 +02:00
Peter Keresztes Schmidt f85e3765db Box: Remove unnecessary constructors 2021-05-16 16:42:58 +02:00
Peter Keresztes Schmidt e6c159fb70 Vector2: Make coordinate components public
The components were already unconditionally/without side-effects writable. Let's make them public so we don't need the setters.
2021-05-16 16:42:58 +02:00
Peter Keresztes Schmidt c8885fe2aa Vector2: Use default copy/assignment ops 2021-05-14 20:14:50 +02:00
Peter Keresztes Schmidt 290b88e5ac Vector2: Delete non-idiomatic comparison operators
The "greater than" and "lesser than" operator families don't make sense for coordinates.
If lexicographic comparison for ordering purposes is needed, it should be implemented separately.
2021-05-14 20:14:50 +02:00
Peter Keresztes Schmidt 707700e24e Vector2: Add unit tests 2021-05-14 20:14:50 +02:00
Peter Keresztes Schmidt 60db1c2eaf Coord: Rename to Vector2
The class is not only used to represent coordinates but also lengths in XY.
Vector2 is a more fitting/general name for this purpose.
2021-05-14 20:14:50 +02:00
Peter Keresztes Schmidt 3fc3a81286 Box+Coord: Remove empty cpp files 2021-05-14 20:14:50 +02:00
Isaac Connor 2afbbb17d2 Must upload source package. Get rid of -sd 2021-05-14 10:41:36 -04:00
Isaac Connor b17edf3153 Bump version to 1.36.0 2021-05-13 19:28:32 -04:00
Isaac Connor a56b4053fa Use resize in stead of reserve so that image_buffer.size actually has a value 2021-05-13 14:24:03 -04:00
Isaac Connor d52b53e690 Add further bounds checks when accessing image_buffer 2021-05-13 09:31:59 -04:00
Isaac Connor 70946921bc fix code to release lock before notifying 2021-05-13 08:54:55 -04:00
Isaac Connor 5a8fa9efc9 Remove dead code and useless debug 2021-05-12 18:54:07 -04:00
Isaac Connor 6f977da94d Fix potential outofbounds access to image_buffer in getSnapshot() 2021-05-12 14:21:54 -04:00
Isaac Connor e246083be5 Add StartDateTime Attr in sort dropdown 2021-05-12 10:32:03 -04:00
Isaac Connor 363b017977 If error was unauthorized, do a reload. 2021-05-12 10:32:03 -04:00
Isaac Connor bdae5dd9f8 Sort field should be StartDateTime not StartTime 2021-05-12 10:32:03 -04:00
Isaac Connor c080dd8a12 Fixes #2992. If no definition for a monitor is found, don't modify it. 2021-05-11 15:29:10 -04:00
Isaac Connor 76171fcc43 If not doing passthrough, don't need to find the nearest keyframe 2021-05-11 10:22:40 -04:00
Isaac Connor 510b3e606b Continue if frame file not found. Output useful text jpeg 2021-05-11 09:33:33 -04:00
Isaac Connor 726f1f616d Merge branch 'update_docs_1_34' 2021-05-10 14:53:14 -04:00
Isaac Connor f0abcdf585 Merge branch 'release-1.34' into update_docs_1_34 2021-05-10 14:48:50 -04:00
Isaac Connor b8e3cc33f0 make it so that the queue will more likely be empty on termination. Do not queue more sql if terminate flag is set. 2021-05-10 12:54:35 -04:00
Isaac Connor f3b4ccf758 Fix scaling when scale to fit 2021-05-10 11:08:16 -04:00
Isaac Connor b1ac0e61a9 put back upstream version 3.2.0 of Crud 2021-05-09 18:18:03 -04:00
Isaac Connor 747c714699 put back up to date RtspServer 2021-05-09 18:15:37 -04:00
Isaac Connor 3cd9bdccd5 style and performance improvements reported by cppcheck 2021-05-09 16:39:38 -04:00
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 bc11e6a95b Include pre event count in min estimated ram use 2021-05-08 15:47:29 -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 ff0d6e8e0f remove duplicated getModal and pass fid=fid to getModal 2021-05-07 15:34:08 -04:00
Isaac Connor ea3bffb402 make getModal take additional query parameters 2021-05-07 15:33:49 -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