Commit Graph

4090 Commits

Author SHA1 Message Date
Isaac Connor e5f39e78c6
Merge pull request #3133 from Carbenium/dump-packet
ffmpeg: exit dumpPacket early if debug logging is not enabled
2021-02-07 10:40:58 -05:00
Peter Keresztes Schmidt cc6ea04afe Reformat touched code 2021-02-07 13:55:08 +01:00
Peter Keresztes Schmidt 3690da90ec DB: Call mysql_library_end when closing the connection
With the previous commit double initialization of the mysql library is avoided which could have led to the segfaults.
2021-02-07 13:46:33 +01:00
Peter Keresztes Schmidt aec4dbc6ff DB: Make connection initialization more predictable and avoid double-initialization
Remove calls to zmDBConnect from various places to avoid possible side-effects/double initialization.
The function should be called once from the main thread of the daemon.

Also split config loading into 2 steps: static and DB config loading. Load the static config before zmDBConnect is called so it has a chance to succeed.
2021-02-07 13:44:41 +01:00
Peter Keresztes Schmidt 938676b129 ffmpeg: exit dumpPacket early if debug logging is not enabled 2021-02-07 11:58:17 +01:00
Isaac Connor ace93e2422 fix event start packets getting deleted while writing because we don't have a lock on them. 2021-02-06 20:11:38 -05:00
Isaac Connor 010674b3dd Fix use of local mem in return value reported by cppcheck 2021-02-06 20:11:38 -05:00
Isaac Connor c28e1b09e5 Fix compile when using sysv shm 2021-02-06 20:11:38 -05:00
Isaac Connor ab2e468322 Fix resource leak on failure to load font 2021-02-06 20:11:38 -05:00
Isaac Connor 87c3a862e2 remove our copies of min() and max(). Use std::min() and std::max() 2021-02-06 16:02:09 -05:00
Isaac Connor 0b138ee687
Merge pull request #3134 from Carbenium/sort
Image: Replace qsort with std::sort
2021-02-06 13:14:58 -05:00
Peter Keresztes Schmidt 9dc3f15eac Image: Replace qsort with std::sort
std::sort has stricter complexity requirements than qsort and can be better optimized
by the compiler due to templating.
2021-02-06 15:41:56 +01:00
Isaac Connor 7f99635763 Fix xenial builds. Fixes #3130 2021-02-05 12:30:51 -05:00
Isaac Connor 885efc27ee adjust pts/dts on flushed video packets. Improve code comments and debugging 2021-02-04 21:38:37 -05:00
Isaac Connor 2cdf017767 Fixi endlessly writing null frames to video on close when encoding audio to aac 2021-02-04 20:40:11 -05:00
Isaac Connor 9df4487eb7 Remove code to update the frames to match videostore. they are always in sync now 2021-02-04 20:39:48 -05:00
Isaac Connor 8f9637f21a
Merge pull request #3129 from Carbenium/cmake-reformat
Build: Reindent the CMakeLists
2021-02-04 17:20:34 -05:00
Isaac Connor 5ce9203d2c add include <cstring> 2021-02-04 17:07:25 -05:00
Peter Keresztes Schmidt 6c9983155c Build: Reindent the CMakeLists
Indent with 2 spaces
Also remove expressions form closing tags. They have been made optional a while ago since they make reading rather more difficult.
2021-02-04 22:00:56 +01:00
Isaac Connor 2ee097c5f2
Merge pull request #3128 from Carbenium/int-type-macros
Consolidate __STDC_FORMAT_MACROS and __STDC_CONSTANT_MACROS definition
2021-02-04 14:44:51 -05:00
Isaac Connor da4b1fe3bc Use global FFMPEGInit(). Removed compiler warning 2021-02-04 14:07:37 -05:00
Peter Keresztes Schmidt dd527f0888 Consolidate __STDC_FORMAT_MACROS and __STDC_CONSTANT_MACROS definition
Move the definitions to zm_define.h and include the header at the appropriate locations.
These macros have not been adopted by the C++11 standard.
However glibc 2.17 (CentOS 7) still depends on them to provide the macros which are guarded by these defines.
2021-02-04 19:58:29 +01:00
Isaac Connor c57c50fd4a
Merge pull request #3123 from Carbenium/catch2
[RFC] Add Catch2 as C++ test framework and some exemplary tests
2021-02-04 12:57:04 -05:00
Peter Keresztes Schmidt bef4e4032f Add Catch2 as C++ test framework
Use -DCMAKE_BUILD_TEST_SUITE=1 during CMake invocation to activate building the tests.
The 'tests' target builds the unit tests which can then be executed using the 'test' target.

