+2006-10-06 Wim Taymans <wim@fluendo.com>
+
+ * gst/playback/gstdecodebin.c: (gst_decode_bin_init),
+ (close_pad_link):
+ * gst/playback/gstplaybasebin.c: (new_decoded_pad_full):
+ Activate dynamic pads before adding them to the element.
+
2006-10-06 Michael Smith <msmith@fluendo.com>
* gst-libs/gst/floatcast/floatcast.h:
if (!decode_bin->typefind) {
g_warning ("can't find typefind element, decodebin will not work");
} else {
- GstPad *pad;
+ GstPad *pad, *gpad;
/* add the typefind element */
if (!gst_bin_add (GST_BIN (decode_bin), decode_bin->typefind)) {
pad = gst_element_get_pad (decode_bin->typefind, "sink");
/* ghost the sink pad to ourself */
- gst_element_add_pad (GST_ELEMENT (decode_bin),
- gst_ghost_pad_new ("sink", pad));
+ gpad = gst_ghost_pad_new ("sink", pad);
+ gst_pad_set_active (gpad, TRUE);
+ gst_element_add_pad (GST_ELEMENT (decode_bin), gpad);
gst_object_unref (pad);
/* make it a ghostpad */
ghost = gst_ghost_pad_new (padname, pad);
+ gst_pad_set_active (ghost, TRUE);
gst_element_add_pad (GST_ELEMENT (decode_bin), ghost);
data = g_new0 (PadProbeData, 1);
}
/* add to stream selector */
- sinkpad = gst_element_get_pad (group->type[type - 1].selector, "sink%d");
+ sinkpad =
+ gst_element_get_request_pad (group->type[type - 1].selector, "sink%d");
+
/* make sure we catch unlink signals */
sig = g_signal_connect (G_OBJECT (sinkpad), "unlinked",
G_CALLBACK (preroll_unlinked), play_base_bin);
/* Store a pointer to the stream selector pad for this stream */
g_object_set_data (G_OBJECT (pad), "pb_sel_pad", sinkpad);
+ gst_pad_set_active (sinkpad, TRUE);
gst_pad_link (pad, sinkpad);
gst_object_unref (sinkpad);