Giter VIP home page Giter VIP logo

bluecherry-apps-issues's People

Contributors

curtishall avatar waffle-iron avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bluecherry-apps-issues's Issues

Error upgrading from 2.2.0 to 2.3.9 (/drop_deprecated_camera_templates.sh: Permission denied)

/usr/share/bluecherry/mysql-upgrade/2020400 /usr/share/bluecherry/mysql-upgrade /
+ for y in '*.sh'
+ ./set_adequate_video_quality.sh
+ popd
/usr/share/bluecherry/mysql-upgrade /
+ DB_VERSION=2020400
+ for x in '`ls | sort -n`'
+ [[ 2020500 -gt 2020400 ]]
+ pushd 2020500
/usr/share/bluecherry/mysql-upgrade/2020500 /usr/share/bluecherry/mysql-upgrade /
+ for y in '*.sh'
+ ./create_table_rtsp_auth_tokens.sh
+ popd
/usr/share/bluecherry/mysql-upgrade /
+ DB_VERSION=2020500
+ for x in '`ls | sort -n`'
+ [[ 2020600 -gt 2020500 ]]
+ pushd 2020600
/usr/share/bluecherry/mysql-upgrade/2020600 /usr/share/bluecherry/mysql-upgrade /
+ for y in '*.sh'
+ ./drop_deprecated_camera_templates.sh
/var/lib/dpkg/info/bluecherry.postinst: line 51: ./drop_deprecated_camera_templates.sh: Permission denied
dpkg: error processing bluecherry (--configure):
 subprocess installed post-installation script returned error exit status 1
Setting up sqlite3 (3.7.9-2ubuntu1.1) ...
Errors were encountered while processing:
 bluecherry
E: Sub-process /usr/bin/dpkg returned an error code (1)

Experiment with flag thresholds to reduce false motion events

Issue by curtishall
Mon Aug 26 19:08:13 2013
Originally opened as bluecherrydvr/bluecherry-apps#86


Currently, any frame flagged as having motion by the driver will begin a motion event. The threshold required to trigger a flag is configurable, but this still results in a huge number of false positive motion events, often generated by very brief movement like noise or shadows. Most actual motion will be much more consistent, and last over a period longer than a single frame.

Implement a server-level threshold, where a motion event is started only after a number of frames have been flagged within a certain period. This number should be fairly low.

One suggested approach for the threshold is to trigger only when at least N% of frames in the past X seconds contain motion, where N is a low tunable value, and X is a short period of time (generally between .25 and 2 seconds?). A fraction of frames within period X should be used over a static count to avoid false negatives on low framerate devices.

http://improve.bluecherrydvr.com/issues/955

motion_processor & motion_hander race condition for packet flags

Issue by krieger-od
Wed Jul 2 14:45:06 2014
Originally opened as bluecherrydvr/bluecherry-apps#229


motion_processor modifies packets flags in parallel to motion_handler working on them. This may lead to "false negatives" - the cases when frame has motion, but the actual motion flag value not taken into consideration, because it is checked early. This issue doesn't manifest itself (at last in obvious ways) because current implementation of motion_handler traverses packets of GOP again and again while packets add up in current GOP. For issue #86, this approach will be changed, and with new approach the issue manifests itself - detected motion doesn't cause recording start.

DB restoration from dump issues

Issue by krieger-od
Sat May 31 11:31:42 2014
Originally opened as bluecherrydvr/bluecherry-apps#213


Restoring DB from dump involves dropping tables, recreating them and filling with data from a dump.
MySQL doesn't have a way to lock particular database entirely, only all databases at once, or particular table, and some more options.
Issue 1: Service daemon, or concurrently open web UI page, or client app instance may request some info in DB during the upgrade and get confused, because DB state is inconsistent and unpredictable.
This can be partially solved by giving Apache permissions to stop and restart Bluecherry daemon. I don't have a solution for blocking access to our PHP scripts from web UI and client app. I am unsure that usage of a2dissite and a2ensite is going to work, and even more unsure that it is a good idea to use them.

