| GStreamer 0.9 Core Reference Manual |
|---|
GstBaseSrcGstBaseSrc — Base class for getrange based source elements |
#include <gst/base/gstbasesrc.h>
GstBaseSrc;
enum GstBaseSrcFlags;
gboolean gst_base_src_is_live (GstBaseSrc *src);
void gst_base_src_set_live (GstBaseSrc *src,
gboolean live);
#define GST_BASE_SRC_PAD (obj)
GObject +----GstObject +----GstElement +----GstBaseSrc +----GstFakeSrc +----GstPushSrc +----GstFileSrc
This class is mostly useful for elements that do byte based access to a random access resource, like files. If random access is not possible, the live-mode should be set to TRUE.
one source pad
handles state changes
does flushing
preroll with optional preview
pull/push mode
EOS handling
typedef struct {
/* available to subclass implementations */
/* MT-protected (with LIVE_LOCK) */
GMutex *live_lock;
GCond *live_cond;
gboolean is_live;
gboolean live_running;
/* MT-protected (with LOCK) */
gint blocksize; /* size of buffers when operating push based */
gboolean can_activate_push; /* some scheduling properties */
GstActivateMode pad_mode;
gboolean seekable;
gboolean random_access;
GstClockID clock_id; /* for syncing */
GstClockTime end_time;
/* MT-protected (with STREAM_LOCK) */
gint64 segment_start; /* start and end positions for seeking */
gint64 segment_end;
gboolean segment_loop;
gboolean need_newsegment;
guint64 offset; /* current offset in the resource */
guint64 size; /* total size of the resource */
gint num_buffers;
gint num_buffers_left;
} GstBaseSrc;
typedef enum {
GST_BASE_SRC_STARTED = (GST_ELEMENT_FLAG_LAST << 0),
/* padding */
GST_BASE_SRC_FLAG_LAST = (GST_ELEMENT_FLAG_LAST << 2)
} GstBaseSrcFlags;
The GstElement flags that a basesrc element may have.
GST_BASE_SRC_STARTED |
has source been started |
GST_BASE_SRC_FLAG_LAST |
offset to define more flags |
gboolean gst_base_src_is_live (GstBaseSrc *src);
Check if an element is in live mode.
src : |
base source instance |
| Returns : | TRUE if element is in live mode.
|
void gst_base_src_set_live (GstBaseSrc *src, gboolean live);
If the element listens to a live source, the livemode should
be set to TRUE. This declares that this source can't seek.
src : |
base source instance |
live : |
new live-mode |
#define GST_BASE_SRC_PAD(obj) (GST_BASE_SRC (obj)->srcpad)
Gives the pointer to the GstPad object of the element.
obj : |
base source instance |
| << GStreamer Base and Utillity Classes | GstBaseSink >> |