forked from ZoneMinder/zoneminder
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
proof of concept for dynamic/automatic video rotation #1
Merged
SteveGilvarry
merged 8 commits into
SteveGilvarry:Video-Highlander-Branch
from
bhuddah:Video-Highlander-Branch
Apr 9, 2015
Merged
proof of concept for dynamic/automatic video rotation #1
SteveGilvarry
merged 8 commits into
SteveGilvarry:Video-Highlander-Branch
from
bhuddah:Video-Highlander-Branch
Apr 9, 2015
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Might not get time to merge until the weekend |
SteveGilvarry
pushed a commit
that referenced
this pull request
Mar 27, 2015
Add ONVIF files to rpm spec files
SteveGilvarry
pushed a commit
that referenced
this pull request
Mar 27, 2015
Looks good, I was thinking about the changes you've done but didnt want to go to far with my initial offerings
i've stored the js plugin locally now to fix loading in google chrome. i think this is working now cross all browsers. |
added missing videojs.zoomrotate.js file
SteveGilvarry
added a commit
that referenced
this pull request
Apr 9, 2015
proof of concept for dynamic/automatic video rotation
SteveGilvarry
pushed a commit
that referenced
this pull request
Jun 14, 2015
Convert Crud to submodule
SteveGilvarry
pushed a commit
that referenced
this pull request
Jul 26, 2015
Added "RewriteBase /zm/api" for API routing
SteveGilvarry
pushed a commit
that referenced
this pull request
Aug 29, 2015
1013 document migration
SteveGilvarry
pushed a commit
that referenced
this pull request
Jun 13, 2016
Support user defined MySQL Port/Socket in API
SteveGilvarry
pushed a commit
that referenced
this pull request
Feb 5, 2017
set http_only flag in cookie settings
SteveGilvarry
pushed a commit
that referenced
this pull request
May 16, 2017
check for polkit only if systemd is present
SteveGilvarry
pushed a commit
that referenced
this pull request
Jun 5, 2019
* Add a control module to support the current Amcrest HTTP API This patch adds ZoneMinder::Control::Amcrest_HTTP This module is adapted and improved from one available on the ZoneMinder forums.[1] It appears that a number of individuals have contributed to it. This is an attempt to correct some of its interactions with ZM::Control and friends as well as enhance and extend supported control features for Amcrest cameras. This work is based on Amcrest HTTP Protocol API Specifications Rev. 2.12 2017-03-15 [1]https://forums.zoneminder.com/download/file.php?id=1878 * Fixing zoom methods * Misc. cleanup of comments, etc. * Fixing up POD, etc. * Converting line endings to Unix * Fixing up preset methods The current Amcrest HTTP API does not support a Home command per se. So this method is set up to send the camera to the first preset position. Of course, this presupposes that the user will setup a preset #1 otherwise the command will fail on a bad preset error. If a future version of the API supports a true Home command, we'll adjust at that point. For now this seems to be a useful workaround. * Removing duplicate home method * Adding moveAbs method I'm putting this in, but absolute camera movement does not seem to be well supported in the classic skin ATM. Reading www/skins/classic/include/control_functions.php seems to indicate a faulty implementation, unless I'm reading it wrong. I see nowhere where the user is able to specify the absolute location to move to. Rather, the call is passed back movement in increments of 1 unit. At least with the Amcrest/Duhua API this would result in the camera moving to the 1* or 0* etc. position. moveAbsUp, Down, Left, Right, etc. Doesn't make sense given the definition of Absolute movement. * Adding a note about the moveMap method This method does not appear to be implemented in the classic skin, but we'll leave it here for future implementation. Caveat: It may or may not work as-is. * Fixing up zoomConTele/Wide methods * Adding a vanilla control type for the Amcrest HTTP API Please note that this control type matches (mostly) the currently available control options in Amcrest_HTTP.pm. It does not match all (or possibly any) of the control options available on a specific Amcrest camera. The user may need to create their own control type specific to the camera model they are using. * Removing misplaced comment Thanks to connortechnology for pointing this out!
SteveGilvarry
pushed a commit
that referenced
this pull request
Jul 15, 2020
SteveGilvarry
pushed a commit
that referenced
this pull request
May 29, 2021
==8109==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7fab9b156480 at pc 0x7fabaebef57b bp 0x7fab9b154640 sp 0x7fab9b153df0 READ of size 32 at 0x7fab9b156480 thread T2 #0 0x7fabaebef57a (/lib/x86_64-linux-gnu/libasan.so.5+0xb857a) #1 0x561c0a9e24eb in bool std::__equal<true>::equal<char>(char const*, char const*, char const*) /usr/include/c++/8/bits/stl_algobase.h:814 #2 0x561c0a9dfa8e in bool std::__equal_aux<char*, char*>(char*, char*, char*) /usr/include/c++/8/bits/stl_algobase.h:831 #3 0x561c0a9dd982 in bool std::equal<__gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > , __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(__gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char, std::c har_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >) /usr/include/c++/8/bits/stl_algobase.h:1049 #4 0x561c0a9cf75a in RtspThread::Run() /root/zoneminder/src/zm_rtsp.cpp:411 #5 0x561c0a9df6e9 in void std::__invoke_impl<void, void (RtspThread::*)(), RtspThread*>(std::__invoke_memfun_deref, void (RtspThread::*&&)(), RtspThread*& &) /usr/include/c++/8/bits/invoke.h:73 #6 0x561c0a9dd4ae in std::__invoke_result<void (RtspThread::*)(), RtspThread*>::type std::__invoke<void (RtspThread::*)(), RtspThread*>(void (RtspThread:: *&&)(), RtspThread*&&) (/root/zoneminder/cmake-build-debug-remote/src/zmc+0x1544ae) #7 0x561c0a9e6a1a in decltype (__invoke((_S_declval<0ul>)(), (_S_declval<1ul>)())) std::thread::_Invoker<std::tuple<void (RtspThread::*)(), RtspThread*> > ::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/include/c++/8/thread:244 #8 0x561c0a9e698d in std::thread::_Invoker<std::tuple<void (RtspThread::*)(), RtspThread*> >::operator()() /usr/include/c++/8/thread:253 #9 0x561c0a9e68ff in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (RtspThread::*)(), RtspThread*> > >::_M_run() /usr/include/c++/8/threa d:196 #10 0x7fabaca57b2e (/lib/x86_64-linux-gnu/libstdc++.so.6+0xbbb2e) #11 0x7fabae50dfa2 in start_thread /build/glibc-vjB4T1/glibc-2.28/nptl/pthread_create.c:486 #12 0x7fabac7354ce in clone (/lib/x86_64-linux-gnu/libc.so.6+0xf94ce)
SteveGilvarry
pushed a commit
that referenced
this pull request
May 29, 2021
Make sure we don't read past the end of global_edges when i = 0. We are moving the elements backwards so at most n_global_edges - 1 elements can be moved. ==6818==ERROR: AddressSanitizer: dynamic-stack-buffer-overflow on address 0x7ffff888ae00 at pc 0x7fe4fd7be8ae bp 0x7ffff888ac90 sp 0x7ffff888a440 READ of size 96 at 0x7ffff888ae00 thread T0 #0 0x7fe4fd7be8ad in __interceptor_memmove (/lib/x86_64-linux-gnu/libasan.so.5+0x378ad) #1 0x56524b2dba31 in Image::Fill(unsigned int, int, Polygon const&) /root/zoneminder/src/zm_image.cpp:2514 #2 0x56524af55530 in Monitor::DumpZoneImage(char const*) /root/zoneminder/src/zm_monitor.cpp:1510 #3 0x56524aeb38cb in main /root/zoneminder/src/zmu.cpp:574 #4 0x7fe4fb2b009a in __libc_start_main ../csu/libc-start.c:308 #5 0x56524aeb87a9 in _start (/root/zoneminder/cmake-build-relwithdebinfo-remote/src/zmu+0xf87a9)
SteveGilvarry
pushed a commit
that referenced
this pull request
May 29, 2021
Make sure we don't read past the end of global_edges when i = 0. We are moving the elements backwards so at most n_global_edges - 1 elements can be moved. ==6818==ERROR: AddressSanitizer: dynamic-stack-buffer-overflow on address 0x7ffff888ae00 at pc 0x7fe4fd7be8ae bp 0x7ffff888ac90 sp 0x7ffff888a440 READ of size 96 at 0x7ffff888ae00 thread T0 #0 0x7fe4fd7be8ad in __interceptor_memmove (/lib/x86_64-linux-gnu/libasan.so.5+0x378ad) #1 0x56524b2dba31 in Image::Fill(unsigned int, int, Polygon const&) /root/zoneminder/src/zm_image.cpp:2514 #2 0x56524af55530 in Monitor::DumpZoneImage(char const*) /root/zoneminder/src/zm_monitor.cpp:1510 #3 0x56524aeb38cb in main /root/zoneminder/src/zmu.cpp:574 #4 0x7fe4fb2b009a in __libc_start_main ../csu/libc-start.c:308 #5 0x56524aeb87a9 in _start (/root/zoneminder/cmake-build-relwithdebinfo-remote/src/zmu+0xf87a9) (cherry picked from commit 63cea99)
SteveGilvarry
pushed a commit
that referenced
this pull request
Jul 9, 2022
Notifying `mCondition` without taking the lock causes a race condition in ::process() between checking `mTerminate` and waiting for the `mCondition`, which causes a dead lock. This commit moves writing to `mTerminate` and notifying `mCondition` under the lock to eliminate race condition and dead lock. This is not theoretical. It has caused zmu to hang at exit on a Raspberry Pi 4, exhuasting PHP-FPM process pool. The stacks below are captured when running ZoneMinder 1.36.12-focal1 on Ubuntu 20.04: (gdb) thread apply all bt Thread 2 (Thread 0xffff80c1c880 (LWP 259988)): #0 futex_wait_cancelable (private=0, expected=0, futex_word=0xaaaae0584e80 <dbQueue+176>) at ../sysdeps/nptl/futex-internal.h:183 #1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0xaaaae0584e28 <dbQueue+88>, cond=0xaaaae0584e58 <dbQueue+136>) at pthread_cond_wait.c:508 #2 __pthread_cond_wait (cond=0xaaaae0584e58 <dbQueue+136>, mutex=0xaaaae0584e28 <dbQueue+88>) at pthread_cond_wait.c:638 #3 0x0000ffff8700d670 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/aarch64-linux-gnu/libstdc++.so.6 #4 0x0000aaaae0438f08 in zmDbQueue::process (this=0xaaaae0584dd0 <dbQueue>) at ./src/zm_db.cpp:250 #5 0x0000ffff87013fac in ?? () from /lib/aarch64-linux-gnu/libstdc++.so.6 #6 0x0000ffff891264fc in start_thread (arg=0xffffe60d84bf) at pthread_create.c:477 #7 0x0000ffff86dd767c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:78 Thread 1 (Thread 0xffff80c23010 (LWP 259987)): #0 __pthread_clockjoin_ex (threadid=281472841926784, thread_return=0x0, clockid=0, abstime=<optimized out>, block=<optimized out>) at pthread_join_common.c:145 #1 0x0000ffff87014240 in std::thread::join() () from /lib/aarch64-linux-gnu/libstdc++.so.6 #2 0x0000aaaae04314d0 in exit_zmu (exit_code=0) at ./src/zmu.cpp:200 #3 0x0000aaaae042f4c8 in main (argc=<optimized out>, argv=<optimized out>) at ./src/zmu.cpp:797
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
proof of concept for dynamic/automatic video rotation using video-js plugin zoomrotate