IMX6 Demo Application

From RidgeRun Developer Connection
Jump to: navigation, search


This demo is aimed to demonstrate some of the capabilities of the iMX6 based platforms and the RidgeRun SDK, it can be used with up to 3 displays at the same time. You will see the performance of the board executing QT applications as well as GStreamer which uses GStreamer Daemon to control and generate the pipelines. You will also see a demonstration of the motion detection plugin.

Installing prebuilt image

Demo application usage

The graphical user interface is divided into four main areas allowing the control of the different features, these are: Status Area, Test category, Test configuration and Control Area. Aditionally you'll find a Shortcuts section with different quick configurations.

GUI Sections

To start a test select a test category, select the desired configuration and press the start button. Once you start a test all the controls are going to be hidden, if you want to see them again, just move the mouse. If there is more that 10 seconds of inactivity on the screen the controls are going to be hidden again.

The following sections show the meaning of all the different controls available.

Status Area

This area is located at the top left corner of the screen and shows information messages about the current test and also the CPU load. Please read the information in this area before the execution of any pipeline.

Test Category Area

This area is integrated by the four buttons located at the middle of the screen and additionally the Display selection box . With these buttons the user can choose between the four available test categories that are explained later in this guide. When you select any of this categories, the appropriate configuration controls are going to be shown.

Test Configuration Area

This section shows up whenever you select a category and it's located right below the category selection buttons. Its content is test-dependent, that is, depending on the selected category; different menus are going to be shown. For some of the tests you'll also see four dials at the middle right section of the screen, these controls are intended to control the location and dimensions of the displayed video.

Control Area

This area is intended to control the test execution. It's located at the bottom of the screen and it allows the user to go forwards and backwards through the different executed tests and play/pause any of them. This means that you can have several pipelines in execution at the same time and you can pause/restart any of them just by moving forwards/backwards until you see the desired pipeline displayed in the pipeline box located in this area.

Here you can also find the Stop Pipeline button and the Transparency dial: with the Stop Pipelines button you can stop all executed pipelines and restart the demo, and with the Transparency dial you are able to control the transparency of the user interface.

Test Categories

The application is divided into four main categories which can be selected by the user at any time: Video Test, Streaming Server, Streaming Client and Snapshot. The user is free to select any of them at any time and execute several tests at once. In the next section you are going to see the available options for all of them.

Video Test

With this category you can perform a video loopback from 3 different sources: Camera, video file or video test pattern. The Test Configuration Area is divided into 3 different sections allowing the configuration of the source and the display mode. Additionally, if you have more than 1 display attached to your board, you can chose the display to be used with the Display selection box located in the Test category area .

For the configuration of the display mode the available options are:

Fullscreen: The video is going to be displayed in full screen.

Overlay: The video is going to be displayed in the selected position of the screen and at the desired resolution by moving the appropriate Dials.

For the configuration of the source the available options are:

1. Camera Loopback:

In this mode the user can select between one of the two cameras (if available) to perform a camera loopback.

Note: due to a software limitation only one pipeline can be using any of the cameras during the execution of the application.

2. From File:

This option allows the user for the selection of one of the tree available videos (1080p, 720p, 480p) to perform a video playback.

3. Video Test Pattern:

Whit this option the user is able to select one of the 20 different video test patterns to display on the screen.

Streaming Server

In this test mode the user can perform a video stream to the desired client machine. For that purpose the user is able to select between any of the cameras, a video file or a video test pattern for the source of the stream.

To configure the client's IP address and PORT modify the file /usr/share/rr-imx6-demo.config in the section Streaming data with the correct IP address and PORT.

vi /usr/share/rr-imx6-demo.config

then modify:

#Streaming Data

with the proper ip_address and port.

Once you select the desired configuration, the clients pipeline is going to be shown in the target prompt

Client pipeline

execute that pipeline in the client's machine before to start the server pipeline.

Streaming Client

With this option the target board is going to be the client for the video stream. Once you start this test the server pipeline is going to be shown in the target prompt.