Issue 2: web UI checks GlobalSettings table entry with key "G_LAST_CURRENT_VERSION", and inserts it when it doesn't find it. This happens on any inclusion of www/lib/lib.php, so this should be included everywhere. For example, simple request to "index.php", even before authentication, results in execution of this code checking and inserting DB key. So if we don't block DB access concurrent to restoration process, we have a potential race condition, which has very small probablity to manifest itself, but when it will manifest itself, it will look just like DB restoration failure. DB will be left in inconsistent state: some of tables have been already restored from backup, some haven't been touched, and GlobalSettings table is left mostly empty, but with "G_LAST_CURRENT_VERSION" row.

@abelykh need your ideas.

HTTP streaming of past events from a web browser

Issue by curtishall
Mon Aug 26 19:36:34 2013
Originally opened as bluecherrydvr/bluecherry-apps#102


Using a flash player a customer should be able to stream videos from a web browser without losing much quality.

We really need this to be HTML5 based, however HTML5 doesn't support the Matroska container in it's video tag. We can't tie up the CPU either transcoding videos on the fly, so we need to look into some way to support this.

Add ids parameter to events/ request

Issue by curtishall
Mon Aug 26 18:29:33 2013
Originally opened as bluecherrydvr/bluecherry-apps#66


ids parameter should be added to events request in following format:

ids=1,2,3,4

This will allow client to download only given subset of events.
For example:
client already displays 10 000 events, 20 of them are 'in progress'
client asks for newsets events using "afterId" parameter
client adds these events to display list
client asks for 20 'in progress' events using ids paremter
client updates these events in display list
Then we will have nicely working events lists that updated only neccessary items and does not loose selection.

http://improve.bluecherrydvr.com/issues/1187

Read error from stream: End of file

On Axis cameras connected to .134:

