mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-17 12:55:53 +00:00
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:
parent
b5c2a72a4a
commit
c03d6a8757
2 changed files with 18 additions and 2 deletions
|
@ -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>
|
2007-07-12 Stefan Kost <ensonic@users.sf.net>
|
||||||
|
|
||||||
* configure.ac:
|
* configure.ac:
|
||||||
|
|
|
@ -1051,11 +1051,13 @@ no_more_pads_full (GstElement * element, gboolean subs,
|
||||||
if (!g_object_get_data (G_OBJECT (element), "pending"))
|
if (!g_object_get_data (G_OBJECT (element), "pending"))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (element, "remove pending");
|
|
||||||
|
|
||||||
g_object_set_data (G_OBJECT (element), "pending", NULL);
|
g_object_set_data (G_OBJECT (element), "pending", NULL);
|
||||||
|
|
||||||
play_base_bin->pending--;
|
play_base_bin->pending--;
|
||||||
|
|
||||||
|
GST_DEBUG_OBJECT (element, "remove pending, now %d pending",
|
||||||
|
play_base_bin->pending);
|
||||||
|
|
||||||
if (play_base_bin->pending == 0) {
|
if (play_base_bin->pending == 0) {
|
||||||
/* we can commit this group for playback now */
|
/* we can commit this group for playback now */
|
||||||
group_commit (play_base_bin, play_base_bin->is_stream, subs);
|
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 our previous preroll queues */
|
||||||
remove_groups (play_base_bin);
|
remove_groups (play_base_bin);
|
||||||
|
|
||||||
|
/* clear pending dynamic elements */
|
||||||
|
play_base_bin->pending = 0;
|
||||||
|
|
||||||
/* do subs */
|
/* do subs */
|
||||||
if (subbin) {
|
if (subbin) {
|
||||||
GstElement *db;
|
GstElement *db;
|
||||||
|
@ -2006,6 +2011,9 @@ setup_source (GstPlayBaseBin * play_base_bin)
|
||||||
g_object_set_data (G_OBJECT (db), "pending", "1");
|
g_object_set_data (G_OBJECT (db), "pending", "1");
|
||||||
play_base_bin->pending++;
|
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) {
|
if (!play_base_bin->is_stream) {
|
||||||
GstStateChangeReturn sret;
|
GstStateChangeReturn sret;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue