Commit Graph

922 Commits

Author SHA1 Message Date
Isaac Connor
87fc35dbe6 Add LOW_PRIORITY to fps status updates 2021-04-02 13:09:32 -04:00
Isaac Connor
bcd0e84a31 do sws_scale from decoded image to Image using a member context and avframe to save a few cycles 2021-04-01 13:22:57 -04:00
Isaac Connor
0e00cb0289 use the new packetqueue::unlock to unlock packets and wake up decoding thread 2021-04-01 11:52:47 -04:00
Isaac Connor
fd23b3e284 Adjust debug levels 2021-03-31 16:49:19 -04:00
Isaac Connor
8c6f03a4e4 Move waiting for decoding down into motion detection section. Add a test for successful decode. Decode may not provide an image. 2021-03-30 09:16:45 -04:00
Isaac Connor
3202db1b33 Move waiting for decoding down into motion detection part, which is what needs it. Not sure why it was up so high. This should allow more ram freeing for people with analysis fps set to something. 2021-03-30 09:16:44 -04:00
Isaac Connor
0bfbdd6121 Use our new CODEC define to cleanup the code 2021-03-30 09:15:28 -04:00
Isaac Connor
9463cf8565 I can't imagine what fps_report_interval has to do with event being longer than section_length. Use analysis_image_count in log 2021-03-29 09:57:57 -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
b8b20917be setKeepKeyframes when not PASSTHROUGH 2021-03-22 12:05:22 -04: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
Isaac Connor
7c9eb42ebb Merge branch 'master' into 3197-record-event-close-mode 2021-03-21 13:03:26 -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
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
284fe52b5f fix double stop/free of decoder and analysis threads 2021-03-17 12:57:45 -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
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
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
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
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
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
9903e909af Rework locking in ZMPacket by using a new class called ZMLockedPacket. 2021-03-15 17:05:30 -04:00
Isaac Connor
b238a2bc25 Implement decoder thread, locking is broken 2021-03-15 15:08:43 -04:00
Isaac Connor
644d6d34a4 Must init video_stream_id and audio_stream_id 2021-03-10 17:23:44 -05:00
Isaac Connor
41085c9e5c Remove final bits of zm_video writer. 2021-03-08 22:14:13 -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
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
Admin
fa22129966 Make last_alarm_count last alarmed frame while only in ALARM state to make post_event_count counts since here not alone alarmed frames that don't shot alarms. 2021-03-04 20:20:02 +01:00
Peter Keresztes Schmidt
e67626b4e2 logger: Move log_mutex to std::recursive_mutex 2021-03-03 23:31:53 +01:00
Isaac Connor
20fe6153d5 Don't treat data packets as video 2021-03-03 15:52:39 -05:00
Isaac Connor
b87d859f72 Set the packet's stream_index to the packetqueue stream. Rename get_ functions to get 2021-03-03 12:06:34 -05:00
Isaac Connor
a01a24ec36 Add loading SecondPath in monitor 2021-03-03 09:56:33 -05:00
Isaac Connor
46ec4e75d4 Check codec type instead of stream_index to determine video/audio 2021-03-03 09:52:27 -05:00
Admin
4ff016c991 Make capturing/analysing log lines follow same pattern 2021-03-02 20:51:16 +01:00
Isaac Connor
be1b439dcc Add State_Strings and code cleanup. Fix not going into alarm state when already recording. Fixes #3184 2021-03-02 14:42:54 -05:00
Isaac Connor
f35a1c70c0 fix build with old avcodec for xenial 2021-03-02 12:07:51 -05:00
Isaac Connor
c03d9b2987 Set state before we write packets to event so that the event knows that it is alarmed 2021-03-02 11:47:55 -05:00
Isaac Connor
71d65685b9 Can't clear image data early. Might be needed for snapshot and pre alarm farmes 2021-03-02 11:12:57 -05:00
Isaac Connor
46743ebaab Silence compile warning 2021-03-02 10:00:48 -05:00
Isaac Connor
832eabbd79 Don't both updating analysis fps unless we are doing motion detection 2021-03-02 09:59:32 -05:00
Isaac Connor
1bc5abb9e9 Only include video packets in analysis_image_count 2021-03-01 17:07:09 -05:00
Isaac Connor
51c19912f8 Use analysis_image_count in opening new event log line 2021-03-01 16:56:47 -05:00
Isaac Connor
9302c9506e Add audio_frequency and audio_channels to shared mem and set them in PrimeCapture 2021-03-01 16:49:27 -05:00
Isaac Connor
6e73c08a21 add fifo's for video and audio. Write the packet data to them. Update FifoStream->Fifo 2021-03-01 16:49:26 -05:00
Isaac Connor
6c6d6c51b0 Add RTSPSTreamName loading and write packet data to the video and audio fifos 2021-03-01 16:46:48 -05:00