Commit Graph

4179 Commits

Author SHA1 Message Date
Isaac Connor b86e7eefbf fix needed line break before dimensions. Update h265 auxline processing to match h264 2021-03-01 16:49:27 -05:00
Isaac Connor d33540c962 Fix logic on clearing frame queue 2021-03-01 16:49:27 -05:00
Isaac Connor 495e2a4827 Add setting up the config string and population of mAuxLine 2021-03-01 16:49:27 -05:00
Isaac Connor b2ff9af238 Add setting of frequency and channels for audio stream 2021-03-01 16:49:27 -05:00
Isaac Connor b09fe1d17c Create fifo if it doesn't exist already 2021-03-01 16:49:27 -05:00
Isaac Connor 9302c9506e Add audio_frequency and audio_channels to shared mem and set them in PrimeCapture 2021-03-01 16:49:27 -05:00
Isaac Connor 8500c7ee94 Add audio_frequency and audio_channels to shared mem 2021-03-01 16:49:27 -05:00
Isaac Connor c5ee837b9b Add getFrequency and getChannels 2021-03-01 16:49:27 -05:00
Isaac Connor cc80ae37fb Add a generic fif_audio_source class 2021-03-01 16:49:27 -05:00
Isaac Connor b4fc782778 fifo.h got split into zm_fifo and zm_stream so update the code in zms 2021-03-01 16:49:27 -05:00
Isaac Connor 8c2e6589ac fifo.h got split into zm_fifo and zm_fifo_debug so update the code in zm_zone 2021-03-01 16:49:27 -05:00
Isaac Connor 8af7e40ea1 Use fifo version of code 2021-03-01 16:49:27 -05:00
Isaac Connor bfc12384f6 Increase debug level of auxline reporting 2021-03-01 16:49:27 -05:00
Isaac Connor 6d938817b1 Rework to use a fifo source instead of Device. We no longer pass the monitor in and only open 1 port. Add addFifo function and addSession function 2021-03-01 16:49:27 -05:00
Isaac Connor db13b4c3b6 Document possible parameters, don't add a newline to auxline 2021-03-01 16:49:27 -05:00
Isaac Connor 19d9812a3f Add a debug function to print out the start of the nal 2021-03-01 16:49:27 -05:00
Isaac Connor 53851b67c7 use a Buffer to implement the simple ZM header protocol for passing packet data from ZM to RTSP Server 2021-03-01 16:49:27 -05:00
Isaac Connor c716e8c149 Add logging of audio auxLine. Default to 8000Hz 2021-03-01 16:49:27 -05:00
Isaac Connor 7ba6e45505 Rough in rtsp_server concept. Wait for fifo's to exist before connecting. Check for monitor disconnection. WIP 2021-03-01 16:49:27 -05:00
Isaac Connor 449b547f2b Use buffer.head() instead of casting 2021-03-01 16:49:27 -05:00
Isaac Connor 05e7d76ccd Add pts which will be scaled to AV_TIME_BASE_Q 2021-03-01 16:49:27 -05:00
Isaac Connor 6e73c08a21 add fifo's for video and audio. Write the packet data to them. Update FifoStream->Fifo 2021-03-01 16:49:26 -05:00
Isaac Connor a81e3d6e19 Set zm_packet.pts scaled to AV_TIME_BASE_Q. 2021-03-01 16:47:18 -05:00
Isaac Connor c554a22374 use .head() instead of casting the buffer 2021-03-01 16:47:18 -05:00
Isaac Connor 1d73087e5b Split zm_fifo up into zm_fifo, zm_fifo_debug and zm_fifo_stream. Implement a Fifo class to keep the filehandle open. 2021-03-01 16:47:18 -05:00
Isaac Connor 3ad76f18ec code style updates 2021-03-01 16:47:18 -05:00
Isaac Connor 2d0a8549af Fix cmake to only build zm_rtsp_server if it is turned on 2021-03-01 16:47:17 -05:00
Isaac Connor cafdd02307 Remote rtsp server code. It got moved to zm_rtsp_server.cpp 2021-03-01 16:46:48 -05:00
Isaac Connor 6c6d6c51b0 Add RTSPSTreamName loading and write packet data to the video and audio fifos 2021-03-01 16:46:48 -05:00
Isaac Connor 3e9a2f2651 It is actually importatnt that smInstance get cleared. The subsequent new Logger will check for it. 2021-03-01 16:46:48 -05:00
Isaac Connor 57585e4986 Not sure why raw_fd should be static... 2021-03-01 16:46:48 -05:00
Isaac Connor 78062a03ef Add writePacket and write static function to write h264 packet stream and audio stream to a fifo for the zm_rtsp_server to read from 2021-03-01 16:46:48 -05:00
Isaac Connor d2e1c23140 Add zm_rtsp_server build target and source files 2021-03-01 16:46:48 -05:00
Isaac Connor fdf1fbd497 Add a fifo version of the rtsp server 2021-03-01 16:46:48 -05:00
Isaac Connor 430f839954 add video_fifo filename strings to shmem. 2021-03-01 16:46:48 -05:00
Isaac Connor 33dbcc449a
Merge pull request #3181 from Carbenium/rgb-const
rgb: Convert some constant defines to constexpr
2021-03-01 09:40:39 -05:00
Isaac Connor 71d864d77b
Merge pull request #3182 from Carbenium/monitor-includes
monitor: Move system includes back to their original location
2021-03-01 09:40:08 -05:00
Peter Keresztes Schmidt 3b3ecb89b2 monitor: Move system includes back to their original location
41dc0212e0 moved the system includes to work around some compilation problems.
The underlying cause has been fixed in cf9406a1e8.
Thus we can move the includes back so the follow the project-wide order.
2021-03-01 00:45:57 +01:00
Peter Keresztes Schmidt 76e6c468e8 rgb: Convert some constant defines to constexpr
Using defines interferes with fmt.
Also rename them according to the Google styleguide.
2021-03-01 00:38:21 +01:00
Admin 741e67e8cd
ALERT also mean warming up with alarm_frame_count value before returning to ALARM.... 2021-02-28 22:42:29 +01:00
Peter Keresztes Schmidt c33b5a4393 Move in-tree dependencies to their own folder
src/ should only contain our code. Move the in-tree dependencies to dep/
This allows us (if necessary) to e.g. exclude that part of the tree from being analyzed by
various tools or mark it as external code in IDEs.
2021-02-28 02:12:07 +01:00
Peter Keresztes Schmidt 866bcc9518 build: Cleanup CMakeLists.txt of libbcrypt
Remove unnecessary cruft and make sure it uses our compile options as dictated by zm-dependency-interface.
An additional step towards a warning-free compile.

