|
Veethree D7 SDK
|
The D7 supports four SDTV NTSC or PAL cameras via CVBS. The inputs for them are available via the AMPSEAL 23-pin interface via the 4 pairs of pins labeled CVBS IN#+/-.
The cameras need to be powered externally.
Only one input can be selected and streamed at a time.
All the commands in this section should be run on the target device.
Both the release and development images for the D7 come preinstalled with a number of the v4l2 utilities; specifically:
On the target device the video decoder device is /dev/v4l-subdev1, but all the controls it has are exposed via /dev/video2 as well.
This way all the controls – setting or getting the video standard, setting the currently active input and image processing options – are available using the v4l2 ioctls on just one video device, /dev/video2.
Only one of the four inputs can be active at any moment.
The following commands give examples for getting all the available inputs, getting the currently active input and setting the active input.
All video inputs support the same set of video standards. The supported standards can be queried using:
Notes:
Getting and setting the standard can be done by running:
To see all the available options, connect to the D7 and run:
This command also lists the value ranges, defaults and current values for each controls.
For the following example we will get and set the value for brightness.
The commands for the other controls are similar.
Note: For boolean controls, such as horizontal_flip, 0 is false and 1 is true.
To test the input from a camera, you can display it using GStreamer.
Note: GStreamer will check the resolution and framerate in the pipeline's filtercaps against the current standard set for the v4l2 device. If they don't match, the pipeline will fail to start.
Steps:
The Qt Multimedia framework has a GStreamer backend. More in depth documentation about it can be found at https://doc.qt.io/qt-6.8/qtmultimedia-gstreamer.html.
When using GStreamer pipelines as part of Qt applications it is recommended to display the output using GStreamer's qml6glsink.
It is also recommended to avoid setting QMediaPlayer's source field to gstreamer-pipeline: ... and the QGStreamerPlatformSpecificInterface to create a custom GStreamer camera, as both of these solutions are known to produce segmentation faults at random points during execution.
The GStreamer libraries are currently not part of the Host SDK on either Linux or Windows. That means that in order to build applications that use GStreamer and run on the host, the GStreamer libraries will need to be available at the system level.
This is similar to how Qt libraries are used for building host applications. See Host build for more details on building host applications with Qt.