GStreamer* - OpenVX* Interoperability Sample

This GStreamer* - OpenVX* interoperability sample describes the process of developing GStreamer plugins that use OpenVX for typical Computer Vision tasks. The OpenVX code is wrapped in GStreamer plugin template processing function to become a part of a larger GStreamer media processing pipeline.

The sample implements GStreamer plugin that performs face detection for the incoming frames. Inside the plugin, the main sample functionality is implemented as just 4 nodes OpenVX graph. Also, a part of the face detection pipeline is based on the Photo Vision Library (PVL) coming with Intel OpenCV (featured as part of the Intel Computer Vision SDK). So, the sample demonstrates how to wrap OpenCV calls into OpenVX user nodes.

This sample introduces advanced features of OpenVX required for a real application. If you need a detailed step-by-step introduction to the basics of OpenVX development, see Auto Contrast sample, available in this SDK (<SDK_ROOT>/samples/auto_contrast).

The sample covers the following topics:

  • GStreamer plugin implementation basics
  • OpenVX and GStreamer interoperability through data sharing
  • New OpenCV PVL face detection basics. Please refer to SDK Developer guide for OpenCV PVL module documentation references. [2]
  • Expressing user code as a part of a graph, specifically wrapping the OpenCV calls via OpenVX user nodes.
  • Using OpenVX vx_array data type.

Additionally, the sample features interoperability with OpenCV through data sharing. Here, the OpenCV visualizes face detection results and is not used as a part of OpenVX graph.

For more complete information about compiler optimizations, see our Optimization Notice.