Server pipeline

execute it in the server machine to start the streaming.

Note: as you can see in the server pipeline the $DEVDIR variable is used. That is because the video to be streamed is assumed to be located in the current devdir.


This option allows the user to take a snapshot by using one of the available cameras. To do so, select the camera and press the play button. The snapshot is going to be stored at /opt/RR-Demo/media/snapshot.jpg, if you want to change this location, modify the Snapshot Location section in the configuration file.

vi /usr/share/rr-imx6-demo.config

then change /opt/RR-Demo/media/snaphot.jpg for the desired location:

#Snapshot location


This section is intended to provide the user with an easy way to configure some tests. It's located at the top-right of the screen and it gives you 6 different quick configurations.

Play a Movie

This shortcut configures the application to reproduce one video at full screen mode.

Live Preview

This shortcut configures the application to display a camera loopback at fullscreen.

Live Preview + Movie

This shortcut configures the application to execute a camera loopback at full screen + a video at the top-left corner of the display.

Movie + Live preview

This shortcut configures the application to execute a video playback at full screen + a camera loopback at the top-left corner of the screen.

Live Preview + 2 Movies

This shortcut configures the application to execute a camera loopback at full screen + 2 video playbacks located at the top-left corner and center of the screen.

Live Preview + 3 Movies

This shortcut configures the application to execute a camera loopback at full screen + 3 video playbacks located in different positions of the screen.

NOTE: The shortcuts are provided to facilitate the configuration of some example tests but you can configure any of them by using the main controls, if you pay attention to the Control area you'll see that the pipeline executed by the shortcut is being shown in the pipeline box.

Motion detection

The motion detection feature is available in the professional version of the SDK and it's automatically enabled in any configured tests using the camera. Whenever you select the camera as the source of the video the Enable Motion Detection checkbox is going to be shown right under the CPU Usage bars. This control allows you to enable/disable the motion detection option at run time.

As an example lets perform a camera loopback at full screen with motion detection enabled. To do so turn on your board to let the demo application be executed:

1. Select the video Test category (left button).

2. Press the Play button.

At this point you'll see the camera loopback with the motion detection disabled.

3. Touch the screen in order to show the controls.

4. Check the Motion detection enable checkbox.

At this point the motion detection is enabled. Whenever something moves in front of the camera you'll see how some of the pixels are going to change its color indicating that motion was detected in them.

If you want to disable the motion detection just uncheck the Motion Detection Enable checkbox.

Note: Pixels are colored when motion is detected just as a way to show the user that something is moving but the video is not really affected by the plugin. This plugin is fully customizable in terms of the size of the object to be detected, the area to be scanned and much more. Please feel free to contact us if you need more information.

Usage Example

In this section you are going to see a usage example to make things clear. Three pipelines are going to be executed: a video preview in full screen mode, a Camera Loobback in overlay mode and a Video Streaming Server video test. To do so please follow these steps:

1. Click on the Video Test category button.

2. From the Select Video Test configuration select From File and press PLAY.

3. Click on the Video Test category button.

4. From the Select Overlay configuration select Overlay

5. Move the X Pos and Y Pos Dials to 600 and 400 respectively (approximately) and press PLAY.

6. Click on the Streaming Server category button.

7. From the Select Video Test configuration select From File.

8. Execute the Client's pipeline in the client machine.

9. Press PLAY.

Note: as explained before, you can use the forwar/backward and play/pause buttons to control the execution of the current pipelines.

Compiling and installing RidgeRun iMX6 Demo application

You can learn about the RidgeRun SDK by building the demo image yourself. Start by downloading and installing the NigtronX6 evaluation SDK.

To enable the demo in the RidgeRun SDK, open menu config by executing the following command from the root of your devdir:

make config

After that go to User Applications and select the RidgeRun iMX6 demo application with GUI.

Demo application selection

Once you selected the application, exit and save the changes, then compile and install by doing:

make install

Once the SDK is compiled and installed the demo app is going to be automatically started at boot time.