The OMAP35xx processors family provides unparallel performance with ARM® Cortex-A8, C64x DSP, PowerVR SGX Graphics Chip and peripherals. But how to take advantage of all that power using open source solutions? RidgeRun has leverage our experience to integrate powerful open source solutions getting the best of the OMAP hardware in your software solution:
Motion detection with pluggable detection algorithm
We provide a general-purpose motion detection algorithm which you can use, or you can create one for you custom needs.
GStreamer Fast Text/Graphics Overlay
A GStreamer element that can be used to overlay: images, text and/or time and date over video streams or photos without using floating point arithmetic. This is necessary to get good performance when the processor doesn't contain an FPU.
USB standard UVC / UAC driver
Works on Windows, Mac and Linux at one resolution using the VLC application. RidgeRun offers customization services to support other requirements. Customer is responsible for host PC integration and testing.
A customized set of busybox shell scripts that run on the target device to exercise all the I/Os used in the product. These tests are useful for bringing up new hardware and on the assembly line for verifying the functionality of each board. Customers will need to tune the tests to match their manufacturing needs. Typically takes 4 to 6 weeks to generate the manufacturing tests and includes up to 40 hours of customization.
The Gstreamer Video Segmenter - GstVS is an extension of the conventional GstQTMux that allows splitting recordings into multiple files constrained by a size and/or a duration. These recordings can be audio, video or audio+video and in any case every segmented file can be viewed independently. If the recording contains an encoded video stream, then it is guaranteed that the file will start with a reference frame. All these extra functionality is added without interfering with the normal GstQTMux operation and without loosing buffers in between the files
GStreamer multi-stream / mulit-channel RTSP server element
The RTSP Sink is a Gstreamer sink element which permits high performance streaming to multiple computers using the RTSP protocol. This element leverages previous logic from RidgeRun's RTSP server but providing the benefits of a Gstreamer sink element like great flexibility to integrate into applications and easy gst-launch based testing. With RTSP Sink multiple streams can be achieved simultaneously using any desired combination. This means that within a single pipeline you can stream multiple videos, multiple audios and multiple audio+video, each one to a different client and a different mapping. On the examples section different streaming possibilities are shown
Gstreamer wrapped DSP audio / video algorithms
Gstreamer wrapped DSP audio / video algorithms Any existing XDAIS compliant algorithm can be used to process audio or video using the DSP. In addition, existing or new C code can be ported to follow the simple XDAIS guidelines so the algorithm can be run on the DSP. With the GStreamer element wrapper, the audio or video data can be passed from the ARM to the algorithm running on the DSP for processing. If the algorithm modifies the streaming media data, then the modified data is passed back to the ARM and the GStreamer element wrapper puts the modified data back in the pipeline. Example algorithms include video motion detection, audio noise detection, audio echo cancellation, video edge enhancement, etc. The GStreamer element wrapper uses the OMAP3/DM3730/DM644x codec engine and dsplink modules. For DM8148 and DM8168 the GStreamer element wrapper use the RTSC framework. Any additional engineering required beyond porting the algorithm to the SDK and integrating it with the GStreamer element wrapper is considered custom engineering services.
The GStreamer pre-record element
The GStreamer pre-record element can be placed in the pipeline to allow you to be continually recording data into a FIFO, where you can sent the FIFO size based on the amount of pre-recorded data you want kept. The FIFO size is specified in milliseconds. When pre-recording the GStreamer pre-record element doesn't pass any buffer downstream. After the FIFO is filled the oldest data is release as new data is added. When you want to start recording, you can trigger the GStreamer pre-record element. Once triggered, the element will pass the data in the FIFO downstream (to be saved to a file for example) while adding any new data to the back of the FIFO buffer so no data is lost. Eventually the downstream elements will drain the FIFO such that the GStreamer pre-record element simply passes received buffers downstream as they are received. Once the GStreamer pipeline is taken out of the PLAY state, the GStreamer pre-record element resets and will again go into pre-record mode of operation.
Other technologies that are being considered for development
Metadata inclusion. Information, such as GPS location, device serial number, etc, could be included as metadata in the video stream.
Watermarking. Each video frame is marked with non-visible data so that if the frame is modified, the watermark can be used to detect a change to the frame occurred. This technology only works on processors with a DSP.