![]() |
![]() |
![]() |
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 >> |