gst/playback/gstplaybasebin.c: Clear the dynamic pads counter when starting a new uri. This makes reusing playbin wor...

Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (no_more_pads_full),
(setup_source):
Clear the dynamic pads counter when starting a new uri. This makes
reusing playbin work again.
Fixes #454264.
This commit is contained in:
Wim Taymans 2007-07-12 12:01:20 +00:00
parent b5c2a72a4a
commit c03d6a8757
2 changed files with 18 additions and 2 deletions

View file

@ -1,3 +1,11 @@
2007-07-12 Wim Taymans <wim.taymans@gmail.com>
* gst/playback/gstplaybasebin.c: (no_more_pads_full),
(setup_source):
Clear the dynamic pads counter when starting a new uri. This makes
reusing playbin work again.
Fixes #454264.
2007-07-12 Stefan Kost <ensonic@users.sf.net>
* configure.ac:

View file

@ -1051,11 +1051,13 @@ no_more_pads_full (GstElement * element, gboolean subs,
if (!g_object_get_data (G_OBJECT (element), "pending"))
return;
GST_DEBUG_OBJECT (element, "remove pending");
g_object_set_data (G_OBJECT (element), "pending", NULL);
play_base_bin->pending--;
GST_DEBUG_OBJECT (element, "remove pending, now %d pending",
play_base_bin->pending);
if (play_base_bin->pending == 0) {
/* we can commit this group for playback now */
group_commit (play_base_bin, play_base_bin->is_stream, subs);
@ -1988,6 +1990,9 @@ setup_source (GstPlayBaseBin * play_base_bin)
/* remove our previous preroll queues */
remove_groups (play_base_bin);
/* clear pending dynamic elements */
play_base_bin->pending = 0;
/* do subs */
if (subbin) {
GstElement *db;
@ -2006,6 +2011,9 @@ setup_source (GstPlayBaseBin * play_base_bin)
g_object_set_data (G_OBJECT (db), "pending", "1");
play_base_bin->pending++;
GST_DEBUG_OBJECT (play_base_bin, "we have subtitles, %d pending",
play_base_bin->pending);
if (!play_base_bin->is_stream) {
GstStateChangeReturn sret;