parse->priv->first_frame_offset = -1;
parse->priv->estimated_duration = -1;
parse->priv->estimated_drift = 0;
- parse->priv->next_pts = 0;
+ parse->priv->next_pts = GST_CLOCK_TIME_NONE;
parse->priv->next_dts = 0;
parse->priv->syncable = TRUE;
parse->priv->passthrough = FALSE;
parse->priv->offset = offset;
parse->priv->sync_offset = offset;
parse->priv->next_dts = next_dts;
- if (parse->priv->pts_interpolate)
- parse->priv->next_pts = next_dts;
parse->priv->last_pts = GST_CLOCK_TIME_NONE;
parse->priv->last_dts = GST_CLOCK_TIME_NONE;
parse->priv->discont = TRUE;
}
}
+ /* interpolating and no valid pts yet,
+ * start with dts and carry on from there */
+ if (parse->priv->pts_interpolate &&
+ !GST_CLOCK_TIME_IS_VALID (parse->priv->next_pts))
+ parse->priv->next_pts = parse->priv->next_dts;
+
/* again use default handler to add missing metadata;
* we may have new information on frame properties */
gst_base_parse_parse_frame (parse, frame);
parse->priv->seen_keyframe = FALSE;
parse->priv->discont = TRUE;
parse->priv->next_dts = start_ts;
- if (parse->priv->pts_interpolate)
- parse->priv->next_pts = start_ts;
parse->priv->last_dts = GST_CLOCK_TIME_NONE;
parse->priv->last_pts = GST_CLOCK_TIME_NONE;
parse->priv->sync_offset = seekpos;