From 776b0ae8cb588308e4a74c6a8b0cb80e151be23d Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Fri, 10 Apr 2009 21:31:06 +0200 Subject: [PATCH] pulsesink: handle NULL timing info Don't crash when the timing info is not yet available. --- ext/pulse/pulsesink.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/ext/pulse/pulsesink.c b/ext/pulse/pulsesink.c index 92b618840d..8f8805f6e2 100644 --- a/ext/pulse/pulsesink.c +++ b/ext/pulse/pulsesink.c @@ -1092,17 +1092,21 @@ gst_pulseringbuffer_commit (GstRingBuffer * buf, guint64 * sample, /* check if we need to uncork after writing the samples */ if (pbuf->corked) { - const pa_timing_info *info = pa_stream_get_timing_info (pbuf->stream); + const pa_timing_info *info; - GST_LOG_OBJECT (psink, - "read_index at %" G_GUINT64_FORMAT ", offset %" G_GINT64_FORMAT, - info->read_index, offset); + if ((info = pa_stream_get_timing_info (pbuf->stream))) { + GST_LOG_OBJECT (psink, + "read_index at %" G_GUINT64_FORMAT ", offset %" G_GINT64_FORMAT, + info->read_index, offset); - /* we uncork when the read_index is too far behind the offset we need - * to write to. */ - if (info->read_index + bufsize <= offset) { - if (!gst_pulsering_set_corked (pbuf, FALSE, FALSE)) - goto uncork_failed; + /* we uncork when the read_index is too far behind the offset we need + * to write to. */ + if (info->read_index + bufsize <= offset) { + if (!gst_pulsering_set_corked (pbuf, FALSE, FALSE)) + goto uncork_failed; + } + } else { + GST_LOG_OBJECT (psink, "no timing info available yet"); } } }