We depend on the Catch2 version of the system.
Since development normally takes place on current OSs, this shouldn't pose a problem.
2021-02-04 18:53:54 +01:00
Isaac Connor 513739aeb5
Merge pull request #3127 from Carbenium/header-cleanup
Cleanup and reorganize includes
2021-02-04 12:52:04 -05:00
Isaac Connor bf8b3fee2a
Merge pull request #3126 from Carbenium/cmake-man-pages
Build: Make building man pages optional (enabled by default)
2021-02-04 12:05:22 -05:00
Peter Keresztes Schmidt eef0da8f19 Remove references to <csignal> from AnalysisThread
The removed block_set member was unused.
2021-02-04 18:02:08 +01:00
Peter Keresztes Schmidt 22372b5117 Replace #pragama once with include guards to be consistent 2021-02-04 18:02:08 +01:00
Peter Keresztes Schmidt 8869bfd903 Gut out zm.h since it is used only to store the self variable 2021-02-04 18:02:08 +01:00
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 046e352304 improvements to fps reporting. In analysis, we report based on image packets processed, but the fps value is calculated based on the count of images we did motion detection on. We no longer count audio packets in capture fps reporting. 2021-02-04 11:50:01 -05:00
Isaac Connor ad9fd05955 When allocating mVideoStream, set mVideoStreamId as well 2021-02-04 10:28:17 -05:00
Isaac Connor ac42aa2488 Setup mVideoStream and mVideoStreamId and set it in packet. 2021-02-04 10:27:56 -05:00
Peter Keresztes Schmidt 5a57efdfe2 Replace deprecated C header includes with the C++ ones. 2021-02-04 05:39:03 +01:00
Isaac Connor c61e6a8c56 If there is an open event in disconnect close it. The idea is that by the time we get to the destructor we should be all shut down 2021-02-03 17:04:40 -05:00
Isaac Connor 6ac5472606 Add disconnecting to zmc to free up resources. 2021-02-03 16:58:03 -05:00
Isaac Connor cb60b6c141 Fix bulk frame code and move it to event. Revert base score to 0. Fix cause of continuous events. Move GetState to .h 2021-02-03 16:57:44 -05:00
Isaac Connor 35470951ad Move the bulk frame logic from monitor to event. Fix up the logic of when to store a db frame. Fix altering max_score too early 2021-02-03 16:56:34 -05:00
Peter Keresztes Schmidt 4db0dea1f2 Build: Make building man pages optional (enabled by default)
Add a new CMake option (-DBUILD_MAN) which can be used
to deactivate the man page build steps.
This is especially useful in a development situation where "make all"
is needlessly slowed down by these build steps.
2021-02-03 21:22:28 +01:00
Isaac Connor be1db1ff20 Score should be a signed int 2021-02-03 09:08:06 -05:00
Isaac Connor f868d92269 Fix colour shift in Crop function due to not multiplying x position by colours 2021-02-02 23:19:53 -05:00
Isaac Connor 49e9bf86fa Code style 2021-02-02 23:19:53 -05:00
Isaac Connor 09d8dbb460 spacing 2021-02-02 23:19:53 -05:00
Isaac Connor 0958768ce5 Fix no bulk frames by setting score to -1 which means BULK. It will get changed to 0 or more by later code. Fixes #3121 2021-02-02 23:19:53 -05:00
Isaac Connor 7e469a28fa remove redundant code, code style and remove some unnecessary multiplies 2021-02-02 23:19:53 -05:00
Isaac Connor 38368a8b9d remove deprecated video_buffer_duration stuff. Fix loading monitor column order 2021-02-02 23:19:53 -05:00
Isaac Connor e09c80e385 Have to close camera AFTER threads have stopped 2021-02-02 23:19:52 -05:00
Isaac Connor 61c3c0d565 Should increment_it after releasing the packet to prevent deadlock 2021-02-02 23:19:52 -05: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 cb0008fb8c Add rtsp_server and accessor 2021-02-02 23:19:52 -05:00
Isaac Connor afa5e27d56 load RTSPServer column as well. start_it needs to be tracked by packetqueue. We no longer close the camera in Monitor::Close because we need to clear the packetqueue, then wait for threads to finish, THEN close camera. So that logic needs to move to zmc 2021-02-02 23:19:52 -05:00
Peter Keresztes Schmidt 0c5c720e4b Remove includes of <stdint.h>
Instead of including the deprecated header <stdint.h>, zm_define.h should be used.
2021-02-02 21:37:26 +01:00
Peter Keresztes Schmidt e09fa1bebf Remove includes of <cinttypes>
Instead of including <cinttypes> directly, zm_define.h should be used
to get the typedef'ed types as well.
2021-02-02 21:37:26 +01:00
Peter Keresztes Schmidt 0f5df0c739 zm: Typedef C++11 int types to make them easier to use
In order to clearly state the intended length of an integer variable
all usages of other integer types (short int, int, long int, ...)
should be converted.
2021-02-02 21:37:26 +01: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 a5417cfe6c NULL=>nullptr. Update analysis_fps earlier on startup 2021-02-01 16:01:09 -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 0676c7cfb4 Use packetqueue::free_it to release iterators 2021-02-01 10:24:58 -05:00
Isaac Connor 08a498ef6a Convert packetqueue from a pointer to a packetqueue to a member packetqueue that is always available. 2021-01-31 21:31:33 -05:00
Isaac Connor a0722b3782 stop thread 2021-01-31 21:31:33 -05:00
Isaac Connor fdadacac6c set packet.size and data because av_init_packet don't do that 2021-01-31 21:31:33 -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 49cf55c22c Put close back before joins 2021-01-31 12:39:06 -05:00
Isaac Connor e08060af3f Free linked monitors 2021-01-31 11:57:43 -05:00
Isaac Connor 4bcefe0562 Add a 10 second wait to force alarm on. If the monitor doesn't notice it is likely not running, leaving an mmap behind 2021-01-31 11:44:58 -05:00
Isaac Connor 14c06cd2d4 Close monitor after terminating threads instead of before 2021-01-31 11:44:25 -05:00
Isaac Connor e237719d6a Delete frame queue on stop 2021-01-31 11:43:16 -05:00
Isaac Connor b83becd856 spacing 2021-01-31 11:43:03 -05:00
Isaac Connor 0fb7cb935f Fix skipping over the head packet when deleting packets. 2021-01-31 11:42:51 -05:00
Isaac Connor e084780123 Remove no longer used pre_event buffer and event_delete_thread 2021-01-31 10:09:03 -05:00
Isaac Connor 00114d32bc Minor code improvements ostly just being more specific about parenthesis 2021-01-30 20:35:10 -05:00
Isaac Connor b47d2428da Minor code, debugging improvements 2021-01-30 20:34:39 -05:00
Isaac Connor 5fc52ae6df Handle iterator pointing to end 2021-01-30 20:34:09 -05:00
Isaac Connor 9ef9fe81fa Don't log error when flushing queues 2021-01-30 14:05:19 -05:00
Isaac Connor b93aab6a11 turn off hwtransfer direct to image. Too compliated for now with not enough benefit 2021-01-30 12:34:29 -05:00
Isaac Connor ac88567ee2 fix 2021-01-29 17:32:22 -05:00
Isaac Connor 5581cdafb6 must increment iterators in the packetqueue lock 2021-01-29 17:30:39 -05:00
Isaac Connor 95d2b1518e Don't treat send_frame null as errors. We are ni flushing mode 2021-01-29 17:07:58 -05:00
Isaac Connor dbad734414 Just include zm_ffmpeg.h 2021-01-29 15:49:53 -05:00
Isaac Connor b812e0d484 It is necessary to prefer the image in the packet to in_frame as it has been timestamped etc 2021-01-29 15:37:51 -05:00
Isaac Connor 292e1b4c9e Set stream time_base to Q. Set PTS/DTS of packets to current time 2021-01-29 15:37:23 -05:00
Isaac Connor fea2ea37e5 Cleanup unused first/start/last pts/dts 2021-01-29 14:04:50 -05:00
Isaac Connor a7d05613b5 When using remote RTSP need to set videoStream parameters 2021-01-29 14:04:21 -05:00
Isaac Connor 5f7f066a4f Better to alloc context with codec 2021-01-29 14:03:48 -05:00
Isaac Connor 63a6bdaac1 spacing 2021-01-29 09:53:48 -05:00
Isaac Connor 5a21ebe3ef allow audio streams 2021-01-28 10:49:46 -05:00
Isaac Connor 8199116c15 Make error message more clear 2021-01-28 10:46:08 -05:00
Isaac Connor ab65a65dfb use camel case on video_stream and audio_stream 2021-01-28 10:45:53 -05:00
Isaac Connor 335c1b1404 populate mVideoStream and mAudioStream so we don't allocate new ones later 2021-01-28 10:45:39 -05:00
Isaac Connor 28d27cc30a use camel case on video_stream and audio_stream 2021-01-28 10:45:19 -05:00
Isaac Connor 4bd813d980 Don't try to transfer image when there is no image available 2021-01-28 10:22:14 -05:00
Isaac Connor f32e546b94 Remove unused members 2021-01-28 10:18:22 -05:00
Isaac Connor acf909d4f3 Move setting codec parameters below the copy in case they get overwritten 2021-01-28 10:17:23 -05:00
Isaac Connor 2baa22dc85 Fix case when hwaccel not compiled in 2021-01-28 10:16:58 -05:00
Isaac Connor 7ff38a3a5c Remove unused code from FFmpegCamera 2021-01-28 10:11:26 -05:00
Isaac Connor d16a7b98eb fix send_packet_receive_frame. Can't just resend the same packet until we get a frame! 2021-01-28 10:04:02 -05:00
Isaac Connor 1212830354 fix AVOCDEC version check 2021-01-28 09:08:51 -05:00
Isaac Connor d64745a5da Add debug in zm_send_packet_receive_frame 2021-01-28 09:08:33 -05:00
Isaac Connor 7923e0c279 fix min_section_length not being honoured 2021-01-27 18:13:16 -05:00
Isaac Connor c4b80e61bc code comments 2021-01-27 16:14:17 -05:00
Isaac Connor ce53552dda require audio_in_ctx as well as audio_in_stream 2021-01-27 16:14:07 -05:00
Isaac Connor 6271971912 Use get_videoStream in zm_camera 2021-01-27 16:13:43 -05:00
Isaac Connor 4ca9c9fe69 code cleanup 2021-01-27 16:13:03 -05:00
Isaac Connor 608afcbbd2 return bytes consumed by decode 2021-01-27 16:12:49 -05:00
Isaac Connor 4c933f82b8 All cameras will have an mFormatConext, CodecContext etc. Consolidate code in zm_camera. Fix remote rtsp decoding 2021-01-27 16:12:32 -05:00
Isaac Connor 666299d5fa code style 2021-01-27 16:11:24 -05:00
Isaac Connor fbe22d29ba Don't crash if can't add any streams 2021-01-27 12:50:40 -05:00
Isaac Connor 518270a9ac Must set keyframe and codec_type of zm_packet 2021-01-27 12:50:17 -05:00
Isaac Connor 1ca93c4211 accept packets with image as video 2021-01-27 12:49:54 -05:00
Isaac Connor 6df865cd08 spacing 2021-01-27 12:49:37 -05:00
Isaac Connor d741f4ba04 accept packets with image data 2021-01-27 12:49:27 -05:00
Isaac Connor e28c724742 fix return values of Prime, Pre and PostCapture 2021-01-27 12:07:35 -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 bbba0f679b Don't need to set timebase. Continue supporting old ffmpeg 2021-01-27 11:48:32 -05:00
Isaac Connor f3ea237af1 Fix build without RTSP 2021-01-27 10:50:07 -05:00
Isaac Connor ef3440e5b8 Fix including rtsp server code 2021-01-27 10:08:42 -05:00
Isaac Connor 905912a8dd Don't need to checkInitialized in event stream. We don't assign a monitor and don't need to connect to it 2021-01-27 10:07:57 -05:00
Isaac Connor d594fbcd49 Some fixes for unused code (will be used in future) 2021-01-26 18:29:34 -05:00
Isaac Connor 27011ab49b Fix bulid without liveMedia 2021-01-26 18:29:02 -05:00
Isaac Connor 42abe5c917 include hwcontext in zm_ffmpeg.h so that it gets included where needed 2021-01-26 18:28:11 -05:00
Isaac Connor 4dcce4ac95 Merge branch 'rtsp_server' 2021-01-26 14:22:10 -05:00
Isaac Connor bfaed28cff use config.min_rtsp_port to determine if we start up the rtsp server. Move the sleep on failure to capture down below shutting everything down. 2021-01-26 14:20:03 -05:00
Isaac Connor 33f934b9ab Use config.min_rtsp_port instead of hard coded base port 2021-01-26 14:14:29 -05:00
Isaac Connor 4159baac06 Use 10 seconds of queue instead of a fixed packet count. Audio generates more frames than video so they get way out of sync. 2021-01-26 14:14:05 -05:00
Isaac Connor 7e11d28031 Remove duplicated debug 2021-01-26 12:25:11 -05:00
Isaac Connor a209d493ef Handle null video_in_ctx. Better debug. Always flush codecs 2021-01-26 12:24:43 -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 e4831909d6 get_packet can return null if we are terminating 2021-01-26 12:22:26 -05:00
Isaac Connor 7cc21b0d0b Always load AvFrame to RGBA 2021-01-26 12:22:07 -05:00
Isaac Connor e226618300 better debug of video/audio frames 2021-01-26 12:21:51 -05:00
Isaac Connor cd9b3fb1f6 add static Mode_Strings 2021-01-26 12:21:21 -05:00
Isaac Connor 0ecbe29ac0 Handle no frame/duration information more gracefully 2021-01-26 12:20:55 -05:00
Isaac Connor e10d15fa91 Only write db entries for video frames but do write them even if no decoded image 2021-01-26 12:20:32 -05:00
Isaac Connor f731a5dc8f Add StreamMode_Strings for printing out mode 2021-01-26 09:50:41 -05:00
Isaac Connor 835cc8076e Cleanup constructor, using initializers. Pass in CodecContexts as well. We need them for timebases. Fixes passthrough timestamps. 2021-01-25 18:50:35 -05:00
Isaac Connor 6394c620ad add stream index to debug 2021-01-25 13:23:57 -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 baf39b0d4f add adts_source 2021-01-24 20:16:54 -05:00
Isaac Connor 8a1686076a break long line 2021-01-22 20:24:29 -05:00
Isaac Connor 7feb252f81 code style 2021-01-22 20:24:12 -05:00
Isaac Connor 9d2598da13 cleanup and add AAC support. Also stop source threads 2021-01-22 20:23:30 -05:00
Isaac Connor afc7c86eac add AAC support 2021-01-22 20:22:50 -05:00
Isaac Connor 2561a07d86 provide a simple SDP line 2021-01-22 20:21:28 -05:00
Isaac Connor d03e5fbe20 cleanup 2021-01-22 19:29:19 -05:00
Isaac Connor 71ebae27eb Use codecpar instead of codec which is deprecated 2021-01-22 19:29:01 -05:00
Isaac Connor c7b8d7bda9 get rid of useThread. We will always have a thread 2021-01-22 19:26:00 -05:00
Isaac Connor afd57ec307 Add a base extractFrame that just treats the entire buffer as a frame 2021-01-22 19:25:38 -05:00
Isaac Connor c94e2c0f13 cleanup 2021-01-22 19:24:27 -05:00
Isaac Connor 08165c06df Add audio details to zm_dump_codecpar 2021-01-22 19:24:15 -05:00
Isaac Connor 1a400be11c add zm_rtsp_server_adts_source.cpp to build 2021-01-22 19:23:36 -05:00
Isaac Connor ea8f264724 Merge branch 'release-1.34' 2021-01-22 15:54:06 -05:00
Terry Sanders c21e02e3c7 Fixed issue where mysql_free_result can get called twice when a vaild username with an incorrect password is used. 2021-01-22 12:23:38 -05:00
Isaac Connor f9fc10b394 When not capturing don't try to create mmap. Fixes #3112 2021-01-22 12:23:13 -05:00
Isaac Connor f1686cfe9a When not capturing don't try to create mmap. Fixes #3112 2021-01-22 12:11:43 -05:00
Isaac Connor 01ec57f902 remove test for negative pts. Negative pts is ok. Have been running this in master for a while with no negative effects. 2021-01-22 12:07:47 -05:00
Isaac Connor a30a473981 fix passing in audiostream 2021-01-21 10:27:15 -05:00
Isaac Connor b8eac366b7 pts is an int 2021-01-21 10:27:02 -05:00
Isaac Connor d0380fb89b cleanup, start roughing in audio stream support 2021-01-21 10:26:46 -05:00
Isaac Connor 44245a9a4f spacing typos 2021-01-21 10:25:26 -05:00
Isaac Connor 8a9111d0b3 spacing 2021-01-21 10:25:09 -05:00
Isaac Connor 35c72b32dd Cleanup. Remove stats stuff. Code now works so remove other options. Re-implement extractFrame as it was broken. It would skip shortmarkers. 2021-01-21 10:23:30 -05:00
Isaac Connor 66c78e5a9b Merge branch 'zma_to_thread' into rtsp_server 2021-01-19 13:43:25 -05:00
Terry Sanders ef006ca407 Fixed issue where mysql_free_result can get called twice when a vaild username with an incorrect password is used. 2021-01-19 14:47:11 +00: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 256080abb1 Fix crash of Reload() due to Load() clearing shared_data and mem_ptr. Load() shouldn't do these kinds of initialisations. 2021-01-19 09:44:53 -05:00
Isaac Connor fec3dc763f Cleanups. Apply crf to encoding to fix encoding video 2021-01-15 17:02:26 -05:00
Isaac Connor 430d64ba67 create fix_deprecated_pix_fmt function to adjust deprecated pixfmts 2021-01-15 17:01:59 -05:00
Isaac Connor 0f7c46e2cc Merge branch 'master' into zma_to_thread 2021-01-15 14:56:00 -05:00
Isaac Connor 0f276887ad When can't connect to monitor send an image saying so 2021-01-15 14:43:44 -05:00
Isaac Connor 0a0c99ce7a fix double free of mysql result 2021-01-15 14:43:31 -05:00
Isaac Connor 23305be8bf break lone lines. Move sendTextFrame to public so that we can use it to send error message in image form. 2021-01-15 14:43:07 -05:00
Isaac Connor 3d234427e0 initialize packetqueue, analysis_it, storage and videostore in Monitor constructor initializer. Only delete packetqeuue if it has been created. 2021-01-15 14:42:30 -05:00
Isaac Connor 68b0f7e1b5 initialize packetqueue, analysis_it, storage and videostore in Monitor constructor initializer. Only delete packetqeuue if it has been created. 2021-01-15 14:42:26 -05:00
Isaac Connor 27e10c2ed9 cleanup encoding code. Update logging 2021-01-15 11:55:46 -05:00
Isaac Connor 10e56df53c analysis_limit > cpature fps: only log a warning if we have actually been capturing for a while. If doing passthrough, need to start continuous event from last keyframe 2021-01-15 11:54:36 -05:00
Isaac Connor 83c60b7317 Make the error message clearer by actually printing the time. 2021-01-15 11:53:25 -05:00
hax0kartik 6845c2cab4 Fix padding issue in timestamp code 2021-01-15 11:46:30 +05:30
Isaac Connor e530a51af7 WHen ret=0 is not failure, not success. Don't log error. Return the return code instead of -1 2021-01-14 10:31:55 -05:00
Isaac Connor f44f920bf2 spacing 2021-01-14 10:31:29 -05:00
Isaac Connor ef2f126eaa Merge branch 'master' into zma_to_thread 2021-01-12 14:37:25 -05:00
Isaac Connor e496679efd Set transaction isolation level to READ COMMITTED so that concurrent event inserts don't deadlock 2021-01-12 14:19:04 -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 5b7fc210fe Only use direct to rgb0 when image colours are 4 2021-01-12 14:12:09 -05:00
Isaac Connor 164a0f5a44 Need to use get_packet so that packets getting written to event are locked. Because queuePacket might delete them. 2021-01-12 14:11:47 -05:00
Isaac Connor 04c02dd1ef Spacing 2021-01-12 14:11:06 -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 605319a290 Remove old LOG line 2021-01-11 13:46:50 -05:00
Isaac Connor b2c5860062 dumpPacket when addPacket 2021-01-11 13:46:50 -05:00
Isaac Connor 649114ed39 further disable rtsp_server 2021-01-11 13:46:50 -05:00
Isaac Connor f7be54fe11 Add detecting target pixfmt and if rgb0 is supported, use it to do the transfer direct to the Image. 2021-01-11 13:46:50 -05:00
Isaac Connor e8d06f702c Handle signal loss, improve debugging 2021-01-11 13:46:50 -05:00
Isaac Connor f3c4bb0027 Add AVBufferRef setup when Populating AVFrame from Image. This allows hwtranfer to work because it relies on AVBuffer AVFrame. Please note that we don't want AVBuffer to free the buffer so we pass an empty function to it. 2021-01-11 13:46:50 -05:00
Isaac Connor 9fb8e51ff2 Set imagePixFormat everywhere. Add PopulateFrame which creates and AVFrame pointing to the image's buffer. Will do this with proper refcounting eventually 2021-01-11 13:46:50 -05:00
Isaac Connor 9740b635dd Fix missing comma 2021-01-11 13:46:50 -05:00
Isaac Connor 67f4359242 clean up code giving warning when no starttime is given 2021-01-11 13:46:50 -05:00
Isaac Connor 9cad82e916 include kleyframe status in zm_dump_video_frame 2021-01-11 13:46:50 -05:00
Isaac Connor 1ec2198d2b remove unused var temp 2021-01-11 13:46:50 -05:00
Isaac Connor fdf9975deb break long line 2021-01-11 13:46:50 -05:00
Isaac Connor c958a2c00b Code style 2021-01-11 13:46:50 -05:00
Isaac Connor 46a8bb22fb get camera if we havn't already. Don't delete the timestamp in shared zmpackets because it is just a pointer to shmem. Set it to null instead so that ~ZMpacket doesn't try to free it 2021-01-11 13:46:50 -05:00