GstObuMetadata User Guide
GstObuMetadata |
---|
GstObuMetadata Basics |
Getting Started |
User Guide |
Examples |
Contact Us |
Adding metadata support to your application involves two main tasks: on the sending side, injecting metadata on the pipeline and for the receiving side, extracting the metadata. RidgeRun's GStreamer GstObuMetadata plugin provides elements for both tasks to apply in a AV1 video stream.
ObuInject element
ObuInject element allows to inject metadata to the AV1 buffer. You can set the desire metadata using the element insertion properties or insert a buffer with a GstMeta property.
Below you will find an overview of the capabilities and properties of the obuinject element.
The full output of the command gst-inspect-1.0 obuinject
is the following:
Factory Details: Rank none (0) Long-name OBU inject metadata Klass Generic Description adds metadata as Open Bitstream Units (OBU) Author <kimberly.carvajal@ridgerun.com> Plugin Details: Name obu Description Gstreamer plugin to add metadata as Open Bitstream Units (OBU) Filename /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libobu.so Version 0.1.0 License Proprietary Source module gst-obu Binary package gst-obu Origin URL https://www.ridgerun.com/ GObject +----GInitiallyUnowned +----GstObject +----GstElement +----GstBaseTransform +----GstObuInject Pad Templates: SINK template: 'sink' Availability: Always Capabilities: video/x-av1 stream-format: obu-stream SRC template: 'src' Availability: Always Capabilities: video/x-av1 stream-format: obu-stream Element has no clocking capabilities. Element has no URI handling capabilities. Pads: SINK: 'sink' Pad Template: 'sink' SRC: 'src' Pad Template: 'src' Element Properties: metadata : A metadata string to be pushed. flags: readable, writable String. Default: null metadata-binary : A binary to be pushed as metadata. flags: readable, writable Boxed pointer of type "GByteArray" name : The name of the object flags: readable, writable String. Default: "obuinject0" parent : The parent of the object flags: readable, writable Object of type "GstObject" qos : Handle Quality-of-Service events flags: readable, writable Boolean. Default: false
Properties
- metadata: With this property it is possible to insert a string message. Note that it only add the message to the first buffer. Check the GStreamer pipelines section for use case examples.
- metadata-binary: With this property it is possible to insert a binary metadata to the video stream. Check the C Application Example section for an use case example.
ObuMetaTester: element
Obumetatester is a test element to add a GstMeta message to the video stream buffers followed by the obuinject which will insert the message to the AV1 buffer.
Below you will find an overview of the capabilities and properties of the obumetatester element.
The full output of the command gst-inspect-1.0 obumetatester
is the following:
Factory Details: Rank none (0) Long-name Helper element to insert a test GstObuMeta to buffers. Klass Generic Description Helper element to insert a test GstObuMeta to buffers. Author Kimberly Carvajal <kimberly.carvajal@ridgerun.com> Plugin Details: Name obu Description Gstreamer plugin to add metadata as Open Bitstream Units (OBU) Filename /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libobu.so Version 0.1.0 License Proprietary Source module gst-obu Binary package gst-obu Origin URL https://www.ridgerun.com/ GObject +----GInitiallyUnowned +----GstObject +----GstElement +----GstBaseTransform +----GstObuMetaTester Pad Templates: SINK template: 'sink' Availability: Always Capabilities: video/x-av1 stream-format: obu-stream SRC template: 'src' Availability: Always Capabilities: video/x-av1 stream-format: obu-stream Element has no clocking capabilities. Element has no URI handling capabilities. Pads: SINK: 'sink' Pad Template: 'sink' SRC: 'src' Pad Template: 'src' Element Properties: name : The name of the object flags: readable, writable String. Default: "obumetatester0" parent : The parent of the object flags: readable, writable Object of type "GstObject" qos : Handle Quality-of-Service events flags: readable, writable Boolean. Default: false
ObuExtract element
ObuExtract element allows to extract metadata inserted in an AV1 buffer. The element will extract the metadata form the AV1 buffer and add it as a GstObuMeta to the output buffer. The obuextract element also includes a signal property to emit a signal and handle the extracted metadata.
Below you will find an overview of the capabilities and properties of the obuextract element.
The full output of the command gst-inspect-1.0 obuextract
is the following:
Factory Details: Rank none (0) Long-name OBU extract metadata Klass Generic Description extracts metadata from Open Bitstream Units (OBU) Author <kimberly.carvajal@ridgerun.com> Plugin Details: Name obu Description Gstreamer plugin to add metadata as Open Bitstream Units (OBU) Filename /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libobu.so Version 0.1.0 License Proprietary Source module gst-obu Binary package gst-obu Origin URL https://www.ridgerun.com/ GObject +----GInitiallyUnowned +----GstObject +----GstElement +----GstBaseTransform +----GstObuExtract Pad Templates: SINK template: 'sink' Availability: Always Capabilities: video/x-av1 SRC template: 'src' Availability: Always Capabilities: video/x-av1 Element has no clocking capabilities. Element has no URI handling capabilities. Pads: SINK: 'sink' Pad Template: 'sink' SRC: 'src' Pad Template: 'src' Element Properties: name : The name of the object flags: readable, writable String. Default: "obuextract0" parent : The parent of the object flags: readable, writable Object of type "GstObject" qos : Handle Quality-of-Service events flags: readable, writable Boolean. Default: false signal-new-metadata : Send a signal on metadata flags: readable, writable Boolean. Default: false Element Signals: "new-metadata" : void user_function (GstElement * object, guint arg0, gpointer arg1, gpointer user_data);
Properties
- signal-new-metadata: Boolean property to enable or disable the new-metadata signal. Setting this property to TRUE will send a signal when the metadata is received.
Signals
- new-metadata: Signal send when metadata is received, with this signal is possible to handle the inserted metadata.