Isaac Connor
bfd3131e63
try additional unrefs of hw_device_ctx and unref'ing after freeing codec
2021-05-19 10:04:54 -04:00
Isaac Connor
574adf0d1d
Merge branch 'master' into fix_out_of_files_in_encoding
2021-05-18 17:16:35 -04:00
Isaac Connor
db701e0647
Merge pull request #3241 from connortechnology/fix_3239
...
Fix 3239
2021-05-18 12:04:30 -04:00
Isaac Connor
8506a2a75b
Merge pull request #3242 from connortechnology/fix_3232_api_monitor_event_summaries
...
Add Event_Summary model so that it is included in monitor listing
2021-05-18 12:04:15 -04:00
Isaac Connor
6350184346
Add Event_Summary model so that it is included in monitor listing
2021-05-18 11:12:37 -04:00
Isaac Connor
50c0dddb10
Merge pull request #3240 from connortechnology/fix_3237
...
fix warnings not being displayed
2021-05-18 10:53:16 -04:00
Isaac Connor
8c7e004187
Use calculateAuthHash instead of generateAuthHash because we are sessionless and improve output on success and failure. Fixes #2329
2021-05-18 10:52:07 -04:00
Isaac Connor
fffe72a3fa
Split calculateAuthHash out from generateAuthHash. API is sessionless, so we just want provide a means of getting the auth hash without caching or do anything else fancy with it.
2021-05-18 10:51:29 -04:00
Isaac Connor
c1260028af
fix warnings not being displayed
2021-05-18 10:10:19 -04:00
Isaac Connor
8dd1c67c1c
Merge pull request #3238 from Carbenium/gnutls-hash
...
Restore GnuTLS support after VLA removal
2021-05-17 19:13:03 -04:00
Peter Keresztes Schmidt
deb12f5613
Restore GnuTLS support after VLA removal
...
298415fff3
made variables constexpr which led to build failures with GnuTLS.
2021-05-18 00:18:26 +02:00
Isaac Connor
ccc4d4af54
Merge branch 'master' into fix_out_of_files_in_encoding
2021-05-17 16:32:58 -04:00
Isaac Connor
24b3f4c1b7
When de-interlacing, need to wait for decoder. Fixes race
2021-05-17 16:32:33 -04:00
Isaac Connor
68fb87c861
Remove debug
2021-05-17 16:32:33 -04:00
Isaac Connor
26a9797909
code style and remove orientation setting when encoding. frames are already rotated
2021-05-17 16:32:33 -04:00
Isaac Connor
e01fcf1e94
Only set rotation if doing passthrough. undef hw_device_ctx in Close.
2021-05-17 16:30:33 -04:00
Isaac Connor
56a1e8d13b
cleanup CheckSignal, set usedsubpixorder
2021-05-17 16:29:57 -04:00
Isaac Connor
91b23a8760
Merge pull request #3235 from Carbenium/vla
...
Remove variable-length arrays from the codebase
2021-05-17 16:22:32 -04:00
Isaac Connor
f52d4c261c
Merge pull request #3236 from Carbenium/wformat
...
LocalCamera: Fix some format warnings reported by clang
2021-05-17 16:12:15 -04:00
Peter Keresztes Schmidt
c8f2a813e3
Build: Enable VLA warnings
...
VLAs (variable-length arrays) are a C99 feature and were never standardised for C++.
There are better alternatives in C++ (mainly std::vector). Enable the warnings
so no new ones can be introduced.
2021-05-17 22:12:04 +02:00
Peter Keresztes Schmidt
298415fff3
Remove remaining usages of VLAs
2021-05-17 22:12:04 +02:00
Peter Keresztes Schmidt
77068163a3
LocalCamera: Fix some format warnings reported by clang
...
`capturePixFormat` and `imagePixFormat` are no enum entries. Do no try to log them as FourCC.
2021-05-17 20:37:37 +02:00
Peter Keresztes Schmidt
c0017a5263
Image: Move Edge class to its own namespace
...
The Edge class is an implementation detail of the scan-line polygon filling algorithm.
Tuck it away in the newly created PolygonFill namespace.
2021-05-17 20:20:33 +02:00
Peter Keresztes Schmidt
6642ca4515
Image: Eliminate VLAs from polygon fill algorithm implementation
2021-05-17 20:16:55 +02:00
Peter Keresztes Schmidt
a335e740f3
Utils: Fix possible name clash between std::clamp and ZM::clamp
...
The naming was ambiguous when compinling in C++17 mode.
2021-05-17 10:46:50 +02:00
Isaac Connor
4ee234293a
Merge branch 'master' into fix_out_of_files_in_encoding
2021-05-16 17:05:51 -04:00
Isaac Connor
2d9161551d
code style and remove orientation setting when encoding. frames are already rotated
2021-05-16 17:05:40 -04:00
Isaac Connor
e18f9676cd
Bump version to new 1.37 dev version
2021-05-16 13:55:01 -04:00
Isaac Connor
bd7a4fd552
Add closing the codec to hopefully free the file handles in use in hwaccel
2021-05-16 13:53:56 -04:00
Isaac Connor
23312a36b4
Merge pull request #3234 from Carbenium/poly
...
Rework API of geometry classes
2021-05-16 13:53:20 -04:00
Peter Keresztes Schmidt
b1de220958
Polygon: Perform clip operation on existing object instead of returning a new clipped one
2021-05-16 19:42:41 +02:00
Peter Keresztes Schmidt
63cea992a0
Image: Fix a dynamic-stack-buffer-overflow when filling polygons
...
Make sure we don't read past the end of global_edges when i = 0.
We are moving the elements backwards so at most n_global_edges - 1 elements can be moved.
==6818==ERROR: AddressSanitizer: dynamic-stack-buffer-overflow on address 0x7ffff888ae00 at pc 0x7fe4fd7be8ae bp 0x7ffff888ac90 sp 0x7ffff888a440
READ of size 96 at 0x7ffff888ae00 thread T0
#0 0x7fe4fd7be8ad in __interceptor_memmove (/lib/x86_64-linux-gnu/libasan.so.5+0x378ad)
#1 0x56524b2dba31 in Image::Fill(unsigned int, int, Polygon const&) /root/zoneminder/src/zm_image.cpp:2514
#2 0x56524af55530 in Monitor::DumpZoneImage(char const*) /root/zoneminder/src/zm_monitor.cpp:1510
#3 0x56524aeb38cb in main /root/zoneminder/src/zmu.cpp:574
#4 0x7fe4fb2b009a in __libc_start_main ../csu/libc-start.c:308
#5 0x56524aeb87a9 in _start (/root/zoneminder/cmake-build-relwithdebinfo-remote/src/zmu+0xf87a9)
2021-05-16 19:41:45 +02:00
Peter Keresztes Schmidt
09665b139f
Monitor: Clip zone polygon to image size when dumping
...
The polygon vertex coordinated of extra_zone are directly parsed from user input.
Clip the resulting polygon to the image size so we don't try to draw outside of the image.
This is already done for zone polygons stored and loaded from the DB.
2021-05-16 19:41:45 +02:00
Peter Keresztes Schmidt
29488900a1
Box: Make range calculations mathematically correct
2021-05-16 19:41:45 +02:00
Peter Keresztes Schmidt
dc79ec52c2
Polygon: Remove API to set manually extent
...
The extent has to be calculated from the vertices and shouldn't be modified manually.
2021-05-16 19:41:45 +02:00
Peter Keresztes Schmidt
ef7a083891
Zone: Actually clip the zone if it larger than the image
...
Until now only the boundary box was manually adjusted without actually clipping the polygon.
2021-05-16 19:41:45 +02:00
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