Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* GStreamer
- * Copyright (C) 2011 Collabora Ltd
- * @author: Olivier Crete <olivier.crete@collabora.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
- #ifndef _GST_DYNAMIC_BIN_H_
- #define _GST_DYNAMIC_BIN_H_
- #ifndef GST_USE_UNSTABLE_API
- #warning "GstDynamicBin is unstable API and may change in future."
- #warning "You can define GST_USE_UNSTABLE_API to avoid this warning."
- #endif
- #include <gst/gst.h>
- G_BEGIN_DECLS
- #define GST_TYPE_DYNAMIC_BIN \
- (gst_dynamic_bin_get_type())
- #define GST_DYNAMIC_BIN(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DYNAMIC_BIN,GstDynamicBin))
- #define GST_DYNAMIC_BIN_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DYNAMIC_BIN,GstDynamicBinClass))
- #define GST_DYNAMIC_BIN_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS((obj),GST_TYPE_DYNAMIC_BIN,GstDynamicBinClass))
- #define GST_IS_DYNAMIC_BIN(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DYNAMIC_BIN))
- #define GST_IS_DYNAMIC_BIN_CLASS(obj) \
- (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DYNAMIC_BIN))
- /**
- * GST_DYNAMIC_BIN_SINK_NAME:
- *
- * The name of the templates for the sink pad.
- */
- #define GST_DYNAMIC_BIN_SINK_NAME "sink"
- /**
- * GST_DYNAMIC_BIN_SRC_NAME:
- *
- * The name of the templates for the source pad.
- */
- #define GST_DYNAMIC_BIN_SRC_NAME "src"
- /**
- * GST_DYNAMIC_BIN_SRC_PAD:
- * @obj: dynamic bin instance
- *
- * Gives the pointer to the source #GstPad object of the element.
- */
- #define GST_DYNAMIC_BIN_SRC_PAD(obj) (((GstDynamicBin *) (obj))->srcpad)
- /**
- * GST_DYNAMIC_BIN_SINK_PAD:
- * @obj: dynamic bin instance
- *
- * Gives the pointer to the sink #GstPad object of the element.
- */
- #define GST_DYNAMIC_BIN_SINK_PAD(obj) (((GstDynamicBin *) (obj))->sinkpad)
- typedef struct _GstDynamicBin GstDynamicBin;
- typedef struct _GstDynamicBinPrivate GstDynamicBinPrivate;
- typedef struct _GstDynamicBinClass GstDynamicBinClass;
- struct _GstDynamicBin
- {
- GstBin bin;
- /*< private >*/
- GstPad *sinkpad;
- GstPad *srcpad;
- GstDynamicBinPrivate *priv;
- /* FIXME before moving to base */
- void *padding[GST_PADDING_LARGE];
- };
- struct _GstDynamicBinClass
- {
- GstElementClass element_class;
- /* FIXME before moving to base */
- void *padding[GST_PADDING_LARGE];
- };
- GType gst_dynamic_bin_get_type (void);
- typedef enum _GstDynamicBinResult {
- GST_DYNAMIC_BIN_SUCCESS = 0,
- GST_DYNAMIC_BIN_INVALID_ELEMENT,
- GST_DYNAMIC_BIN_MISSING_SIBLING,
- GST_DYNAMIC_BIN_LINKING_FAILED,
- GST_DYNAMIC_BIN_ADDING_FAILED
- } GstDynamicBinResult;
- typedef void (*GstDynamicBinChangeCompleted) (GstDynamicBin *bin,
- GstElement *element, GstDynamicBinResult result,
- gpointer user_data);
- GstDynamicBin *gst_dynamic_bin_new (void);
- void gst_dynamic_bin_add_last_async (GstDynamicBin * bin, GstElement * element,
- GstDynamicBinChangeCompleted completed, gpointer user_data);
- void gst_dynamic_bin_add_first_async (GstDynamicBin * bin, GstElement * element,
- GstDynamicBinChangeCompleted completed, gpointer user_data);
- void gst_dynamic_bin_add_before_async (GstDynamicBin * bin,
- GstElement * element, GstElement * sibling,
- GstDynamicBinChangeCompleted completed, gpointer user_data);
- void gst_dynamic_bin_add_after_async (GstDynamicBin * bin, GstElement * element,
- GstElement * sibling,
- GstDynamicBinChangeCompleted completed, gpointer user_data);
- void gst_dynamic_bin_remove_async (GstDynamicBin * bin, GstElement * element,
- GstDynamicBinChangeCompleted completed, gpointer user_data);
- G_END_DECLS
- #endif
Add Comment
Please, Sign In to add comment