Commit Graph

3878 Commits

Author SHA1 Message Date
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