| Top |
| gboolean | async | Read / Write |
| guint | blocksize | Read / Write |
| gboolean | enable-last-sample | Read / Write |
| GstSample * | last-sample | Read |
| guint64 | max-bitrate | Read / Write |
| gint64 | max-lateness | Read / Write |
| gboolean | qos | Read / Write |
| guint64 | render-delay | Read / Write |
| gboolean | sync | Read / Write |
| guint64 | throttle-time | Read / Write |
| gint64 | ts-offset | Read / Write |
gboolean gst_base_sink_query_latency (GstBaseSink *sink,gboolean *live,gboolean *upstream_live,GstClockTime *min_latency,GstClockTime *max_latency);
GstFlowReturn gst_base_sink_do_preroll (GstBaseSink *sink,GstMiniObject *obj);
GstFlowReturn gst_base_sink_wait (GstBaseSink *sink,GstClockTime time,GstClockTimeDiff *jitter);
GstClockReturn gst_base_sink_wait_clock (GstBaseSink *sink,GstClockTime time,GstClockTimeDiff *jitter);
void gst_base_sink_set_max_lateness (GstBaseSink *sink,gint64 max_lateness);
void gst_base_sink_set_qos_enabled (GstBaseSink *sink,gboolean enabled);
void gst_base_sink_set_async_enabled (GstBaseSink *sink,gboolean enabled);
void gst_base_sink_set_ts_offset (GstBaseSink *sink,GstClockTimeDiff offset);
void gst_base_sink_set_render_delay (GstBaseSink *sink,GstClockTime delay);
void gst_base_sink_set_blocksize (GstBaseSink *sink,guint blocksize);
void gst_base_sink_set_throttle_time (GstBaseSink *sink,guint64 throttle);
void gst_base_sink_set_max_bitrate (GstBaseSink *sink,guint64 max_bitrate);
void gst_base_sink_set_last_sample_enabled (GstBaseSink *sink,gboolean enabled);
gboolean
gst_base_sink_is_last_sample_enabled (GstBaseSink *sink);
#define GST_BASE_SINK_GET_PREROLL_COND(obj) (&GST_BASE_SINK_CAST(obj)->preroll_cond)
#define GST_BASE_SINK_GET_PREROLL_LOCK(obj) (&GST_BASE_SINK_CAST(obj)->preroll_lock)
#define GST_BASE_SINK_PREROLL_BROADCAST(obj) g_cond_broadcast (GST_BASE_SINK_GET_PREROLL_COND (obj));
#define GST_BASE_SINK_PREROLL_LOCK(obj) (g_mutex_lock(GST_BASE_SINK_GET_PREROLL_LOCK(obj)))
#define GST_BASE_SINK_PREROLL_SIGNAL(obj) g_cond_signal (GST_BASE_SINK_GET_PREROLL_COND (obj));
#define GST_BASE_SINK_PREROLL_TRYLOCK(obj) (g_mutex_trylock(GST_BASE_SINK_GET_PREROLL_LOCK(obj)))
#define GST_BASE_SINK_PREROLL_UNLOCK(obj) (g_mutex_unlock(GST_BASE_SINK_GET_PREROLL_LOCK(obj)))
struct GstBaseSinkClass {
GstElementClass parent_class;
/* get caps from subclass */
GstCaps* (*get_caps) (GstBaseSink *sink, GstCaps *filter);
/* notify subclass of new caps */
gboolean (*set_caps) (GstBaseSink *sink, GstCaps *caps);
/* fixate sink caps during pull-mode negotiation */
GstCaps * (*fixate) (GstBaseSink *sink, GstCaps *caps);
/* start or stop a pulling thread */
gboolean (*activate_pull)(GstBaseSink *sink, gboolean active);
/* get the start and end times for syncing on this buffer */
void (*get_times) (GstBaseSink *sink, GstBuffer *buffer,
GstClockTime *start, GstClockTime *end);
/* propose allocation parameters for upstream */
gboolean (*propose_allocation) (GstBaseSink *sink, GstQuery *query);
/* start and stop processing, ideal for opening/closing the resource */
gboolean (*start) (GstBaseSink *sink);
gboolean (*stop) (GstBaseSink *sink);
/* unlock any pending access to the resource. subclasses should unlock
* any function ASAP. */
gboolean (*unlock) (GstBaseSink *sink);
/* Clear a previously indicated unlock request not that unlocking is
* complete. Sub-classes should clear any command queue or indicator they
* set during unlock */
gboolean (*unlock_stop) (GstBaseSink *sink);
/* notify subclass of query */
gboolean (*query) (GstBaseSink *sink, GstQuery *query);
/* notify subclass of event */
gboolean (*event) (GstBaseSink *sink, GstEvent *event);
/* wait for eos or gap, subclasses should chain up to parent first */
GstFlowReturn (*wait_event) (GstBaseSink *sink, GstEvent *event);
/* notify subclass of buffer or list before doing sync */
GstFlowReturn (*prepare) (GstBaseSink *sink, GstBuffer *buffer);
GstFlowReturn (*prepare_list) (GstBaseSink *sink, GstBufferList *buffer_list);
/* notify subclass of preroll buffer or real buffer */
GstFlowReturn (*preroll) (GstBaseSink *sink, GstBuffer *buffer);
GstFlowReturn (*render) (GstBaseSink *sink, GstBuffer *buffer);
/* Render a BufferList */
GstFlowReturn (*render_list) (GstBaseSink *sink, GstBufferList *buffer_list);
};
“async” property“async” gboolean
Go asynchronously to PAUSED.
Flags: Read / Write
Default value: TRUE
“blocksize” property“blocksize” guint
Size in bytes to pull per buffer (0 = default).
Flags: Read / Write
Default value: 4096
“enable-last-sample” property“enable-last-sample” gboolean
Enable the last-sample property.
Flags: Read / Write
Default value: TRUE
“last-sample” property“last-sample” GstSample *
The last sample received in the sink.
Flags: Read
“max-bitrate” property“max-bitrate” guint64
The maximum bits per second to render (0 = disabled).
Flags: Read / Write
Default value: 0
“max-lateness” property“max-lateness” gint64
Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited).
Flags: Read / Write
Allowed values: >= -1
Default value: -1
“qos” property“qos” gboolean
Generate Quality-of-Service events upstream.
Flags: Read / Write
Default value: FALSE
“render-delay” property“render-delay” guint64
Additional render delay of the sink in nanoseconds.
Flags: Read / Write
Default value: 0
“throttle-time” property“throttle-time” guint64
The time to keep between rendered buffers (0 = disabled).
Flags: Read / Write
Default value: 0
“ts-offset” property“ts-offset” gint64
Timestamp offset in nanoseconds.
Flags: Read / Write
Default value: 0