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