Isaac Connor
|
4b5bc09c41
|
Merge new logic from master. We now delete a non-keyframe from head instead of waiting in capture.
|
2021-10-25 17:03:36 -04:00 |
Isaac Connor
|
7b5ab0adae
|
fix index -> image_index
|
2021-10-17 15:13:14 -04:00 |
Isaac Connor
|
ed901b0235
|
Improve debug logging of packetqueue cleaning
|
2021-10-17 15:01:55 -04:00 |
Isaac Connor
|
6b8dc07018
|
wait won't wake up other threads, so notify first. Since we have the lock, this should be ok
|
2021-09-15 14:10:52 -04:00 |
Isaac Connor
|
ef74294d32
|
More properly fix the threading lock. Instead of waiting on a packet, release it and wait on the packetqueue.
|
2021-09-15 14:10:25 -04:00 |
Isaac Connor
|
ae90ebf74f
|
Return early if packetqueue is empty instead of getting the lock. Return early in clear() if we are not initialised
|
2021-09-04 12:16:18 -04:00 |
Isaac Connor
|
a903ab5d09
|
Introduce get_packet_and_increase_it just so we can lose an extra grab lock and function calls, etc. In queuePacket, if the queue is full, WAIT instead of failing to queue.
|
2021-06-08 14:03:37 -04:00 |
Isaac Connor
|
61de5eaae5
|
More debugging around clearQueue. return early if deleting
|
2021-06-08 14:00:27 -04:00 |
Isaac Connor
|
70946921bc
|
fix code to release lock before notifying
|
2021-05-13 08:54:55 -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
|
3cd9bdccd5
|
style and performance improvements reported by cppcheck
|
2021-05-09 16:39:38 -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
|
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
|
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 |
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 |
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
|
408e0963a0
|
Improve code and logging
|
2021-04-20 23:06:17 -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
|
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
|
9b4fcf4e92
|
Only complain about finding an iterator if we havn't found a new keyframe
|
2021-04-14 13:00:16 -04:00 |
Isaac Connor
|
cb7e365e35
|
Add locking increment_it. I think we need it.
|
2021-04-06 13:55:09 -04:00 |
Isaac Connor
|
8aceccd496
|
improve the message when max video packets is exceeded
|
2021-04-01 11:53:57 -04:00 |
Isaac Connor
|
f52ead7cda
|
introduce packetqueue::unlock to unlock packets and notify anyone waiting. Also check for iterators pointing to packets when not keeping keyframes. Loop with waiting when we can't lock a packet
|
2021-04-01 11:52:25 -04:00 |
Isaac Connor
|
22d713cd9c
|
fix packetqueue corruption. Can't wait after grabbing the packet.
|
2021-03-31 16:49:19 -04:00 |
Isaac Connor
|
ddb62a27c6
|
Fix queue full message. Remove test for empty queue. We don't care if the queue is empty. Improve debug logging.
|
2021-03-31 16:49:19 -04:00 |
Isaac Connor
|
a1364a2b2b
|
delete packet_lock if failed trylock
|
2021-03-30 16:14:42 -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
|
e51fe9eb4a
|
add tail_count to encode option
|
2021-03-22 21:31:09 -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
|
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
|
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
|
6a2e237902
|
Fix delete packet before deleting lock on packet
|
2021-03-17 10:07:03 -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
|
786adc5511
|
Spacing
|
2021-03-11 13:48:52 -05:00 |
Isaac Connor
|
1ff4e5bc8d
|
Fix not keeping enough video packets in packetqueue to satisfy pre_event_count
|
2021-03-05 10:02:21 -05:00 |
Isaac Connor
|
f986b6a5e2
|
Clear packet counts on clear so that camera restarts don't incremenet the stream_id's and cause memory consumption
|
2021-03-04 07:46:39 -05:00 |
Isaac Connor
|
cf27482ebe
|
Change api of packetqueue. stream_index will not be incoming stream_index it will be a packetqueue specific stream_index.
|
2021-03-03 09:52:13 -05:00 |
Isaac Isaac
|
f2143fd092
|
Improve debug logs
|
2021-02-23 13:12:09 -05:00 |
Isaac Connor
|
507cbf7f0f
|
Remove some debugging
|
2021-02-19 15:56:42 -05:00 |
Isaac Connor
|
415dd83d06
|
spacing
|
2021-02-19 12:44:24 -05:00 |
Isaac Connor
|
964b3dd05a
|
Merge branch 'master' of github.com:zoneminder/ZoneMinder
|
2021-02-19 09:03:31 -05:00 |
Isaac Connor
|
045cd219f8
|
Move clear packetqueue logic to it's own function and call it from the analysis thread.
|
2021-02-18 19:25:40 -05:00 |
Isaac Connor
|
78a5e78e4c
|
Add locking to get_event_start_it. Packets could get deleted while we are figuring this out.
|
2021-02-18 16:59:17 -05:00 |
Isaac Connor
|
127e15ba3a
|
Don't crash if we ask for packet count of an invalid stream
|
2021-02-18 13:47:27 -05:00 |
Isaac Connor
|
b40a31d76f
|
Move content of setMaxVideoPcakets into .cpp
|
2021-02-18 11:54:50 -05:00 |
Isaac Connor
|
393e8b582a
|
Move the logic of whether to queue a packet into packetqueue::queuePacket
|
2021-02-10 14:11:00 -05:00 |
Isaac Connor
|
01e69569eb
|
Placement of -- matters.
|
2021-02-08 09:04:06 -05:00 |
Peter Keresztes Schmidt
|
938676b129
|
ffmpeg: exit dumpPacket early if debug logging is not enabled
|
2021-02-07 11:58:17 +01:00 |