summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2012-01-20 16:48:49 +0100
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2012-01-20 17:10:19 +0100
commit191181257250408dcb00948a5f6b271e6ea3dc12 (patch)
tree87b8b743afa60aa1fd46037b6f161a7bd1cb72a1
parente44d9302899c48e849cb0e488c950a4d9dd86384 (diff)
flacdec: improve upstream peer duration querying
... to avoid accepting unhandled duration query result.
-rw-r--r--ext/flac/gstflacdec.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/ext/flac/gstflacdec.c b/ext/flac/gstflacdec.c
index 65aa927f8..10f8916c6 100644
--- a/ext/flac/gstflacdec.c
+++ b/ext/flac/gstflacdec.c
@@ -711,17 +711,12 @@ gst_flac_dec_length (const FLAC__StreamDecoder * decoder,
{
GstFlacDec *flacdec;
GstFormat fmt = GST_FORMAT_BYTES;
- gint64 len;
- GstPad *peer;
+ gint64 len = -1;
flacdec = GST_FLAC_DEC (client_data);
- if (!(peer = gst_pad_get_peer (flacdec->sinkpad)))
- return FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR;
-
- gst_pad_query_duration (peer, &fmt, &len);
- gst_object_unref (peer);
- if (fmt != GST_FORMAT_BYTES || len == -1)
+ if (!gst_pad_query_peer_duration (flacdec->sinkpad, &fmt, &len) ||
+ (fmt != GST_FORMAT_BYTES || len == -1))
return FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR;
*length = len;