GstMultiProcTrans

GstMultiProcTrans — Base class for multiple process transformers

Synopsis

#include <gstmultiproctrans.h>

struct              GstMultiProcTrans;
struct              GstMultiProcTransClass;
#define             GST_MULTI_PROC_TRANS_SINK_NAME
#define             GST_MULTI_PROC_TRANS_SRC_NAME
#define             GST_MULTI_PROC_TRANS_SINK_PAD       (obj)
#define             GST_MULTI_PROC_TRANS_SRC_PAD        (obj)

Object Hierarchy

  GObject
   +----GInitiallyUnowned
         +----GstObject
               +----GstElement
                     +----GstMultiProcTrans
                           +----GstMultiProcPipe

Description

This is a base class for elements that process and/or transform data by having another program/process do the actual processing for each buffer. That is, for each incoming individual piece of data, a new process is spawned and presented the data on its stdin, and the element will send out what it receives from the process' stdout as a single buffer.

It provides for most of the details such as setting up sink and src pads, state changes, etc. An inheriting element need only concern about providing for the proper pad templates and (optionally but recommended) implementing a custom set_caps, which is called during (each) caps negotiation. This typically gives the inheritor a chance to provide the right arguments to the program for the circumstances and specifics of data at hand. Also note that these arguments for the program may vary across each invocation.

Details

struct GstMultiProcTrans

struct GstMultiProcTrans;

The opaque GstMultiProcTrans data structure.


struct GstMultiProcTransClass

struct GstMultiProcTransClass {
  GstElementClass parent_class;

  /* virtual methods for subclasses */

  gboolean      (*set_caps)     (GstMultiProcTrans *trans, GstCaps *incaps,
                                 GstCaps **outcaps);
};

GstElementClass parent_class;

set_caps ()

Optional. Notify the subclass of new incaps, we should try to set outcaps on source pad upon return. Note that incaps can be NULL, and *outcaps can also be left NULL in which case no caps are set.

GST_MULTI_PROC_TRANS_SINK_NAME

#define GST_MULTI_PROC_TRANS_SINK_NAME    "sink"

the name of the templates for the sink pad


GST_MULTI_PROC_TRANS_SRC_NAME

#define GST_MULTI_PROC_TRANS_SRC_NAME     "src"

the name of the templates for the source pad


GST_MULTI_PROC_TRANS_SINK_PAD()

#define GST_MULTI_PROC_TRANS_SINK_PAD(obj)        (GST_MULTI_PROC_TRANS_CAST (obj)->sinkpad)

Gives the pointer to the sink GstPad object of the element.

obj :

process transform instance

GST_MULTI_PROC_TRANS_SRC_PAD()

#define GST_MULTI_PROC_TRANS_SRC_PAD(obj)         (GST_MULTI_PROC_TRANS_CAST (obj)->srcpad)

Gives the pointer to the source GstPad object of the element.

obj :

process transform instance