Commit Graph

258 Commits

Author SHA1 Message Date
Isaac Connor
d4d01cb0d9 Use RAII for packet_counts 2026-01-16 12:28:57 -05:00
Isaac Connor
7a94717cf4 Add locking to size() and packet_count() and has_out_of_order_packets 2026-01-16 12:22:33 -05:00
Isaac Connor
5561041c70 Add a lambda to prevent spurious wakeups 2026-01-16 12:11:42 -05:00
Isaac Connor
1a3e36424e Set frames_since_last_keyrrame = 0 instead of 1 2026-01-16 12:06:22 -05:00
Isaac Connor
9f0b5c8cd6 Handle impossible case where snapshot-it points to end. Can't -- on end. WOuld need to be a reverse iterator. 2026-01-16 12:02:42 -05:00
Isaac Connor
5204a24345 Fix doulbe free of it. 2026-01-16 11:55:35 -05:00
Isaac Connor
2e2690c7c6 Move lock guards to protect deleting basically to satisfy AI. It is technically correct. 2026-01-16 10:49:31 -05:00
Isaac Connor
14bb739c00 DOn't need to lock the new keyframe, just frames before it. Fix not break if it is locked 2026-01-15 16:32:32 -05:00
Isaac Connor
9615969314 We may need () 2026-01-15 16:32:32 -05:00
Isaac Connor
0de8c7b4ad Only warn about being at end of queue in incremement_it if we are not deleting to prevent red herring logging 2026-01-15 16:32:32 -05:00
Isaac Connor
448056a809 Use lock_guard instead of unique_lock where appropriate 2026-01-15 16:32:32 -05:00
Isaac Connor
37d5430adc Turn off a debug 2026-01-15 16:32:32 -05:00
nvme
792fb4de75 Reduce logging 2026-01-15 16:32:32 -05:00
Isaac Connor
7c5b24cbab Must start at second packet. Cleanup 2026-01-15 16:32:32 -05:00
nvme
6b424088e3 When every frame is a keyframe, need to set max_keyframe_interval=1 2026-01-15 16:32:32 -05:00
Isaac Connor
d82bfbfb5e Remove dead code, fix not deleting packets when full 2026-01-15 16:32:32 -05:00
Isaac Connor
ed2f809df0 Improve debug 2026-01-15 16:32:32 -05:00
Isaac Connor
0932ab71dd Maybe fix not freeing audio packets 2026-01-15 16:32:32 -05:00
Isaac Connor
f173deae29 Notify while holding the lock 2026-01-15 16:32:32 -05:00
Isaac Connor
c05a9462da Get lock earlier 2026-01-15 16:32:32 -05:00
Isaac Connor
56628240b8 Optimise std_shared_ptr accesses 2026-01-15 16:32:32 -05:00
Isaac Connor
6e6b3d097b Fix lock around deleting causinganalysis to hang 2026-01-15 16:32:32 -05:00
Isaac Connor
cb23ce65e8 We don't need to lock the packets to delete them. 2026-01-15 16:32:32 -05:00
Isaac Connor
a10f65d574 Always delete frames when we don't care about keyframes 2026-01-15 16:32:32 -05:00
Isaac Connor
1d8bbcb916 Improve debug 2026-01-15 16:32:32 -05:00
Isaac Connor
eb2c13e151 Log when failed to lock packet. 2026-01-15 16:32:32 -05:00
Isaac Connor
3734e2c213 Log the # of packets removed 2026-01-15 16:32:32 -05:00
Isaac Connor
e38e88f2d9 iterator at the beginning is ok, make it a debug 2026-01-15 16:32:32 -05:00
Isaac Connor
376052684d Maybe fix memleak on iterators 2026-01-15 16:32:32 -05:00
Isaac Connor
131b5caee0 Update to RAII style ZMPacketLock. Rename snap to packet in zm_monitor. Keep hw_frame in packet." 2026-01-15 12:46:23 -05:00
Isaac Connor
f45c085bf6 Fix clearing packets in queuePacket 2026-01-15 12:46:23 -05:00
Isaac Connor
ef35a1f007 If every frame is a keyframe, we didn't set keyframe interval, so handle it as a special case 2025-09-24 12:26:06 -04:00
Isaac Connor
bb356a8b96 Add debug of new keyframe interval 2025-09-06 10:28:32 -04:00
Isaac Connor
09c767174f Try out a better method of counting keyframes 2025-09-06 10:27:34 -04:00
Isaac Connor
3c4dca78f0 Log when failed to lock packet. 2025-09-06 10:26:32 -04:00
Isaac Connor
eb09e0ad33 Log the # of packets removed 2025-09-06 10:17:41 -04:00
Isaac Connor
3be4e1440e Reduce debug logging 2025-09-06 10:17:19 -04:00
Isaac Connor
727e1fe5bb Add debug to not keeping keyframes case 2025-09-06 10:14:29 -04:00
Isaac Connor
a0b8d2f6ca Maybe fix memleak on iterators 2025-02-25 14:39:46 -05:00
Isaac Connor
e06e14f75c iterator at the beginning is ok, make it a debug 2025-02-25 14:34:38 -05:00
Isaac Connor
f7232972de Fix clearing packets in queuePacket 2025-01-24 12:35:46 -05:00
Isaac Connor
0755d56cba Must update iterator 2024-11-30 10:39:42 -05:00
Isaac Connor
66651824b5 Must move iterators for all deleted packets 2024-11-29 16:38:34 -05:00
Isaac Connor
697db024e1 Add more debug 2024-11-28 19:24:22 -05:00
Isaac Connor
52c41d166b When deleting packets in queuePacket if it is a keyframe, then delete everything from the beginning, so that we don't get a huge time gap between the first packet and the next 2024-11-28 17:01:13 -05:00
Isaac Connor
dadd9e24df when counting keyframe interval in clearPackets start at 0. Reset max_keyframe_interval when clearing packetqueue. This prevents errors in log when using ondemand capture 2024-10-24 10:23:29 -04:00
Isaac Connor
8496ce637a When every frame is a keyframe, make max_keyframe_interval=1 instead of 0 as 0 is the uninitialised state 2024-10-24 10:11:31 -04:00
Isaac Connor
c294ad09ff Must obtain lock in free_it 2024-08-07 15:22:35 -04:00
Isaac Connor
5d67c452b9 Don't pass zm_packet by reference 2024-08-07 12:26:24 -04:00
Isaac Connor
930a0e8e8f Fix simplified tail counting 2024-08-07 12:26:24 -04:00