Modules | |
| Element: type | |
| Element: errors | |
| Element frame: flags | |
Compounds | |
| struct | _XLV_PipelineElement |
| Pipeline element class description. More... | |
| struct | _XLV_PipelineFrame |
| Description of a frame for a pipeline. More... | |
Typedefs | |
| typedef _XLV_Pipeline | XLV_Pipeline |
| typedef _XLV_PipelineElement | XLV_PipelineElement |
| typedef _XLV_PipelineFrame | XLV_PipelineFrame |
| typedef gboolean(* | XLV_PipelineElement_InitFunc )(XLV_PipelineElement *element, gpointer udata) |
| typedef gboolean(* | XLV_PipelineElement_StopFunc )(XLV_PipelineElement *element) |
| typedef gboolean(* | XLV_PipelineElement_SetupFunc )(XLV_PipelineElement *element, XLV_PipelineElement *caller, gpointer setup_data) |
| typedef gboolean(* | XLV_PipelineElement_ChainTo )(XLV_PipelineElement *element, guint16 id) |
| typedef gboolean(* | XLV_PipelineElement_GetFrame )(XLV_PipelineElement *element, XLV_PipelineFrame *frame) |
| typedef gboolean(* | XLV_PipelineElement_GetFastFrame )(XLV_PipelineElement *element, XLV_PipelineFrame *frame) |
| typedef gboolean(* | XLV_PipelineElement_PutFrame )(XLV_PipelineElement *element, XLV_PipelineFrame *frame) |
| typedef gboolean(* | XLV_PipelineElement_PutFastFrame )(XLV_PipelineElement *element, XLV_PipelineFrame *frame) |
| typedef gboolean(* | XLV_PipelineElement_SkipFrame )(XLV_PipelineElement *element) |
| typedef gboolean(* | XLV_PipelineElement_Execute )(XLV_PipelineElement *element) |
Functions | |
| XLV_Pipeline * | xlv_pipeline_new () |
| Builds a new pipeline. More... | |
| void | xlv_pipeline_release (XLV_Pipeline *pipeline) |
| Pipeline destructor. More... | |
| glong | xlv_pipeline_add_element (XLV_Pipeline *pipeline, XLV_PipelineElement *e, XLV_Stream *s, gpointer udata) |
| Adds a new element to the pipeline. More... | |
| XLV_Stream * | xlv_pipeline_get_implementation (XLV_Pipeline *pipeline, guint16 id) |
| Returns the implementation of the specified element. | |
| GList * | xlv_pipeline_get_parents (XLV_PipelineElement *element) |
| Returns a GList of the input chain of the specified element. More... | |
| GList * | xlv_pipeline_get_outputs (XLV_PipelineElement *element) |
| Returns a GList of the output chain of the specified element. More... | |
| XLV_PipelineElement * | xlv_pipeline_get_type_next (XLV_Pipeline *pipeline, guint8 type, XLV_PipelineElement *element) |
| Iterates specifically throughout the pipeline. More... | |
| XLV_PipelineElement * | xlv_pipeline_get_element (XLV_Pipeline *pipeline, guint16 id) |
| Returns the element descriptor associated to the specified id. More... | |
| gboolean | xlv_pipeline_chain (XLV_Pipeline *pipeline, guint16 id_orig, guint16 id_dest) |
| Chain two elements. More... | |
| gboolean | xlv_pipeline_unchain (XLV_Pipeline *pipeline, guint16 id_orig, guint16 id_dest) |
| Unchain two elements. | |
| GList * | xlv_pipeline_get_leaves (XLV_Pipeline *pipeline) |
| Returns the leaves of the pipeline graph. | |
| XLV_Stream * | xlv_pipeline_to_stream (XLV_Pipeline *pipeline, guint16 id) |
| Adapts an element into a XLV Stream. | |
| gboolean | xlv_pipeline_propagate_setup (XLV_PipelineElement *pipeline, gpointer udata) |
| Propagate a setup instruction. | |
| gboolean | xlv_pipeline_setup (XLV_Pipeline *pipeline) |
| gboolean | xlv_pipeline_execute (XLV_Pipeline *pipeline, gboolean all) |
| gboolean | xlv_pipeline_spawn (XLV_Pipeline *pipeline) |
| glong | xlv_pipeline_add_source (XLV_Pipeline *pipeline, XLV_Stream *s) |
| glong | xlv_pipeline_add_writer (XLV_Pipeline *pipeline, XLV_Stream *s) |
| glong | xlv_pipeline_add_parser (XLV_Pipeline *pipeline, XLV_Session *session) |
| glong | xlv_pipeline_add_codec (XLV_Pipeline *pipeline, XLV_Stream *s) |
| glong | xlv_pipeline_add_translator (XLV_Pipeline *pipeline, XLV_Stream *s) |
| glong | xlv_pipeline_add_video_output (XLV_Pipeline *pipeline, XLV_Stream *s) |
| glong | xlv_pipeline_add_audio_output (XLV_Pipeline *pipeline, XLV_Stream *s) |
| glong | xlv_pipeline_add_video_translator (XLV_Pipeline *pipeline, XLV_Session *session, guint32 coding_req, glong id) |
| gboolean | xlv_pipeline_default_build (XLV_Pipeline *pipeline, XLV_Session *session, XLV_Stream *source) |
| XLV_Pipeline * | xlv_pipeline_load_file (XLV_Session *session, const gchar *filename) |
| gboolean | xlv_pipeline_get_fast_frame (XLV_PipelineElement *element, XLV_PipelineFrame *frame) |
| gboolean | xlv_pipeline_get_frame (XLV_PipelineElement *element, XLV_PipelineFrame *frame) |
| gboolean | xlv_pipeline_put_fast_frame (XLV_PipelineElement *element, XLV_PipelineFrame *frame) |
| gboolean | xlv_pipeline_elt_execute (XLV_PipelineElement *element) |
XLV Pipeline is a way to connect various multimedia components in a single oriented graph. This graph can then be exploited. Elements generally follow the "master/slave" concept: there is a source of data and a receiver of these data. Usually, in a pipeline, there is canonic source of data followed by a single data processor and (optionally) multiple outputs.
XLV Pipeline comes with a set of already implemented elements such as:
#include <xlv/xlv_plugin_mgr.h> #include <xlv/xlv_pipeline.h> ... { XLV_Pipeline *pipeline; XLV_Stream *s; /* Initialize s, plugin must support xlv_read */ pipeline = xlv_pipeline_new(); xlv_pipeline_add_source(pipeline, s); ... xlv_pipeline_release(pipeline); }
An build a pipeline, you need elements of tube or some data routers.
|
||||||||||||||||||||
|
Adds a new element to the pipeline. This function adds the element `e' (with an implementation `s') to the pipeline. The element is not linked to anyone by default and considered as a leaf.
|
|
||||||||||||||||
|
Chain two elements.
|
|
||||||||||||||||
|
Auto setup a chain |
|
||||||||||||
|
Returns the element descriptor associated to the specified id. Warning: This is an unoptimized algorithm. It parses all the pipeline to find the element associated to the id.
|
|
|
Returns a GList of the output chain of the specified element.
|
|
|
Returns a GList of the input chain of the specified element.
|
|
||||||||||||||||
|
Iterates specifically throughout the pipeline.
|
|
|
Builds a new pipeline. This is the constructor of the pipeline object. The build pipeline is completely empty.
|
|
|
Pipeline destructor. The pipeline destructor will destroy all elements contained in the pipeline. The order of the destruction is strict: it begins by the leaves and ends with roots. This prevents from having some invalid pointers during the destruction of elements. |
1.2.14 written by Dimitri van Heesch,
© 1997-2002