mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 20:21:24 +00:00
gst/playback/gstplaybasebin.c: Cleanup the previous pipeline a little earlier for the case that a source element prov...
Original commit message from CVS: * gst/playback/gstplaybasebin.c: (setup_source): Cleanup the previous pipeline a little earlier for the case that a source element provides raw data.
This commit is contained in:
parent
d88a2956ac
commit
faa1d71a2e
2 changed files with 22 additions and 11 deletions
12
ChangeLog
12
ChangeLog
|
@ -1,3 +1,9 @@
|
|||
2004-10-11 Wim Taymans <wim@fluendo.com>
|
||||
|
||||
* gst/playback/gstplaybasebin.c: (setup_source):
|
||||
Cleanup the previous pipeline a little earlier for the
|
||||
case that a source element provides raw data.
|
||||
|
||||
2004-10-11 Benjamin Otte <otte@gnome.org>
|
||||
|
||||
* ext/mad/gstid3tag.c: (gst_id3_tag_chain):
|
||||
|
@ -84,6 +90,11 @@
|
|||
cdparanoia.
|
||||
disconnect the preroll overrun signal when we don't need it anymore.
|
||||
|
||||
2004-10-08 Milosz Derezynski <internalerror.rez@fhtw-berlin.de>
|
||||
|
||||
* ext/cdparanoia/gstcdparanoia.c: (_do_init),
|
||||
Added reworked patch from #154903 from milosz derezynski (deadchip).
|
||||
|
||||
2004-10-08 Wim Taymans <wim@fluendo.com>
|
||||
|
||||
* ext/cdparanoia/gstcdparanoia.c: (_do_init),
|
||||
|
@ -93,7 +104,6 @@
|
|||
(cdparanoia_uri_get_protocols), (cdparanoia_uri_get_uri),
|
||||
(cdparanoia_uri_set_uri), (cdparanoia_uri_handler_init):
|
||||
* ext/cdparanoia/gstcdparanoia.h:
|
||||
Added reworked patch from #154903 from milosz derezynski (deadchip).
|
||||
This adds the cdda://<tracknum> uri.
|
||||
|
||||
2004-10-08 Wim Taymans <wim@fluendo.com>
|
||||
|
|
|
@ -381,6 +381,7 @@ static gboolean
|
|||
setup_source (GstPlayBaseBin * play_base_bin)
|
||||
{
|
||||
GstElement *old_src;
|
||||
GstElement *old_dec;
|
||||
GstPad *srcpad = NULL;
|
||||
|
||||
if (!play_base_bin->need_rebuild)
|
||||
|
@ -409,6 +410,14 @@ setup_source (GstPlayBaseBin * play_base_bin)
|
|||
}
|
||||
}
|
||||
|
||||
old_dec = play_base_bin->decoder;
|
||||
if (old_dec) {
|
||||
GST_LOG ("removing old decoder element %s", gst_element_get_name (old_dec));
|
||||
gst_bin_remove (GST_BIN (play_base_bin->thread), old_dec);
|
||||
}
|
||||
|
||||
remove_prerolls (play_base_bin);
|
||||
|
||||
/* now see if the source element emits raw audio/video all by itself,
|
||||
* if so, we can create streams for the pads and be done with it
|
||||
*/
|
||||
|
@ -461,9 +470,6 @@ setup_source (GstPlayBaseBin * play_base_bin)
|
|||
{
|
||||
gboolean res;
|
||||
gint sig1, sig2, sig3, sig4;
|
||||
GstElement *old_dec;
|
||||
|
||||
old_dec = play_base_bin->decoder;
|
||||
|
||||
play_base_bin->decoder = gst_element_factory_make ("decodebin", "decoder");
|
||||
if (!play_base_bin->decoder) {
|
||||
|
@ -471,16 +477,11 @@ setup_source (GstPlayBaseBin * play_base_bin)
|
|||
play_base_bin->decoder = old_dec;
|
||||
return FALSE;
|
||||
} else {
|
||||
if (old_dec) {
|
||||
GST_LOG ("removing old decoder element %s",
|
||||
gst_element_get_name (old_dec));
|
||||
gst_bin_remove (GST_BIN (play_base_bin->thread), old_dec);
|
||||
}
|
||||
/* ref decoder so that the bin does not take ownership */
|
||||
gst_object_ref (GST_OBJECT (play_base_bin->decoder));
|
||||
gst_bin_add (GST_BIN (play_base_bin->thread), play_base_bin->decoder);
|
||||
}
|
||||
|
||||
remove_prerolls (play_base_bin);
|
||||
|
||||
res = gst_pad_link (srcpad,
|
||||
gst_element_get_pad (play_base_bin->decoder, "sink"));
|
||||
if (!res) {
|
||||
|
|
Loading…
Reference in a new issue