Sep 13 09:34:51 1204-unstable bc-server[22958]: E(8/Axis 210A 1): Read error from stream: End of file
Sep 13 09:34:51 1204-unstable bc-server[22958]: E(9/Axis 210A 2): Read error from stream: End of file
Sep 13 09:34:51 1204-unstable bc-server[22958]: E(6/Brickcom OB-100Ae): Read error from stream: End of file
Sep 13 09:34:51 1204-unstable bc-server[22958]: E(5/Ubiquiti): Read error from stream: End of file
Sep 13 09:34:52 1204-unstable bc-server[22958]: E(10/ACTi ACM-5611): Failed to analyze input stream. Error: -1 (Operation not permitted)
Sep 13 09:34:52 1204-unstable bc-server[22958]: E(10/ACTi ACM-5611): Error starting device stream: 
Sep 13 09:35:01 1204-unstable bc-server[22958]: I(9/Axis 210A 2): Stream started: Video: mpeg4 (Advanced Simple Profile), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 1/90000(s) 1/100(c)
Sep 13 09:35:01 1204-unstable bc-server[22958]: I(8/Axis 210A 1): Stream started: Video: mpeg4 (Advanced Simple Profile), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 1/90000(s) 1/100(c)
Sep 13 09:35:03 1204-unstable bc-server[22958]: I(5/Ubiquiti): Stream started: Video: h264 (Baseline), yuvj420p(pc), 1280x720 [SAR 1:1 DAR 16:9], 1/90000(s) 1/30(c)
Sep 13 09:35:03 1204-unstable bc-server[22958]: B(5/Ubiquiti): motion_flag_consumer has a newer packet than target buffer
Sep 13 09:35:03 1204-unstable bc-server[22958]: I(6/Brickcom OB-100Ae): Stream started: Video: h264 (Baseline), yuv420p, 640x400, 1/90000(s) 1/180000(c)
Sep 13 09:35:42 1204-unstable bc-server[22958]: B(17/axis-00408c8af0c1): motion_flag_consumer has a newer packet than target buffer
Sep 13 09:35:45 1204-unstable bc-server[22958]: E(9/Axis 210A 2): Read error from stream: End of file
Sep 13 09:35:45 1204-unstable bc-server[22958]: E(8/Axis 210A 1): Read error from stream: End of file
Sep 13 09:35:45 1204-unstable bc-server[22958]: E(5/Ubiquiti): Read error from stream: End of file
Sep 13 09:35:45 1204-unstable bc-server[22958]: E(6/Brickcom OB-100Ae): Read error from stream: End of file
Sep 13 09:35:46 1204-unstable bc-server[22958]: E(10/ACTi ACM-5611): Failed to analyze input stream. Error: -1 (Operation not permitted)
Sep 13 09:35:55 1204-unstable bc-server[22958]: I(9/Axis 210A 2): Stream started: Video: mpeg4 (Advanced Simple Profile), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 1/90000(s) 1/100(c)
Sep 13 09:35:55 1204-unstable bc-server[22958]: I(8/Axis 210A 1): Stream started: Video: mpeg4 (Advanced Simple Profile), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 1/90000(s) 1/100(c)
Sep 13 09:35:57 1204-unstable bc-server[22958]: I(5/Ubiquiti): Stream started: Video: h264 (Baseline), yuvj420p(pc), 1280x720 [SAR 1:1 DAR 16:9], 1/90000(s) 1/30(c)
Sep 13 09:35:57 1204-unstable bc-server[22958]: I(6/Brickcom OB-100Ae): Stream started: Video: h264 (Baseline), yuv420p, 640x400, 1/90000(s) 1/180000(c)
Sep 13 09:36:39 1204-unstable bc-server[22958]: E(6/Brickcom OB-100Ae): Read error from stream: End of file
Sep 13 09:36:39 1204-unstable bc-server[22958]: E(8/Axis 210A 1): Read error from stream: End of file
Sep 13 09:36:39 1204-unstable bc-server[22958]: E(5/Ubiquiti): Read error from stream: End of file
Sep 13 09:36:39 1204-unstable bc-server[22958]: E(9/Axis 210A 2): Read error from stream: End of file
Sep 13 09:36:49 1204-unstable bc-server[22958]: I(8/Axis 210A 1): Stream started: Video: mpeg4 (Advanced Simple Profile), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 1/90000(s) 1/100(c)
Sep 13 09:36:49 1204-unstable bc-server[22958]: I(9/Axis 210A 2): Stream started: Video: mpeg4 (Advanced Simple Profile), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 1/90000(s) 1/100(c)
Sep 13 09:36:50 1204-unstable bc-server[22958]: I(5/Ubiquiti): Stream started: Video: h264 (Baseline), yuvj420p(pc), 1280x720 [SAR 1:1 DAR 16:9], 1/90000(s) 1/30(c)
Sep 13 09:36:51 1204-unstable bc-server[22958]: I(6/Brickcom OB-100Ae): Stream started: Video: h264 (Baseline), yuv420p, 640x400, 1/90000(s) 1/180000(c)
Sep 13 09:37:00 1204-unstable bc-server[22958]: B(6/Brickcom OB-100Ae): motion_flag_consumer has a newer packet than target buffer

Improve build system

Issue by curtishall
Sat Feb 15 19:32:48 2014
Originally opened as bluecherrydvr/bluecherry-apps#155


