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