Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - sergeyksv

Pages: [1]
1
Not sure where is the proper place to discuss this issue so I'll write here. So, we have managed to build some specific system based on LinuxMCE. This system is an advanced eight cam - four terminals doorphone system and EIB management console. We have very specific requirements which doesn't require media functionality of LinuxMCE but extensively use its security and smart home controlling abilities. Built system consists of single server and four terminals. Three terminals (orbiters) are the floor doorphone EIB managing consoles and one is guard console. Every terminal is able to show up to eight cams with 25 fps per cam from analog security cameras digitized on server. Terminal also used to control three door locks and EIB devices. Each terminal has it own phone line configured using Asterisk. There are also two doorphone panels connected as phones to Asterisk through our own adapter. During implementation of this system we solve several bugs, rewrite EIB device plug-in and implement new device for video input through Video4L. Here is the brief list of changes:

1. Implemented new device to grab video from Video4L compatible devices. Current implementation of motion wrapper was EXTEMLY slow while we have requirement to show video with 25 FPS per channel. Device is optimized for simultanionius access from several orbiters with effort to take as low CPU time as possible and serve as much orbiters as possible. Device never wait frame from video device but has cached image obtained in background so it serves orbiter(s) request very quickly. It can be able to configure broadcast frames and write flv video with configured frame rate and size. So, the quad Q6600 CPU can easily to digitize 8 cams with full PAL size and 25 FPS. There also tiny web app to view video archives with videos creeated by these devices with browser playback (as this is flash video) and searching. The 1TB raid that we use for system stores 24 hours video for eight cams with history for 30 days.

2. Modify the orbiter code to support more than one core CPU with effort to show more than four cams per screen with good frame rate for all cams. Threads are used to extract JPEG frames and resize them. So on dual core CPU we able to show about 160 frames per second (eight cams each 12-15 FPS). With quad core eight cams with 25 FPS each. All these doesn't break orbiter functionality.

3. Home where the system is used has about 300 eib devices and current implementation was found very buggy for this purpose (however good source to start). We rewrite it and now it perfectly works.

4. We found and fix bug with core wich add 40 ms delay into large datapackets. With this bug even we have fast device for video digitizing broadcasting ability of server with good image quality was limited heavly. Now core able to provide data for 4 terminals, i.e. 640 fps without serious CPU load and with pretty high stability.

We make other modifications but they are rather custom and not think need to be shared. We willing to publish somehow these enhancments but I want to be sure that they reach its destination. I.e. they will be somehow integrated into LinuxMCE in case they will be found useful. So I search the person(s) who will be able to assist me with this. Once we start (one year ago) we found entire build process and even proper location for latest code very confusing and I not want to spend lot of time investigating this issue again.

Pages: [1]