From 776b0ae8cb588308e4a74c6a8b0cb80e151be23d Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Fri, 10 Apr 2009 21:31:06 +0200 Subject: pulsesink: handle NULL timing info Don't crash when the timing info is not yet available. --- ext/pulse/pulsesink.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) (limited to 'ext/pulse/pulsesink.c') diff --git a/ext/pulse/pulsesink.c b/ext/pulse/pulsesink.c index 92b61884..8f8805f6 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); - - 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; + const pa_timing_info *info; + + 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; + } + } else { + GST_LOG_OBJECT (psink, "no timing info available yet"); } } } -- cgit