diff options
author | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2012-01-20 16:48:49 +0100 |
---|---|---|
committer | Tim-Philipp Müller <tim.muller@collabora.co.uk> | 2012-01-23 18:26:29 +0000 |
commit | 1572c1fb432de86f01608225e29f73c070249f87 (patch) | |
tree | 5a2f164d006484ef44f9339cee00740efe99512d | |
parent | a9f197b39a14e72174957cb41a00ae8e949e4a0d (diff) |
flacdec: improve upstream peer duration querying
... to avoid accepting unhandled duration query result.
-rw-r--r-- | ext/flac/gstflacdec.c | 11 |
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; |