Merge branch 'master' into 0.11

Conflicts:
	libs/gst/base/gstbasesrc.c
This commit is contained in:
Wim Taymans 2011-07-07 11:13:19 +02:00
commit b171259612
3 changed files with 9 additions and 4 deletions

2
common

@ -1 +1 @@
Subproject commit 69b981f10caa234ad0ff639179d0fda8505bd94b Subproject commit 605cd9a65ed61505f24b840d3fe8e252be72b151

View file

@ -225,7 +225,7 @@ gst_task_finalize (GObject * object)
static void static void
gst_task_configure_name (GstTask * task) gst_task_configure_name (GstTask * task)
{ {
#ifdef HAVE_SYS_PRCTL_H #if defined(HAVE_SYS_PRCTL_H) && defined(PR_SET_NAME)
const gchar *name; const gchar *name;
gchar thread_name[17] = { 0, }; gchar thread_name[17] = { 0, };

View file

@ -2139,11 +2139,10 @@ gst_base_src_update_length (GstBaseSrc * src, guint64 offset, guint * length)
} }
} }
/* keep track of current position and update duration. /* keep track of current duration.
* segment is in bytes, we checked that above. */ * segment is in bytes, we checked that above. */
GST_OBJECT_LOCK (src); GST_OBJECT_LOCK (src);
src->segment.duration = size; src->segment.duration = size;
src->segment.position = offset;
GST_OBJECT_UNLOCK (src); GST_OBJECT_UNLOCK (src);
return TRUE; return TRUE;
@ -2184,6 +2183,12 @@ again:
if (G_UNLIKELY (!gst_base_src_update_length (src, offset, &length))) if (G_UNLIKELY (!gst_base_src_update_length (src, offset, &length)))
goto unexpected_length; goto unexpected_length;
/* track position */
GST_OBJECT_LOCK (src);
if (src->segment.format == GST_FORMAT_BYTES)
gst_segment_set_last_stop (&src->segment, GST_FORMAT_BYTES, offset);
GST_OBJECT_UNLOCK (src);
/* normally we don't count buffers */ /* normally we don't count buffers */
if (G_UNLIKELY (src->num_buffers_left >= 0)) { if (G_UNLIKELY (src->num_buffers_left >= 0)) {
if (src->num_buffers_left == 0) if (src->num_buffers_left == 0)