As mentioned by @krieger-od in Development...we need to improve building systems. instead of launching script each time, there must be a set of make-targets which determine by theirselves whether they must be rebuilt. Recompiling libav* each time wastes time (on 10-cores lizard it's still ~2 minutes)

Cut recordings in 15 minute blocks hourly, instead of 15 minutes from the start time for continuous recordings

Issue by curtishall
Mon Aug 26 19:07:30 2013
Originally opened as bluecherrydvr/bluecherry-apps#85


To help better keep files in sync, and to help cleanup the time-line, event durations should be cut off four times an hour, every 15 minutes (:00, :15, :30, :45).

This will have no effect on motion events that exceed 15 minutes (they will remain cut off after 15 minutes)

At the same time as this change, we should implement proper cutting just before a keyframe, so that we never lose any video frames between continuous recordings.

"Objectify" bc_record, bc_event_cam etc.

Issue by krieger-od
Tue Jul 1 09:46:10 2014
Originally opened as bluecherrydvr/bluecherry-apps#226


Some important entities in code are implemented as struct and bare C functions with respective prefix in names. This is inevitable inconvenience in pure C projects, but we use C++ compiler and can have use its benefits.
More than that, such structs and their "methods" are often put to different files, and even more, the name of that file doesn't match anything, which makes it a headache to track things.
This prevents the feature developed for bluecherrydvr/bluecherry-apps#160 to be effective, see https://github.com/bluecherrydvr/bluecherry-apps/blob/xml_status/server/bc-thread.cpp#L485

As i have said in #160, it is better to be done NOT in parallel with any other new features, to avoid merging problems. Also such rework shouldn't be targeting 2.2 stable branch. So it makes sense to implement as "last commit on 2.3" - when there's nothing planned for backporting to 2.2.

Rework Database API

Issue by curtishall
Sat Feb 15 19:31:31 2014
Originally opened as bluecherrydvr/bluecherry-apps#154


As discussed in Development, the database is giving us a serious amount of problems. We need to rework this, or scrap it completely and rewrite how we interface with it instead of bandaid fixes.

Invalid handling of too many records in Events results

Issue by curtishall
Mon Aug 26 18:34:18 2013
Originally opened as bluecherrydvr/bluecherry-apps#67


From @vogel

Fix for bug #1015 disallows sending more than 15000 event records from server to clients.
This can be overriden by adding limit=25000 parameter to URL request.

But I think that sending even more events should not be a problem as long as we dont save all events in memory before sending them.
This line:
$events = data::query($query);
executes this:
$db->fetchAll()
which loads all results into memory as an array.

Using http://php.net/manual/en/mysqli-result.fetch-row.php and sending records one by one will allow us to send as many results as we want.

Add better statuses for network camera failures

Issue by curtishall
Mon Aug 26 19:09:08 2013
Originally opened as bluecherrydvr/bluecherry-apps#88


Currently we log any error as 'Not Found'. We need to support at least these two:

'Offline' (for connection timeouts)
'Authentication failed'

We also need verbose handling of errors. The actual error received from the network camera should be attached to the XML so the client can read and display it.

Tiny memory leak

Issue by krieger-od
Wed Jul 16 15:04:41 2014
Originally opened as bluecherrydvr/bluecherry-apps#230


==7342== 240 bytes in 4 blocks are definitely lost in loss record 163 of 284
==7342==    at 0x4C2A0B0: memalign (vg_replace_malloc.c:727)
==7342==    by 0x4C2A1A7: posix_memalign (vg_replace_malloc.c:876)
==7342==    by 0x5DB03E9: av_malloc (mem.c:95)
==7342==    by 0x4E43585: stream_properties::video_properties::apply(AVCodecContext*) const (input_device.cpp:172)
==7342==    by 0x40D7E9: media_writer::snapshot_decoder_init(stream_packet const&) (media_writer.cpp:367)
==7342==    by 0x40D95D: media_writer::snapshot_create(char const*, stream_packet const&) (media_writer.cpp:311)
==7342==    by 0x41CC07: recorder::run() (recorder.cpp:125)
==7342==    by 0x675E3FF: ??? (in /usr/lib64/gcc/x86_64-pc-linux-gnu/4.7.3/libstdc++.so.6.0.17)
==7342==    by 0x7277EB6: start_thread (in /lib64/libpthread-2.17.so)
==7342==    by 0x6FB1A7C: clone (in /lib64/libc-2.17.so)

Real-time server-to-client communication

Issue by curtishall
Mon Aug 26 19:35:30 2013
Originally opened as bluecherrydvr/bluecherry-apps#99


We need to work out a system for real-time communications from the server and web interface to the client. This is necessary/useful for:

Real-time event notification (especially motion)
Notification of recording status
Notification of device changes (added/removed/reconfigured)
..?
The actual protocol of this can be nearly anything, even as simple as a never-ending XML stream over HTTP. However, it must be possible for the client to maintain a connection and receive immediate notification of the situations above and anything else we find useful.

Details of implementation can be discussed at a later date.

Add section for 'Report incorrect information'

Issue by curtishall
Tue Sep 9 14:15:52 2014
Originally opened as bluecherrydvr/bluecherry-apps#241


Add a section on the Add IP camera area that lets the customer report incorrect or invalid information from cambase. Once they click on the 'Report incorrect information' section then display this code:

<div id="wufoo-z1ws6wwb1p41rs9">
Fill out my <a href="https://bluecherry.wufoo.com/forms/z1ws6wwb1p41rs9">online form</a>.
</div>
<div id="wuf-adv" style="font-family:inherit;font-size: small;color:#a7a7a7;text-align:center;display:block;">HTML Forms powered by <a href="http://www.wufoo.com">Wufoo</a>.</div>
<script type="text/javascript">var z1ws6wwb1p41rs9;(function(d, t) {
var s = d.createElement(t), options = {
'userName':'bluecherry',
'formHash':'z1ws6wwb1p41rs9',
'autoResize':true,
'height':'612',
'async':true,
'host':'wufoo.com',
'header':'show',
'ssl':true};
s.src = ('https:' == d.location.protocol ? 'https://' : 'http://') + 'www.wufoo.com/scripts/embed/form.js';
s.onload = s.onreadystatechange = function() {
var rs = this.readyState; if (rs) if (rs != 'complete') if (rs != 'loaded') return;
try { z1ws6wwb1p41rs9 = new WufooForm();z1ws6wwb1p41rs9.initialize(options);z1ws6wwb1p41rs9.display(); } catch (e) {}};
var scr = d.getElementsByTagName(t)[0], par = scr.parentNode; par.insertBefore(s, scr);
})(document, 'script');</script>

Support for SMART / software raid status changes

Issue by curtishall
Mon Aug 26 19:36:17 2013
Originally opened as bluecherrydvr/bluecherry-apps#101


Add support for a utility to run and detect if the drive(s) used for storage are SMART capable (most are) or software raid and check the status of the drive every X amount of minutes. If an error or problem is detected report that to the event log and mark it as critical. It might also be useful to send an email to the system administrator notifying them of the status.

Investigate using Pulse for analog audio recording

Issue by curtishall
Mon Aug 26 18:48:37 2013
Originally opened as bluecherrydvr/bluecherry-apps#74


Analog audio recordings (from solo devices) are currently done with the ALSA API, which seems to conflict with PulseAudio's desire to have control of all devices (snd_pcm_open returns EBUSY). I suspect that the problems with the current code run deeper than that, and from a casual glance, Pulse may match our recording pattern better anyway.

Look at using Pulse rather than ALSA for audio capture; if that fails, we must find a way to get ALSA recording working regardless of Pulse.

http://improve.bluecherrydvr.com/issues/1070

Warnings "Cannot set motion thresholds (wrong configuration field?)"

Issue by krieger-od
Wed Mar 19 17:12:49 2014
Originally opened as bluecherrydvr/bluecherry-apps#165


This happens for V4L2 cameras.
I guess that means that here https://github.com/bluecherrydvr/bluecherry-apps/blob/master/server/bc-thread.cpp#L421 the code sets motion detection threshold for both conventional motion processor and for v4l2_device object, and motion_processor expects motion threshold string of another length, exactly 32*24=768, but for PAL V4L2 camera DB stores 396 chars.

Need a test environment to trace code execution.

This bug is reported by Ami Aronzon.

Storage paths are allowed to be saved without an actual storage path

Issue by curtishall
Mon Jun 23 16:24:30 2014
Originally opened as bluecherrydvr/bluecherry-apps#223


+----------+------------------------------------+------------+------------+
| priority | path                               | max_thresh | min_thresh |
+----------+------------------------------------+------------+------------+
|        0 | /media/camera/databank/bluecherry/ |      95.00 |      85.00 |
|        1 |                                    |      95.00 |      85.00 |
+----------+------------------------------------+------------+------------+

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.