Security video monitoring client
Abstract
A security video monitoring client system and method of presenting feeds within the same are disclosed. Out-of-process renderer components executing outside the client program provide an important performance advantage, particularly as to the number of video feeds to decode and/or render that can be decoded. This external thread execution strategy likewise facilitates fault isolation, shielding the client from undesired effects arising from the termination, restarting, and/or any other action to be taken as a result of anomalous operation of any one or more out-of-process renderer components.
Claims
exact text as granted — not AI-modified1 . A method of presenting a plurality of security camera feeds within a security video monitoring system for interaction by a user, said method comprising:
executing a first program within an operating system of said security video monitoring system to run at least a first process for implementing a semi-transparent window parent structure comprising an array of transparent tiles, each transparent tile of said array of transparent tiles having specific positions and dimensions within said semi-transparent window parent structure defined by user input through said operating system; running a plurality of out-of-process renderer components in a plurality of processes external to the first process and under said operating system of the security video monitoring system, said plurality of out-of-process renderer components each receiving a camera feed from one of said plurality of security camera feeds and providing a video output resulting in a plurality of video outputs in separate windows controlled by said operating system; positioning, and dimensioning each of said separate windows of said plurality of video outputs within one tile of said array of transparent tiles according to said specific dimensions, wherein said separate windows of said plurality of video outputs are each made to align behind a corresponding transparent tile of said array of transparent tiles; wherein said first program comprises a GUI playback interface element that collects user point/click input and in response thereto transmits a specific instruction to one of said plurality of out-of-process renderer components.
2 . The method defined in claim 1 , further comprising causing visual elements of one or more non-renderer components, said non-renderer components operating out-of-process, to be displayed superjacent to said visual outputs and subjacent to said tiles.
3 . The method defined in claim 1 , further comprising accepting user input for one or more specific positions within said window parent structure and dispatching corresponding commands to out-of-process components at said one or more specific positions.
4 . The method defined in claim 1 , wherein said user point/click input is any one or more from the group comprising: a mouse click, a drag-and-drop action, a tactile action or gesture, a three-dimensional action or gesture, a key press, and a sensory input.
5 . The method defined in claim 4 wherein said sensory input is received via one or more voice commands.
6 . The method defined in claim 4 , wherein said sensory input is received via eye control.
7 . The method defined in claim 4 , wherein said sensory input is received from of gesture recognition via one or more multimodal sensors.
8 . The method defined in claim 1 , further comprising monitoring the execution status of said out-of-process renderer components and restarting any one or more said out-of-process renderer components following anomalous operation thereof.
9 . The method defined in claim 1 , further comprising monitoring the execution status of said out-of-process renderer components and terminating any one or more said out-of-process renderer components following anomalous operation thereof.
10 . The method defined in claim 8 , wherein said monitoring includes using a condition parameter set to define or to detect the occurrence of said anomalous operation.
11 . The method defined in claim 10 , wherein said condition parameter set comprises a member specifying the minimum time interval to wait between said anomalous operation and said restarting.
12 . The method defined in claim 11 , further comprising notifying one or more human users of said anomalous operation by way of a dialog box.
13 . The method defined in claim 12 , further comprising presenting to one or more human users one or more decisions on how to proceed following said anomalous operation.
14 . A non-transitory computer-readable storage medium for implementing a security video monitoring client for presenting a plurality of security camera feeds, said medium comprising instructions for causing a processing device to perform a method comprising:
executing a first program within an operating system of said security video monitoring system to run at least a first process for implementing a semi-transparent window parent structure comprising an array of transparent tiles, each transparent tile of said array of transparent tiles having specific positions and dimensions within said semi-transparent window parent structure defined by user input through said operating system; running a plurality of out-of-process renderer components in a plurality of processes external to the first process and under said operating system of the security video monitoring system, said plurality of out-of-process renderer components each receiving a camera feed from one of said plurality of security camera feeds and providing a video output resulting in a plurality of video outputs in separate windows controlled by said operating system; positioning, and dimensioning each of said separate windows of said plurality of video outputs within one tile of said array of transparent tiles according to said specific dimensions, wherein said separate windows of said plurality of video outputs are each made to align behind a corresponding transparent tile of said array of transparent tiles; wherein said first program comprises a GUI playback interface element that collects user point/click input and in response thereto transmits a specific instruction to one of said plurality of out-of-process renderer components.
15 . The medium defined in claim 14 , further comprising instructions for causing a processing device to display visual elements of one or more non-renderer components, said non-renderer components operating out-of-process, being situated superjacent to said visual outputs and subjacent to said tiles.
16 . The medium defined in claim 15 , further comprising instructions for causing a processing device to overlay, as said visual elements, any one or more from among the group comprising software control component objects, interface components, digital on-screen graphics, and motion graphics over a respective visual output.
17 . The medium defined in claim 14 , further comprising instructions for causing a processing device to accept user input for one or more specific positions within said window parent structure and to dispatch corresponding commands to out-of-process components at said one or more specific positions.
18 . The medium defined in claim 17 , further comprising instructions for causing a processing device to receive user input to scale ones of said visual elements in proportion to a change in dimension of said window parent.
19 . The medium defined in claim 14 , further comprising instructions for causing a processing device to monitor the execution status of said out-of-process renderer components and to restart any one or more said out-of-process renderer components following anomalous operation thereof.
20 . The medium defined in claim 14 , further comprising instructions for causing a processing device to monitor the execution status of said out-of-process renderer components and to terminate any one or more said out-of-process renderer components following anomalous operation thereof.Join the waitlist — get patent alerts
Track US2021368238A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.