ringbuffer: check for ringbuffer state first
Check for the state of the ringbuffer before doing the checks of the other buffer properties, when we're not started, we don't care about those values.
This commit is contained in:
parent
3a00a97fd2
commit
2ced0a3d5d
@ -1960,6 +1960,12 @@ gst_ring_buffer_prepare_read (GstRingBuffer * buf, gint * segment,
|
||||
|
||||
g_return_val_if_fail (GST_IS_RING_BUFFER (buf), FALSE);
|
||||
|
||||
if (buf->callback == NULL) {
|
||||
/* push mode, fail when nothing is started */
|
||||
if (g_atomic_int_get (&buf->state) != GST_RING_BUFFER_STATE_STARTED)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
g_return_val_if_fail (buf->data != NULL, FALSE);
|
||||
g_return_val_if_fail (segment != NULL, FALSE);
|
||||
g_return_val_if_fail (readptr != NULL, FALSE);
|
||||
@ -1967,12 +1973,6 @@ gst_ring_buffer_prepare_read (GstRingBuffer * buf, gint * segment,
|
||||
|
||||
data = GST_BUFFER_DATA (buf->data);
|
||||
|
||||
if (buf->callback == NULL) {
|
||||
/* push mode, fail when nothing is started */
|
||||
if (g_atomic_int_get (&buf->state) != GST_RING_BUFFER_STATE_STARTED)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* get the position of the pointer */
|
||||
segdone = g_atomic_int_get (&buf->segdone);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user