Commit Graph

138 Commits

Author SHA1 Message Date
Peter Keresztes Schmidt 0dbc39ee25 Cleanup and reorganize includes
With this commit a unified structure for includes is introduced.
The general rules:
 * Only include what you need
 * Include wherever possible in the cpp and forward-declare in the header

 The includes are sorted in a local to global fashion. This means for the include order:
  0. If cpp file: The corresponding h file and an empty line
  1. Includes from the project sorted alphabetically
  2. System/library includes sorted alphabetically
  3. Conditional includes
2021-02-04 18:02:01 +01:00
Isaac Connor 8de260472d improve the logic of clearing packets from queue. make get_event_start_it return a pointer to an it tracked by the packetqueue. 2021-02-02 23:19:52 -05:00
Isaac Connor b71aa4bd97 Fix never allowing the queue to fill when pre_event_count=0 2021-02-01 16:01:30 -05:00
Isaac Connor aa53260a32 Free packet counts and iterators in destructor. Fix mem leak in queuePacket. Introduce free_it method to release iterators 2021-02-01 10:25:48 -05:00
Isaac Connor dd57d05f40 Convert packetqueue from a pointer to a packetqueue to a member packetqueue that is always available. Add methods to set packetqueue parameters. Emptying the queue is now in packetqueue::clear() 2021-01-31 21:31:33 -05:00
Isaac Connor 0fb7cb935f Fix skipping over the head packet when deleting packets. 2021-01-31 11:42:51 -05:00
Isaac Connor 5fc52ae6df Handle iterator pointing to end 2021-01-30 20:34:09 -05:00
Isaac Connor be893fe9e4 Since we loop in here, need to lock the packetqueue 2021-01-27 11:48:32 -05:00
Isaac Connor e73e6aaabc check for terminating before locking packetqueue. Handle when pre_event_count==0 2021-01-26 12:23:44 -05:00
Isaac Connor a0df09dcaa Have to check for lock on video keyframe as well 2021-01-25 12:07:56 -05:00
Isaac Connor 66c78e5a9b Merge branch 'zma_to_thread' into rtsp_server 2021-01-19 13:43:25 -05:00
Isaac Connor b1b72ec85b Improve debugging. Add parenthesis to fix test for end. I think the * dereference is not being applied at the right time. 2021-01-19 09:46:08 -05:00
Isaac Connor f44f920bf2 spacing 2021-01-14 10:31:29 -05:00
Isaac Connor 3423d8ed05 Only delete packets up to the next video keyframe. Don't be too aggressive 2021-01-12 14:13:12 -05:00
Isaac Connor e706b4ba33 Hitting beginning of queue can happen on stream startup. So in that case make it a debug. Once the stream has been going for a while there should always be enough packets in the queue so make it a warning 2021-01-11 17:18:14 -05:00
Isaac Connor ebe3a9b6a7 Must notify before waiting in destructor. Fix leaks 2021-01-11 13:46:50 -05:00
Isaac Connor 514e0d2e93 remove analysis_it and correctly manage external iterators. Fix testing for ability to remove packets from packetqueue. Fix some cases where the order of testing zm_terminate and packet locking is important 2021-01-11 13:46:50 -05:00
Isaac Connor c70e2ccfc2 Must notify before waiting in destructor. Fix leaks 2021-01-07 15:12:44 -05:00
Isaac Connor abc402878b remove analysis_it and correctly manage external iterators. Fix testing for ability to remove packets from packetqueue. Fix some cases where the order of testing zm_terminate and packet locking is important 2021-01-07 09:43:53 -05:00
Isaac Connor 284b9f963f Merge branch 'master' into zma_to_thread 2020-12-29 12:18:26 -05:00
Isaac Connor 9be7547c8b Look at stream index instead of image_index when finding first keyframe in packetqueue 2020-12-27 12:32:46 -05:00
Isaac Connor 16662f79ce spacing and code stylez 2020-12-27 12:03:44 -05:00
Isaac Connor a1917d83d0 Merge branch 'master' into zma_to_thread 2020-12-22 19:52:09 -05:00
Isaac Connor 91057b9546 Clean up video_packet_count stuff. use packet_counts instead. Use more efficient logic for managing the # of video packets on the queue. Rewrite clearQueue to not use reverse iterators. Implement get_starting_packet to return an iterator to the packet that SHOULD start an event. So it takes into account pre_event_count and keyframe rules. 2020-12-22 10:20:44 -05:00
Isaac Connor a502a86b00 Instead of pointing analsysis_it to begin, point it to the end, which is the newly pushed packet. Add back queue clearing 2020-12-15 16:01:18 -05:00
Isaac Connor 99e7ae3505 Merge branch 'master' into rtsp_server 2020-12-15 10:14:19 -05:00
Isaac Connor f544c18541 add debug testing 2020-12-12 18:53:12 -05:00
Isaac Connor f54b8fff44 use mutex and condition_variable to manage signalling. Lots of debugging and fixes 2020-12-09 15:01:24 -05:00
Isaac Connor a39a656373 Merge branch 'master' into zma_to_thread 2020-09-29 11:02:40 -04:00
Isaac Connor e163a3c93a spacing more debug 2020-09-25 16:20:19 -04:00
Peter Keresztes Schmidt 8f980a1168 Convert NULL/0 to nullptr
The 0 -> nullptr changes should definitely improve readability.
2020-08-26 22:03:40 +02:00
Isaac Connor 3641797500 Merge branch 'master' into zma_to_thread 2020-07-22 13:14:40 -04:00
Isaac Connor 4ff341a0f5 Merge branch 'master' into zma_to_thread 2020-05-02 18:03:42 -04:00
Isaac Connor 0947c3ef24 Merge branch 'master' of github.com:ZoneMinder/zoneminder 2019-11-30 15:37:09 -05:00
Isaac Connor 927165a934 debug the recording_started timestamp and warning when we can't fine a frame before the requested time 2019-11-30 15:37:05 -05:00
Isaac Connor 09fcbad666 Merge branch 'master' into zma_to_thread 2019-11-30 14:59:39 -05:00
Selva Nair 2e7fad68d1 Properly compute video buffer length when analysis fps is set
Currently the number of video frames kept in the buffer is set as the
pre_event_count. This falls short when the capture fps is larger
than the analysis fps. Fix by computing the retained video duration
as pre_event_count/analysis_fps

