/gst-vmeta

GStreamer 1.0 plugins for Marvell's vMeta video accelerator

Primary LanguageCOtherNOASSERTION

gst-vmeta

About

This is a set of GStreamer 1.0 plugins for plugins for Marvell's hardware video accelerator, called "vMeta". Currently, a decoder and a modified xvimagesink are implemented. Encoders will follow soon.

Unlike Marvell's official GStreamer 0.10 vMeta plugins, these make use of GStreamer's base classes, thus integrating better with the other elements. These plugins also allow for passing on output data directly, without having to copy it from the DMA buffers. This is possible thanks to GStreamer 1.0's new allocator and buffer pool features.

Currently, this software has been tested on the SolidRun CuBox only.

License

These plugins are licensed under the LGPL v2.

Available plugins

  • vmetadec : video decoder plugin
  • vmetaxvsink : modified version of the xvimagesink that comes in the gst-plugins-base package; the modifications pass on the physical pointer of DMA buffers directly, instead of memcpy'ing the frame pixels (NOTE: this sink will only work properly with Marvell's dovefb Xorg driver)

Dependencies

You'll need a GStreamer 1.0 installation, and Marvell's IPP package. To get the vmetaxvsink plugin to work, you need an Xorg installation, and the dovefb Xorg driver from Marvell.

Building and installing

This project uses the waf meta build system. To configure , first set the following environment variables to whatever is necessary for cross compilation for your platform:

  • CC
  • CFLAGS
  • LDFLAGS
  • PKG_CONFIG_PATH
  • PKG_CONFIG_SYSROOT_DIR

Then, run:

./waf configure --prefix=PREFIX

(The aforementioned environment variables are only necessary for this configure call.) PREFIX defines the installation prefix, that is, where the built binaries will be installed.

Once configuration is complete, run:

./waf

This builds the plugins. Finally, to install, run:

./waf install

Note that there is a shared object that is not a plugin, called libgstvmetacommon.so. This shared object contains common functionality used in all plugins.