gst/gstelement.c: Fix to allow DELAYED to indicate that linking was successful.
[platform/upstream/gstreamer.git] / ChangeLog
1 2004-01-03  David Schleef  <ds@schleef.org>
2
3         * gst/gstelement.c: (gst_element_link_pads_filtered),
4         (gst_element_negotiate_pads): Fix to allow DELAYED to indicate
5         that linking was successful.
6         * gst/gstpad.c: (gst_pad_link_free),
7         (gst_pad_link_call_link_functions), (gst_pad_link_negotiate),
8         (gst_pad_link_try), (gst_pad_link_unnegotiate),
9         (gst_pad_unnegotiate), (gst_pad_set_explicit_caps): Pass
10         GstPadLinkReturn correctly between functions, and don't fail
11         when DELAYED is used (DELAYED is very important).  Better
12         cleanup on unlinking and unnegotiation.  Should fix some spider
13         bugs.
14
15 2004-01-02  David Schleef  <ds@schleef.org>
16
17         * gst/gstelement.c: (gst_element_class_init),
18         (gst_element_base_class_init): ->padtemplates should be cleared
19         in base_init, since we need to have a fresh list for every
20         class.  (Alternately, we chould copy the list and share the
21         actual pad templates (not the list), but that would require
22         changing every plugin to move pad template registration from
23         base_init to class_init.)
24
25 2004-01-03  Ronald Bultje  <rbultje@ronald.bitfreak.net>
26
27         * gst/gstelement.c: (gst_element_class_add_pad_template):
28           Refuse registering a pad template if another pad template
29           with the same name already exists (#114715).
30
31 2004-01-02  David Schleef  <ds@schleef.org>
32
33         * gst/gstcaps.c: (_gst_structure_is_equal_foreach),
34         (gst_caps_is_equal_fixed): Add new function.
35         * gst/gstcaps.h: ditto.
36         * gst/gstpad.c: (gst_real_pad_class_init),
37         (gst_pad_link_call_link_functions), (gst_pad_try_set_caps),
38         (gst_pad_set_explicit_caps), (gst_pad_get_caps):  In try_set_caps,
39         check new caps against existing caps -- if they're the same, return
40         OK without renegotiating.  caps-nego-failed signal fixed so that
41         the marshaller isn't VOID__OBJECT.  Also changed to G_TYPE_POINTER
42         to save an extra caps copy.  Don't complete negotiation if a pad
43         link function returns DELAYED.
44
45 2004-01-02  Benjamin Otte  <in7y118@public.uni-hamburg.de>
46
47         * gst/gstpad.c: (gst_pad_try_relink_filtered):
48           Fix wrong g_return_if_fail
49
50 2004-01-03  Jan Schmidt  <thaytan@mad.scientist.com>
51
52         * gst/gstbin.c: (gst_bin_class_init):
53         Change the marshalling of element_added/element_removed
54         to use gst_marshal_VOID__OBJECT, since gst_marshal_VOID__POINTER 
55         complains that GST_TYPE_ELEMENT is not G_TYPE_POINTER
56
57 2004-01-01  David Schleef  <ds@schleef.org>
58
59         * gst/gstpad.c: (gst_pad_set_explicit_caps),
60         (gst_pad_explicit_getcaps), (gst_pad_explicit_link),
61         (gst_pad_use_explicit_caps):
62         * gst/gstpad.h:
63         Add new functions.  gst_pad_use_explicit_caps() sets up a pad
64         to use an internal getcaps and link fuction so that negotiation
65         always results in the explicitly set caps.
66         gst_pad_set_explicit_caps() sets the explicit caps.  These functions
67         are particularly useful for decoders.
68
69 2003-12-31  David Schleef  <ds@schleef.org>
70
71         * gst/elements/gstidentity.c: (gst_identity_class_init),
72         (gst_identity_init), (gst_identity_chain),
73         (gst_identity_set_property), (gst_identity_get_property):
74         * gst/elements/gstidentity.h:
75         * gst/gstqueue.c: (gst_queue_init):
76           Negotiation fixes.
77
78 2003-12-31  David Schleef  <ds@schleef.org>
79
80         * gst/gstcaps.c: (gst_caps_intersect),
81         (_gst_caps_normalize_foreach), (gst_caps_normalize):
82           Implement gst_caps_normalize().
83         * testsuite/caps/normalisation.c: (main):
84           Add an additional test
85
86 2003-12-31  Ronald Bultje  <rbultje@ronald.bitfreak.net>
87
88         * gst/gstqueue.c: (gst_queue_init):
89           use gst_pad_proxy_getcaps()
90
91 2003-12-31  David Schleef  <ds@schleef.org>
92
93         * gst/elements/gstshaper.c: (gst_shaper_link):
94         * gst/elements/gsttee.c: (gst_tee_init), (gst_tee_request_new_pad):
95         * gst/gstqueue.c: (gst_queue_link):
96           Negotiation fixes.
97
98 2003-12-31  David Schleef  <ds@schleef.org>
99
100         * gst/gstpad.c: (gst_pad_proxy_pad_link), (gst_pad_proxy_fixate):
101         * gst/gstpad.h: Add functions that are useful as default pad
102         link and fixate functions for elements.
103
104 2003-12-30  David Schleef  <ds@schleef.org>
105
106         * gst/gstpad.c: (gst_pad_link_try):
107           Fix segfault when attempting to return to old caps
108
109 2003-12-29  David Schleef  <ds@schleef.org>
110
111         * gst/gstcaps.c: (gst_caps_normalize), (simplify_foreach),
112         (gst_caps_structure_simplify), (gst_caps_simplify):
113         * gst/gstcaps.h:
114           Add simplify function
115         * gst/gstpad.c: (gst_pad_link_try), (gst_pad_try_set_caps),
116         (gst_pad_perform_negotiate), (gst_pad_is_negotiated):
117         * gst/gstpad.h:
118           Copy over srcnotify, sinknotify when calling old pad_link
119           functions.  Add new is_negotiated() function.
120         * gst/gststructure.c: (gst_structure_copy):
121           Fix an incredibly stupid bug that should have been noticed
122           weeks ago.  _copy() returned the argument, not the new copy.
123
124 2003-12-27  Benjamin Otte  <in7y118@public.uni-hamburg.de>
125
126         * gst/gstcaps.c: (gst_caps_append):
127           add sanity checks
128         * gst/gstcaps.h: (gst_caps_debug):
129           remove, it doesn't exist anymore.
130         * gst/gstelement.c: (gst_element_threadsafe_properties_pre_run),
131         (gst_element_threadsafe_properties_post_run):
132           make debugging messages not clutter up THREAD debug category
133         (gst_element_negotiate_pads), (gst_element_clear_pad_caps),
134         (gst_element_change_state):
135           update to new caps API
136         * gst/gstinterface.c: (gst_implements_interface_cast):
137           don't put vital code in g_return_if_fail
138         * gst/gstpad.c: (gst_pad_link_try), (gst_pad_try_set_caps), 
139         (gst_pad_link_filtered):
140           add pst_pad_try_link and use it.
141         (gst_pad_perform_negotiate), (gst_pad_renegotiate):
142           implement correctly, deprecate first one.
143         (gst_pad_link_unnegotiate), (gst_pad_unnegotiate):
144           add and implement.
145         (gst_pad_try_relink_filtered), (gst_pad_relink_filtered):
146           implement.
147         (gst_pad_get_negotiated_caps):
148           add and implement. Make GST_PAD_CAPS call this function.
149         (gst_pad_get_caps):
150           remove unneeded check..
151         (gst_pad_recover_caps_error):
152           disable, always return FALSE.
153         (gst_real_pad_dispose):
154           don't free caps and appfilter anymore, they're unused.
155         * gst/gstpad.h:
156           Reflect changes mentioned above.
157         * gst/gstsystemclock.c: (gst_system_clock_wait):
158           Make 'clock is way behind' a debugging message.
159         * gst/gstthread.c: (gst_thread_change_state):
160           Fix debugging message
161
162 2003-12-25  Thomas Vander Stichele  <thomas at apestaart dot org>
163
164         * gst/gstinfo.h:
165           fix GST_DEBUG_CATEGORY_INIT gtk-doc description
166         * docs/gst/tmpl/gstreamer-unused.sgml:
167           removed all traces of cvs conflicts
168
169 2003-12-24  Thomas Vander Stichele  <thomas at apestaart dot org>
170
171         * configure.ac:
172         * gst/schedulers/cothreads_compat.h:
173         * libs/Makefile.am:
174           remove last instances of wingo cothread usage
175
176 2003-12-24  Thomas Vander Stichele  <thomas at apestaart dot org>
177
178         * gst/gstplugin.c:
179         * gst/gstversion.h.in:
180         * gst/parse/grammar.y:
181           change comment block from /** to /* when not gtk-doc comments
182
183 2003-12-24  Thomas Vander Stichele  <thomas at apestaart dot org>
184
185         * gst/gst.c: whitespace and doc style fixes
186
187 2003-12-24  Thomas Vander Stichele  <thomas at apestaart dot org>
188
189         * gst/gstformat.h: remove trailing whitespace from enum for gtk-doc
190
191 2003-12-24  Colin Walters  <walters@verbum.org>
192
193         * gst/elements/gsttypefindelement.c:
194           gst/elements/gsttypefindelement.h: Make GstCaps parameter const.
195           Copy caps parameter. Use _POINTER to marshal caps instead of _BOXED.
196           Don't double-free caps.
197
198 2003-12-23  David Schleef  <ds@schleef.org>
199
200         * gst/gstelement.c, gst/gstpad.c, gst/parse/grammar.y,
201           gst/gstcaps.c, gst/autoplug/gstspideridentity.c:
202           Many little fixes and additions of debug statements to
203           get rhythmbox working.
204
205 2003-12-23  Colin Walters  <walters@verbum.org>
206
207         * gst/autoplug/gstspideridentity.c (gst_spider_identity_sink_loop_type_finding):
208         Use GST_PAD_LINK_SUCCESSFUL.
209
210 2003-12-23  David Schleef  <ds@schleef.org>
211
212         * gst/elements/gstaggregator.c:
213         * gst/elements/gsttee.c:
214           Use gst_pad_proxy_getcaps().
215         * gst/gstpad.c:
216         * gst/gstpad.h:
217           Add gst_pad_proxy_getcaps(), which filter elements can use
218           as a generic getcaps implementation.
219           Fix gst_pad_get_allowed_caps().  It just wasn't doing what
220           was advertised.
221
222 2003-12-23  David Schleef  <ds@schleef.org>
223
224         * gst/gstpad.c:
225           Rearrange/rewrite much of the pad negotiation code, since it
226           resembled pasta.  This actually changes the way some
227           negotiation works, since the previous code was inconsistent
228           depending on how it was invoked.  Add (internal) structure
229           GstPadLink, which is used to hold some information (more in
230           the future) about the link between two pads.  Fixes a number
231           of bugs, including random lossage of filter caps when the
232           initial negotiation is delayed.  A few functions are still
233           unimplemented.
234         * gst/gstpad.h:
235           Add GST_PAD_LINK_{SUCESSFUL|FAILED}() macros.  Please use
236           these when testing GstPadLinkReturn values instead of comparing
237           directly.
238
239 2003-12-23  David Schleef  <ds@schleef.org>
240
241         * gst/gstvalue.c: 
242         * gst/gstvalue.h:
243           Rearrange lots of code.  Change registration of compare function
244           into registration of compare/serialize/deserialize functions.
245           Doesn't include implementation of gst_value_[de]serialize(),
246           but that should be easy.
247
248 2003-12-23  Thomas Vander Stichele  <thomas at apestaart dot org>
249
250         * docs/gst/gstreamer-sections.txt:
251         * docs/gst/tmpl/gstprops.sgml: removed
252         * docs/gst/tmpl/gstreamer-bufferpool.sgml: removed
253           David removed props and caps code, so let's remove their docs as well.
254           Removed all no longer existing symbols from gstreamer-sections.txt
255           
256 2003-12-22  Colin Walters  <walters@verbum.org>
257
258         * gst/gsttaginterface.c, gst/gsttaginterface.h,
259           gst/gsttag.c, gst/gsttag.h:  Add interface to setting GValues
260           of tags directly.
261
262 2003-12-22  Benjamin Otte  <in7y118@public.uni-hamburg.de>
263
264         * gst/elements/gstelements.c:
265           Set ranks of elements to NONE, so the autoplugger doesn't use them.
266         * gst/elements/gstshaper.c: (gst_shaper_getcaps):
267           Fix proxying to new CAPS stuff. Don't call get_allowed_caps but
268           gst_caps (peer).
269
270 2003-12-22  Benjamin Otte  <in7y118@public.uni-hamburg.de>
271
272         * gst/autoplug/gstsearchfuncs.c: (gst_autoplug_caps_intersect):
273         * gst/autoplug/gstspideridentity.c: (gst_spider_identity_link),
274         (gst_spider_identity_getcaps), (gst_spider_identity_change_state),
275         (gst_spider_identity_sink_loop_type_finding):
276         * gst/autoplug/gstspideridentity.h:
277           Fix autoplugging in spider element, so it works with new caps.
278           This was mainly caused by identifying empty caps incorrectly.
279
280 2003-12-22  David Schleef  <ds@schleef.org>
281
282         * gststructure.c, gstvalue.c, gstvalue.h: Add
283           gst_value_init_and_copy() and use it, to avoid silly mistakes in
284           using g_value_copy()
285
286 2003-12-21  David Schleef  <ds@schleef.org>
287
288         * many, many files: Merge CAPS branch.  This includes:
289           - implemention of GstValue and several GstValue types
290           - implemention of GstStructure
291           - entire rewrite of GstCaps
292           - removal of GstProps
293           - many changes to GstPad to compensate for new caps paradigm
294           - removal of GstBufferpool
295         * gst/Makefile.am, gst/gst.h, gst/gstpad.h, gst/gsttypefind.h,
296         gstvalue.h, gst/gstcaps[2]*.[ch]:
297           - rename gstcaps2.[ch] to gstcaps.[ch]
298
299 2003-12-21  Ronald Bultje  <rbultje@ronald.bitfreak.net>
300
301         * gst/gstqueue.c: (gst_queue_handle_pending_events),
302         (gst_queue_chain), (gst_queue_handle_src_event):
303           implement timeout for sending events. Workaround for if the
304           pipeline on this queue is not passing any data.
305
306 2003-12-21  Ronald Bultje <rbultje@ronald.bitfreak.net>
307                                                                                 
308         * ChangeLog: moved to gstreamer/docs/random/old/ChangeLog.gstreamer
309         * moved CVS to freedesktop.org
310