Commit Graph

4745 Commits

Author SHA1 Message Date
Isaac Connor 415dd83d06 spacing 2021-02-19 12:44:24 -05:00
Isaac Connor 551e35b4bf dump incoming video packet for debug 2021-02-19 12:44:24 -05:00
Isaac Connor d85e4121ef set pts of dest_frame to make debug less confusing 2021-02-19 12:44:24 -05:00
Isaac Connor ed6fc9fca6 use av_frame_copy_props to copy frame members instead of doing it manually 2021-02-19 12:44:24 -05:00
Isaac Connor 2c0261bef4 Include time_base in DUMP_PACKET 2021-02-19 12:44:24 -05:00
Isaac Connor 124d9bf798 Fix logging when holding db lock 2021-02-19 12:09:02 -05:00
Isaac Connor 3dab7d3ecc Don't need to Disconnect when Capture will return -1, as we will call Close() which calls Disconnect() 2021-02-19 12:08:48 -05:00
Isaac Connor 4ba290a9ca Use zmDbDo where appropriate and fix some logging while holding the lock 2021-02-19 12:08:19 -05:00
Isaac Connor d8afd58072 Remove 1 seconds sleeps from db timeout loops. 1 second is a long time. Remove UpdateFramesDelta code which is no longer needed 2021-02-19 12:07:59 -05:00
Isaac Connor a8e63e4f20 watch for zm_terminate in db while loops 2021-02-19 12:07:12 -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 0b0df96271 Merge branch 'master' of github.com:ZoneMinder/zoneminder 2021-02-18 16:05:10 -05:00
Isaac Connor 5ad9244a73 Use new db utility functions to simplify event creation code 2021-02-18 16:01:45 -05:00
Isaac Connor 63a45888a0 Introduce utility functions zmDbDo and zmDbDoInsert. 2021-02-18 16:01:30 -05:00
Isaac Connor bc41cd944e Add missing db_lock.unlock() 2021-02-18 15:00:30 -05:00
Isaac Connor 9502762ce8 WIP cleanup. Don't need to malloc ram as rfbInit will do it. We may need to allocated a larger buffer though, so may need to give vncserver a different malloc function 2021-02-18 13:47:27 -05:00
Isaac Connor a4d8ef5d8f Use new version of fix_deprecated_pix_fmt 2021-02-18 13:47:27 -05:00
Isaac Connor 6d8a7a7a4c add SWSCale::GetBufferSize to reduce duplicated lines of code. Makes input buffer size not have to match the aligned size. Reading from doesn't generally cause a crash. 2021-02-18 13:47:27 -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 c7dede0083 Cleanups in connect/disconnect 2021-02-18 13:47:27 -05:00
Isaac Connor 8a329df5ec change how fix_deprecated_pix_fmt works to return a value so we can use it elsewhere 2021-02-18 13:47:27 -05:00
Isaac Connor 04c13c6ff3 Handle value of auto for encoder 2021-02-18 13:30:38 -05:00
Isaac Connor 0d59584250 Only set DefaultVideo if we are successful at opening videoStore. Set save_jpegs flag in db record if we turn it on after failing videoStore. 2021-02-18 13:30:05 -05:00
Isaac Connor f05488ee49 better error message when can't set crf 2021-02-18 11:55:09 -05:00
Isaac Connor b40a31d76f Move content of setMaxVideoPcakets into .cpp 2021-02-18 11:54:50 -05:00
Isaac Connor b1f337b6e7 Move setMaxVideoPackets down to where pre_event_count has a value 2021-02-18 11:54:32 -05:00
Isaac Connor 3e10c3a8a4 Fix return codes 2021-02-17 16:42:48 -05:00
Isaac Connor 2a49bd124f Add VNC monitor type 2021-02-17 16:39:16 -05:00
Isaac Connor cf6d2caef7 Make setting fmt non fatal. 2021-02-17 16:34:19 -05:00
Isaac Connor cf9406a1e8 undef max if defined in rfb/rdbclient.h 2021-02-17 13:40:12 -05:00
Isaac Connor 33b9dae0f2 fix use of uint32_t for buffer indexes 2021-02-17 13:38:52 -05:00
Isaac Connor f061c25183 Make failure to set video standard non-fatal. 2021-02-17 11:02:56 -05:00
Isaac Connor 519e39b4f4 Reloading has to stop other threads while we are re-initing the logs. So move it down 2021-02-17 10:07:36 -05:00
Isaac Connor 59cdf971fa convert last_read_index and last_write_index to int32_t so that we can have -1 as a value in other functions. 2021-02-16 14:43:52 -05:00
Isaac Connor 41dc0212e0 Move include of algorithm up to top to hopefully fix issues with min and max being defined elsewhere and so compile fails 2021-02-16 10:39:04 -05:00
Isaac Connor a82247b105 Some cleanups in disconnect 2021-02-16 10:39:04 -05:00
Isaac Connor a56d78bb04 Don't sleep if Analyse returns false and we are terminating 2021-02-16 10:39:04 -05:00
Isaac Connor 9c3bf0af1d Always default to mp4 for now 2021-02-14 09:49:30 -05:00
Isaac Connor 99264e4072 Fix swscale failing on resolution change. Fixes #3161 2021-02-12 11:55:25 -05:00
Isaac Connor 5a910c4a4b use lock_guard instead of unique_lock 2021-02-12 10:45:32 -05:00
Isaac Connor 2cb6d21faf get rid of while loop in ::Analyze. Switch login on if Ready() to bail early so we don't indent so much. 2021-02-12 10:38:21 -05:00
Isaac Connor 4915e940b7 clean out old mutex. Add event_mutex to protect around event creation/deletion 2021-02-12 10:14:35 -05:00
Peter Keresztes Schmidt 3d759e1fe0 Monitor: Some reformatting of previously touched lines 2021-02-11 20:02:08 +01:00
Peter Keresztes Schmidt c0151caa64 Monitor: Signal by making the camera a unique_ptr the ownership relation
In addition we get RAII and thus automatic destruction of the camera when the monitor is destructed.

