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