Isaac Connor
1275948744
add cast to fix compile
2021-03-26 17:03:49 -04:00
Isaac Connor
8e40067d13
Update locks
2021-03-26 17:01:45 -04:00
Isaac Connor
52cb182ae3
Load max_image_buffer_count in monitor and set it in packetqueue. rename max_video_packet_count to pre_event_video_count in packetqueue and adjust logic. When queuing packets check to ensure that we aren't going over. Delete packets from front if possible, do not queue packet if not possible
2021-03-26 14:26:37 -04:00
Isaac Connor
3655b25b7c
spacing
2021-03-26 08:16:26 -04:00
Isaac Connor
d0a390b42f
decrease logging of nal counts
2021-03-26 08:15:55 -04:00
Isaac Connor
b6187a8e91
Allow setting the frame size
2021-03-25 13:39:07 -04:00
Isaac Connor
7038263e3b
implement a nal splitter for udp transmission
2021-03-25 13:12:52 -04:00
Isaac Connor
0c7542d20d
set hType
2021-03-25 13:12:21 -04:00
Isaac Connor
292bad8718
We can use >= instead of > to avoid an unneeded reallocation. Reduce duplicated code.
2021-03-25 12:52:41 -04:00
Isaac Connor
3f8b9db3d9
fix UriEncode returning a string that is longer than the c_str
2021-03-24 13:29:17 -04:00
Isaac Connor
79115e79f8
Fix jwt-cpp failing signature validation
2021-03-24 13:28:40 -04:00
Isaac Connor
e5a464f090
fix reverse logic on testing stop_
2021-03-23 13:53:07 -04:00
Isaac Connor
d1b816658b
code style cleanups and add debug to tell which library we are using
2021-03-23 13:52:35 -04:00
Isaac Connor
1bfc61a5b7
change log level to debug when monitor is not decoding
2021-03-23 10:32:59 -04:00
Isaac Connor
456afac0ec
Must initialize stop_
2021-03-23 10:07:55 -04:00
Isaac Connor
e51fe9eb4a
add tail_count to encode option
2021-03-22 21:31:09 -04:00
Isaac Connor
0a8b89fecd
Use pts instead of timestamp in our nal
2021-03-22 17:49:59 -04:00
Isaac Connor
96a96f4865
add jwt token as a std:;string
2021-03-22 17:49:59 -04:00
Isaac Connor
8bc22880a4
use modern threads. Add a separate thread for sending data.
2021-03-22 17:49:59 -04:00
Isaac Connor
cfff9723af
Remove h264markers cuz it's in zm_rtsp_server_frame.h
2021-03-22 17:49:59 -04:00
Isaac Connor
d2efb51b0d
rearrange a bit, put back setting width and height on video source even though it isn't used yet. Remove signal blocking stuff that we don't use
2021-03-22 17:49:59 -04:00
Isaac Connor
d84e4a14fb
Use a define when setting pipe size
2021-03-22 17:49:59 -04:00
Isaac Connor
b5f64f1c69
Merge branch 'master' of github.com:/ZoneMinder/zoneminder
2021-03-22 12:41:36 -04:00
Isaac Connor
9cb5887332
better debug logging when choosing codec
2021-03-22 12:41:30 -04:00
Isaac Connor
b8b20917be
setKeepKeyframes when not PASSTHROUGH
2021-03-22 12:05:22 -04:00
Isaac Connor
2d4b4b6022
If we already tried decoding a packet, don't try again. Also we really shouldn't be decoding in videostore.
2021-03-22 12:05:05 -04:00
Isaac Connor
3f3bc50acb
Add keep_keyframes setting. When NOT doing passthrough we don't actually have to store all packets since last keyframe, so don't do it. SImplifies clearPackets() logic a lot and will save ram for those people.
2021-03-22 12:04:32 -04:00
Isaac Connor
6d5cbe2583
Make incorrect dimensions non-fatal if the monitor dimensions are larger than what is expected, so at least there is enough ram to store the image
2021-03-22 11:02:32 -04:00
Peter Keresztes Schmidt
67d7872e9a
Eliminate non-thread-safe calls to gmtime
...
gmtime uses an internal static storage to which a pointer is given as return value.
Due to this it is not safe to call gmtime from multiple threads since the same static storage is used.
Use gmtime_r instead which allows to pass in a tm struct.
Fixes:
https://github.com/ZoneMinder/zoneminder/security/code-scanning/32
2021-03-21 21:42:02 +01:00
Peter Keresztes Schmidt
4e8c7d1f7c
Eliminate non-thread-safe calls to localtime
...
localtime uses an internal static storage to which a pointer is given as return value.
Due to this it is not safe to call localtime from multiple threads since the same static storage is used.
Use localtime_r instead which allows to pass in a tm struct.
Fixes:
https://github.com/ZoneMinder/zoneminder/security/code-scanning/24
https://github.com/ZoneMinder/zoneminder/security/code-scanning/25
https://github.com/ZoneMinder/zoneminder/security/code-scanning/26
https://github.com/ZoneMinder/zoneminder/security/code-scanning/27
https://github.com/ZoneMinder/zoneminder/security/code-scanning/28
https://github.com/ZoneMinder/zoneminder/security/code-scanning/30
https://github.com/ZoneMinder/zoneminder/security/code-scanning/31
https://github.com/ZoneMinder/zoneminder/security/code-scanning/33
https://github.com/ZoneMinder/zoneminder/security/code-scanning/58
https://github.com/ZoneMinder/zoneminder/security/code-scanning/59
https://github.com/ZoneMinder/zoneminder/security/code-scanning/63
https://github.com/ZoneMinder/zoneminder/security/code-scanning/64
https://github.com/ZoneMinder/zoneminder/security/code-scanning/65
2021-03-21 21:42:02 +01:00
Peter Keresztes Schmidt
7e86e1ef40
utils: Make TimevalToString thread-safe
2021-03-21 21:42:02 +01:00
Isaac Connor
7c9eb42ebb
Merge branch 'master' into 3197-record-event-close-mode
2021-03-21 13:03:26 -04:00
Isaac Connor
6d9a4ed661
If the analysis thread is falling behind, we can't count the packets after it in the number of packets to keep in queue. So figure out how many there are and add that to the max_video_packet count to keep so that we always have enough to satisfy pre_event_count
2021-03-21 12:28:33 -04:00
Isaac Connor
8a1d13b6cd
perror => Error()
2021-03-21 09:17:03 -04:00
Isaac Connor
a042e4bf77
spacing
2021-03-20 19:27:18 -04:00
SirLouen
db7e9edcab
Issue #3197 Improvement
2021-03-21 00:00:36 +01:00
SirLouen
33f98a0d40
Issue #3197 Add RECORD to Event_Close_Mode time
2021-03-20 20:02:52 +01:00
Isaac Connor
53133ba051
add token as an alternative to jwt_token
2021-03-18 17:43:31 -04:00
Peter Keresztes Schmidt
7a4c34ec7e
RemoteCameraHttp: Fix a log message
2021-03-18 20:02:20 +01:00
Isaac Connor
edefbfcad6
Remove assumptions about Analysis being about motion detection. Fixes mem leaks in Monitor mode
2021-03-18 09:24:27 -04:00
Isaac Connor
f4506a8f35
We always need an analysis thread.
2021-03-17 23:41:00 -04:00
Isaac Connor
ccb1bc1a7d
Have to wait until we are finished with the packet before unlocking.
2021-03-17 16:11:31 -04:00
Isaac Connor
fb28c6b365
Fix login in Decode for non-ffmpeg monitors
2021-03-17 15:53:14 -04:00
Isaac Connor
079d3361a2
Rework to read content_length bytes at once. Micro-optimisation
2021-03-17 15:52:55 -04:00
Isaac Connor
284fe52b5f
fix double stop/free of decoder and analysis threads
2021-03-17 12:57:45 -04:00
Isaac Connor
c39ec5873b
don't include zm_utils in decoder_thread
2021-03-17 12:50:13 -04:00
Isaac Connor
2b34d09b84
Move analysis_thread into Monitor. Don't do extra gettimeofday if no delays are set. Fix status update on terminate
2021-03-17 12:49:50 -04:00
Isaac Connor
feafaa29bf
improve debug logging
2021-03-17 12:49:12 -04:00
Isaac Connor
6ab8bee581
Increase debug level for fifo writing
2021-03-17 12:48:59 -04:00
Isaac Connor
0b4f04c4d5
notify in clear before taking lock to increase chance of other threads exiting. Handle terminate case in get_packet
2021-03-17 12:48:42 -04:00
Isaac Connor
9ca5f49d82
Move analysis_thread into Monitor
2021-03-17 12:48:08 -04:00
Isaac Connor
dca34544ec
move analysis thread into monitor. populate analysis_it and decoder_it in Prime instead of constantly checking for them. Handle cases where LockedPacket are null due to shutdown
2021-03-17 12:47:52 -04:00
Isaac Connor
a8d31ca686
After moving analysis thread into monitor, I don't know how to handle the shared_ptr stuff
2021-03-17 12:46:55 -04:00
Isaac Connor
657a5edda4
If decoding disabled, set signal and last_write_time in the Capture thread. So that zm_watch knows we are alive
2021-03-17 10:11:06 -04:00
Isaac Connor
6a2e237902
Fix delete packet before deleting lock on packet
2021-03-17 10:07:03 -04:00
Isaac Connor
74616d1061
Update CaptureFPS SQL to just do an update and don't use static sql. TThis may fix a signal 6 crash that we have been seeing
2021-03-17 10:06:45 -04:00
Isaac Connor
14ef8336b9
If ffmpeg and decoding Disabled don't stream
2021-03-16 20:10:00 -04:00
Isaac Connor
fe17d7bb23
Add checks for aliveness of monitor in streaming. If decoding disabled can't view stream.
2021-03-16 20:09:14 -04:00
Isaac Connor
1daafd7f85
add GetType
2021-03-16 20:08:08 -04:00
Isaac Connor
12ed02a5b0
Move trigger detection before motion detection. Only wait for decoding if decoding is enabled
2021-03-16 20:07:59 -04:00
Isaac Connor
8fa989f8e9
Increase debug level of input selection
2021-03-16 20:07:06 -04:00
Isaac Connor
c0242e7369
Fix memleak when connect fails
2021-03-16 13:28:00 -04:00
Isaac Connor
028f2dd626
Debug extra error log and code style
2021-03-16 13:27:27 -04:00
Isaac Connor
5e54a63bd5
Only load zones if doing something other than QUERY. Only delete decoder if there is one.
2021-03-16 13:26:40 -04:00
Isaac Connor
ebf1b7cbdc
Only output to stdout if mTerminalLevel is something. zms for example SHOULD not output to stdout, ever except maybe when running from terminal to debug
2021-03-16 13:26:06 -04:00
Isaac Connor
9d239219de
Break out early if no more buffer. Saves a couple cycles
2021-03-16 12:08:45 -04:00
Isaac Connor
76267bc57f
put back deleting the raw image when not saving jpegs. We only need it for the snapshot and that should be the alarmed image anyways.
2021-03-16 12:08:11 -04:00
Isaac Connor
2b0e3d0d2c
Merge branch 'decoder_thread'
2021-03-15 17:05:36 -04:00
Isaac Connor
9903e909af
Rework locking in ZMPacket by using a new class called ZMLockedPacket.
2021-03-15 17:05:30 -04:00
Isaac Connor
baf73fea7b
Ensure that we disconnect when ShmValid fails
2021-03-15 15:11:12 -04:00
Isaac Connor
6a11b23aaf
Add decoder thread
2021-03-15 15:08:59 -04:00
Isaac Connor
b238a2bc25
Implement decoder thread, locking is broken
2021-03-15 15:08:43 -04:00
Isaac Connor
f4e60be444
If we failed to bind libvnc then fail Prime to prevent crash
2021-03-14 22:08:48 -04:00
Isaac Connor
e0d54a6d11
remove deprecated reset and tidy up a bit
2021-03-13 16:30:41 -05:00
Isaac Connor
c9170a87b2
Allow users with Monitors::View to generate and cancel events
2021-03-12 09:26:56 -05:00
Isaac Connor
786adc5511
Spacing
2021-03-11 13:48:52 -05:00
Isaac Connor
28490816dc
Use new zmDbDoUpdate to end the event
2021-03-11 13:48:42 -05:00
Isaac Connor
cbec5b2800
Implement zmDbDoUpdate which returns -mysql_errer or # of rows modified
2021-03-11 13:48:16 -05:00
Isaac Connor
b5f45b0987
fix alignment of help
2021-03-11 13:16:44 -05:00
Isaac Connor
86a26ef3b1
nvsnprintf won't exceed the buffer but it can hit the end of it so adding the ending ]\n can overflow. Test and prevent.
2021-03-11 13:16:32 -05:00
Isaac Connor
43e7e612c5
Have to turn off DB logging when logging from a db query or else we infinite loop
2021-03-11 13:07:47 -05:00
Isaac Connor
f2553220b6
Implement xop::Authenticator::GetFailedResponse to return a 401
2021-03-11 11:45:39 -05:00
Isaac Connor
874e61d681
remove Base64 include from live555
2021-03-11 09:26:50 -05:00
Isaac Connor
644d6d34a4
Must init video_stream_id and audio_stream_id
2021-03-10 17:23:44 -05:00
Isaac Connor
5d968358f7
Need to use ZM::make_unique because std::make_unique is c++14
2021-03-10 16:35:03 -05:00
Isaac Connor
000df68f72
include memory
2021-03-10 16:17:26 -05:00
Isaac Connor
15bd3276d2
fix define
2021-03-10 13:50:42 -05:00
Isaac Connor
aadee4ea65
add a Query String parse in zm_utils
...
add an authenticator to use with RtspServer
2021-03-10 13:20:14 -05:00
Isaac Connor
562e7c7e80
Add authentication
2021-03-10 13:19:41 -05:00
Isaac Connor
a0957fbd10
remove debug
2021-03-10 13:19:30 -05:00
Isaac Connor
b1f6eb127b
Switch from live555 to PHZ76/RtspServer
2021-03-10 11:01:04 -05:00
Isaac Connor
831cf8af56
remove zm_video.h which is no longer relevant
2021-03-08 22:14:47 -05:00
Isaac Connor
41085c9e5c
Remove final bits of zm_video writer.
2021-03-08 22:14:13 -05:00
Isaac Connor
46bf765f80
Set heartbeat on startup. Fix logic in ShmValid
2021-03-08 18:31:01 -05:00
Isaac Connor
e38e8a2775
Actually use zmc_heartbeat_time. Set it on every capture and use it in ShmValid to determine if zmc has gone away.
2021-03-08 09:30:53 -05:00
Isaac Connor
c0990a7982
Merge pull request #3190 from Carbenium/db-locking
...
Fix SQL queries with missing lock
2021-03-06 18:51:02 -05:00
Peter Keresztes Schmidt
32f8bc8e31
Fifo: Fix a crash on shutdown
...
outfile can be undefined if the fifo couldn't be opened correctly.
Only try to close outfile on shutdown when it is valid.
2021-03-06 23:39:59 +01:00
Peter Keresztes Schmidt
0796a2262e
Utils: Replace stringtf with a type-safe version that can't overflow
2021-03-06 00:12:18 +01:00
Peter Keresztes Schmidt
9e77324de4
Replace raw mysql_query calls with the zmDb* functions
...
With this we can make sure we have proper locking of our DB connection at all times.
2021-03-06 00:12:18 +01:00
Isaac Connor
c96cb1dd8d
Put back terminate_
2021-03-05 14:21:18 -05:00