Monitor API change: getCamera -> LoadCamera
If additional properties of the camera are needed externally they should be exposed directly via Monitor.
2021-02-11 19:22:22 +01:00
Peter Keresztes Schmidt 35514649c9 Monitor: Make audio and video streams directly accessible
Also remove Camera::getId() which returend the monitor ID. Since a camera is owned by an monitor, there is no need for this. Also it causes a circular include.
2021-02-11 19:22:22 +01:00
Peter Keresztes Schmidt ede811df50 zmc: Simplify Monitor's shutdown procedure
disconnect() is already called in the destructor. Since `monitors` goes out of scope all instances will get automatically destructed. There is no need to manually call disconnect().
2021-02-11 19:22:22 +01:00
Peter Keresztes Schmidt 91aeb325dd Monitor: Close monitor on destruction
This ensures the proper shutdown sequence when not calling Close() externally (e.g when reconnecting).
2021-02-11 19:22:22 +01:00
Peter Keresztes Schmidt 0a665c0710 Monitor: Close the associated camera when closing the monitor
The camera is owned by the monitor. There is no reason to keep the camera open, when the owner is closed.
2021-02-11 19:22:22 +01:00
Isaac Connor 2742485a61
Merge pull request #3157 from Carbenium/zmc-deadlock
Fix a possible deadlock on zmc shutdown and reconnect
2021-02-11 11:28:36 -05:00
Peter Keresztes Schmidt 42484e6434 zmc: Fix a deadlock on shutdown/reconnection
First stop the analysis threads, then close the monitors and thus drain the packet queues before trying to join the analysis threads since they might hang while waiting for the next packet to arrive.
2021-02-11 15:48:22 +01:00
Isaac Connor cca4d18d26 need <algorithm> for std::max 2021-02-10 17:29:51 -05:00
Isaac Connor 51f2d120e4 Free raw image after motion detection when doing passthrough and not saving jpegs 2021-02-10 17:07:58 -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 0a1bd3537d ready_count is now max(warmup_count,pre_event_count). This should ensure that we have enough packets in the packet queue when creating an event. 2021-02-10 13:54:20 -05:00
Isaac Connor 991e8dc860 Include mysqld_error.h so we can test for specific errors 2021-02-10 13:54:20 -05:00
Isaac Connor 64cfac9255 Only loop on SQL insert for wait timeout error, not others 2021-02-10 13:54:20 -05:00
Peter Keresztes Schmidt 2f5dff7244 Monitor: Don't push packets into the packet queue when in Monitor mode
There is no consumer for the packets in this mode, so don't queue them up. This saves quite a bit of RAM for mode of operation.
2021-02-10 16:13:47 +01:00
Peter Keresztes Schmidt 687ba03eb4 Drop relicts of zma 2021-02-10 13:26:25 +01:00
Isaac Connor 8f783c0ec4 Must also include cstdarg for va_start etc al 2021-02-09 23:32:27 -05:00
Isaac Connor 9879a40c4b Must include cstring 2021-02-09 23:32:27 -05:00
Isaac Connor b18522b6c0 Merge branch 'master' of github.com:ZoneMinder/zoneminder 2021-02-09 20:29:45 -05:00
Isaac Connor fab7efa003 Fix PrimeCapture on local cams. We need to be able to call it for each monitor 2021-02-09 20:29:37 -05:00
Isaac Connor dcf1ff3133
Merge pull request #3152 from Carbenium/ffmpeg-warnings
Fix some ffmpeg deprecation warnings
2021-02-09 20:15:41 -05:00
Peter Keresztes Schmidt a66a9a6f10 Rtsp: Use AvStream.codecpar if available
.codec has been deprecated in libavf 57.33.100
2021-02-10 00:21:23 +01:00
Peter Keresztes Schmidt e18f9e1f03 FFmpeg: Drop function which is not needed with supported ffmpeg versions
avformat_alloc_output_context2 was introduced in libavformat 53.2 (2011). Drop our own implementation which was used if the library version wasn't available. It isn't used anymore an causes compile warnings.
2021-02-10 00:21:23 +01:00
Peter Keresztes Schmidt d0b80d63c3 FFmpeg: Fix a version check to avoid deprecation warnings on newer systems 2021-02-10 00:20:34 +01:00
Peter Keresztes Schmidt 0380bee130 AnalysisThread: Make the class un-movable
We depend on an unchanged value of "this" after the creation of the thread otherwise undefined values would be accessed within the std::thread.
2021-02-09 23:54:50 +01:00
Peter Keresztes Schmidt 8fa1249b33 Utils: Add some helper to create unique_ptrs
They follow the C++14 API and can be removed once the language level is increased.
2021-02-09 23:52:13 +01:00
Isaac Connor 67cd038a4f Include pre-alarm frames in db 2021-02-09 15:33:09 -05:00
Isaac Connor 727594e3af Fix rotated images by allocating image with camera dimensions 2021-02-09 14:53:14 -05:00
Isaac Connor 13d72bdec6 Merge branch 'master' of github.com:ZoneMinder/zoneminder 2021-02-09 14:24:20 -05:00
Isaac Connor 1780cfbff1 Add frames_duration 2021-02-09 14:23:34 -05:00
Isaac Connor 9b3d423f3d Separate duration==endtime-starttime from Frames Duration 2021-02-09 14:22:23 -05:00
Isaac Connor a5519075f5 Also save ALERT frames to db 2021-02-09 14:22:02 -05:00
Isaac Isaac c233bf3463 spacing and a fix for duplicated for loop setting up rtsp server 2021-02-09 13:18:34 -05:00
Isaac Isaac 032420beb2 Don't need to init mVideoStream etc as they are done in Camera(). Set stream_index in packet. 2021-02-09 13:16:19 -05:00
Isaac Connor 05b5927f01 Don't queue audio packets if we aren't saving audio 2021-02-09 11:54:38 -05:00
Isaac Connor 1bce4f6bfa When flushing queues, will return 0 when done. Handle it. Also set next dts from pkt, not opkt 2021-02-09 11:30:42 -05:00
Isaac Connor e3eebeb9dd Must return ret to handle case where ret=0. 2021-02-09 11:30:06 -05:00
Isaac Connor aab3aed791
Merge pull request #3145 from Carbenium/analysis-thread
AnalysisThread: Move it over to std::thread
2021-02-09 09:26:47 -05:00
Peter Keresztes Schmidt 23a4b5087c RTSPServerThread: Fix a crash during construction
It's a bad idea to use a shared_ptr instance from which the data just got moved away. Rename the instance variable to distinguish them.
2021-02-09 14:50:07 +01:00
Peter Keresztes Schmidt 4056782954 Comms: Move all classes to ZM:: namespace
The Socket class collides with a class named the same way from liblive555. This confuses the linker and links the wrong object leading to a crash when connecting to the RTSP server.
2021-02-09 14:45:33 +01:00
Peter Keresztes Schmidt 888ddc5d63 AnalysisThread: Sprinkle some more std::chrono 2021-02-09 12:26:53 +01:00
Peter Keresztes Schmidt 3ba8ff604f AnalysisThread: Use std::this_thread::sleep_for instead of usleep 2021-02-09 12:26:53 +01:00
Peter Keresztes Schmidt 4cd70fec1a Utils: Add some typedefs for std::chrono durations 2021-02-09 12:26:53 +01:00
Peter Keresztes Schmidt b22dbd4788 AnalysisThread: Move it over to std::thread 2021-02-09 12:26:53 +01:00
Peter Keresztes Schmidt 00104b020c Build: Link our libs and executable targets against zm-core-interface 2021-02-08 23:08:22 +01:00
Isaac Connor 4d0800151a
Merge pull request #3143 from Carbenium/close-event-crash
Monitor: Don't segfault in closeEvent if mmap is already unmapped
2021-02-08 15:32:38 -05:00
Peter Keresztes Schmidt 6fd6654488 Monitor: Don't segfault in closeEvent if mmap is already unmapped 2021-02-08 19:47:40 +01:00
Peter Keresztes Schmidt 7e7b1a0b1f Logger: Try harder to obtain the DB lock
Since we are now multi-threaded it can happen quite easily that a log message should be written to the DB on one thread while the other thread executes another query. Don't bail out immediately in the logging code, instead try to obtain the lock within 1s.
2021-02-08 19:07:01 +01:00
Peter Keresztes Schmidt 70fbc25dbd Mutex: Change method signatures so they resemble std::unique_lock a bit more
try_lock_for should specify in their return value whether obtaining the lock succeeded.
2021-02-08 18:59:25 +01:00
Isaac Connor 05a115e315
Merge pull request #3141 from Carbenium/recursive-mutex
RecursiveMutex: Use the pthread_mutex_t of the base class
2021-02-08 11:49:35 -05:00
Peter Keresztes Schmidt 40ddca14c6 RecursiveMutex: Use the pthread_mutex_t of the base class
Not doing so initializes a pthread_mutex_t with PTHREAD_MUTEX_RECURSIVE in the derived class but the lock/unlock
methods still use the pthread_mutex_t instance of the base class, which is not a recursive mutex.
2021-02-08 17:33:06 +01:00
Isaac Connor 583779438b Don't unlock db_mutex if we don't get the lock in the first place 2021-02-08 11:09:44 -05:00
Isaac Connor 192aae8e30 small space and code doc 2021-02-08 09:04:06 -05:00
Isaac Connor 01e69569eb Placement of -- matters. 2021-02-08 09:04:06 -05:00
Isaac Connor b75d2f6164 Don't need to set ctx to null. fre_context does it for us 2021-02-08 09:04:06 -05:00
Isaac Connor 061140958c Only update videodata if shared_data is active 2021-02-08 09:04:06 -05:00
Isaac Connor 57f599237c
Merge pull request #3136 from Carbenium/db-connect
DB: Make connection initialization more predictable and finalize mysql library correctly
2021-02-08 08:43:33 -05:00
Peter Keresztes Schmidt 3376b44290 Monitor: Fix a segfault when loading local cameras 2021-02-08 12:25:18 +01:00
Peter Keresztes Schmidt f43507dce0 Use the power of smart pointers to manage Monitor instances 2021-02-07 21:20:45 +01:00
Peter Keresztes Schmidt a3dc48b55d Define printf format specifier for size_t types (SZFMTD) 2021-02-07 20:39:48 +01:00
Peter Keresztes Schmidt cbb37337cb DB: Improve resource cleanup on connection failure 2021-02-07 20:16:16 +01:00
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
Isaac Connor b6b92115d1 allocate our own CodecContext for decoding. Reusing the existing one doesn't work for hwaccel. Add hwaccel flags to let it use Constrained Baseline for Baseline profile streams. Try without specified device if hwdevice_ctx_create fails. 2021-01-11 13:46:50 -05:00
Isaac Connor 497b91f7c6 disable rtsp_server 2021-01-11 13:46:50 -05:00
Isaac Connor ebe3a9b6a7 Must notify before waiting in destructor. Fix leaks 2021-01-11 13:46:50 -05:00
Isaac Connor 09264a52ff use zm_av_send_packet_receive_frame and fixup hwaccel support 2021-01-11 13:46:50 -05:00
Isaac Connor 13d7e612e3 improve hwaccel support 2021-01-11 13:46:50 -05:00
Isaac Connor 34009ca59b remove unused directbuffer 2021-01-11 13:46:50 -05:00
Isaac Connor 97dff2fb28 Open/CLose RTSP with analysis thread when opening and closing monitor. We have to have successfully PrimeCapture before adding streams to RTSP Server and need to shut it down when closing the monitor because the packetqueue goes away 2021-01-11 13:46:50 -05:00
Isaac Connor 1316c6ea86 Update codec opening to properly handle passthrough 2021-01-11 13:46:50 -05:00
Isaac Connor 894ad11816 change outputFd which is unused to stream_id which is the stream_id to concern ourselves with when getting packets from the packetqueue. Add more tests for zm_terminate. Add testing for AV_CODEC_ID instead of v4l2 PIX_FMT to determine stream type 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 9187b08b7a add missing and mix order of Packet initializers 2021-01-11 13:46:50 -05:00
Isaac Connor b3ca0ac2d9 add missing and mix order of Packet initializers 2021-01-11 13:46:50 -05:00
Isaac Connor 65fc5bf478 move code from Load for purpose==ANALYSIS because it will never run. Analysis is a thread now and must assume that PrimeCapture has already succeeded. 2021-01-11 13:46:50 -05:00
Isaac Connor 824cbb7879 spacing and NULL=>nullptr 2021-01-11 13:46:50 -05:00
Isaac Connor f842e9e2ed NULL=>nullptr 2021-01-11 13:46:50 -05:00
Isaac Connor 02f65cec4d Don't need to get_ref_image anymore. It will block waiting for a capture packet and the ref image will be set by capture thread 2021-01-11 13:46:50 -05:00
Isaac Connor 432bb338e8 Rename H264PASSTHROUGH to just PASSTHROUGH. Add an analysis_it to the Monitor object as it will no longer exist in the packetqueue 2021-01-11 13:46:50 -05:00
Isaac Connor da7a50c92d Rename H264PASSTHROUGH to just PASSTHROUGH. Start with last_signal set to true so that we don't have a signal change event on startup. Use new generic packetqueue functions 2021-01-11 13:46:50 -05:00
Isaac Connor 22ae83a0d6 Rename H264PASSTHROUGH to just PASSTHROUGH 2021-01-11 13:46:50 -05:00
Isaac Connor 705959d1ec Set codec_type in zm_packet 2021-01-11 13:46:50 -05:00
Isaac Connor 510cbd8b19 Add AVPacket parsing queue and other files for rtsp_server 2021-01-11 13:46:50 -05:00
Isaac Connor 3f5bc97e6e continue roughing in rtsp server. Fix not adding session to rtspServer. 2021-01-11 13:46:50 -05:00
Isaac Connor 92ac012324 Add rtsp_server files to CMakeLists.txt 2021-01-11 13:46:50 -05:00
Isaac Connor 60fa3f9ec1 cleanup. Add h264_vaapi codec support 2021-01-11 13:46:50 -05:00
Isaac Connor 0cc123a460 small cleanup in logging 2021-01-11 13:46:50 -05:00
Isaac Connor fe7007cc2b Remove old LOG line 2021-01-11 13:45:37 -05:00
Isaac Connor 62ffc20c98 dumpPacket when addPacket 2021-01-11 13:45:21 -05:00
Isaac Connor 2fe325efe7 further disable rtsp_server 2021-01-11 13:38:22 -05:00
Isaac Connor 1b1438bf7a Add detecting target pixfmt and if rgb0 is supported, use it to do the transfer direct to the Image. 2021-01-11 13:36:51 -05:00
Isaac Connor e1f6f5984d Handle signal loss, improve debugging 2021-01-11 13:35:48 -05:00
Isaac Connor 70090f7edc 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:35:23 -05:00
Isaac Connor f625734c82 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 11:57:34 -05:00
Isaac Connor 29255d1528 Fix missing comma 2021-01-11 11:15:22 -05:00
Isaac Connor ab9583cbdf clean up code giving warning when no starttime is given 2021-01-11 10:06:54 -05:00
Isaac Connor dd4685ecf2 include kleyframe status in zm_dump_video_frame 2021-01-10 19:13:02 -05:00
Isaac Connor 4b90eb992d remove unused var temp 2021-01-08 16:45:16 -05:00
Isaac Connor 9e353a8837 break long line 2021-01-08 16:45:03 -05:00
Isaac Connor c0a2286dee Code style 2021-01-08 15:49:21 -05:00
Isaac Connor a6aefcf477 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-08 15:49:09 -05:00
Isaac Connor 736b14327e allocate our own CodecContext for decoding. Reusing the existing one doesn't work for hwaccel. Add hwaccel flags to let it use Constrained Baseline for Baseline profile streams. Try without specified device if hwdevice_ctx_create fails. 2021-01-08 15:48:01 -05:00
Isaac Connor 81d6f8c1ee disable rtsp_server 2021-01-07 15:13:02 -05:00
Isaac Connor c70e2ccfc2 Must notify before waiting in destructor. Fix leaks 2021-01-07 15:12:44 -05:00
Isaac Connor 514201c7b2 use zm_av_send_packet_receive_frame and fixup hwaccel support 2021-01-07 15:12:27 -05:00
Isaac Connor f729034e9f improve hwaccel support 2021-01-07 15:11:46 -05:00
Isaac Connor 655e54db17 remove unused directbuffer 2021-01-07 09:50:45 -05:00
Isaac Connor 595bb2f565 Open/CLose RTSP with analysis thread when opening and closing monitor. We have to have successfully PrimeCapture before adding streams to RTSP Server and need to shut it down when closing the monitor because the packetqueue goes away 2021-01-07 09:47:53 -05:00
Isaac Connor c6d15f193a Update codec opening to properly handle passthrough 2021-01-07 09:46:35 -05:00
Isaac Connor 5cca440bee change outputFd which is unused to stream_id which is the stream_id to concern ourselves with when getting packets from the packetqueue. Add more tests for zm_terminate. Add testing for AV_CODEC_ID instead of v4l2 PIX_FMT to determine stream type 2021-01-07 09:46:06 -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 3b8266a6f0 add missing and mix order of Packet initializers 2021-01-07 09:41:08 -05:00
Isaac Connor 0d450f4f85 add missing and mix order of Packet initializers 2021-01-07 09:41:02 -05:00
Isaac Connor ff3bc981de move code from Load for purpose==ANALYSIS because it will never run. Analysis is a thread now and must assume that PrimeCapture has already succeeded. 2021-01-07 09:40:24 -05:00
Isaac Connor 7afaf00202 spacing and NULL=>nullptr 2021-01-07 09:36:54 -05:00
Isaac Connor e30f0245ef NULL=>nullptr 2021-01-07 09:36:33 -05:00
Isaac Connor c9641063ca Don't need to get_ref_image anymore. It will block waiting for a capture packet and the ref image will be set by capture thread 2021-01-07 09:36:18 -05:00
Isaac Connor 315dccdaec Rename H264PASSTHROUGH to just PASSTHROUGH. Add an analysis_it to the Monitor object as it will no longer exist in the packetqueue 2021-01-06 11:32:09 -05:00
Isaac Connor e93a895f28 Rename H264PASSTHROUGH to just PASSTHROUGH. Start with last_signal set to true so that we don't have a signal change event on startup. Use new generic packetqueue functions 2021-01-06 11:31:31 -05:00
Isaac Connor d6c217c1ec Rename H264PASSTHROUGH to just PASSTHROUGH 2021-01-06 11:30:42 -05:00
Isaac Connor 08a28e6960 Set codec_type in zm_packet 2021-01-06 11:30:03 -05:00
Isaac Connor 7c049afc61 Add AVPacket parsing queue and other files for rtsp_server 2021-01-06 11:26:08 -05:00
Isaac Connor 770cf5703d continue roughing in rtsp server. Fix not adding session to rtspServer. 2021-01-06 11:24:52 -05:00
Isaac Connor d6b59c0abf Add rtsp_server files to CMakeLists.txt 2021-01-06 10:48:52 -05:00
Isaac Connor b6c11538c2 cleanup. Add h264_vaapi codec support 2020-12-31 09:15:49 -05:00
Isaac Connor 48dcb23af0 small cleanup in logging 2020-12-31 09:14:03 -05:00
Isaac Connor 6d036629d3 clean up cruft. NULL=>nullptr. Fix some codec_context allocation. Try to solve h264_encoder_close crash. 2020-12-30 21:25:12 -05:00
Isaac Connor 9d532df9c7 need to include zm_video for Encoder Parameter passing 2020-12-30 21:24:09 -05:00
Isaac Connor f61210c91f remove old code using image_buffer in zm_packets 2020-12-30 21:23:29 -05:00
Isaac Connor 6c696f4025 Return avcodec errors codes instead of 0/1 2020-12-30 21:22:55 -05:00
Isaac Connor 64deff7486 include std::string don't include zm_video.h. Remove old videoWriter references 2020-12-30 21:22:33 -05:00
Isaac Connor 00aae0b68f Use proper c++ initializers 2020-12-30 21:21:59 -05:00
Isaac Connor 019f02e9de remove old sigblocking code 2020-12-30 21:21:41 -05:00
Isaac Connor 284b9f963f Merge branch 'master' into zma_to_thread 2020-12-29 12:18:26 -05:00
Isaac Connor dc487f35a9 set packet codec_type 2020-12-27 12:36:33 -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 e58c06e60f Don't need keyframes when saving jpegs. 2020-12-27 12:32:06 -05:00
Isaac Connor af94473eb1 remove debug lines about nalType=1 2020-12-27 12:25:23 -05:00
Isaac Connor 085d83b250 frames are allocated in zm_packet now, so remove them 2020-12-27 12:24:34 -05:00
Isaac Connor c8d2eb9c0f Must stop threads before Closing monitor 2020-12-27 12:04:35 -05:00
Isaac Connor a440ab3ef0 need to copy parameters to codecpar 2020-12-27 12:04:17 -05:00
Isaac Connor 16662f79ce spacing and code stylez 2020-12-27 12:03:44 -05:00
Isaac Connor 57542b01d5 Remove all the scaling and conversion stuff. Use packet->decode. Set keyframe flag. return codes of functions are now -1 for failure, 0 for failure but no error and 1 for success. 2020-12-27 12:02:02 -05:00
Isaac Connor 7c9db96acc spacing and NULL=>nullptr 2020-12-27 12:01:01 -05:00
Isaac Connor 3f2d088f8c Delete image if image_index == -1 2020-12-27 12:00:45 -05:00
Isaac Connor 197f9bdd9e indenting fix. Don't update reference image if not doing motion detection. Decouple the image buffer from the packetqueue. So always allocate a new image. Then copy decoded image to image buffer if required. 2020-12-27 12:00:18 -05:00
Isaac Connor 63687c8e44 code style 2020-12-27 11:57:50 -05:00
Isaac Connor 61bffdb249 fix compiler warning 2020-12-27 11:57:23 -05:00
Isaac Connor 5624a0bef4 NULL->nullptr 2020-12-27 11:56:59 -05:00
Isaac Connor d6bbc9bbbb Set codec_type in ffmpeg_camera instead of in monitor 2020-12-27 11:56:44 -05:00
Isaac Connor 0521d05295 Can only output jpegs if we are doing decoding. 2020-12-27 11:55:53 -05:00
Isaac Connor 9b916a15a2 Only get ref image if we are doing motion detection. 2020-12-27 11:55:14 -05:00
Isaac Connor ddf66bc9b5
Merge pull request #3100 from vertigeaux/share_frame_scores
save frame scores to SharedData for use with linked monitors
2020-12-24 11:08:25 -05:00
Isaac Connor 48d9b4d5a5 Remove unused variables 2020-12-23 18:50:52 -05:00
Isaac Connor f934a6bbaf spacing and change last_fps_time and last_analysis_time to doubles 2020-12-23 18:50:38 -05:00
Isaac Connor 1ffc233593 Move some initialisation into MOnitor() initialisation. Update UpdateAnalysisFPS to use more doubles instead of integers to get better numbers. Move capture FPS updating to UpdateCaptureFPS and use doubles there too. remove some dead code and add some debugging 2020-12-23 18:50:07 -05:00
Isaac Connor 3893e97e94 Quieten compiler warnings 2020-12-23 18:18:30 -05:00
Isaac Connor ee8f940acf Add some debug 2020-12-23 18:18:16 -05:00
Isaac Connor fb2793d337 use nullptr instead of 0 when init'ing event 2020-12-23 09:11:33 -05:00
Isaac Connor a1917d83d0 Merge branch 'master' into zma_to_thread 2020-12-22 19:52:09 -05:00
Vertigeaux 1416cbb03c save frame scores to SharedData for use with linked monitors 2020-12-22 17:44:53 -06:00
Isaac Connor d6486d1a7e use nullptr instead of 0 when init'ing event 2020-12-22 15:44:07 -05:00
Isaac Connor 400e0de609 When updating Monitor_Status, reset FPS on Prime 2020-12-22 10:22:52 -05:00
Isaac Connor 4bea286cfe Use new get_event_start_packet_it function to start the new event with the right packet. 2020-12-22 10:22:28 -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 d89cbebbdf AddPacket should just take a packet. score and alarm_image are members of the packet 2020-12-22 10:18:15 -05:00
Isaac Connor bc03afa166 Merge branch 'rtsp_server' into zma_to_thread 2020-12-17 10:21:51 -05:00
Isaac Connor 8d52baeee2 Merge branch 'master' into rtsp_server
Cleanup Analysis a bit. We can't skip packets just because they are audio. Clean up the state machine transitions a bit to make them a little more readable.
Change logic of PrimeCapture, success MUST return 1.  0 means no error but also no success.
Debugging and braces improvements in local_camera.
2020-12-17 10:16:54 -05:00
Isaac Connor 08d82fb86a use nullptr instead of 0 when init'ing event 2020-12-15 18:25:17 -05:00
Isaac Connor 6e2cfa6ca9 Add R and W short form options 2020-12-15 16:57:27 -05:00
Isaac Connor b306f1b2e8 Add R and W short form options 2020-12-15 16:55:28 -05:00
Isaac Connor 89eacbc8a8 NODECT needs an analysis thread to check for triggers and linked monitors. Turn off RTSP for now 2020-12-15 16:55:12 -05:00
Isaac Connor fbbfb20c41 Move orientation setting down. output_stream hasn't been allocated yet so that would crash. 2020-12-15 16:54:35 -05:00
Isaac Connor b7cc5dde54 Merge branch 'master' of github.com:ZoneMinder/zoneminder 2020-12-15 16:50:09 -05:00
Isaac Connor 46bbbb7dff Merge branch 'fix_zone_instead_of_ignore' 2020-12-15 16:33:58 -05:00
Isaac Connor e9d3449929 Allow altering polygon coordinates 2020-12-15 16:32:41 -05:00
Isaac Connor a88ccf793b correct zone points instead of skipping zone 2020-12-15 16:32:19 -05:00
Isaac Connor 5dbe8d35ad Debug the start of rtsp server thread run 2020-12-15 16:01:34 -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 da18305729 Remove some dead code and debugging 2020-12-15 15:59:46 -05:00
Isaac Connor 39212d8ca0 Remove or increase debug level 2020-12-15 15:59:22 -05:00
Isaac Connor 8a2d4c7512 Debug the start of thread run in analysisthread. Sleep for appropriate amount of time. 2020-12-15 15:57:40 -05:00
Isaac Connor aaea6c6ead Store endtime for each packet 2020-12-15 15:57:01 -05:00
Isaac Connor 0702b64cc4 Merge branch 'master' into zma_to_thread 2020-12-15 10:51:40 -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 97b0ea2b73 Add missing columns to sql to load monitors. Add code to do DecodeEnabled. Handle audio packets 2020-12-12 18:52:57 -05:00
Isaac Connor f77292e6cc Move the decoding_enabled logic to constructor to save a few cycles 2020-12-10 16:23:08 -05:00
Isaac Connor 7b1ca0e66d Use the new DecodingEnabled function 2020-12-10 14:05:57 -05:00
Isaac Connor 7f72d5399f add decoding_enabled and DecodingEnabled function 2020-12-10 14:05:46 -05:00
Isaac Connor c65e63798d Don't do decode when in RECORD OR NODECT and passthrough and no jpegs 2020-12-10 13:47:30 -05:00
Isaac Connor c9bd09ae7b report both capture_fps and analysis_fps 2020-12-09 15:03:18 -05:00
Isaac Connor 9d43b64d4a Add debug and rtsp_server 2020-12-09 15:03:00 -05:00
Isaac Connor 03903d2dad spacing 2020-12-09 15:01:35 -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 02dd1d4cc5 Use recursive_mutex for mutex because we need to hold the lock twice 2020-12-09 15:00:57 -05:00
Isaac Connor 50e1e4391a Include capture_fps and analysis_fps in status 2020-12-09 15:00:29 -05:00
Isaac Connor 6bf5d1b5a1 Fixes to analysis_fps vs analysis_fps_limit. Fixes to logic in analysis. Make capture_fps and analysis_fps be part of shared mem. 2020-12-09 15:00:11 -05:00
Isaac Connor 282c020d86 spacing code style 2020-12-09 12:21:41 -05:00
Isaac Connor 697f9a50fe Terminate thread also when zm_terminate is true 2020-12-09 12:21:31 -05:00
Isaac Connor a3ff81b279 Add zm_rtsp_server_thread.cpp to CMakeLists.txt 2020-12-09 12:20:01 -05:00
Isaac Connor 054e1b583d Rough in code for the RTSP Server thread 2020-12-09 12:19:35 -05:00
Isaac Connor b261fbb397 Merge branch 'master' into zma_to_thread 2020-12-07 16:26:26 -05:00
Isaac Connor aaf4b37439 spacing, don't need to set packet.size=0 2020-12-07 15:53:09 -05:00
Isaac Connor 36b5702c50 Increase LinkedMonitor debugging. Fix LinkedMonitors. Fixes #3091 2020-12-05 19:36:44 -05:00
Isaac Connor 4d33667a85 Merge branch 'release-1.34' 2020-12-05 16:51:42 -05:00
hax0kartik 8012438573 Fix font rendering issue 2020-12-04 05:22:54 +05:30
Isaac Connor b2e5df1854 Need to -1 to size parameter when calling SetFontSize 2020-12-03 18:31:41 -05:00
Isaac Connor 1bbcf4ea31 spacing and make assignments a little more readable/efficient maybe 2020-12-03 16:43:27 -05:00
Isaac Connor 330327ded0 Improve code readability. Use a define for header size 2020-12-03 16:21:18 -05:00
Isaac Connor cfd4c17953 Include invalid font path in the error message 2020-12-03 13:35:12 -05:00
Isaac Connor c8aac87f74 Merge branch 'master' of github.com:ZoneMinder/zoneminder 2020-12-03 10:26:27 -05:00
Bluemax d8993931da Improve group permissions (mode 660)
Make /dev/shm files 660.
2020-12-02 21:27:00 +01:00
hax0kartik 59d5860560 Merge branch 'Font' of https://github.com/hax0kartik/zoneminder into Font 2020-12-02 09:45:16 +05:30
hax0kartik 1ec13f3d06 Free font->data only when font itself is valid 2020-12-02 09:44:49 +05:30
Isaac Connor ff2981b9b3 code style. Remove unused members. Make WriteFrameImage const 2020-12-01 09:53:51 -05:00
Isaac Connor 836cd2d58d Merge branch 'Font' of https://github.com/hax0kartik/zoneminder into font 2020-11-30 09:45:39 -05:00
hax0kartik d290ffc1b3 Set individual rgb components instead of memset which is wrong 2020-11-30 17:57:59 +05:30
Isaac Connor 159edbfce9 Fix video file having wrong id 2020-11-29 16:25:33 -05:00
hax0kartik 32e2563643 Free font data when destructor is called 2020-11-29 10:53:20 +05:30
hax0kartik 890a52605f Satisfy cpplint 2020-11-29 10:25:06 +05:30
hax0kartik bbeb599fce Remove bigfont 2020-11-28 20:28:34 +05:30
hax0kartik b212b0e450 Allow modifying font file location 2020-11-28 20:18:17 +05:30
hax0kartik 0a7b7b9661 Bound check values 2020-11-28 19:44:45 +05:30
hax0kartik 528699f942 Use ctzll + new font format for improving drawing speed 2020-11-28 18:46:20 +05:30
Isaac Connor 3a943d6f09 Add ServerId method, code style 2020-11-27 13:29:05 -05:00
Isaac Connor 95cbc053fc Try other storage areas if we fail to create event dir on the assigned area. 2020-11-27 13:28:38 -05:00
Isaac Connor a6245d9e90 Minor code style update 2020-11-27 13:27:51 -05:00
Isaac Connor d6345d32fd Reduce error level of warnings about monitors having Function==NONE 2020-11-25 09:53:06 -05:00
Isaac Connor e0a30ab5e0 Only log an error if we haven't been given sigpipe. 2020-11-22 17:28:53 -05:00
Isaac Connor 660636c0e2 loop if we get egain when flocking. Warn when format not specified. 2020-11-22 16:54:42 -05:00
Isaac Connor 4d8f45d284 There is no need to copy query. We do not modify it. 2020-11-21 16:59:21 -05:00
Isaac Connor 1b472edc2b fix cast 2020-11-21 16:58:22 -05:00
Isaac Connor 6da673dd69 remove unused includes 2020-11-21 09:25:36 -05:00
Isaac Connor 5f4fb4200f googe code style 2020-11-21 09:25:10 -05:00
Isaac Connor 2cdf0da3c0 Remove unused includes and apply google code style 2020-11-21 09:15:36 -05:00
Isaac Connor 7653a058a3 More correct code for setting source 2020-11-20 16:31:40 -05:00
Isaac Connor e1a0c4f973 Don't log a warning of comms not open if no connkey 2020-11-20 16:31:12 -05:00
Isaac Connor 65d4c43cc2 Use BOUNDARY instead of ZoneMinderFrame. If we get EAGAIN when flocking, try again. 2020-11-20 16:29:10 -05:00
Isaac Connor 4f178e47bc Break early after setting zm_terminate so that zms quits faster. Use a basic assignment instead of memcpy for last_frame_timestamp 2020-11-19 16:39:53 -05:00
Isaac Connor 03f033cf36 cleanup MOnitor destructor. Most of the freeing is done in disconnect now. Fixes zms crash 2020-11-19 16:39:14 -05:00
Isaac Connor 3f1e7e793f update buffertype after DumpBUffer 2020-11-19 16:38:49 -05:00
Isaac Connor 58ccea6aa8 use better c++ class initialisation. Use ZM_BUFTYPE_DONTFREE instead of 0 for init buffertype. 2020-11-19 16:37:28 -05:00
Isaac Connor 634a3dbe81 fix crashes/memleaks when waiting for a zmc process to start. Fix other memleaks 2020-11-19 10:43:02 -05:00
Isaac Connor ae4e2a1d5e We were overwriting the privacy/inactive zone with a more general one. Slight memleak 2020-11-19 10:42:17 -05:00
Isaac Connor 74972be9b5 spacing, code style. Set row=nullptr to quiet valgrind 2020-11-18 13:15:52 -05:00
Isaac Connor d4253be69f Use proper C++ initializer for Config. Don't copy the sql string, just use it from whereever in ram it is. 2020-11-18 13:15:07 -05:00
Isaac Connor 6542072334 fix logic causing segfault instead of waiting for zmc. Remove trailing whitespaces 2020-11-18 09:56:13 -05:00
Isaac Connor 9713a2ec00 Merge branch 'master' of github.com:ZoneMinder/zoneminder 2020-11-17 11:09:31 -05:00
Isaac Connor d5295a4464 Fix segfaults and valgrind complaints. Initialize vncClientData, handle failure to connect freeing our client. 2020-11-17 11:08:11 -05:00
Isaac Connor d2a203014f rename diagpipe-r so that we don't have to create directories in SOCKS_DIR 2020-11-13 17:05:03 -05:00
Isaac Connor 23f27d5a11 include frame_type in debug message 2020-11-13 12:43:31 -05:00
Isaac Connor 08a8155b47 Implement a Monitor::disconnect function. Fix Fatals during connect and cleanup Analysis Monitor code to wait around for zmc. Handle zmc going away gracefully. Fixes a slow zma startup due to zmc not being setup yet. 2020-11-13 12:27:51 -05:00
Isaac Connor ad4d0efba6 121 frames is too many, use >= instead 2020-11-12 17:00:32 -05:00
Isaac Connor df783f4835 Merge branch 'master' into zma_to_thread 2020-11-12 12:53:55 -05:00
Isaac Connor 15f1175f25 spacing 2020-11-12 12:36:36 -05:00
Isaac Connor de74a15ab1 Move diag_fifo pipes in SOCKS_DIR instead of assigned Storage area. Storage areas could be a fs that cannot handle sockets or fifos like NFS. 2020-11-12 11:53:51 -05:00
Isaac Connor f91dcc9b60 declar rc as int 2020-11-11 20:05:47 -05:00
Isaac Connor 9636a76ccf drop db lock before reporting mysql_errors 2020-11-11 17:42:29 -05:00
Isaac Connor f855f207e2 Limit that # of db frames to buffer to 120 because the sql will exceed 8192. 2020-11-11 14:03:08 -05:00
Isaac Connor d663683f47 Add a bunch of debug statements to figure out crash 2020-11-11 12:43:41 -05:00
Isaac Connor cda3824a25 Use INSERT.. ON DUPLICATE... instead of REPLACE INTO. REPLACE INTO deletes the existing row. Since we now have event counts in there, we lose them. 2020-11-10 12:33:10 -05:00
Isaac Connor 27f336975c Merge branch 'master' of github.com:ZoneMinder/zoneminder 2020-11-05 18:12:43 -05:00
Isaac Connor 33f58add11 Rename StartTime, EndTime in Events to StartDateTime and EndDateTime 2020-11-04 13:49:47 -05:00
Isaac Connor 09fe354a22 If event db insert fails, try again until it succeeds. 2020-11-04 11:59:08 -05:00
Isaac Connor b8bd4b6961 Add fallback for now to endtime. Set endtime in AddFramesInternal as well just in case there was never another frame. 2020-11-02 16:34:00 -05:00
Isaac Connor a857f677a6 cppcheck fixes, mostly %d->%u 2020-11-02 12:45:48 -05:00
Isaac Connor 5d32e0faf0 cppcheck fixes. Make curr_frame_id signed as we may subtract from it and go < 0 2020-11-02 12:45:19 -05:00
Isaac Connor ed87ad36b3 missing break 2020-11-02 12:09:25 -05:00
Isaac Connor 4e80c04d23 fix lack of const to match def 2020-11-01 18:48:13 -05:00
Isaac Connor 5b918e69f1 spacing 2020-11-01 17:16:19 -05:00
Isaac Connor 033e749a57 improve code logic/spacing 2020-11-01 17:16:07 -05:00
Isaac Connor 296f6af7fb Remove dirty hack that sets EndTime from monitor. It can get set in event destructor 2020-11-01 17:15:42 -05:00
Isaac Connor 80e54aee66 cppcheck improvements. Add const and override where we can 2020-11-01 17:15:17 -05:00
Isaac Connor 82c3436155 cppcheck improvements. Remove non-const StartTime and EndTime. We will remove the dirty hack use in zm_monitor. 2020-11-01 17:14:44 -05:00
Isaac Connor f79602d638 cppcheck improvements. Use %u instead of %d where appropriate. Move sql def to block where it is used 2020-11-01 17:14:04 -05:00
Isaac Connor 1257a7ea37 improvements reported by cppcheck 2020-11-01 16:11:19 -05:00
Isaac Connor a04f6df06a Merge branch 'master' of github.com:ZoneMinder/zoneminder 2020-10-31 10:47:25 -04:00
Isaac Connor a63600ccef remove dead code 2020-10-30 16:09:24 -04:00
Isaac Connor e5097d9466 code style 2020-10-30 11:50:16 -04:00
Isaac Connor f3f0a6baff remove debug 2020-10-26 18:48:43 -04:00
Isaac Connor aef0cc55eb fix merge 2020-10-20 18:27:03 -04:00
Isaac Connor 2eda49333f Merge branch 'master' into zma_to_thread 2020-10-20 16:20:29 -04:00
Isaac Connor 56bbd91a02 Merge branch 'zma_to_thread' of github.com:Connortechnology/zoneminder into zma_to_thread 2020-10-20 16:05:35 -04:00
Isaac Connor 617a1faa99 Add pre-alarm frames when alarm_frame_count > 1 and prealarmcount=0 2020-10-19 13:25:26 -04:00
Isaac Connor eefbed04c1 Add debugging for min_section_length keeping us in ALERT 2020-10-19 13:24:30 -04:00
Isaac Connor df2f5f814b fix case in mocord where cause would not contain motion 2020-10-19 13:24:08 -04:00
Isaac Connor cc24df9593 init shared_data in the purpose=QUERY case to prevent crash. Also don't load zones if we don't need them 2020-10-19 13:23:40 -04:00
Isaac Connor 06c8ce57c2 Make zm_terminate available to anyone who includes zm.h 2020-10-16 20:06:53 -04:00
Isaac Connor 2f06a79ad8 fix compiler warnings 2020-10-16 20:04:26 -04:00
Isaac Connor ae506d94fa Improve log line telling why we are going into alarm 2020-10-11 10:01:11 -04:00
Isaac Connor 9768f081e4 Merge branch 'master' of github.com:ZoneMinder/zoneminder 2020-10-09 10:21:33 -04:00
Isaac Connor 268e364cfd handle the paused case 2020-10-09 10:21:00 -04:00
Isaac Connor 9bfe8c28e4 Merge branch 'gcc_cpuid' 2020-10-09 08:48:01 -04:00
Isaac Connor 7d1598ae50 Merge branch 'master' into gcc_cpuid 2020-10-09 08:47:30 -04:00
Isaac Connor cb38242917 use nullptr when appropriate 2020-10-08 16:46:47 -04:00
Isaac Connor 2f2562a876 init shared_data in the purpose=QUERY case to prevent crash. Also don't load zones if we don't need them 2020-10-08 16:46:30 -04:00
Isaac Connor 1aadeb2206 free the context as well. 2020-10-08 16:46:03 -04:00
Isaac Connor 871c556ac0 rename a variable to be more readable 2020-10-08 16:45:45 -04:00
Isaac Connor 1173f618ec turn off negative pts detection... I have cameras that generate them all the time, they might actually be valid 2020-10-08 15:50:52 -04:00
Isaac Connor 71686fc1f2 fix case in mocord where cause would not contain motion 2020-10-08 15:50:12 -04:00
Isaac Connor 4afae7b738 More accurate seeking, remove debug and duplicated code. Correct type of curr_frame_id to match frame_count. 2020-10-08 11:13:18 -04:00
Isaac Connor 9cc7f0d360 Merge branch 'release-1.34' 2020-10-08 09:28:25 -04:00
Isaac Connor 86e744777c Put back return on error 2020-10-08 09:12:37 -04:00
Isaac Connor c28ff1f2b4 Include loading EndTime when loading Events data so that we can determine if an event is in-progress
Keep track of last_id which is the last frame id that we have info for. Use it instead of Frame Count to prevent
accessing non-existent frame records
close ffmpeg_input on event change
include duration in status messages because it may change when playing an in-progress event.
when we hit the end of our frame data if it is an in-progress event, reload the event data instead of moving to the next event.
Include X-Timestamp in http headers to match live stream behaviour
Only send time to next event when mode=ALL
Fix scale behaviour on event view
2020-10-08 09:06:56 -04:00
Isaac Connor 7cc023c1ec Update Event details when writing Frame Data. Write Frame Details when inserting a Bulk Frame 2020-10-07 18:37:38 -04:00
Isaac Connor 9abde9ee06 Merge branch 'release-1.34' 2020-10-06 16:51:12 -04:00
Isaac Connor 044ce61ddb Always do event change detection whether we are paused or not. Because we might be single-stepping. Change progress to a double as that it what it should be. 2020-10-06 16:47:51 -04:00
Isaac Connor 061c889394 Implement SEEK to offset using two 32bit integers to represent the double value 2020-10-06 16:35:46 -04:00
Isaac Connor b27eac3cbf Make centerCoord take a font size parameter to fix centering when using large font. 2020-10-05 16:12:48 -04:00
Isaac Connor 1c2dd92d31 Add LabelSize to get label_size from monitor 2020-10-05 16:12:33 -04:00
Isaac Connor 93ecb87caa Clear the textframe before Annotating it. 2020-10-05 16:12:09 -04:00
Isaac Connor c1c407ea39 debug new offset as well when SEEKING 2020-10-05 15:55:42 -04:00
Isaac Connor c43011ba18 don't send keepalive when we have sent a textFrame 2020-10-05 13:33:57 -04:00
Isaac Connor 71085d9724 Clear the textframe before Annotating it. 2020-10-05 13:16:22 -04:00
Isaac Connor 5dd83d41fa Add LabelSize to get label_size from monitor 2020-10-05 13:15:58 -04:00
Isaac Connor 059d7d388f Make centerCoord take a font size parameter to fix centering when using large font. 2020-10-05 13:15:39 -04:00
Isaac Connor 6c24cd0c70 When playing backwards, say time to previous event instead of next. Instead of defaulting to -2x when hitting the rewind button, start with -1x. 2020-10-05 13:14:44 -04:00
Isaac Connor 419a03db25 Add debugging for min_section_length keeping us in ALERT 2020-10-05 12:11:39 -04:00
Isaac Connor c5459020c9 implement value check & correct on replay_rate for VARPLAY 2020-10-05 12:11:11 -04:00
Isaac Connor 7a7a3413d3 Always do event change detection whether we are paused or not. Because we might be single-stepping. Change progress to a double as that it what it should be. 2020-10-05 10:29:42 -04:00
Isaac Connor 283f224a95 Add pre-alarm frames when alarm_frame_count > 1 and prealarmcount=0 2020-10-05 09:19:48 -04:00
Isaac Connor 3570c6e828 Better debug logging of event and frame inserts 2020-10-05 09:11:16 -04:00
Isaac Connor 07d0353373 Fix zms only sending 1 frame due to != instead of == 2020-10-03 11:57:22 -04:00
Isaac Connor 387f5dd397 Fix double free of image 2020-10-02 12:47:05 -04:00
Isaac Connor 5d0c812dfb fix resource leak on error 2020-10-02 12:46:53 -04: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
Isaac Connor f18cd57221 spacing more debug 2020-09-25 16:19:52 -04:00
Isaac Connor d21c04e5dc add Debug 2020-09-25 16:19:31 -04:00
Isaac Connor 8223d6ed15 When closing event, on first update, only update if Name has not been changed. If so, do the update without setting the Name. 2020-09-25 15:29:31 -04:00
Isaac Connor 795e98a09c
Merge pull request #2916 from connortechnology/zone_optimise
Improve code in zm_zone
2020-09-22 17:48:24 -04:00
Isaac Connor 2f03ceeccf log referer when unable to authenticate 2020-09-22 13:10:39 -04:00
Isaac Connor 98aad6abbc Make status UNKNOWN be -1 so that zmu -s retains backwards compatibility. Fixes #3048 2020-09-21 14:25:41 -04:00
Isaac Connor d843ef89f6 Merge branch 'master' of github.com:ZoneMinder/zoneminder 2020-09-09 15:07:46 -04:00
Isaac Connor 30e9924601 Merge branch 'master' of github.com:ZoneMinder/zoneminder 2020-09-09 12:55:13 -04:00
Isaac Connor 53fe4c7f1b Handle error conditions 2020-09-09 12:55:08 -04:00
Isaac Connor a4b83b0e99 Merge branch 'master' of github.com:zoneminder/ZoneMinder 2020-09-09 12:13:54 -04:00
Isaac Connor 6bfd7c5e14 log referer when unable to authenticate 2020-09-09 12:13:28 -04:00
Isaac Connor 7b52237593 spacing and correct a libvlc=>libvncclient 2020-09-09 10:25:55 -04:00
Isaac Connor eadd9dd4f4 spacing 2020-09-07 13:28:45 -04:00
Isaac Connor 4126f96b40 clean up sendFrame a bit introducing send_file and send_buffer utility functions 2020-09-07 11:19:47 -04:00
Isaac Connor f3873d65e4 remove debug 2020-09-02 17:33:38 -04:00
Isaac Connor 77b978ed26 Handle non-connected monitor in processCmd. Quit when zm_terminate in checkInitiialized loop 2020-09-02 17:22:39 -04:00
Isaac Connor 794474afab Add UNKNOWN status type. test for shared_data in ShmValid() 2020-09-02 17:22:00 -04:00
Isaac Connor 3a9cec8e4d We no longer care about not being able to connect to the monitor. 2020-09-02 16:37:11 -04:00
Isaac Connor ea3fcb16a6 Changes to not just die if not connected to monitor. Instead wait around spitting out an error image. 2020-09-02 16:36:05 -04:00
Isaac Connor 43e1ac2ad4 Send Text frame when unable to connect to the monitor. 2020-09-02 16:35:27 -04:00
Isaac Connor f60d6ff1a3 Use BOUNDARY instead of ZoneMinderFrame 2020-09-02 16:34:56 -04:00
Isaac Connor 4d5d2ecd5d
Merge pull request #3030 from Carbenium/nullptr
Convert NULL/0 to nullptr
2020-08-26 16:54:28 -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
Peter Keresztes Schmidt 06dfe9b987 Extract generated part of zm_config.h into zm_config_data.h
With this change IDEs have it easier to correctly reference the
variable/class declarations. Additionally one does not have to
regenerate the zm_config.h file when changing the code.
2020-08-25 23:33:56 +02:00
Peter Keresztes Schmidt 394426cca2 zm_config: Fix a -Wwrite-string warning
For reference:
/home/peterke/DEV/zoneminder/build/src/zm_config.h:31:26: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
2020-08-25 20:51:42 +02:00
Andrew Bauer e5e2c3b347 fix stats off by 1 frame, don't alert on score 0 2020-08-24 10:57:54 -05:00
Isaac Connor 08aee63f66 Don't need a variable can just pass the define 2020-08-22 11:36:07 -04:00
Isaac Connor 2773737e54 Use gcc builtin functions for cpuid 2020-08-19 16:57:20 -04:00
Andrew Bauer a0bc60ceda change not enabling ffmpeg msg to debug 2020-08-18 10:34:07 -05:00
Andrew Bauer ccda2b3707 EPIPE sets zm_terminate so no need to check 2020-08-18 09:37:21 -05:00
Andrew Bauer 62d687adfa dont warn or error for EPIPE errno's 2020-08-18 09:30:06 -05:00
Isaac Connor 610f73a835 Merge branch 'release-1.34' 2020-08-17 19:30:32 -04:00
Isaac Connor e5dda8d142 Include avutils/imgutils.h to support compile on libav-tools 2020-08-16 14:56:52 -04:00
Andrew Bauer 09b12a7dac
Remove extra space in event name 2020-08-13 10:51:10 -05:00
Isaac Connor d42424d6d8 Merge branch 'release-1.34' 2020-08-11 11:41:11 -04:00
Isaac Connor afae319c94 Fix MOCORD not going into ALARM state. 2020-08-11 11:02:26 -04:00
Isaac Connor bf2cb5fb1f Add PrimeCapture to zm_remote_camera_http. PrimeCapture is used to determine if we can connect and so by not implementing it, monitors like this say capturing even though they are not. 2020-08-08 10:21:06 -04:00
Isaac Connor c0ab8bf90d Merge branch 'master' into zma_to_thread 2020-08-07 17:53:32 -04:00
Isaac Connor 5fb56c9f57 Merge branch 'master' into zma_to_thread 2020-08-07 17:52:43 -04:00
Andrew Bauer 98f315951e
Merge pull request #3003 from marillat/patch-1
Don't prefix manpage with zoneminder-
2020-08-07 12:34:30 -07:00
dmo ed496e74fc
Update CMakeLists.txt 2020-08-07 07:54:58 +02:00
Isaac Connor a19990f4d7 Merge branch 'release-1.34' 2020-08-06 11:57:35 -04:00
Isaac Connor 302189a65e Don't use camera->LineSize when allocating shared images. It doesn't work because other processes don't know about it. 2020-08-06 10:11:00 -04:00
Isaac Connor 4d4fab46d6 Spacing, use FFMpegInit instead of deprecated ffmpeg calls 2020-08-05 19:17:00 -04:00
Isaac Connor b867d0c463 Fix image copy when line sizes are not the same. 2020-08-05 11:33:22 -04:00
Isaac Connor be05040a47 fix rotated images 2020-07-30 19:50:25 -04:00
Isaac Connor 05107bb2f7 Add debug of unused options 2020-07-30 15:16:31 -04:00
Isaac Connor d8cd4386cf rename GetOptEncoderParams to GetOptEncoderParams to GetOptEncoderParamsVec so that we can get at the std::string if we want to.
Use EncoderParams when setting movflags in VideoStore.