No change if analysis fps is not set.

Signed-off-by: Selva Nair <selva.nair@gmail.com>
2019-11-15 21:55:40 -05:00
Isaac Connor 6a56de41f0 fix parameter order 2019-10-18 13:39:52 -04:00
Isaac Connor 3b586a2abe include stream index and packet queue size in debug message 2019-10-11 13:53:18 -04:00
Isaac Connor 396be10d6f Merge branch 'master' into zma_to_thread 2019-08-22 12:57:00 -04:00
Isaac Connor 0ab4f9fce0 More debugging in packetqueue. 2019-06-27 21:49:43 -04:00
Isaac Connor ac7d4869de We need to seek back pre_event_count video frames, not any frames 2019-06-27 15:36:13 -04:00
Isaac Connor dd57fd95ce Clean up cruft from videostore api. Fix packetqueue clear_unwanted_packets to take a pre_event_count and take it into consideration when finding the right spot in the queue to start recording. 2019-06-27 11:11:14 -04:00
Isaac Connor dab9544845
Revert audio sync fixes (#2646)
* Reference /run/zm instead of /var/run/zm because systemd-tmpfiles complains about it

* Spacing, google code style and tabs to spaces

* Revert the work I did to srt packets by dts after changing their time_base.  It doesn't work.  Instead since dts doesn't actually matter to playback, only ffmpeg storing, munge it to whatever is neccessary to make ffmpeg happy.
2019-06-24 11:27:47 -04:00
Isaac Connor 470da03322 Merge sync fixes from storageareas 2019-06-20 15:14:20 -04:00
Isaac Connor acb95709e6 Fix issues with too much audio in events by storing packets in the queue with their timestamps converted to AV_TIME_BASE_Q, so that we can sort video and audio packets together. 2019-06-11 10:19:42 -04:00
Isaac Connor c44967f770 fix push to push_front 2019-05-27 12:47:38 -04:00
Isaac Connor 663f941963 If we can't find a packet before ours in the queue, then stick it at the front of the queue, not the end. 2019-05-27 12:31:18 -04:00
Isaac Connor c91da4a7f5 if no packet found, still append to end 2019-05-03 14:58:29 -04:00
Isaac Connor aec8311deb implement sorting incoming packets in the packetqueue 2019-05-03 13:48:05 -04:00
Isaac Connor 077ad75516 Merge branch 'storageareas' into origin/zma_to_thread 2019-04-25 12:41:48 -04:00
Isaac Connor 240abd824b Don't use image_index anymore 2019-02-26 09:45:40 -05:00
Isaac Connor 448294f593 wip 2019-02-25 10:21:43 -05:00
Isaac Connor 7d6286d517 Merge branch 'storageareas' into zma_to_thread 2019-02-18 16:23:17 -05:00
Isaac Connor 87d1390fed Merge branch 'storageareas' into h265 2019-01-16 15:20:17 -05:00
Isaac Connor 84c812725e spacing, improve debug. WHen looking for starting keyframe in packetqueue, use <= instead of <. 2019-01-14 14:00:45 -05:00
Isaac Connor b16cd7ec84 Merge branch 'h265' into zma_to_thread 2018-11-20 12:38:17 -05:00
Isaac Connor 5ab1126260 Merge branch 'storageareas' into zma_to_thread 2018-10-20 17:31:14 -04:00
Isaac Connor 33c903a644 properly initialize packet_counts 2018-10-15 11:13:10 -04:00
Isaac Connor 45a1a1b1e8 Make packetqueue keep track of audio vs video packet counts. 2018-10-15 10:51:56 -04:00
Isaac Connor 0ec391354c Merge branch 'fix_zms_from_mp4' into h265 2018-09-13 16:18:28 -04:00
Isaac Connor cd6dd28280 Merge branch 'zma_to_thread' of github.com:connortechnology/ZoneMinder into zma_to_thread 2018-08-17 16:15:30 -04:00
Isaac Connor abb6d4f7d9 fixup some logic, remove redundant call to clearQueue, increase first_video_packet_index when clearing video frames from front in queuePacket 2018-08-17 16:06:03 -04:00
Isaac Connor 59b0160144 use ++it instead of it++ 2018-08-13 10:01:16 -04:00
Isaac Connor 0428d8687d put the ++ in front instead 2018-04-14 17:04:00 -04:00
Isaac Connor 8518278476 coverity scan fixes/cleanups 2018-04-12 11:29:35 -04:00
Isaac Connor a419906361 Merge branch 'storageareas' into zma_to_thread 2018-03-09 09:03:19 -05:00
Isaac Connor 10a30452fb fix logic when clearing queue, we were deleting packets endlessly. 2018-02-15 14:08:21 -05:00
Isaac Connor 215660a817 Merge branch 'storageareas' into zma_to_thread
Conflicts:
	src/zm_ffmpeg_camera.cpp
	src/zm_packetqueue.cpp
	src/zm_videostore.cpp
	src/zm_videostore.h
	web/includes/Event.php
	web/skins/classic/views/events.php
2018-01-24 11:06:19 -05:00
Isaac bfa0a00e67 dfebug improvements 2018-01-22 03:27:44 +01:00
Isaac Connor 22df150cb2 Merge branch 'storageareas' into zma_to_thread
Conflicts:
	src/zm_ffmpeg_camera.cpp
	src/zm_packetqueue.cpp
2018-01-17 13:59:34 -05:00
Isaac Connor 360a10276f Fix. We were deleting the keyframe that we wanted to keep. 2018-01-17 10:01:48 -05:00
Isaac Connor c3ab7d5269 Merge branch 'storageareas' into zma_to_thread
Conflicts:
	src/zm_packetqueue.cpp
	src/zma.cpp
2018-01-10 14:24:46 -05:00
Isaac Connor 727bde752f Count non-i frames in frames_to_keep. Should reduce the size of the packetqueue 2018-01-07 13:39:13 -05:00
Isaac Connor aff08358f4 more debug 2017-12-08 13:46:02 -05:00
Isaac Connor 135d3803fb make sure that we don't queue a packet twice 2017-12-08 10:39:24 -05:00
APHW2 MFGENG 0cfc42b9fd some cleanups/fixes 2017-12-05 13:16:52 -08:00
Isaac Connor 0865201e1e seems to work 2017-12-01 07:26:34 -05:00
Isaac Connor f2efc80f22 works? 2017-11-30 14:37:36 -05:00
Isaac Connor d1886b5536 wip 2017-11-27 14:57:24 -05:00
Isaac Connor 99968dfa2a Merge branch 'storageareas' into zma_to_thread 2017-11-27 11:28:36 -05:00
Isaac Connor 8e494ef431 Merge branch 'storageareas' into zma_to_thread 2017-11-23 08:40:49 -05:00
Isaac Connor 24a0d717c5 wip 2017-11-21 19:55:40 -05:00
Isaac Connor 7ed495c948 wip 2017-11-21 11:58:15 -05:00
Isaac Connor a81ff85fbb add ffmpeg decoding of a .mp4 to get the frames 2017-08-23 15:05:44 -04:00
Isaac Connor 259b7f7655 fix memleak 2017-07-31 15:49:27 -04:00
Isaac Connor 98b3621681 add Debug, and fix logic deleting frames before the appropriate keyframe 2017-05-31 20:44:43 -04:00
Isaac Connor b1f8485969 Fix videostorage (#1885)
* merge relevant c bits to make h264 recording work

* h264 code requires libavresample and boost

* Need libavresample
2017-05-16 12:04:56 -04:00