GstBaseSrc

GstBaseSrc

Functions

Properties

guint blocksize Read / Write
gboolean do-timestamp Read / Write
gint num-buffers Read / Write
gboolean typefind Read / Write

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── GstBaseSrc
                    ╰── GstPushSrc

Includes

#include <gst/base/gstbasesrc.h>

Description

Functions

gst_base_src_wait_playing ()

GstFlowReturn
gst_base_src_wait_playing (GstBaseSrc *src);

gst_base_src_start_wait ()

GstFlowReturn
gst_base_src_start_wait (GstBaseSrc *basesrc);

gst_base_src_start_complete ()

void
gst_base_src_start_complete (GstBaseSrc *basesrc,
                             GstFlowReturn ret);

gst_base_src_is_live ()

gboolean
gst_base_src_is_live (GstBaseSrc *src);

gst_base_src_set_live ()

void
gst_base_src_set_live (GstBaseSrc *src,
                       gboolean live);

gst_base_src_set_format ()

void
gst_base_src_set_format (GstBaseSrc *src,
                         GstFormat format);

gst_base_src_query_latency ()

gboolean
gst_base_src_query_latency (GstBaseSrc *src,
                            gboolean *live,
                            GstClockTime *min_latency,
                            GstClockTime *max_latency);

gst_base_src_get_blocksize ()

guint
gst_base_src_get_blocksize (GstBaseSrc *src);

gst_base_src_set_blocksize ()

void
gst_base_src_set_blocksize (GstBaseSrc *src,
                            guint blocksize);

gst_base_src_get_do_timestamp ()

gboolean
gst_base_src_get_do_timestamp (GstBaseSrc *src);

gst_base_src_set_do_timestamp ()

void
gst_base_src_set_do_timestamp (GstBaseSrc *src,
                               gboolean timestamp);

gst_base_src_set_dynamic_size ()

void
gst_base_src_set_dynamic_size (GstBaseSrc *src,
                               gboolean dynamic);

gst_base_src_set_automatic_eos ()

void
gst_base_src_set_automatic_eos (GstBaseSrc *src,
                                gboolean automatic_eos);

gst_base_src_new_seamless_segment ()

gboolean
gst_base_src_new_seamless_segment (GstBaseSrc *src,
                                   gint64 start,
                                   gint64 stop,
                                   gint64 time);

gst_base_src_set_caps ()

gboolean
gst_base_src_set_caps (GstBaseSrc *src,
                       GstCaps *caps);

gst_base_src_get_allocator ()

void
gst_base_src_get_allocator (GstBaseSrc *src,
                            GstAllocator **allocator,
                            GstAllocationParams *params);

gst_base_src_get_buffer_pool ()

GstBufferPool *
gst_base_src_get_buffer_pool (GstBaseSrc *src);

gst_base_src_is_async ()

gboolean
gst_base_src_is_async (GstBaseSrc *src);

gst_base_src_set_async ()

void
gst_base_src_set_async (GstBaseSrc *src,
                        gboolean async);

GST_BASE_SRC_PAD()

#define GST_BASE_SRC_PAD(obj)                 (GST_BASE_SRC_CAST (obj)->srcpad)

GST_BASE_SRC_IS_STARTED()

#define GST_BASE_SRC_IS_STARTED(obj)  GST_OBJECT_FLAG_IS_SET ((obj), GST_BASE_SRC_FLAG_STARTED)

GST_BASE_SRC_IS_STARTING()

#define GST_BASE_SRC_IS_STARTING(obj) GST_OBJECT_FLAG_IS_SET ((obj), GST_BASE_SRC_FLAG_STARTING)

Types and Values

struct GstBaseSrc

struct GstBaseSrc;

struct GstBaseSrcClass

struct GstBaseSrcClass {
  GstElementClass parent_class;

  /* virtual methods for subclasses */

  /* get caps from subclass */
  GstCaps*      (*get_caps)     (GstBaseSrc *src, GstCaps *filter);
  /* decide on caps */
  gboolean      (*negotiate)    (GstBaseSrc *src);
  /* called if, in negotiation, caps need fixating */
  GstCaps *     (*fixate)       (GstBaseSrc *src, GstCaps *caps);
  /* notify the subclass of new caps */
  gboolean      (*set_caps)     (GstBaseSrc *src, GstCaps *caps);

  /* setup allocation query */
  gboolean      (*decide_allocation)   (GstBaseSrc *src, GstQuery *query);

  /* start and stop processing, ideal for opening/closing the resource */
  gboolean      (*start)        (GstBaseSrc *src);
  gboolean      (*stop)         (GstBaseSrc *src);

  /* given a buffer, return start and stop time when it should be pushed
   * out. The base class will sync on the clock using these times. */
  void          (*get_times)    (GstBaseSrc *src, GstBuffer *buffer,
                                 GstClockTime *start, GstClockTime *end);

  /* get the total size of the resource in the format set by
   * gst_base_src_set_format() */
  gboolean      (*get_size)     (GstBaseSrc *src, guint64 *size);

  /* check if the resource is seekable */
  gboolean      (*is_seekable)  (GstBaseSrc *src);

  /* Prepare the segment on which to perform do_seek(), converting to the
   * current basesrc format. */
  gboolean      (*prepare_seek_segment) (GstBaseSrc *src, GstEvent *seek,
                                         GstSegment *segment);
  /* notify subclasses of a seek */
  gboolean      (*do_seek)      (GstBaseSrc *src, GstSegment *segment);

  /* unlock any pending access to the resource. subclasses should unlock
   * any function ASAP. */
  gboolean      (*unlock)       (GstBaseSrc *src);
  /* Clear any pending unlock request, as we succeeded in unlocking */
  gboolean      (*unlock_stop)  (GstBaseSrc *src);

  /* notify subclasses of a query */
  gboolean      (*query)        (GstBaseSrc *src, GstQuery *query);

  /* notify subclasses of an event */
  gboolean      (*event)        (GstBaseSrc *src, GstEvent *event);

  /* ask the subclass to create a buffer with offset and size, the default
   * implementation will call alloc and fill. */
  GstFlowReturn (*create)       (GstBaseSrc *src, guint64 offset, guint size,
                                 GstBuffer **buf);
  /* ask the subclass to allocate an output buffer. The default implementation
   * will use the negotiated allocator. */
  GstFlowReturn (*alloc)        (GstBaseSrc *src, guint64 offset, guint size,
                                 GstBuffer **buf);
  /* ask the subclass to fill the buffer with data from offset and size */
  GstFlowReturn (*fill)         (GstBaseSrc *src, guint64 offset, guint size,
                                 GstBuffer *buf);
};

enum GstBaseSrcFlags

Members

GST_BASE_SRC_FLAG_STARTING

   

GST_BASE_SRC_FLAG_STARTED

   

GST_BASE_SRC_FLAG_LAST

   

Property Details

The “blocksize” property

  “blocksize”                guint

Size in bytes to read per buffer (-1 = default).

Flags: Read / Write

Default value: 4096


The “do-timestamp” property

  “do-timestamp”             gboolean

Apply current stream time to buffers.

Flags: Read / Write

Default value: FALSE


The “num-buffers” property

  “num-buffers”              gint

Number of buffers to output before sending EOS (-1 = unlimited).

Flags: Read / Write

Allowed values: >= -1

Default value: -1


The “typefind” property

  “typefind”                 gboolean

Run typefind before negotiating.

Flags: Read / Write

Default value: FALSE