summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2011-01-11 15:22:51 +0100
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2011-01-28 12:16:58 +0100
commit559b3ead9301556d070a1d343184202e57aa33ce (patch)
tree270882e2bc1726ec1e861eced677c5d30543f846
parentf3da619dd2d42177afdf64580b0e182127fa1eee (diff)
baseparse: proper initial values for index tracking variables
-rw-r--r--gst/audioparsers/gstbaseparse.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/gst/audioparsers/gstbaseparse.c b/gst/audioparsers/gstbaseparse.c
index 887bb8bb9..00b964953 100644
--- a/gst/audioparsers/gstbaseparse.c
+++ b/gst/audioparsers/gstbaseparse.c
@@ -274,7 +274,7 @@ struct _GstBaseParsePrivate
GstClockTimeDiff idx_interval;
/* ts and offset of last entry added */
GstClockTime index_last_ts;
- guint64 index_last_offset;
+ gint64 index_last_offset;
gboolean index_last_valid;
/* timestamps currently produced are accurate, e.g. started from 0 onwards */
@@ -589,8 +589,8 @@ gst_base_parse_reset (GstBaseParse * parse)
parse->priv->avg_bitrate = 0;
parse->priv->posted_avg_bitrate = 0;
- parse->priv->index_last_ts = 0;
- parse->priv->index_last_offset = 0;
+ parse->priv->index_last_ts = GST_CLOCK_TIME_NONE;
+ parse->priv->index_last_offset = -1;
parse->priv->index_last_valid = TRUE;
parse->priv->upstream_seekable = FALSE;
parse->priv->upstream_size = 0;
@@ -1283,13 +1283,14 @@ gst_base_parse_add_index_entry (GstBaseParse * parse, guint64 offset,
/* FIXME need better helper data structure that handles these issues
* related to ongoing collecting of index entries */
- if (parse->priv->index_last_offset >= offset) {
+ if (parse->priv->index_last_offset >= (gint64) offset) {
GST_DEBUG_OBJECT (parse, "already have entries up to offset "
"0x%08" G_GINT64_MODIFIER "x", parse->priv->index_last_offset);
goto exit;
}
- if (GST_CLOCK_DIFF (parse->priv->index_last_ts, ts) <
+ if (GST_CLOCK_TIME_IS_VALID (parse->priv->index_last_ts) &&
+ GST_CLOCK_DIFF (parse->priv->index_last_ts, ts) <
parse->priv->idx_interval) {
GST_DEBUG_OBJECT (parse, "entry too close to last time %" GST_TIME_FORMAT,
GST_TIME_ARGS (parse->priv->index_last_ts));