Move the content of this option to a help popup so that we can remove the comments from it. av_dict_parse doesn't handle the hash tag as a comment.
2020-07-30 15:06:05 -04:00
Isaac Connor 2f57ccc9b9 Merge branch 'release-1.34' 2020-07-29 16:27:01 -04:00
Isaac Connor 4ed0ad26a7 bail early if fwrite fails 2020-07-29 14:01:52 -04:00
Isaac Connor b1054a7db6 bail earlier if writing content-length fails. Dropped connections aren't really errors, make them Info. Fixes #2996 2020-07-29 13:39:00 -04:00
Isaac Connor 7511b1fd7e Fix for saving jpegs 2020-07-25 14:25:45 -04:00
Isaac Connor 859428db51 remove debug 2020-07-24 15:42:53 -04:00
Isaac Connor f4a0f91d7f nothing 2020-07-24 15:27:05 -04:00
Isaac Connor 1f889bd086 def don't use linesize when allocating share images 2020-07-24 15:26:48 -04:00
Isaac Connor 4ecfa32601 remove uneccessary multiplications from jpeg compression. 2020-07-24 15:26:28 -04:00
Isaac Connor 0e9da28a97 Don't pass linesize to shared images. Shared images have to have a contiguous chunk of memory. 2020-07-24 12:48:38 -04:00
Isaac Connor 0a9fdb4eb3 Fix second jump by matching final WriteJpeg destination. Just use linesize instead of assigning to row_stride 2020-07-24 12:41:27 -04:00
Isaac Connor d9a9aeef1d if linesizes don't match, allocate a frame buffer and use that when sws_scaleing and then copy to the image buffer. 2020-07-24 12:37:24 -04:00
Isaac Connor 490009446d fix use of int or unsigned long instead of int for monitor id 2020-07-23 19:32:30 -04:00
Isaac Connor 559fe15e3f fix use of int or unsigned long instead of int for monitor id 2020-07-23 19:32:25 -04:00
Isaac Connor e9681fcdcf fix use of int or unsigned long instead of int for monitor id 2020-07-23 19:31:12 -04:00
Isaac Connor ee4d90d906 remove debug 2020-07-23 17:15:43 -04:00
Isaac Connor cceb010048 set linesize in WriteBuffer which also sets colours, width, etc. Fixes segfault when streaming from jpegs 2020-07-23 17:14:56 -04:00
Isaac Connor 4f3b6a063e don't cast fps to an int... values like 2.038 become 1. 2020-07-23 16:08:57 -04:00
Isaac Connor e3a2099ca8 fix crash because we weren't setting alarm status 2020-07-23 16:08:35 -04:00
Isaac Connor 18272b9587 add debug for prealarmcount 2020-07-23 12:05:53 -04:00
Isaac Connor 7aa46df50f Merge branch 'master' of github.com:/ZoneMinder/zoneminder 2020-07-23 12:05:32 -04:00
Isaac Connor 09d02e94d9 fix lack of c_str on path 2020-07-23 11:53:54 -04:00
Isaac Connor 27fed8b227 spacing 2020-07-23 11:53:33 -04:00
Isaac Connor 172eaad8bd fix capture jpeg saving due to use of std::string 2020-07-22 22:45:11 -04:00
Isaac Connor 1416bc547e Merge branch 'master' of github.com:ZoneMinder/zoneminder 2020-07-22 17:37:52 -04:00
Isaac Connor f635afe00f spacing 2020-07-22 17:30:39 -04:00
Isaac Connor 07165aed98 mostly spacing. Also set new_size from line_size in Assign(Image&) and set linesize in the assigned image 2020-07-22 17:30:28 -04:00
Isaac Connor cf07e0a089 fix crashes, current status is: local camera works and can be viewed. Amazing 2020-07-22 13:41:27 -04:00
Isaac Connor 3641797500 Merge branch 'master' into zma_to_thread 2020-07-22 13:14:40 -04:00
Isaac Connor 7e6c637ec3 Unexpected colours while bad should only cause failure to annotate, not panic 2020-07-22 11:34:54 -04:00
Isaac Connor d23dc42981 fix merge from master, make it compile 2020-07-21 18:48:45 -04:00
Isaac Connor 869860bb26 Merge branch 'master' into zma_to_thread 2020-07-21 17:49:39 -04:00
Isaac Connor 7575afc8d5 Merge branch 'master' into zma_to_thread 2020-07-21 17:38:32 -04:00
Isaac Connor 13e8ed1924 Clean up code that updates event with video_name. Fix video_file assignment missing / 2020-07-21 16:34:46 -04:00
Isaac Connor f217ab54a3 When event_close_mode == CLOSE_ALARM and so we want to close the recording and start a new one, don't do it when alarm_frame_count > 1 until alarm_frames > alarm_frame_count. I believe this fixes a mem leak 2020-07-21 16:17:46 -04:00
Isaac Connor f593261136 Convert use of char path[PATH_MAX] to std::string. Fixes potential overflows, quiets compile, should reduce ram quite a bit and might event be faster. Code is also more readable. 2020-07-21 16:16:16 -04:00
Isaac Connor 2eec85eaff Convert use of char path[PATH_MAX] to std::string. Fixes potential overflows, quiets compile, should reduce ram quite a bit and might event be faster. Code is also more readable. 2020-07-21 16:10:05 -04:00
Isaac Connor 785087022d Clear PerAlarmFrames on shutdown 2020-07-20 21:09:07 -04:00
Isaac Connor a0be7b1fcb fixup EmptyPreAlarmFrames 2020-07-20 21:02:49 -04:00
Isaac Connor 41dfb8ae38 fix duplicate jpeg_create_compress memleak 2020-07-20 21:02:06 -04:00
Isaac Connor d716d1d686 Merge branch 'release-1.34' 2020-07-20 16:25:41 -04:00
Isaac Connor 5c844f9cae remove extra space 2020-07-20 10:22:40 -04:00
Isaac Connor 01892352da rename sseversion to sse_version 2020-07-19 17:50:47 -04:00
Isaac Connor 6b39f59b3a use delete[] instead of delete. 2020-07-16 16:00:23 -04:00
Isaac Connor 2c056c188f Fix compile on old ffmpeg 2020-07-16 15:59:08 -04:00
Isaac Connor 4e2732e12d Priming capture logs should be debug not Info 2020-07-16 15:51:24 -04:00
Isaac Connor a7b76dfe41 Remove debug 2020-07-16 15:48:09 -04:00
Isaac Connor 0a6321ee56 Update linesize when using AssignDirect. Fixes #2979 2020-07-16 15:48:06 -04:00
Isaac Connor d849ee54a4 Update state to ALARM AFTER we have opened the event, so that we get the correct event Id. Fixes #2978 Fixes #2894 2020-07-16 15:47:01 -04:00
Isaac Connor a8e46feb12 Merge branch 'master' of github.com:ZoneMinder/zoneminder 2020-07-16 15:42:56 -04:00
Isaac Connor 3658c3b589 Update state to ALARM AFTER we have opened the event, so that we get the correct event Id. Fixes #2978 Fixes #2894 2020-07-16 15:36:26 -04:00
Isaac Connor c2a025300f Remove debug 2020-07-16 15:34:29 -04:00
Isaac Connor 9e06385f26 Update linesize when using AssignDirect. Fixes #2979 2020-07-16 14:50:50 -04:00
Isaac Connor 9b05337e57 Priming capture logs should be debug level, especially if they ar egoing to log passwords 2020-07-13 15:03:04 -04:00
Isaac Connor 880219bb0f Merge branch 'release-1.34' 2020-07-07 18:58:32 -04:00
Isaac Connor 9b447bde8e remove extra { 2020-07-07 18:56:51 -04:00
Isaac Connor e675c8373e Merge branch 'release-1.34' 2020-07-07 16:15:56 -04:00
Isaac Connor 916d1ed59e Merge branch 'release-1.34' of github.com:ZoneMinder/zoneminder into release-1.34 2020-07-07 16:15:23 -04:00
Isaac Connor c79c65e72e spacing fixes 2020-07-07 16:14:57 -04:00
Isaac Connor af74ecac4c Pass along the image linesize to Image constructors so that Image knows about the requirement for it to be 32byte aligned. 2020-07-07 16:14:38 -04:00
Isaac Connor fd9272241a Introduce constructors that can be passed a linesize which is the # of bytes to use to store a line of image. This can be different from the image width * colours as it should be 32byte aligned for use with sws_scale. 2020-07-07 16:13:41 -04:00
Isaac Connor cae8978501 add an alignment variable to ffmpeg_camera to use wherever we want to tell ffmpeg about the buffer and linesize alignment. Figure out linesize in the constructor so that zm_monitor can pass the info along to zm_image. 2020-07-07 16:12:14 -04:00
Isaac Connor 209cbe1000 Merge branch 'master' of github.com:ZoneMinder/zoneminder 2020-07-07 09:23:46 -04:00
Isaac Connor acf8a30434 Merge branch 'release-1.34' 2020-07-07 09:22:56 -04:00
Isaac Connor 533876f313 rewrite code to use fewer lines. No logic change. 2020-07-07 09:16:42 -04:00
Andrew Bauer dcab218a2e remove global config item CREATE_ANALYSIS_IMAGES 2020-07-06 12:22:41 -05:00
Isaac Connor 864cd4c178 introduce a linesize variable which represents the # of bytes to hold a line of the image in the buffer. May be > width * colours 2020-07-05 17:51:57 -04:00
Isaac Connor 2eac69dd88 fix duplicate extrapad names 2020-07-04 17:16:43 -04:00
Isaac Connor 2db65d3821 Merge branch 'release-1.34' 2020-07-04 09:09:24 -04:00
Isaac Connor e137e1dacf Don't consult EVENT_CLOSE_MODE if mode is RECORD 2020-06-26 19:30:35 -04:00
Isaac Connor 728f41fe9c Log @debug when a linked monitor is disconnected. Use ZM_MAX_RESTART_DELAY instead of hard coded 60 seconds before next reconnect attempt 2020-06-23 16:56:35 -04:00
Isaac Connor 31a3be5c8e check shared_data->valid when checking if LinkedMonitor is connected 2020-06-23 15:05:17 -04:00
Isaac Connor 7354b4d30f Fix compile on old ffmpeg 2020-06-23 14:43:11 -04:00
Isaac Connor a15aace2fb introduce shared_data->zmc_heartbeat_time and zma_heartbeat_time. 2020-06-22 10:40:00 -04:00
Isaac Connor 4d020bab56 spacing 2020-06-22 10:39:29 -04:00
Isaac Connor ae5116ff9c improve efficiency of outputting device query. The constant strlen's were terrible. 2020-06-15 15:29:26 -04:00
Isaac Connor bd287d7c7c Fix segfault when timestamp contains an unimplemented character. Fixes #2943 2020-05-29 11:45:38 -04:00
Isaac Connor 2637c887f8 Fix segfault when timestamp contains an unimplemented character. Fixes #2943 2020-05-29 11:44:34 -04:00
Isaac Connor 662b9894bd Don't delete send_image because it is static. Fixes #2923 2020-05-23 16:12:55 -04:00
Isaac Connor ce9e2c8b27 Merge branch 'release-1.34' 2020-05-15 11:53:09 -04:00
Isaac Connor 9ea1c637f9 Remove debug Exiting message 2020-05-15 11:48:41 -04:00
Isaac Connor 6bb2c09a72 Merge branch 'release-1.34' 2020-05-15 11:41:34 -04:00
Isaac Connor 7a85be59be Remove errant closing db debug output 2020-05-15 10:22:58 -04:00
Isaac Connor d92772343a Merge branch 'release-1.34' 2020-05-14 12:02:50 -04:00
Isaac Connor 25a772c5eb reorder logic a bit to make it easier to read. Make exit_zmu not return a value. 2020-05-14 12:02:02 -04:00
Isaac Connor 16e7ca5a51 failure opening a monitor should not be fatal. 2020-05-14 12:01:24 -04:00
Isaac Connor 402c0c6a1b Fix build on older ffmpeg 2020-05-14 12:01:03 -04:00
Isaac Connor efbab4e2bc Dont' call mysql_library_end as it segfaults and hangs. 2020-05-14 12:00:36 -04:00
Isaac Connor bbf64de40e If there is a failure when decoding due to lack of support for the codec profile, re-init without hwaccel 2020-05-13 08:04:53 -04:00
Isaac Connor 7e80b33ee0 If there is a failure when decoding due to lack of support for the codec profile, re-init without hwaccel 2020-05-12 15:10:08 -04:00
Isaac Connor 81cd338545 Merge branch 'master' of github.com:zoneminder/ZoneMinder 2020-05-11 08:34:19 -04:00
Isaac Connor 3d278eddf8 erge branch 'master' into batch_frame_records 2020-05-08 20:16:36 -04:00
Isaac Connor 1f6e68c129 Merge branch 'release-1.34' of github.com:ZoneMinder/zoneminder into release-1.34 2020-05-08 17:26:02 -04:00
Isaac Connor a798e874fe Spacing 2020-05-07 13:44:32 -04:00
Isaac Connor fcf6eb2631 Add setting the codecpar->codec_type as well. Fixes detecting stream type 2020-05-07 13:44:02 -04:00
Isaac Connor 40633830d0 Code style/spacing 2020-05-07 13:43:35 -04:00
Isaac Connor b1b258ab9b Code Style and use backtick escapes on sql column names, specifically Function 2020-05-07 13:43:05 -04:00
Isaac Connor 6939f9953a code style, merge Debug lines and consult zm_terminate in the main while loop 2020-05-07 13:41:39 -04:00
Isaac Connor 87d0eb88b7 code style, merge Debug lines and consult zm_terminate in the main while loop 2020-05-07 13:41:29 -04:00
Isaac Connor 09740d72a4 code style, merge Debug lines and consult zm_terminate in the main while loop 2020-05-07 13:41:09 -04:00
Isaac Connor 7489d66557 use is_video_stream utility function. 2020-05-07 13:40:32 -04:00
Isaac Connor 9f73a55087 Make params to is_video_* a const because we don
't alter it
2020-05-07 13:39:32 -04:00
Isaac Connor bab15217f5 Make zm_terminate available to anyone who includes zm.h 2020-05-07 13:38:56 -04:00
Isaac Connor 4ff341a0f5 Merge branch 'master' into zma_to_thread 2020-05-02 18:03:42 -04:00
Isaac Connor e9b1eacc6d Fix not finding stream with old libs 2020-05-02 11:49:28 -04:00
Isaac Connor eca56c7123 Provide a more useful error message when the monitor's function is set to NONE. Fixes #2877 2020-05-01 19:21:20 -04:00
Isaac Connor ef540aa972 sun_path is defined to be 108 bytes. No need for 4095. Quiets compiler warnings 2020-05-01 19:13:50 -04:00
Joe540 c9f04c9136 Support event_close_mode for record mode
Support event_close_mode for record mode (with linked monitor)
2020-05-01 19:10:23 -04:00
Isaac Connor 6098c4c961 properly close streams and free memory in ffmpeg_input destructor 2020-05-01 19:03:18 -04:00
Isaac Connor c5cf6e1a74 undo random addition 2020-05-01 19:01:09 -04:00
Isaac Connor 050868fad1 fix build on libavtools < 12 2020-05-01 19:00:40 -04:00
Isaac Connor 9beb5cee3a use delete[] instead of delete. 2020-05-01 18:55:48 -04:00
Isaac Connor 24aaeee155 dynamically load monitor Object when loading event data. Also dynamically load Storage, but only when the Id is different. Free the various objects in the destructor. Sync up some spacing issues with master. 2020-05-01 18:44:35 -04:00
Isaac Connor 2071b2a71e Guess video file name for in progress events 2020-05-01 18:14:58 -04:00
Isaac Connor 917c43a54b If can't connect to db, bail instead of loading config 2020-05-01 18:08:32 -04:00
Isaac Connor f96cc66b9d google code style 2020-05-01 18:06:27 -04:00
Isaac Connor ffcef8a42a spacing and make sws_context static global so we don't have to keep initializing it when playing back from mp4 in eventstream. 2020-05-01 15:22:32 -04:00
Isaac Connor ffd7970b07 Merge branch 'release-1.34' 2020-05-01 13:17:10 -04:00
Isaac Connor 14b90903a9 Merge branch 'release-1.34' of github.com:ZoneMinder/zoneminder into release-1.34 2020-05-01 12:50:10 -04:00
Isaac Connor 3675ee1c33 Properly delete FramesData as well. 2020-05-01 09:56:27 -04:00
Isaac Connor 434f34f027 use delete[] instead of delete. 2020-04-30 11:04:55 -04:00
Isaac Connor a6ee817bc4 Fix auth by hash 2020-04-28 19:00:42 -04:00
Isaac Connor e21ffbea7d Merge branch 'fix_zms' 2020-04-26 18:43:39 -04:00
Isaac Connor ae9a5766f5 Merge branch 'release-1.34' into fix_zms 2020-04-26 18:19:30 -04:00
Isaac Connor 3b11258fbc Make checkEventLoaded return true if a new event was loaded, false otherwise. The idea is to give more information back to whoever calls it 2020-04-26 15:22:29 -04:00
Isaac Connor a7363a4b36 reduce compiler deprecation warnings by using our zm api's that hide support for older ffmpeg versions 2020-04-24 19:05:58 -04:00
Isaac Connor 7a7f366eb1 Change semantics of zm_send_packetreceive_frame to return the # of bytes consumed. This is inline with how to old deprecated api used to work. The new api consumes the packet, so just return packet size. 2020-04-24 19:05:17 -04:00
Isaac Connor c6c8a23c02 sun_path is defined to be 108 bytes. No need for 4095. Quiets compiler warnings 2020-04-24 18:03:00 -04:00
Isaac Connor b0c5abc2c2 Quiet compiler warnings. 2020-04-24 17:51:00 -04:00
Isaac Connor ed7c0815de Merge branch 'release-1.34' 2020-04-24 17:05:32 -04:00
Isaac Connor 3dd5ac8146 shrink buffers for writing timestamp into. Don't need 64 when 28 will do. Quiets compiler warnings 2020-04-24 16:43:27 -04:00
Isaac Connor e274aa471a Use fputc instead of printf for separator to be a tiny bit more efficient. Report current state when forcing alarm on 2020-04-23 18:13:34 -04:00