[gst-cvs] gst-plugins-base: playbin2: forward duration query duration during group switch if no cached duration
Mark Nauwelaerts
mnauw at kemper.freedesktop.org
Fri Apr 30 04:39:49 PDT 2010
Module: gst-plugins-base
Branch: master
Commit: db4ccd86101e408bec622d7c7558b56876e9bb49
URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=db4ccd86101e408bec622d7c7558b56876e9bb49
Author: Mark Nauwelaerts <mark.nauwelaerts at collabora.co.uk>
Date: Fri Apr 30 13:36:59 2010 +0200
playbin2: forward duration query duration during group switch if no cached duration
... such as during first group setup.
Fixes #616396.
---
gst/playback/gstplaybin2.c | 14 +++++++++-----
1 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/gst/playback/gstplaybin2.c b/gst/playback/gstplaybin2.c
index 3b34fcb..44629b9 100644
--- a/gst/playback/gstplaybin2.c
+++ b/gst/playback/gstplaybin2.c
@@ -2072,11 +2072,15 @@ gst_play_bin_query (GstElement * element, GstQuery * query)
break;
}
}
- GST_DEBUG_OBJECT (playbin,
- "Taking cached duration because of pending group switch: %d", ret);
- GST_SOURCE_GROUP_UNLOCK (group);
- GST_PLAY_BIN_UNLOCK (playbin);
- return ret;
+ /* if nothing cached yet, we might as well request duration,
+ * such as during initial startup */
+ if (ret) {
+ GST_DEBUG_OBJECT (playbin,
+ "Taking cached duration because of pending group switch: %d", ret);
+ GST_SOURCE_GROUP_UNLOCK (group);
+ GST_PLAY_BIN_UNLOCK (playbin);
+ return ret;
+ }
}
GST_SOURCE_GROUP_UNLOCK (group);
}
More information about the Gstreamer-commits
mailing list