Define __SKIP_GNU on BSD since they have their own bcrypt implementation.
2021-02-28 02:12:07 +01:00
Peter Keresztes Schmidt 6b7b23970b build: Add a CMakeLists.txt for jwt-cpp
This allows us to use a cmake link target to import the library.
2021-02-27 18:18:35 +01:00
Peter Keresztes Schmidt 6a47780f60 Fix a warning reported by -Wextra
/home/peterke/DEV/zoneminder/src/zm_monitor.h: In member function ‘Monitor::TriggerState Monitor::GetTriggerState() const’:
/home/peterke/DEV/zoneminder/src/zm_monitor.h:499:76: warning: enumerated and non-enumerated type in conditional expression [-Wextra]
  499 |   TriggerState GetTriggerState() const { return (TriggerState)(trigger_data?trigger_data->trigger_state:TRIGGER_CANCEL); }
      |                                                                ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2021-02-27 01:27:58 +01:00
Peter Keresztes Schmidt 814953b331 Fix warnings reported by -Wimplicit-fallthrough
Note: Once C++17 is supported switch to the standard conform [[fallthrough]] attribute.
For the time being [[gnu::fallthrough]] can be used since it is supported by GCC and Clang [1].

[1] https://clang.llvm.org/docs/AttributeReference.html#fallthrough
2021-02-27 00:29:35 +01:00
Peter Keresztes Schmidt 403061a39c Fix warnings reported by -Wmissing-field-initializers 2021-02-26 22:46:09 +01:00
Peter Keresztes Schmidt dffb2d2c87 Fix warnings reported by -Wignored-qualifiers 2021-02-26 19:31:32 +01:00
Isaac Connor b8fcd7c85f
Merge pull request #3172 from Carbenium/db-queue-move
db: Make sure to bind only rvalues when pushing to zmDbQueue
2021-02-25 17:19:11 -05:00
Peter Keresztes Schmidt 3dd52a92eb db: Make sure to bind only rvalues when pushing to zmDbQueue
With this we can ensure that no copy-construction of the SQL string takes place.
Regarding calling semantics: The pushed SQL string will be moved and cannot be reused.
2021-02-25 23:08:43 +01:00
Isaac Connor 3ce4b3e657 Keep capture_delay in useconds instead of msecs. Fix fps by adding back in the previous sleep_time. Fix crash due to capture_image not being asigned for local cameras 2021-02-25 16:58:54 -05:00
Isaac Connor 224fcd2cd3 Merge branch 'master' of github.com:ZoneMinder/zoneminder 2021-02-25 14:58:45 -05:00
Isaac Connor 8aeb4ab758 Switch db_mutex to a std::mutex. Use modern locking with it. Use zmDbDo or dbQueue.push where appropriate. code cleanup. 2021-02-25 12:26:26 -05:00
Isaac Connor fdf515ca10 rough in a db queue thread. Use it in zm_logger so that we don't have to aquire the db lock 2021-02-24 19:59:55 -05:00
Isaac Connor 6f89eba154 add missing () 2021-02-24 13:48:59 -05:00
Isaac Connor 778a4f1d84 We cannot wait for the db lock. Do not wait. 2021-02-24 13:48:36 -05:00
Isaac Connor 9959464ef7 Fix ]\n being included in the db Logs entry. Also removes a strlen so performance should improve 2021-02-24 12:37:09 -05:00
Isaac Connor 58e3d96f8c Instead of using basename and doing a strdup etc, just use strrchr because the filepath is going to one of the sources files in zm. 2021-02-24 12:23:02 -05:00
Isaac Connor 099ca9251c Only init camera if capturing 2021-02-24 10:33:29 -05:00
Isaac Connor 381b7e1b25 Don't disconnect/reconnect while PrimeCapture is failing. Don't sleep if there is failure in capturing and zm_terminate is set. 2021-02-24 10:29:26 -05:00
Isaac Connor c8abeddc9c swscale is a problem. When to use alignment/padding? Defaulting to alignment=1 makes libvnc work, but is less performant. Some scale operations require padding. 2021-02-24 10:10:37 -05:00
Isaac Connor 3ce0564e9c Code style spacing and cleanups. 2021-02-24 10:10:37 -05:00
Isaac Isaac 3eb67fa2fc We have to Prime every monitor not just the first one. 2021-02-23 13:12:40 -05:00
Isaac Isaac f2143fd092 Improve debug logs 2021-02-23 13:12:09 -05:00
Isaac Isaac 3225851224 Move call to Initialise into Constructor making sure that it only gets called once. Move channel switching out of PostCapture into just after capturing image in order to free up more time for image to stabilise while we do other things like timestamping etc which happen in Capture. 2021-02-23 13:11:34 -05:00
Isaac Connor 0ac3e6fd5b remove unneeded strlen 2021-02-22 20:40:30 -05:00
Isaac Connor 64c601fc7b Must fix_deprecations on both values 2021-02-22 20:40:30 -05:00
Isaac Connor 62da77db50 Don't set a default crf. Many codecs don't support it. Failure to open encoder should only be a warning if we have specified it 2021-02-22 20:40:30 -05:00
Isaac Connor 730cd815d3 Add frame format to debug logging. Use fix_deprecated_fmt to fix when ctx->fmt is yuvj420p instead of yuv420p 2021-02-22 15:48:16 -05:00
Isaac Connor 8a417bb8d2 Add override to processCommand declarations. Remove unused fd var 2021-02-22 08:15:48 -05:00
Isaac Connor 5f207664d5 Add override to processCommand declarations. 2021-02-22 08:15:36 -05:00
Isaac Connor 6c013f0e65 Put back includes needed on FreeBSD. Fixes #3165 2021-02-22 08:03:10 -05:00
Isaac Connor 88f3d732b4 Always use AV_TIME_BASE_Q in video encoding mode as we use packet->timestamp instead of pts. Fixes duration problems with encoded video. Fixes #3160 2021-02-22 11:17:17 -05:00
Isaac Connor 7a17a6f9e8 Fix always returning YUV420P despite being valid format. 2021-02-22 11:14:00 -05:00
Isaac Connor 7c042c7837 If doing encoding, we don't care about keyframe 2021-02-21 20:24:36 -05:00
Isaac Connor e562888ed0 Fix crash when decoder returns 0 and when are using hwaccel 2021-02-19 21:03:10 -05:00
Isaac Connor bf0ae8b270 use fix_deprecated_pix_fmt function. Fix logic on out_buffer_size. 2021-02-19 20:43:24 -05:00
Isaac Connor 86d424baf0 Move closeEvent to Close(). If we are closing the camera, we have to close the event as well. 2021-02-19 20:42:36 -05:00
Isaac Connor f440ecb235 Add dlcose, and a resize() function to allocate the framebuffer our own way 2021-02-19 20:42:07 -05:00
Isaac Connor a5ad7462e0 add dlclose 2021-02-19 20:41:41 -05:00
Isaac Connor 16773573ad Since audio encoding uses it's own pts counting, we don't need to copy the ipkt. 2021-02-19 16:36:06 -05:00
Isaac Connor 2f917b4fac Must copy input packet before modifying pts/dts. 2021-02-19 15:58:49 -05:00
Isaac Connor 507cbf7f0f Remove some debugging 2021-02-19 15:56:42 -05:00
Isaac Connor b9669ad69f Log new signal on signal change 2021-02-19 15:56:30 -05:00
Isaac Connor d8e37945a3 TRY OUT SWS_POINT|SWS_BITEXACT scaling 2021-02-19 13:44:37 -05:00
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