+2004-01-21 David Schleef <ds@schleef.org>
+
+ * ext/swfdec/gstswfdec.c: (gst_swfdec_video_getcaps),
+ (gst_swfdec_video_link), (copy_image), (gst_swfdec_loop),
+ (gst_swfdec_init), (gst_swfdec_change_state):
+ * ext/swfdec/gstswfdec.h:
+ Fix negotiation.
+ * gst/adder/gstadder.c: (gst_adder_link), (gst_adder_init),
+ (gst_adder_request_new_pad): Fix negotiation.
+ * gst/goom/gstgoom.c: (gst_goom_init), (gst_goom_src_fixate):
+ Add a fixate function.
+ * gst/intfloat/gstfloat2int.c:
+ * gst/intfloat/gstfloat2int.h:
+ * gst/intfloat/gstint2float.c:
+ * gst/intfloat/gstint2float.h:
+ Completely rewrite the negotiation. Doesn't quite work yet,
+ due to some buffer-frames problem.
+
2004-01-21 Thomas Vander Stichele <thomas at apestaart dot org>
* ext/gnomevfs/gstgnomevfssrc.c:
GList *remove = NULL;
GSList *channels;
GstPad *p;
+ const GList *pads;
g_return_val_if_fail (caps != NULL, GST_PAD_LINK_REFUSED);
g_return_val_if_fail (pad != NULL, GST_PAD_LINK_REFUSED);
adder = GST_ADDER (GST_PAD_PARENT (pad));
+ pads = gst_element_get_pad_list (element);
+ while (pads) {
+ GstPad *otherpad = GST_PADD (pads->data);
+
+ if (otherpad != pad) {
+ ret = gst_pad_try_set_caps (otherpad, caps);
+ if (GST_PAD_LINK_FAILED (ret)) {
+ return ret;
+ }
+ }
+ pads = g_list_next (pads);
+ }
+
+
if (!gst_adder_parse_caps (adder, gst_caps_get_structure (caps, 0)))
return GST_PAD_LINK_REFUSED;
gst_static_pad_template_get (&gst_adder_src_template), "src");
gst_element_add_pad (GST_ELEMENT (adder), adder->srcpad);
gst_element_set_loop_function (GST_ELEMENT (adder), gst_adder_loop);
+ gst_pad_set_getcaps_function (adder->srcpad, gst_pad_proxy_getcaps);
gst_pad_set_link_function (adder->srcpad, gst_adder_link);
adder->format = GST_ADDER_FORMAT_UNSET;
input->bytestream = gst_bytestream_new (input->sinkpad);
gst_element_add_pad (GST_ELEMENT (adder), input->sinkpad);
+ gst_pad_set_getcaps_function (input->sinkpad, gst_pad_proxy_getcaps);
gst_pad_set_link_function(input->sinkpad, gst_adder_link);
/* add the input_channel to the list of input channels */