gst_base_sink_render_object (GstBaseSink * basesink, GstPad * pad,
GstMiniObject * obj)
{
- GstFlowReturn ret = GST_FLOW_OK;
+ GstFlowReturn ret;
GstBaseSinkClass *bclass;
- gboolean late = FALSE;
+ gboolean late;
+
GstBaseSinkPrivate *priv;
priv = basesink->priv;
+ late = FALSE;
+ ret = GST_FLOW_OK;
+
/* synchronize this object, non syncable objects return OK
* immediatly. */
ret = gst_base_sink_do_sync (basesink, pad, obj, &late);
GstFormat format;
guint64 amount;
guint seqnum;
+ GstStepInfo *pending;
bclass = GST_BASE_SINK_GET_CLASS (sink);
priv = sink->priv;
gst_event_parse_step (event, &format, &amount, &rate, &flush, &intermediate);
seqnum = gst_event_get_seqnum (event);
+ pending = &priv->pending_step;
+
if (flush) {
/* we need to call ::unlock before locking PREROLL_LOCK
* since we lock it before going into ::render */
GST_PAD_PREROLL_LOCK (sink->sinkpad);
/* update the segment */
- priv->pending_step.seqnum = seqnum;
- priv->pending_step.format = format;
- priv->pending_step.amount = amount;
- priv->pending_step.position = 0;
- priv->pending_step.rate = rate;
- priv->pending_step.flush = flush;
- priv->pending_step.intermediate = intermediate;
- priv->pending_step.valid = TRUE;
+ pending->seqnum = seqnum;
+ pending->format = format;
+ pending->amount = amount;
+ pending->position = 0;
+ pending->rate = rate;
+ pending->flush = flush;
+ pending->intermediate = intermediate;
+ pending->valid = TRUE;
/* now that we have the PREROLL lock, clear our unlock request */
if (bclass->unlock_stop)