mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 00:36:51 +00:00
pulse: Print a warning on under/overflows
This commit is contained in:
parent
a6424471f1
commit
ca25de8f77
1 changed files with 31 additions and 0 deletions
|
@ -214,6 +214,8 @@ gst_pulsering_destroy_stream (GstPulseRingBuffer * pbuf)
|
||||||
/* Make sure we don't get any further callbacks */
|
/* Make sure we don't get any further callbacks */
|
||||||
pa_stream_set_state_callback (pbuf->stream, NULL, NULL);
|
pa_stream_set_state_callback (pbuf->stream, NULL, NULL);
|
||||||
pa_stream_set_write_callback (pbuf->stream, NULL, NULL);
|
pa_stream_set_write_callback (pbuf->stream, NULL, NULL);
|
||||||
|
pa_stream_set_underflow_callback (pbuf->stream, NULL, NULL);
|
||||||
|
pa_stream_set_overflow_callback (pbuf->stream, NULL, NULL);
|
||||||
|
|
||||||
pa_stream_unref (pbuf->stream);
|
pa_stream_unref (pbuf->stream);
|
||||||
pbuf->stream = NULL;
|
pbuf->stream = NULL;
|
||||||
|
@ -488,6 +490,31 @@ gst_pulsering_stream_request_cb (pa_stream * s, size_t length, void *userdata)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gst_pulsering_stream_underflow_cb (pa_stream * s, void *userdata)
|
||||||
|
{
|
||||||
|
GstPulseSink *psink;
|
||||||
|
GstPulseRingBuffer *pbuf;
|
||||||
|
|
||||||
|
pbuf = GST_PULSERING_BUFFER_CAST (userdata);
|
||||||
|
psink = GST_PULSESINK_CAST (GST_OBJECT_PARENT (pbuf));
|
||||||
|
|
||||||
|
GST_WARNING_OBJECT (psink, "Got underflow");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
gst_pulsering_stream_overflow_cb (pa_stream * s, void *userdata)
|
||||||
|
{
|
||||||
|
GstPulseSink *psink;
|
||||||
|
GstPulseRingBuffer *pbuf;
|
||||||
|
|
||||||
|
pbuf = GST_PULSERING_BUFFER_CAST (userdata);
|
||||||
|
psink = GST_PULSESINK_CAST (GST_OBJECT_PARENT (pbuf));
|
||||||
|
|
||||||
|
GST_WARNING_OBJECT (psink, "Got overflow");
|
||||||
|
}
|
||||||
|
|
||||||
/* This method should create a new stream of the given @spec. No playback should
|
/* This method should create a new stream of the given @spec. No playback should
|
||||||
* start yet so we start in the corked state. */
|
* start yet so we start in the corked state. */
|
||||||
static gboolean
|
static gboolean
|
||||||
|
@ -547,6 +574,10 @@ gst_pulseringbuffer_acquire (GstRingBuffer * buf, GstRingBufferSpec * spec)
|
||||||
gst_pulsering_stream_state_cb, pbuf);
|
gst_pulsering_stream_state_cb, pbuf);
|
||||||
pa_stream_set_write_callback (pbuf->stream,
|
pa_stream_set_write_callback (pbuf->stream,
|
||||||
gst_pulsering_stream_request_cb, pbuf);
|
gst_pulsering_stream_request_cb, pbuf);
|
||||||
|
pa_stream_set_underflow_callback (pbuf->stream,
|
||||||
|
gst_pulsering_stream_underflow_cb, pbuf);
|
||||||
|
pa_stream_set_overflow_callback (pbuf->stream,
|
||||||
|
gst_pulsering_stream_overflow_cb, pbuf);
|
||||||
|
|
||||||
/* buffering requirements. When setting prebuf to 0, the stream will not pause
|
/* buffering requirements. When setting prebuf to 0, the stream will not pause
|
||||||
* when we cause an underrun, which causes time to continue. */
|
* when we cause an underrun, which causes time to continue. */
|
||||||
|
|
Loading…
Reference in a new issue