libs/gst/dataprotocol/dataprotocol.c (gst_dp_packet_from_caps): Fix Timmeke Waymans...
[platform/upstream/gstreamer.git] / ChangeLog
1 2005-10-13  Andy Wingo  <wingo@pobox.com>
2
3         * libs/gst/dataprotocol/dataprotocol.c (gst_dp_packet_from_caps):
4         Fix Timmeke Waymans bug.
5         (gst_dp_caps_from_packet): Make sure we pass a NUL-terminated
6         string of the proper length to gst_caps_from_string. There's a
7         potential for, before this fix, that this could cause someone
8         connecting over the network to cause a segfault if the payload is
9         not NUL-terminated.
10
11 2005-10-13  Stefan Kost  <ensonic@users.sf.net>
12
13         * docs/design/draft-push-pull.txt:
14         * docs/design/part-overview.txt:
15         * docs/random/TODO-pre-0.9:
16         * docs/random/old/ChangeLog.gstreamer:
17         * gst/base/gstpushsrc.c:
18         * gst/gstclock.c:
19           fixed typos
20
21 2005-10-13  Thomas Vander Stichele  <thomas at apestaart dot org>
22
23         * gst/glib-compat.c: (gst_flags_get_first_value):
24         * gst/glib-compat.h:
25         * gst/gstvalue.c: (gst_value_deserialize_int_helper),
26         (gst_value_compare_double), (gst_value_serialize_flags):
27           GLib 2.6 g_flags_get_first_value has a bug that triggers an
28           infinite loop
29
30 2005-10-13  Thomas Vander Stichele  <thomas at apestaart dot org>
31
32         * gst/base/gstbasesink.c: (gst_base_sink_handle_object):
33         * gst/base/gstbasesrc.c: (gst_base_src_get_range):
34           fix up debugging
35         * tools/gst-launch.c: (event_loop):
36           print out clock nicely
37
38 2005-10-13  Tim-Philipp Müller  <tim at centricular dot net>
39
40         * docs/gst/gstreamer-sections.txt:
41         * gst/gsttaglist.h:
42         * gst/gsttaglist.c: (_gst_tag_initialize), (gst_tag_list_get_date),
43         (gst_tag_list_get_date_index):
44           Added gst_tag_list_get_date() and gst_tag_list_get_date_index().
45           GST_TAG_DATE now has a tag type of GST_TYPE_DATE (#170777).
46
47 2005-10-13  Julien MOUTTE  <julien@moutte.net>
48
49         * gst/base/gstcollectpads.c: (gst_collectpads_event),
50         (gst_collectpads_chain):
51         * gst/base/gstcollectpads.h: Handle newsegment and store informations
52         in CollectData.
53
54 2005-10-13  Stefan Kost  <ensonic@users.sf.net>
55
56         * docs/gst/gstreamer-sections.txt:
57         * gst/gst.c:
58         * gst/gsterror.h:
59         * tools/gst-inspect.c: (main):
60         * tools/gst-launch.c: (main):
61         * tools/gst-run.c: (main):
62         * tools/gst-xmlinspect.c: (main):
63           fix GOption context leaks
64           doc fixes
65
66 2005-10-13  Thomas Vander Stichele  <thomas at apestaart dot org>
67
68         * gst/gstbus.c:
69           use HAVE_UNISTD_H
70         * win32/common/config.h:
71           update config
72         * win32/vs6/grammar.dsp:
73         * win32/vs6/libgstelements.dsp:
74         * win32/vs6/libgstreamer.dsp:
75           update vs6 files
76
77 2005-10-12  Thomas Vander Stichele  <thomas at apestaart dot org>
78
79         * gst/base/gstbasesink.c: (gst_base_sink_handle_object):
80         * gst/base/gstbasesrc.c: (gst_base_src_query):
81           fix more guint64<->gdouble conversions
82
83 2005-10-12  Thomas Vander Stichele  <thomas at apestaart dot org>
84
85         * Makefile.am:
86           add win32-update target
87         * win32/common/gstconfig.h:
88         * win32/common/gstenumtypes.c:
89         * win32/common/gstenumtypes.h:
90         * win32/common/gstversion.h:
91           add files that visual studio can't generate
92
93 2005-10-12  Thomas Vander Stichele  <thomas at apestaart dot org>
94
95         * Makefile.am:
96           add a win32-update target
97         * configure.ac:
98
99 2005-10-12  Wim Taymans  <wim@fluendo.com>
100
101         * gst/gstbin.c: (gst_bin_add_func), (gst_bin_remove_func),
102         (reset_degree), (gst_bin_dispose), (bin_bus_handler):
103         * gst/gstelement.c: (gst_element_commit_state),
104         (gst_element_set_state):
105         Protect flags with proper lock.
106         unref provided cached clock in dispose.
107
108 2005-10-12  Stefan Kost  <ensonic@users.sf.net>
109
110         * gst/gst.c:
111         * gst/gstminiobject.h:
112         * gst/gstpad.h:
113         * win32/gstenumtypes.c: (gst_mini_object_flags_get_type):
114           removed unused flags from miniobject
115           doc fixes
116
117 2005-10-12  Wim Taymans  <wim@fluendo.com>
118
119         * gst/elements/gstfilesink.c: (gst_file_sink_do_seek),
120         (gst_file_sink_event), (gst_file_sink_render):
121         Flush before seeking.
122
123 >>>>>>> 1.1724
124 2005-10-12  Andy Wingo  <wingo@pobox.com>
125
126         * gst/gst.c (gst_init_check): Ignore unknown options, as has
127         always been the case.
128
129 2005-10-12  Stefan Kost  <ensonic@users.sf.net>
130
131         * check/gst/gstbin.c: (GST_START_TEST):
132         * docs/gst/gstreamer-sections.txt:
133         * gst/base/gstbasesink.c: (gst_base_sink_init):
134         * gst/base/gstbasesrc.c: (gst_base_src_init),
135         (gst_base_src_get_range), (gst_base_src_check_get_range),
136         (gst_base_src_start), (gst_base_src_stop):
137         * gst/base/gstbasesrc.h:
138         * gst/elements/gstfakesrc.c: (gst_fake_src_set_property):
139         * gst/gstbin.c: (gst_bin_add_func), (gst_bin_remove_func),
140         (bin_element_is_sink), (reset_degree), (gst_bin_element_set_state),
141         (bin_bus_handler):
142         * gst/gstbin.h:
143         * gst/gstbuffer.h:
144         * gst/gstbus.c: (gst_bus_post), (gst_bus_set_flushing):
145         * gst/gstbus.h:
146         * gst/gstelement.c: (gst_element_is_locked_state),
147         (gst_element_set_locked_state), (gst_element_commit_state),
148         (gst_element_set_state):
149         * gst/gstelement.h:
150         * gst/gstindex.c: (gst_index_init):
151         * gst/gstindex.h:
152         * gst/gstminiobject.h:
153         * gst/gstobject.c: (gst_object_init), (gst_object_sink),
154         (gst_object_set_parent):
155         * gst/gstobject.h:
156         * gst/gstpad.c: (gst_pad_set_blocked_async), (gst_pad_is_blocked),
157         (gst_pad_get_caps_unlocked), (gst_pad_set_caps):
158         * gst/gstpad.h:
159         * gst/gstpadtemplate.h:
160         * gst/gstpipeline.c: (gst_pipeline_provide_clock_func),
161         (gst_pipeline_use_clock), (gst_pipeline_auto_clock):
162         * gst/gstpipeline.h:
163         * gst/indexers/gstfileindex.c: (gst_file_index_load),
164         (gst_file_index_commit):
165         * testsuite/bytestream/filepadsink.c: (gst_fp_sink_init):
166         * testsuite/pad/link.c: (gst_test_src_init),
167         (gst_test_filter_init), (gst_test_sink_init):
168         * testsuite/states/locked.c: (main):
169           renamed GST_FLAGS macros to GST_OBJECT_FLAGS
170           moved bitshift from macro to enum definition
171
172 2005-10-12  Wim Taymans  <wim@fluendo.com>
173
174         * gst/base/gstbasesink.c: (gst_base_sink_handle_buffer):
175         * gst/elements/gstfilesink.c: (gst_file_sink_event),
176         (gst_file_sink_render):
177         Some more debugging info.
178
179 2005-10-12  Wim Taymans  <wim@fluendo.com>
180
181         * docs/design/part-states.txt:
182         * tools/gst-launch.c: (main):
183         Some doc updates.
184         Revert non-intentional change.
185
186 2005-10-12  Wim Taymans  <wim@fluendo.com>
187
188         * check/gst/gstbin.c: (GST_START_TEST):
189         * check/gst/gstelement.c: (GST_START_TEST):
190         * check/gst/gstevent.c: (GST_START_TEST), (test_event):
191         * check/gst/gstghostpad.c: (GST_START_TEST):
192         * check/gst/gstpipeline.c: (GST_START_TEST):
193         * check/pipelines/simple_launch_lines.c: (run_pipeline):
194         * check/states/sinks.c: (GST_START_TEST):
195         * gst/elements/gsttypefindelement.c: (stop_typefinding):
196         * gst/gstbin.c: (gst_bin_provide_clock_func), (gst_bin_add_func),
197         (gst_bin_remove_func), (gst_bin_get_state_func),
198         (gst_bin_recalc_state), (gst_bin_change_state_func),
199         (bin_bus_handler):
200         * gst/gstelement.c: (gst_element_get_state_func),
201         (gst_element_get_state), (gst_element_abort_state),
202         (gst_element_commit_state), (gst_element_set_state),
203         (gst_element_change_state), (gst_element_change_state_func):
204         * gst/gstelement.h:
205         * gst/gstpipeline.c: (gst_pipeline_class_init), (do_pipeline_seek),
206         (gst_pipeline_provide_clock_func):
207         * gst/gstutils.c: (gst_element_link_pads_filtered):
208         * tools/gst-launch.c: (main):
209         * tools/gst-typefind.c: (main):
210         Use GstClockTime in _get_state() instead of GTimeVal.
211         Remove old code in gstutils.c
212
213 2005-10-12  Andy Wingo  <wingo@pobox.com>
214
215         * gst/gstregistry.h (gst_registry_scan_paths): Not implemented, so
216         removed.
217
218         * gst/gstpad.c (gst_pad_pause_task): Actually return FALSE if
219         there is no task. Shouldn't affect any code, as nothing in our
220         plugins checks this return value.
221         (gst_pad_stop_task): Also take the stream lock if the pad has no
222         task. Docs updated.
223
224 2005-10-12  Wim Taymans  <wim@fluendo.com>
225
226         * gst/gstpad.c: (pre_activate), (post_activate),
227         (gst_pad_activate_pull), (gst_pad_activate_push):
228         Cleanup activation code. Reset old state if
229         activation failed.
230
231 2005-10-12  Wim Taymans  <wim@fluendo.com>
232
233         * gst/base/gstbasesink.c: (gst_base_sink_handle_object),
234         (gst_base_sink_change_state):
235         No need to prerol after receiving EOS.
236
237         * gst/elements/gstfakesink.c: (gst_fake_sink_event):
238         * gst/elements/gstfakesrc.c: (gst_fake_src_event_handler):
239         * gst/elements/gstidentity.c: (gst_identity_event):
240         Print events more verbosely.
241
242 2005-10-12  Wim Taymans  <wim@fluendo.com>
243
244         * check/Makefile.am:
245         * check/states/sinks.c: (GST_START_TEST), (gst_object_suite):
246         * check/states/sinks2.c:
247         Moved sinks2 testcode in sinks check.
248
249         * gst/gstbin.c: (gst_bin_provide_clock_func), (gst_bin_add_func),
250         (gst_bin_remove_func), (gst_bin_recalc_state),
251         (gst_bin_change_state_func), (bin_bus_handler):
252         Fix potential race condition when _get_state() iterated over an
253         ASYNC element right before it posted a state completion.
254
255         * gst/gstclock.h:
256         Do proper cast here.
257
258         * gst/gstevent.c: (gst_event_new_newsegment),
259         (gst_event_parse_newsegment):
260         A playback rate of 0.0 is not allowed.
261
262 2005-10-11  Thomas Vander Stichele  <thomas at apestaart dot org>
263
264         * win32/common/config.h:
265         * win32/common/dirent.c: (_topendir), (_treaddir), (_tclosedir),
266         (_trewinddir), (_ttelldir), (_tseekdir):
267         * win32/common/dirent.h:
268         * win32/common/gtchar.h:
269         * win32/common/libgstbase.def:
270         * win32/common/libgstreamer.def:
271         * win32/vs6/grammar.dsp:
272         * win32/vs6/gst_inspect.dsp:
273         * win32/vs6/gst_launch.dsp:
274         * win32/vs6/gstreamer.dsw:
275         * win32/vs6/libgstbase.dsp:
276         * win32/vs6/libgstelements.dsp:
277         * win32/vs6/libgstreamer.dsp:
278           Visual Studio 6 project files, and a new common directory.
279           Phear.
280
281 2005-10-11  Wim Taymans  <wim@fluendo.com>
282
283         * gst/base/gstbasesink.c: (gst_base_sink_handle_object),
284         (gst_base_sink_do_sync), (gst_base_sink_query),
285         (gst_base_sink_change_state):
286         * gst/base/gstbasesink.h:
287         Correctly parse newsegment info.
288
289 2005-10-11  Thomas Vander Stichele  <thomas at apestaart dot org>
290
291         * gst/gst.c: (init_post):
292           split plugin paths correctly
293
294 2005-10-11  Wim Taymans  <wim@fluendo.com>
295
296         * check/gst/gstevent.c: (GST_START_TEST):
297         * gst/base/gstbasesink.c: (gst_base_sink_handle_object),
298         (gst_base_sink_change_state):
299         * gst/base/gstbasesrc.c: (gst_base_src_default_newsegment):
300         * gst/base/gstbasetransform.c: (gst_base_transform_event):
301         * gst/elements/gstfilesink.c: (gst_file_sink_event):
302         * gst/gstevent.c: (gst_event_new_newsegment),
303         (gst_event_parse_newsegment):
304         * gst/gstevent.h:
305         Added extra flag to newsegment for future API freeze.
306         Updated check and base elements.
307
308 2005-10-11  Julien MOUTTE  <julien@moutte.net>
309
310         * gst/base/gstcollectpads.c: (gst_collectpads_init),
311         (gst_collectpads_add_pad), (gst_collectpads_pop),
312         (gst_collectpads_event), (gst_collectpads_chain):
313         * gst/base/gstcollectpads.h: Handle EOS correctly.
314
315 2005-10-11  Thomas Vander Stichele  <thomas at apestaart dot org>
316
317         * tools/gst-launch.c: (main):
318           more null protecting
319
320 2005-10-11  Thomas Vander Stichele  <thomas at apestaart dot org>
321
322         * gst/gst-i18n-lib.h:
323           check for ENABLE_NLS, not GETTEXT_PACKAGE
324         * gst/gstregistry.c: (gst_registry_add_plugin),
325         (gst_registry_scan_path_level),
326         (_gst_registry_remove_cache_plugins):
327           protect possibly NULL strings
328         * gst/parse/types.h:
329           config.h already included before
330         * tools/gst-inspect.c: (main):
331           sys/wait.h also doesn�t exist on mingw, so change the ifdef check
332           check for ENABLE_NLS, not GETTEXT_PACKAGE
333         * tools/gst-launch.c: (main):
334           check for ENABLE_NLS, not GETTEXT_PACKAGE
335
336 2005-10-11  Thomas Vander Stichele  <thomas at apestaart dot org>
337
338         * configure.ac:
339           if we don't have glib, fail before testing 2.8
340         * gst/base/gstbasetransform.c: (gst_base_transform_change_state):
341           fix a leak, should fix plugins-base testsuite
342
343 2005-10-11  Andy Wingo  <wingo@pobox.com>
344
345         * gst/gstpad.c (pre_activate): Renamed from pre_activate_switch,
346         take the mode we're going to as an arg. Go head and set the mode
347         and flushing flags now, so that if the activate function starts a
348         thread all the flags will be in the right state.
349         (post_activate): Renamed also. Just handle making sure streaming
350         finishes for the deactivation case, and setting the deactivated
351         mode.
352         (gst_pad_set_active): Complain loudly if deactivation fails.
353         (gst_pad_activate_pull): Adapt to pre/post_activate changes.
354         (gst_pad_activate_push): Adapt to pre/post_activate changes,
355         remove the terrible hack.
356
357 2005-10-11  Wim Taymans  <wim@fluendo.com>
358
359         * gst/gstbin.c: (gst_bin_init), (gst_bin_provide_clock_func),
360         (is_eos), (gst_bin_add_func), (gst_bin_remove_func),
361         (gst_bin_recalc_state), (gst_bin_change_state_func),
362         (gst_bin_dispose), (bin_bus_handler):
363         * gst/gstbin.h:
364         Prepare to make current EOS message queue more generic.
365         Fix some typos.
366
367         * gst/gstevent.c: (gst_event_new_newsegment),
368         (gst_event_parse_newsegment):
369         * gst/gstevent.h:
370         Rename base to stream_time.
371
372         * gst/gstmessage.h:
373         Fix typo in docs.
374
375 2005-10-11  Wim Taymans  <wim@fluendo.com>
376
377         * gst/gstbin.c: (gst_bin_init), (gst_bin_provide_clock_func),
378         (gst_bin_add_func), (gst_bin_remove_func), (gst_bin_recalc_state),
379         (gst_bin_change_state_func), (bin_bus_handler):
380         * gst/gstbin.h:
381         Work on proper clock selection.
382
383 2005-10-11  Edward Hervey  <edward@fluendo.com>
384
385         * libs/gst/controller/gstcontroller.c: (gst_controller_remove_properties_list): 
386         * libs/gst/controller/gstcontroller.h:
387         Added GList* version of _remove_properties() in order to be able to wrap
388         it in bindings.
389
390 2005-10-11  Wim Taymans  <wim@fluendo.com>
391
392         * docs/design/part-states.txt:
393         Some more docs.
394
395         * gst/gstbin.c: (gst_bin_set_clock_func), (gst_bin_recalc_state),
396         (gst_bin_change_state_func), (bin_bus_handler):
397         Doc updates. Don't distribute the same clock over and over again.
398
399         * gst/gstclock.c:
400         * gst/gstclock.h:
401         Doc updates.
402
403         * gst/gstpad.c: (gst_flow_get_name), (gst_flow_to_quark),
404         (gst_pad_get_type), (gst_pad_push), (gst_pad_push_event),
405         (gst_pad_send_event):
406         * gst/gstpad.h:
407         Make probe emission threadsafe again.
408         Register quarks and move _get_name() from utils.
409         Doc updates.
410
411         * gst/gstpipeline.c: (gst_pipeline_class_init),
412         (gst_pipeline_change_state), (gst_pipeline_provide_clock_func):
413         Only redistribute the clock of it changed.
414
415         * gst/gstsystemclock.h:
416         Doc updates. 
417
418         * gst/gstutils.c:
419         * gst/gstutils.h:
420         Moved the _flow_get_name() to GstPad.
421
422 2005-10-11  Thomas Vander Stichele  <thomas at apestaart dot org>
423
424         * check/gst-libs/gdp.c: (GST_START_TEST):
425         * check/gst/gstcaps.c: (GST_START_TEST):
426         * libs/gst/dataprotocol/dataprotocol.c: (gst_dp_crc),
427         (gst_dp_dump_byte_array), (gst_dp_header_from_buffer),
428         (gst_dp_packet_from_caps):
429           fix more valgrind warnings before turning up the heat
430
431 2005-10-11  Thomas Vander Stichele  <thomas at apestaart dot org>
432
433         * gst/parse/grammar.y:
434           some cleanup before the hacking
435
436 2005-10-10  Thomas Vander Stichele  <thomas at apestaart dot org>
437
438         * gst/base/gstbasesrc.c: (gst_base_src_query):
439           use conversions
440         * gst/gstutils.c: (gst_guint64_to_gdouble),
441         (gst_gdouble_to_guint64), (gst_util_uint64_scale):
442         * gst/gstutils.h:
443           externalize, basesrc uses it
444           obviously the implementation needs testing
445
446 2005-10-10  Wim Taymans  <wim@fluendo.com>
447
448         * tests/sched/Makefile.am:
449         * tests/sched/sort.c: (make_pipeline1), (make_pipeline2),
450         (make_pipeline3), (make_pipeline4), (print_elem), (main):
451
452 2005-10-10  Thomas Vander Stichele  <thomas at apestaart dot org>
453
454         * gst/gstutils.c: (guint64_to_gdouble), (gst_util_uint64_scale):
455           apparently converting from guint64 to double is not implemented
456           on MSVC
457
458 2005-10-10  Wim Taymans  <wim@fluendo.com>
459
460         * check/Makefile.am:
461         * check/generic/states.c: (GST_START_TEST):
462         * check/gst/gstbin.c: (GST_START_TEST):
463         * check/gst/gstpipeline.c: (GST_START_TEST), (gst_pipeline_suite):
464         * check/states/sinks.c: (GST_START_TEST):
465         * check/states/sinks2.c: (GST_START_TEST), (gst_object_suite),
466         (main):
467         Check fixes, use API as stated in design docs, remove hacks.
468
469         * gst/base/gstbasesink.c: (gst_base_sink_handle_object),
470         (gst_base_sink_change_state):
471         Catch stopping our task while we're shutting down.
472
473         * gst/gstbin.c: (gst_bin_init), (gst_bin_add_func),
474         (gst_bin_remove_func), (gst_bin_get_state_func),
475         (gst_bin_recalc_state), (gst_bin_change_state_func),
476         (bin_bus_handler):
477         * gst/gstbin.h:
478         * gst/gstelement.c: (gst_element_init),
479         (gst_element_get_state_func), (gst_element_abort_state),
480         (gst_element_commit_state), (gst_element_lost_state),
481         (gst_element_set_state), (gst_element_change_state),
482         (gst_element_change_state_func):
483         * gst/gstelement.h:
484         New state change algorithm (see #318116)
485
486         * gst/gstpipeline.c: (gst_pipeline_class_init),
487         (gst_pipeline_init), (gst_pipeline_set_property),
488         (gst_pipeline_get_property), (do_pipeline_seek),
489         (gst_pipeline_change_state), (gst_pipeline_provide_clock_func):
490         * gst/gstpipeline.h:
491         Remove crude state change hacks.
492
493         * gst/gstutils.h:
494         Remove crude hacks.
495
496         * tools/gst-launch.c: (main):
497         Fixes for state change. Needs some more work to fully use the
498         new stuff.
499
500 2005-10-10  Andy Wingo  <wingo@pobox.com>
501
502         * tests/Makefile.am (noinst_PROGRAMS): No more init.c.
503
504         * gst/gst.c (G_OPTION_FLAG_NO_ARG): Apparently GLib 2.8 requires
505         this flag, but it's not even in GLib 2.6. Odd. Hack around the
506         issue.
507
508 2005-10-10  Tim-Philipp Müller  <tim at centricular dot net>
509
510         * gst/gstiterator.c: (gst_iterator_new):
511           Fix my previous commit: GTypes passed to gst_iterator_new()
512           can be fundamental types.
513
514 2005-10-10  Wim Taymans  <wim@fluendo.com>
515
516         * gst/gstelement.c: (gst_element_iterate_pad_list),
517         (gst_element_iterate_pads), (gst_element_iterate_src_pads),
518         (gst_element_iterate_sink_pads):
519         Use src/sink pads lists for the respective iterators instead
520         of filtering.
521
522 2005-10-10  Andy Wingo  <wingo@pobox.com>
523
524         Merged in popt removal + GOption addition patch from Ronald, bug
525         #169772.
526
527         * docs/gst/gstreamer-sections.txt: Add STATE_(UN)LOCK_FULL, move
528         GstElement macros around, remove popt-related symbols, add goption
529         stuff.
530
531         * configure.ac: Remove popt checks, require GLib 2.6 for GOption.
532         
533         * docs/gst/Makefile.am:
534         * docs/libs/Makefile.am: No POPT_CFLAGS.
535         
536         * examples/manual/Makefile.am:
537         * docs/manual/basics-init.xml: Doc updates with an example.
538         
539         * gst/gst.c: (gst_init_get_option_group), (gst_init_check),
540         (gst_init), (parse_one_option), (parse_goption_arg):
541         * gst/gst.h: Removed gst_init_with_popt_table and friends. Took a
542         bit of hand merging and debugging to get the GOption stuff working
543         tho.
544         
545         * tests/Makefile.am:
546         * tools/Makefile.am:
547         * tools/gst-inspect.c: (main):
548         * tools/gst-launch.c: (main):
549         * tools/gst-run.c: (main):
550         * tools/gst-xmlinspect.c: (main): Thanks Ronald!
551
552 2005-10-10  Tim-Philipp Müller  <tim at centricular dot net>
553
554         * gst/gstiterator.c: (gst_iterator_new):
555           Add assertions to make sure passed GType is likely to really
556           be a GType (as the compiler won't catch it if the size and
557           GType arguments get mixed up, see #318447).
558
559 2005-10-10  Josef Zlomek  <josef dot zlomek at xeris dot cz>
560
561         Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>
562
563         * gst/gstbin.c: (gst_bin_iterate_sorted):
564           Pass GType and size arguments to gst_iterator_new() in the right
565           order (maybe we should make _new() take the GType as first argument
566           just like _new_list()?) (#318447).
567           
568
569 2005-10-10  Wim Taymans  <wim@fluendo.com>
570
571         * gst/gstelement.c: (gst_element_finalize):
572         And free the GStaticRecMutex too
573
574 2005-10-10  Andy Wingo  <wingo@pobox.com>
575
576         * gst/gstelement.c (gst_element_init, gst_element_finalize):
577         Allocate and free the mutex properly.
578
579         * gst/gstelement.h (GST_STATE_UNLOCK_FULL, GST_STATE_LOCK_FULL):
580         New macros.
581         (GstElement): The state_lock is now recursive. Rebuild your
582         plugins, suckers. Old macros adapted.
583
584         * docs/gst/gstreamer-sections.txt: Doc updates.
585
586         * gst/gstutils.h:
587         * gst/gstutils.c (g_static_rec_cond_timed_wait) 
588         (g_static_rec_cond_wait): Ported from state changes patch, while
589         we wait on bug #317802 to be solved in a well-distributed GLib.
590
591         * gst/gstelement.c (gst_element_change_state_func): Renamed from
592         gst_element_change_state, variable name changes.
593         (gst_element_change_state): Split out of gst_element_set_state in
594         preparation for the state change merge. Doesn't pay attention to
595         the 'transition' argument.
596         (gst_element_set_state): Updates, hopefully purely cosmetic.
597         (gst_element_sync_state_with_parent): MT-safety. Ported from the
598         state change patch.
599         (gst_element_get_state_func): Renamed from get_state, cosmetic
600         changes.
601
602 2005-10-10  Thomas Vander Stichele  <thomas at apestaart dot org>
603
604         * gst/elements/gstelements.c:
605         * win32/GStreamer.vcproj:
606         * win32/config.h:
607         * win32/dirent.c: (_tseekdir):
608         * win32/gst-inspect.vcproj:
609         * win32/gst-launch.vcproj:
610         * win32/gstconfig.h:
611         * win32/gstelements.vcproj:
612         * win32/gstenumtypes.c: (gst_object_flags_get_type):
613         * win32/gstreamer.def:
614         * win32/msvc71.sln:
615           updates for the win32 build (patch from Sebastien Moutte)
616
617 2005-10-10  Andy Wingo  <wingo@pobox.com>
618
619         * gst/gstbin.c (gst_bin_get_state_func): Renamed from
620         gst_bin_get_state, cleaned up (but no logic changes).
621         (bin_element_is_sink): Comment updates.
622         (sink_iterator_filter): Remove needless cast.
623         (gst_bin_iterate_sinks): Doc update.
624         (gst_bin_change_state_func): Renamed from gst_bin_change_state,
625         cleaned up (but no logic changes).
626
627         * check/states/sinks.c (test_src_sink): Cleanups from the state
628         change patch.
629         (test_livesrc_sink): Sync on the state.
630
631         * check/pipelines/simple_launch_lines.c (run_pipeline): Merge from
632         the state change patch.
633
634         * check/gst/gstghostpad.c (test_ghost_pads): Merge from the state
635         change patch.
636
637         * check/gst/gstbin.c: Merge in some style fixes and additional
638         checks from Wim's state change patch.
639
640 2005-10-10  Tim-Philipp Müller  <tim at centricular dot net>
641
642         * gst/base/gsttypefindhelper.c: (helper_find_peek),
643         (gst_type_find_helper):
644           Check whether we have the requested data already in our list of
645           cached buffers before pulling a new buffer; also make the buffer
646           list a GSList. Speeds up typefinding by ca. 5-10% altogether.
647
648 2005-10-10  Thomas Vander Stichele  <thomas at apestaart dot org>
649
650         * gst/gstcaps.c:
651         * gst/gstevent.c:
652           doc updates
653         * gst/gstvalue.c: (gst_value_deserialize_int_helper):
654           don't use long long, it's not portable.  Replacing with
655           gint64 seems to work; let's hope no skeletons fall out of the closet.
656
657 2005-10-10  Andy Wingo  <wingo@pobox.com>
658
659         * autogen.sh (CONFIGURE_DEF_OPT): No more --plugin-buiddir, yay
660
661 2005-10-09  Stefan Kost  <ensonic@users.sf.net>
662
663         * docs/gst/gstreamer-sections.txt:
664         * gst/gstevent.c:
665         * gst/gstevent.h:
666         * gst/gstinfo.c:
667         * gst/gstinfo.h:
668         * gst/gstmessage.c: (gst_message_parse_state_changed):
669         * gst/gstpad.c:
670         * gst/gstpad.h:
671           more docs, fix compilation
672
673 2005-10-09  Philippe Khalaf <burger@speedy.org>
674         * gst/gstmessage.c:
675         Fixed a few forgotten variables on previous commit
676
677 2005-10-09  Tim-Philipp Müller  <tim at centricular dot net>
678
679         * gst/base/gsttypefindhelper.c: (helper_find_peek):
680           Fix evil typefind crasher: getrange() might return a short
681           buffer at the end of a file, but gst_type_find_peek() must
682           either return the full data as requested or NULL, but
683           never a short buffer.
684
685 2005-10-09  Thomas Vander Stichele  <thomas at apestaart dot org>
686
687         * gst/gstmessage.c: (gst_message_new_state_changed),
688         (gst_message_parse_state_changed):
689         * gst/gstmessage.h:
690           don't use "new", it's a C++ keyword
691
692 2005-10-08  Wim Taymans  <wim@fluendo.com>
693
694         * gst/gstbin.c: (is_eos), (update_degree), (gst_bin_query):
695         * gst/gstelement.c: (gst_element_post_message):
696         * gst/gstpipeline.c: (gst_pipeline_change_state):
697         Small docs and debug updates.
698
699 2005-10-08  Stefan Kost  <ensonic@users.sf.net>
700
701         * docs/gst/gstreamer-sections.txt:
702         * gst/gstelementfactory.c:
703         * gst/gstevent.c:
704         * gst/gsttaglist.c:
705           more docs
706
707 2005-10-08  Wim Taymans  <wim@fluendo.com>
708
709         * gst/gstbin.c: (is_eos), (update_degree), (gst_bin_change_state),
710         (gst_bin_dispose), (bin_bus_handler):
711         Fix typos, add comments.
712         Clear EOS list when going to PAUSED from any direction and do it
713         in a threadsafe way.
714         Get base time in a threadsafe way too.
715         Fix confusing debug in the change_state function.
716         Various other small cleanups.
717         
718         * gst/gstelement.c: (gst_element_post_message):
719         Fix very verbose bus posting code.
720
721         * gst/gstpipeline.c: (gst_pipeline_class_init),
722         (gst_pipeline_set_property), (gst_pipeline_get_property),
723         (gst_pipeline_change_state):
724         Small ARG_ -> PROP_ cleanup
725
726 2005-10-08  Wim Taymans  <wim@fluendo.com>
727
728         * gst/gstbin.c: (is_eos), (bin_bus_handler):
729         Do a less CPU demanding EOS check because we can.
730
731 2005-10-08  Wim Taymans  <wim@fluendo.com>
732
733         * libs/gst/dataprotocol/dataprotocol.c:
734         (gst_dp_header_from_buffer), (gst_dp_packet_from_caps),
735         (gst_dp_packet_from_event):
736         * libs/gst/dataprotocol/dataprotocol.h:
737         * libs/gst/dataprotocol/dp-private.h:
738         It's about time we bump the version number.
739         Since event types don't fit in the guint8 anymore describing
740         the payload type, make payload type 16 bits wide.
741
742 2005-10-08  Wim Taymans  <wim@fluendo.com>
743
744         * docs/design/part-TODO.txt:
745         * docs/design/part-clocks.txt:
746         * docs/design/part-events.txt:
747         * docs/design/part-gstbin.txt:
748         * docs/design/part-gstelement.txt:
749         * docs/design/part-gstpipeline.txt:
750         * docs/design/part-live-source.txt:
751         * docs/design/part-messages.txt:
752         * docs/design/part-overview.txt:
753         * docs/design/part-states.txt:
754         Many doc updates.
755
756 2005-10-08  Wim Taymans  <wim@fluendo.com>
757
758         * gst/gstevent.c:
759         * gst/gstevent.h:
760         Fix event quark registration.
761         Add some space between events so we can insert them in the
762         right groups.
763
764 2005-10-08  Wim Taymans  <wim@fluendo.com>
765
766         * gst/base/gstbasesink.c: (gst_base_sink_handle_object),
767         (gst_base_sink_handle_buffer):
768         Better log message.
769
770         * gst/gstbus.h:
771         * gst/gstelement.h:
772         More docs.
773
774         * gst/gstqueue.c: (gst_queue_class_init), (gst_queue_init),
775         (gst_queue_set_property), (gst_queue_get_property):
776         * gst/gstqueue.h:
777         Remove old unused properties.
778
779 2005-10-08  Stefan Kost  <ensonic@users.sf.net>
780         * docs/gst/gstreamer-sections.txt:
781         * gst/gstmessage.c:
782         * gst/gstmessage.h:
783         * gst/gstminiobject.c:
784         * gst/gstminiobject.h:
785         * gst/gstobject.h:
786         * gst/gstpad.h:
787         * gst/gstutils.h:
788           lots of new docs and doc fixes
789
790 2005-10-08  Thomas Vander Stichele  <thomas at apestaart dot org>
791
792         * gst/gstplugin.c: (gst_plugin_finalize), (gst_plugin_load_file):
793         * gst/gstplugin.h:
794         * gst/gstregistry.c: (gst_registry_lookup_locked),
795         (gst_registry_scan_path_level):
796         * gst/gstregistryxml.c: (load_plugin):
797           Only ever load one plugin for a given plugin basename.
798           This ensures correct overriding of GST_PLUGIN_PATH over
799           GST_PLUGIN_SYSTEM_PATH and of home dir plugins over
800           system installed plugins.
801
802 2005-10-08  Wim Taymans  <wim@fluendo.com>
803
804         * gst/base/gstbasesink.c: (gst_base_sink_handle_object),
805         (gst_base_sink_do_sync), (gst_base_sink_handle_buffer):
806         Prepare for doing QOS.
807
808 2005-10-08  Wim Taymans  <wim@fluendo.com>
809
810         * check/gst/gstbin.c: (GST_START_TEST):
811         * check/pipelines/cleanup.c: (GST_START_TEST):
812         * check/pipelines/simple_launch_lines.c: (GST_START_TEST):
813         Allow new clock message too.
814
815 2005-10-08  Wim Taymans  <wim@fluendo.com>
816
817         * gst/gstmessage.c: (gst_message_new_error),
818         (gst_message_new_warning), (gst_message_new_tag),
819         (gst_message_new_state_changed), (gst_message_new_clock_provide),
820         (gst_message_new_clock_lost), (gst_message_new_new_clock),
821         (gst_message_new_segment_start), (gst_message_new_segment_done),
822         (gst_message_parse_state_changed),
823         (gst_message_parse_clock_provide), (gst_message_parse_clock_lost),
824         (gst_message_parse_new_clock):
825         * gst/gstmessage.h:
826         Also carry the clock in question.
827
828 2005-10-08  Wim Taymans  <wim@fluendo.com>
829
830         * gst/gstmessage.c: (gst_message_new_custom),
831         (gst_message_new_eos), (gst_message_new_error),
832         (gst_message_new_warning), (gst_message_new_tag),
833         (gst_message_new_state_changed), (gst_message_new_clock_provide),
834         (gst_message_new_new_clock), (gst_message_new_segment_start),
835         (gst_message_new_segment_done), (gst_message_parse_state_changed),
836         (gst_message_parse_clock_provide), (gst_message_parse_new_clock):
837         * gst/gstmessage.h:
838         Clean up.
839         Added clock related messages.
840
841         * gst/gstpipeline.c: (gst_pipeline_change_state):
842         Post message when the clock changed.
843
844         * tools/gst-launch.c: (event_loop):
845         Print new clock.
846
847 2005-10-08  Tim-Philipp Müller  <tim at centricular dot net>
848
849         * tools/gst-inspect.c: (print_element_properties_info):
850           Can't pass NULL strings to g_print() on windows.
851
852 2005-10-08  Thomas Vander Stichele  <thomas at apestaart dot org>
853
854         * docs/Makefile.am:
855         * docs/gst/Makefile.am:
856         * docs/gst/gstreamer-docs.sgml:
857         * docs/gst/running.xml:
858         * docs/version.entities.in:
859           add a chapter on running GStreamer.
860           document GST_DEBUG and GST_PLUGIN* env vars
861
862 2005-10-08  Thomas Vander Stichele  <thomas at apestaart dot org>
863
864         * Makefile.am:
865           remove include dir
866         * configure.ac:
867           remove PLUGINS_BUILDDIR stuff
868         * gst/gst.c: (init_post):
869           reorder parsing of GST_PLUGIN_PATH and GST_PLUGIN_SYSTEM_PATH
870         * idiottest.mak:
871           remove, it was condescending and not needed
872
873 2005-10-08  Wim Taymans  <wim@fluendo.com>
874
875         * gst/base/gstbasesink.c: (gst_base_sink_preroll_queue_flush),
876         (gst_base_sink_handle_object), (gst_base_sink_event),
877         (gst_base_sink_wait), (gst_base_sink_handle_event),
878         (gst_base_sink_change_state):
879         * gst/base/gstbasesink.h:
880         Repost EOS message while going to PLAYING if still EOS.
881         Make sure that when receiving a FLUSH_START we don't attempt
882         to sync on the clock anymore.
883
884 2005-10-08  Wim Taymans  <wim@fluendo.com>
885
886         * tools/gst-launch.c: (event_loop):
887         Better message printout.
888
889 2005-10-08  Wim Taymans  <wim@fluendo.com>
890
891         * gst/gstbin.c: (gst_bin_child_proxy_get_child_by_index),
892         (gst_bin_child_proxy_get_children_count):
893         * gst/gstchildproxy.c: (gst_child_proxy_get_child_by_name),
894         (gst_child_proxy_lookup), (gst_child_proxy_get_property),
895         (gst_child_proxy_get_valist), (gst_child_proxy_set_property),
896         (gst_child_proxy_set_valist):
897         * gst/parse/grammar.y:
898         Make ChildProxy threadsafe and fix mem leaks.
899
900 2005-10-08  Thomas Vander Stichele  <thomas at apestaart dot org>
901
902         * gst/gst.c: (init_post):
903           debug the GST_PLUGIN_ env vars
904
905 2005-10-08  Wim Taymans  <wim@fluendo.com>
906
907         * check/gst/gstbin.c: (GST_START_TEST):
908         * check/gst/gstmessage.c: (GST_START_TEST):
909         * check/gst/gstpipeline.c: (GST_START_TEST), (message_received):
910         * gst/gstelement.c: (gst_element_commit_state),
911         (gst_element_lost_state):
912         * gst/gstmessage.c: (gst_message_new_state_changed),
913         (gst_message_parse_state_changed):
914         * gst/gstmessage.h:
915         * tools/gst-launch.c: (event_loop):
916         Added extra field to STATE_CHANGE message with the pending
917         state, which will be different from the new state soon.
918
919 2005-10-08  Wim Taymans  <wim@fluendo.com>
920
921         * gst/gstbus.c: (gst_bus_pop):
922         * gst/gstclock.c:
923         * gst/gstsystemclock.c: (gst_system_clock_async_thread):
924         Small cleanups and doc updates.
925
926 2005-10-08  Thomas Vander Stichele  <thomas at apestaart dot org>
927
928         * gst/gst.c: (init_pre):
929         * gst/gstbin.c: (gst_bin_add_func):
930           log distributing clocks and base time
931         * gst/gstregistry.c: (gst_registry_add_plugin),
932         (gst_registry_scan_path_level), (gst_registry_scan_path):
933           clean up the debugging output a little
934         * gst/gstutils.c: (gst_element_state_get_name):
935           warn about a memleak (I've actually seen this be used, though
936           it was probably a bug)
937
938 2005-10-07  Wim Taymans  <wim@fluendo.com>
939
940         * gst/base/gstbasesrc.c: (gst_base_src_class_init),
941         (gst_base_src_init), (gst_base_src_default_newsegment),
942         (gst_base_src_newsegment), (gst_base_src_do_seek),
943         (gst_base_src_loop), (gst_base_src_start):
944         * gst/base/gstbasesrc.h:
945         Make the newsegment event customizable by subclasses.
946
947 2005-10-07  Wim Taymans  <wim@fluendo.com>
948
949         * gst/gstevent.c: (gst_event_new_buffersize),
950         (gst_event_parse_buffersize):
951         * gst/gstevent.h:
952         New event for future idea.
953
954 2005-10-07  Andy Wingo  <wingo@pobox.com>
955
956         * gst/gstelement.c (gst_element_post_message): Doc update.
957
958         * docs/gst/gstreamer-sections.txt: Update.
959
960         * gst/gstmessage.c (gst_message_new_application): Made into a
961         function like honest API calls.
962         (gst_message_new_element): New message type.
963
964         * gst/gstmessage.h (enum): Add GST_MESSAGE_ELEMENT type.
965
966         * check/elements/fakesrc.c (test_no_preroll): New check, checks
967         that setting a live fakesrc to PAUSED returns NO_PREROLL both
968         times.
969
970         * gst/base/gstbasesrc.c (gst_base_src_change_state): Allow a
971         NO_PREROLL from gst_element_change_state to fall through.
972
973 2005-10-07  Wim Taymans  <wim@fluendo.com>
974
975         * gst/gstghostpad.c: (gst_ghost_pad_get_internal),
976         (gst_ghost_pad_do_activate_push):
977         Activating a ghostpad with no internal pad in push mode
978         is ok.
979
980 2005-10-07  Thomas Vander Stichele  <thomas at apestaart dot org>
981
982         * gst/gstobject.h:
983           there's no point in wrapping FLAG_SET/_UNSET in STMT macros.
984           Fixes compilation on Windows.
985
986 2005-10-07  Michael Smith <msmith@fluendo.com>
987
988         * tools/gst-inspect.c:
989           Print out feature and plugin count at the end when printing out
990           all features.
991
992 2005-10-04  Michael Smith <msmith@fluendo.com>
993
994         * gst/gsterror.c: (_gst_stream_errors_init):
995           Add another error string used in a few existing plugins.
996
997         * gst/gstplugin.c:
998         * gst/gstpluginfeature.c: (gst_plugin_feature_load):
999         * tools/gst-inspect.c: (print_element_info):
1000           When a feature disappears from a plugin (and the feature exists in
1001           the cached registry file), things went horribly wrong. This isn't a
1002           complete fix, we should actually be removing the 'missing' features
1003           from the features list when we load the actual plugin. That's not
1004           yet implemented. 
1005
1006 2005-10-04  Johan Dahlin  <johan@gnome.org>
1007
1008         * check/gst/gstiterator.c: (GST_START_TEST):
1009         * gst/gstbin.c: (gst_bin_iterate_elements),
1010         (gst_bin_iterate_recurse), (gst_bin_iterate_sorted):
1011         * gst/gstelement.c: (gst_element_iterate_pads):
1012         * gst/gstformat.c: (gst_format_iterate_definitions):
1013         * gst/gstiterator.c: (gst_iterator_init), (gst_iterator_new),
1014         (gst_iterator_new_list), (gst_iterator_filter):
1015         * gst/gstiterator.h:
1016         * gst/gstquery.c: (gst_query_type_iterate_definitions):
1017         Add a GType to GstIterator, update callsites and tests.
1018
1019 2005-10-06  Thomas Vander Stichele  <thomas at apestaart dot org>
1020
1021         * gst/gstpad.c: (gst_pad_event_default_dispatch):
1022           give events a chance to be handled by event probes when the pad
1023           is not linked
1024
1025 2005-10-06  Thomas Vander Stichele  <thomas at apestaart dot org>
1026
1027         * gst/gstevent.c: (gst_event_type_get_name),
1028         (gst_event_type_to_quark), (gst_event_finalize), (gst_event_new):
1029         * gst/gstevent.h:
1030           add string representations for event types
1031
1032 2005-10-06  Wim Taymans  <wim@fluendo.com>
1033
1034         * gst/elements/gstfilesink.c: (gst_file_sink_close_file):
1035         Don't use NULL pointers.
1036
1037 2005-10-06  Thomas Vander Stichele  <thomas at apestaart dot org>
1038
1039         * gst/gst_private.h:
1040         * gst/gstbus.c:
1041         * gst/gstelement.c:
1042         * gst/gstinfo.c:
1043         * gst/gstpluginfeature.c:
1044           widen the debug category in output to fit the biggest one we have
1045           add a bus category and use it
1046           play with the colors
1047           fix up some categories
1048
1049 2005-10-06  Thomas Vander Stichele  <thomas at apestaart dot org>
1050
1051         * gst/gstghostpad.c: (gst_ghost_pad_internal_do_activate_push):
1052           add push activation of sink ghost pads.
1053           Andye, please verify
1054
1055 2005-10-05  Thomas Vander Stichele  <thomas at apestaart dot org>
1056
1057         * gst/gstutils.c: (gst_element_link_pads):
1058           fix a bug in the case where neither element has a pad
1059         * check/gst/gstelement.c: (GST_START_TEST), (gst_element_suite):
1060           add a test for that case
1061
1062 2005-10-05  Thomas Vander Stichele  <thomas at apestaart dot org>
1063
1064         * gst/gstpad.c: (gst_pad_push), (gst_pad_push_event):
1065           emit have-data before checking for peers.  This allows
1066           for probe handlers to connect elements.  This helps autopluggers.
1067         * check/gst/gstpad.c: (GST_START_TEST), (_probe_handler),
1068         (gst_pad_suite):
1069           add six checks, linked/unlinked with no/true/false probe
1070
1071 2005-10-04  Wim Taymans  <wim@fluendo.com>
1072
1073         * gst/elements/gstfakesink.c: (gst_fake_sink_get_property),
1074         (gst_fake_sink_event), (gst_fake_sink_preroll),
1075         (gst_fake_sink_render), (gst_fake_sink_change_state):
1076         * gst/elements/gstfakesrc.c: (gst_fake_src_event_handler),
1077         (gst_fake_src_get_property), (gst_fake_src_create),
1078         (gst_fake_src_stop):
1079         * gst/elements/gstidentity.c: (gst_identity_stop):
1080         Protect last_message with lock.
1081
1082 2005-10-04  Edward Hervey  <edward@fluendo.com>
1083
1084         * gst/gstformat.h: 
1085         Added precision in the comments for GST_FORMAT_DEFAULT
1086
1087 2005-10-04  Tim-Philipp Müller  <tim at centricular dot net>
1088
1089         * tools/gst-launch.c: (main):
1090           Don't try to run erroneous pipelines.
1091
1092 2005-10-04  Julien MOUTTE  <julien@moutte.net>
1093
1094         * gst/gstbus.c: We don't need this header.
1095
1096 2005-10-03  Thomas Vander Stichele  <thomas at apestaart dot org>
1097
1098         * configure.ac:
1099           back to development
1100
1101 === release 0.9.3 ===
1102
1103 2005-10-03  Thomas Vander Stichele  <thomas at apestaart dot org>
1104
1105         * README:
1106         * configure.ac:
1107           Releasing 0.9.3, "Unregistered"
1108
1109 2005-10-03  Andy Wingo  <wingo@pobox.com>
1110
1111         * gst/gstpad.c (gst_pad_activate_push): There is a race condition
1112         whereby calling a pad's activatepush() function can start a thread
1113         that starts to push or pull before the pad gets the FLUSHING flag
1114         unset. Hack around it by holding the stream lock until the flag is
1115         set. Need to replace this with a proper solution. Together with
1116         the ghost pad fixes, this fixes mp3 playing/tagreading.
1117
1118         * docs/design/part-gstghostpad.txt: Add a note about activation of
1119         proxy pads outside of ghost pads.
1120
1121         * gst/gstghostpad.c: Implement the ghost pad activation design.
1122
1123 2005-10-02  Andy Wingo  <wingo@pobox.com>
1124
1125         * gst/gstobject.h (GST_OBJECT_REFCOUNT_VALUE): Just use the int.
1126         It is volatile, after all.
1127
1128         * docs/design/part-gstghostpad.txt: Flesh out activation with
1129         ghost pads.
1130
1131         * gst/base/gstbasesrc.c (gst_base_src_init): Use
1132         GST_DEBUG_FUNCPTR.
1133
1134 2005-10-02  Tim-Philipp Müller  <tim at centricular dot net>
1135
1136         * configure.ac:
1137           Fix (unused) AM_CONDITIONAL tests.
1138
1139 2005-10-01  Alessandro Decina  <alessandro at nnva dot org>
1140
1141         Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>
1142
1143         * gst/gstutils.c: (gst_pad_query_convert):
1144           Add assertion that makes sure src_val is >=0, just like
1145           gst_query_new_convert() has. (#315895)
1146
1147 2005-09-30  Edward Hervey  <edward@fluendo.com>
1148
1149         * gst/elements/gsttee.c: (gst_tee_do_push), (gst_tee_handle_buffer):
1150         Let's not iterate pads we're not interested in, it avoids getting 
1151         sky-high refcounts on sinkpad.
1152
1153 2005-09-30  Wim Taymans  <wim@fluendo.com>
1154
1155         * gst/gstelement.c: (gst_element_set_state),
1156         (gst_element_change_state):
1157         Small tweak, element in ASYNC remains ASYNC.
1158
1159 2005-09-30  Wim Taymans  <wim@fluendo.com>
1160
1161         * gst/base/gstbasesink.c: (gst_base_sink_change_state):
1162         Only error is an error.
1163
1164         * gst/gstbin.c: (gst_bin_change_state):
1165         Better debugging.
1166
1167         * gst/gstpad.c: (gst_pad_alloc_buffer), (gst_pad_chain):
1168         Also call pad_block in pad alloc.
1169
1170         * gst/gstutils.c: (gst_flow_get_name):
1171         Better debugging.
1172
1173 2005-09-29  Tim-Philipp Müller  <tim at centricular dot net>
1174
1175         * gst/base/gstbasesrc.c: (gst_base_src_class_init),
1176         (gst_base_src_get_range):
1177           Fix documentation typos. Add some more debug info.
1178
1179 2005-09-29  David Schleef  <ds@schleef.org>
1180
1181         * gst/gstplugin.c: (gst_plugin_load_file): Make some error messages
1182           more end-user friendly.
1183         * tools/gst-inspect.c: (main): Check if command-line argument is
1184           a file and attempt to load that file as a plugin.
1185
1186 2005-09-29  Thomas Vander Stichele  <thomas at apestaart dot org>
1187
1188         * check/gst/gstbin.c:
1189         * check/states/sinks.c:
1190           fix tests for the new warning
1191         * check/gst/gstpipeline.c:
1192           add a test for pipeline and bus interaction
1193         * gst/gstelement.c:
1194           elements should be NULL if they get disposed; add a warning if not
1195
1196 2005-09-29  Thomas Vander Stichele  <thomas at apestaart dot org>
1197
1198         * gst/gstobject.c:
1199           for 2.6 refcounting, make debug log more correct by printing
1200           the actual refcounts at the time of swap (Wim)
1201
1202 2005-09-29  Andy Wingo  <wingo@pobox.com>
1203
1204         * gst/gstbus.c (gst_bus_remove_signal_watch): New function,
1205         removes signal watches previously added via
1206         gst_bus_add_signal_watch.
1207         (gst_bus_add_signal_watch): Don't return the source id, just store
1208         it on the bus if there wasn't an id already.
1209
1210         * gst/gstbus.h (GstBus): Add a couple new fields. API changes for
1211         add_signal_watch and remove_signal_watch.
1212
1213 2005-09-29  Edward Hervey  <edward@fluendo.com>
1214
1215         * libs/gst/controller/gstcontroller.c: (gst_controller_new_list): 
1216         Better if we actually iterate the list :)
1217
1218 2005-09-29  Wim Taymans  <wim@fluendo.com>
1219
1220         * check/gst/gstbin.c: (GST_START_TEST):
1221         Change for new bus API.
1222
1223         * check/gst/gstbus.c: (message_func_eos), (message_func_app),
1224         (send_messages), (GST_START_TEST), (gstbus_suite):
1225         Change for new bus signal API.
1226
1227         * gst/gstbus.c: (gst_bus_class_init), (gst_bus_have_pending),
1228         (gst_bus_source_prepare), (gst_bus_source_check),
1229         (gst_bus_create_watch), (gst_bus_add_watch_full),
1230         (gst_bus_add_watch), (gst_bus_poll), (gst_bus_async_signal_func),
1231         (gst_bus_sync_signal_handler), (gst_bus_add_signal_watch):
1232         * gst/gstbus.h:
1233         Remove support for multiple GSources operating on different
1234         message types as it is too complex and unneeded when using
1235         signals.
1236         Added support for receiving signals from the bus.
1237
1238 2005-09-29  Thomas Vander Stichele  <thomas at apestaart dot org>
1239
1240         * docs/libs/tmpl/gstdataprotocol.sgml:
1241         * docs/manual/advanced-dataaccess.xml:
1242         * gst/elements/gstcapsfilter.c:
1243         * gst/gstutils.c:
1244           rename filter-caps to caps property
1245
1246 2005-09-29  Tim-Philipp Müller  <tim at centricular dot net>
1247
1248         * gst/gstvalue.c: (gst_value_deserialize_fraction):
1249           More robust fraction string parsing.
1250
1251         * docs/pwg/appendix-porting.xml:
1252           Mention gst_pad_use_explicit_caps() => gst_pad_use_fixed_caps()
1253
1254 2005-09-29  Tim-Philipp Müller  <tim at centricular dot net>
1255
1256         * gst/gstcaps.c: (gst_caps_do_simplify):
1257           Thou shalt not free a structure and then continue using it
1258           in the next loop iteration.
1259
1260         * check/gst/gstcaps.c: (check_fourcc_list), (test_simplify),
1261         (gst_caps_suite):
1262           Add test case for caps simplification.
1263
1264 2005-09-29  Wim Taymans  <wim@fluendo.com>
1265
1266         * check/gst/gstbin.c: (GST_START_TEST):
1267         Oops.
1268
1269 2005-09-29  Wim Taymans  <wim@fluendo.com>
1270
1271         * check/gst/gstbin.c: (GST_START_TEST):
1272         Add bus to bin.
1273
1274         * gst/gstbin.c: (gst_bin_class_init), (gst_bin_init),
1275         (add_to_queue), (clear_queue), (reset_degree), (update_degree),
1276         (find_element), (gst_bin_sort_iterator_next),
1277         (gst_bin_sort_iterator_resync), (gst_bin_sort_iterator_free),
1278         (gst_bin_iterate_sorted), (gst_bin_element_set_state),
1279         (gst_bin_change_state), (gst_bin_dispose):
1280         A bin does not have a bus, it gets the bus from the parent.
1281
1282         * gst/gstelement.c: (gst_element_requires_clock),
1283         (gst_element_provides_clock), (gst_element_is_indexable),
1284         (gst_element_is_locked_state), (gst_element_change_state),
1285         (gst_element_set_bus_func):
1286         Small cleanups.
1287
1288         * gst/gstpipeline.c: (gst_pipeline_class_init),
1289         (gst_pipeline_init), (gst_pipeline_provide_clock_func):
1290         The pipeline provides a bus.
1291
1292 2005-09-28  Johan Dahlin  <johan@gnome.org>
1293
1294         * gst/gstmessage.c (gst_message_parse_state_changed): Use
1295         gst_structure_get_enum instead of gst_structure_get_int
1296
1297         * gst/gststructure.c (gst_structure_get_enum): Impl.
1298
1299         * gst/gststructure.h (gst_structure_get_enum): Add
1300
1301         * docs/gst/gstreamer-sections.txt: Ditto
1302
1303         * gst/gstmessage.c (gst_message_new_state_changed): Use
1304         GST_TYPE_STATE instead of G_TYPE_INT, mainly for language bindings
1305         which does introspection.
1306         Reviewed by Christian Schaller
1307
1308 2005-09-28  Stefan Kost  <ensonic@users.sf.net>
1309
1310         * gst/gstinfo.c: (gst_debug_log_default):
1311           don't do dummy g_strdup()s
1312         * libs/gst/controller/gstcontroller.c:
1313         (on_object_controlled_property_changed),
1314         (gst_controlled_property_new), (gst_controller_new_valist),
1315         (gst_controller_new_list),
1316         (gst_controller_remove_properties_valist), (gst_controller_set),
1317         (gst_controller_get), (gst_controller_sync_values),
1318         (gst_controller_get_value_array), (_gst_controller_class_init),
1319         (gst_controller_get_type):
1320         * libs/gst/controller/gstcontroller.h:
1321         * libs/gst/controller/gstinterpolation.c:
1322         (gst_controlled_property_find_timed_value_node):
1323           convert // to /**/ comments
1324
1325 2005-09-28  Wim Taymans  <wim@fluendo.com>
1326
1327         * gst/gstbus.c: (marshal_VOID__MINIOBJECT), (gst_bus_class_init),
1328         (gst_bus_post), (poll_func), (gst_bus_async_signal_func),
1329         (gst_bus_sync_signal_handler):
1330         * gst/gstbus.h:
1331         Added async-message and sync-message signals to the bus.
1332         Added helper BusFunc to emit signals for all posted messages.
1333
1334         * gst/gstmessage.c: (gst_message_type_get_name),
1335         (gst_message_type_to_quark), (gst_message_get_type):
1336         * gst/gstmessage.h:
1337         Register quarks for message names.
1338
1339 2005-09-28  Stefan Kost  <ensonic@users.sf.net>
1340
1341         * docs/libs/gstreamer-libs-sections.txt:
1342         * libs/gst/controller/gstcontroller.c: (gst_controller_new_valist),
1343         (gst_controller_new_list):
1344         * libs/gst/controller/gstcontroller.h:
1345           added another constructor for language bindings
1346
1347 2005-09-28  Thomas Vander Stichele  <thomas at apestaart dot org>
1348
1349         * check/gst/gstpipeline.c: (GST_START_TEST), (gst_pipeline_suite):
1350           add another check
1351         * gst/gstbus.c:
1352           add some doc
1353         * gst/gstinfo.c: (_gst_debug_init):
1354           slightly more readable color for refcount debugging
1355
1356 2005-09-28  Wim Taymans  <wim@fluendo.com>
1357
1358         * gst/gstbin.c: (gst_bin_class_init), (gst_bin_provide_clock_func),
1359         (add_to_queue), (clear_queue), (reset_degree), (update_degree),
1360         (find_element), (gst_bin_sort_iterator_next),
1361         (gst_bin_sort_iterator_resync), (gst_bin_sort_iterator_free),
1362         (gst_bin_iterate_sorted), (gst_bin_element_set_state),
1363         (gst_bin_change_state), (gst_bin_dispose):
1364         Small doc fixes. get_clock -> provide_clock.
1365
1366         * gst/gstelement.c: (gst_element_class_init),
1367         (gst_element_provides_clock), (gst_element_provide_clock),
1368         (gst_element_get_clock), (gst_element_commit_state),
1369         (gst_element_lost_state):
1370         * gst/gstelement.h:
1371         Make get/set_clock() symetric. Add provide_clock vmethod since
1372         that is actually what this function does.
1373
1374         * gst/gstpipeline.c: (gst_pipeline_class_init),
1375         (gst_pipeline_change_state), (gst_pipeline_provide_clock_func),
1376         (gst_pipeline_get_clock):
1377         get_clock -> provide_clock.
1378
1379 2005-09-28  Andy Wingo  <wingo@pobox.com>
1380
1381         * gst/base/gstbasesrc.c (gst_base_src_unlock): Comment a bit in
1382         lieu of real docs...
1383
1384         * gst/elements/gstfdsrc.c: Cleaned up a bit.
1385
1386 2005-09-28  Tim-Philipp Müller  <tim at centricular dot net>
1387
1388         * gst/elements/gstcapsfilter.c:
1389         * gst/elements/gstfakesink.c:
1390         * gst/elements/gstfakesrc.c:
1391         * gst/elements/gstfdsink.c:
1392         * gst/elements/gstfdsrc.c:
1393         * gst/elements/gstfilesink.c:
1394         * gst/elements/gstfilesrc.c:
1395         * gst/elements/gstidentity.c:
1396         * gst/elements/gsttee.c:
1397         * gst/elements/gsttypefindelement.c:
1398           Make element details static.
1399
1400 2005-09-28  Wim Taymans  <wim@fluendo.com>
1401
1402         * gst/gstbin.c: (add_to_queue), (clear_queue), (reset_outdegree),
1403         (update_outdegree), (find_element), (gst_bin_sort_iterator_next),
1404         (gst_bin_sort_iterator_resync), (gst_bin_sort_iterator_free),
1405         (gst_bin_iterate_sorted), (gst_bin_element_set_state),
1406         (gst_bin_change_state), (gst_bin_dispose):
1407         Some documentation updates.
1408         Clean up dispose handlers.
1409
1410         * gst/gstobject.c: (gst_object_ref), (gst_object_unref):
1411         * gst/gstpad.c: (gst_pad_dispose):
1412         Clean up dispose handler.
1413
1414         * gst/gstpipeline.c: (gst_pipeline_change_state):
1415         Removed spurious UNLOCK.
1416
1417 2005-09-27  Stefan Kost  <ensonic@users.sf.net>
1418
1419         * docs/gst/gstreamer-sections.txt:
1420         * gst/base/gstbasesrc.h:
1421         * gst/gstelement.h:
1422         * gst/gstevent.h:
1423         * gst/gstobject.h:
1424         * gst/gstpad.h:
1425         * gst/gstpipeline.c:
1426         * gst/gstpipeline.h:
1427         * gst/gstutils.h:
1428         * gst/gstxml.h:
1429           added two new functions to the docs
1430                 documents all undocumented GstXXXFlags
1431                 completed some incomplete docs 
1432
1433 2005-09-27  Thomas Vander Stichele  <thomas at apestaart dot org>
1434
1435         * gst/gstbin.c: (gst_bin_dispose):
1436         * gst/gstelement.c: (gst_element_dispose):
1437           remove now useless and leaky resurrection code in dispose
1438         * gst/base/gstbasesrc.c: (gst_base_src_init):
1439         * gst/gstelementfactory.c: (gst_element_factory_create):
1440         * gst/gstobject.c: (gst_object_set_parent):
1441           add some debugging
1442
1443 2005-09-27  Wim Taymans  <wim@fluendo.com>
1444
1445         * docs/design/part-TODO.txt:
1446         Update TODO.
1447
1448         * gst/gstbin.c: (add_to_queue), (clear_queue), (reset_outdegree),
1449         (update_outdegree), (find_element), (gst_bin_sort_iterator_next),
1450         (gst_bin_sort_iterator_resync), (gst_bin_sort_iterator_free),
1451         (gst_bin_iterate_sorted), (gst_bin_element_set_state),
1452         (gst_bin_change_state):
1453         * gst/gstelement.h:
1454         Remove element variable, we keep element info in the iterator now.
1455
1456 2005-09-27  Andy Wingo  <wingo@pobox.com>
1457
1458         * libs/gst/dataprotocol/dataprotocol.c: Fix error-checking return
1459         values.
1460
1461 2005-09-27  Wim Taymans  <wim@fluendo.com>
1462
1463         * check/gst/gstbin.c: (GST_START_TEST):
1464         Enable check that works now.
1465
1466         * gst/gstbin.c: (add_to_queue), (clear_queue), (reset_outdegree),
1467         (update_outdegree), (find_element), (gst_bin_sort_iterator_next),
1468         (gst_bin_sort_iterator_resync), (gst_bin_sort_iterator_free),
1469         (gst_bin_iterate_sorted), (gst_bin_element_set_state),
1470         (gst_bin_change_state):
1471         * gst/gstbin.h:
1472         Redid the state change algorithm using a topological sort algo.
1473         Handles all cases correctly.
1474         Exposed iterator for state change order.
1475
1476         * gst/gstelement.h:
1477         Temp storage for state changes. Need to get rid of this soon.
1478
1479 2005-09-27  Wim Taymans  <wim@fluendo.com>
1480
1481         * gst/elements/gsttee.c: (gst_tee_init), (gst_tee_do_push):
1482         * gst/gstutils.c: (intersect_caps_func), (gst_pad_proxy_getcaps),
1483         (link_fold_func), (gst_pad_proxy_setcaps):
1484         Leak fixes, the fold functions need to unref the passed object and
1485         _get_parent_*() returns ref to parent.
1486
1487 2005-09-27  Tim-Philipp Müller  <tim at centricular dot net>
1488
1489         * check/gst/gstbuffer.c: (test_make_writable):
1490           Plug leak in test case and fix 'make check-valgrind'
1491
1492 2005-09-27  Tim-Philipp Müller  <tim at centricular dot net>
1493
1494         * gst/gstbuffer.c: (gst_subbuffer_init):
1495           Set READONLY flag on subbuffers, so that gst_buffer_make_writable()
1496           works correctly in all circumstances (we could have just copied
1497           the parent buffer's readonly flag, but conceptually it seems
1498           cleaner to mark all subbuffers as read-only). (based on patch
1499           by Alessandro Decina, #314710).
1500         
1501         * check/gst/gstbuffer.c: (create_read_only_buffer),
1502         (test_make_writable), (test_subbuffer_make_writable),
1503         (gst_test_suite):
1504           Add some tests for gst_buffer_make_writable().
1505
1506 2005-09-27  Wim Taymans  <wim@fluendo.com>
1507
1508         * gst/gstbin.c: (bin_element_is_semi_sink), (gst_bin_change_state):
1509         use gst_object_has_ancestor().
1510
1511         * gst/gstobject.c: (gst_object_has_ancestor):
1512         * gst/gstobject.h:
1513         gst_object_has_ancestor() copied from gstbin.c as it is a
1514         usefull function.
1515
1516         * tests/instantiate/create.c: (create_all_elements):
1517         * tests/lat.c: (handoff_src), (handoff_sink):
1518         * tests/sched/runxml.c: (main):
1519         * tests/seeking/seeking1.c: (main):
1520         * tests/threadstate/threadstate2.c: (bus_handler), (timeout_func),
1521         (main):
1522         Fix compilation of some tests.
1523
1524 2005-09-27  Tim-Philipp Müller  <tim at centricular dot net>
1525
1526         * gst/gsterror.h:
1527           Remove comment. GST_TYPE_G_ERROR is here to stay,
1528           G_TYPE_ERROR has been WONTFIX'ed by the GLib folks
1529           (#316961, #300610).
1530
1531 2005-09-26  Wim Taymans  <wim@fluendo.com>
1532
1533         * check/gst/gstbin.c: (GST_START_TEST), (gst_bin_suite):
1534         Added check that shows error in state change order.
1535
1536 2005-09-26  Wim Taymans  <wim@fluendo.com>
1537
1538         * gst/gstbin.c: (gst_bin_change_state):
1539         Make state change function use 3 queues again, we were
1540         adding elements in the wrong order.
1541
1542         * gst/gstghostpad.c: (gst_ghost_pad_do_unlink):
1543         Some debug info,
1544
1545         * gst/gstpad.c: (gst_pad_dispose):
1546         Added some debug info first.
1547
1548 2005-09-26  Tim-Philipp Müller  <tim at centricular dot net>
1549
1550         * docs/design/draft-push-pull.txt:
1551         * docs/design/part-events.txt:
1552         * docs/design/part-overview.txt:
1553         * docs/design/part-scheduling.txt:
1554           Replace all _pull_region() with _pull_range()
1555           
1556 2005-09-26  Andy Wingo  <wingo@pobox.com>
1557
1558         * gst/gstvalue.c (_gst_value_initialize): Better fakeout.
1559
1560         * check/gst-libs/controller.c: Update for controller api change.
1561
1562         * configure.ac: 
1563         * tests/Makefile.am:
1564         * tests/memchunk: Remove memchunk benchmark stuff, this is taken
1565         over by GLib bug 118439.
1566         
1567         * gst/base/gstbasesink.c (gst_base_sink_wait): Factor out the wait
1568         routines to a function.
1569
1570         * docs/libs/gstreamer-libs-sections.txt: I am a good person today.
1571
1572         * libs/gst/controller/gsthelper.c:
1573         * libs/gst/controller/gstcontroller.h (gst_controller_sync_values)
1574         (gst_object_sync_values): Renamed from sink_values. Ugh.
1575
1576         * libs/gst/controller/gsthelper.c: Update for __gst_controller_key.
1577
1578         * libs/gst/controller/gstcontroller.c (__gst_controller_key):
1579         Renamed from controller_key, as it is exported.
1580
1581         * gst/gstvalue.c (_gst_value_initialize): Fake out the compiler.
1582
1583 2005-09-26  Thomas Vander Stichele  <thomas at apestaart dot org>
1584
1585         * gst/Makefile.am:
1586         * gst/gst.h:
1587         * gst/gstpad.h:
1588         * gst/gstpadtemplate.h:
1589         * gst/gstquery.c:
1590         * gst/gstquery.h:
1591         * gst/gstqueryutils.c:
1592         * gst/gstqueryutils.h:
1593           remove queryutils headers after moving the two used functions
1594           to gstquery.  also fixes build problem for gstsiddec
1595
1596 2005-09-26  Michael Smith <msmith@fluendo.com>
1597
1598         * tools/gst-launch.1.in:
1599         Correct documentation in manpage of debug syntax
1600
1601 2005-09-26  Wim Taymans  <wim@fluendo.com>
1602
1603         * gst/base/gstbasesrc.c: (gst_base_src_get_range),
1604         (gst_base_src_is_seekable), (gst_base_src_change_state):
1605         Some more debugging info.
1606
1607 2005-09-25  Stefan Kost  <ensonic@users.sf.net>
1608
1609         * docs/gst/gstreamer-sections.txt:
1610         * gst/base/gstbasetransform.h:
1611         * gst/gstindex.h:
1612           added more docs
1613
1614 2005-09-25  Stefan Kost  <ensonic@users.sf.net>
1615
1616         * docs/gst/.cvsignore:
1617         * docs/gst/tmpl/.cvsignore:
1618         * docs/gst/tmpl/gstpipeline.sgml:
1619         * docs/gst/tmpl/gstplugin.sgml:
1620         * gst/gstpipeline.c:
1621         * gst/gstplugin.c:
1622         * gst/gstplugin.h:
1623           inlined the last two docs files
1624           removed the tmpl directory from cvs (no more conflicts here!)
1625
1626 2005-09-25  Stefan Kost  <ensonic@users.sf.net>
1627
1628         * docs/gst/gstreamer-sections.txt:
1629         * docs/gst/tmpl/.cvsignore:
1630         * docs/gst/tmpl/gstpad.sgml:
1631         * docs/gst/tmpl/gstpadtemplate.sgml:
1632         * gst/Makefile.am:
1633         * gst/gstpad.c: (gst_pad_class_init), (gst_pad_dispose),
1634         (gst_pad_finalize), (gst_pad_set_pad_template):
1635         * gst/gstpad.h:
1636         * gst/gstpadtemplate.c: (gst_pad_template_get_type),
1637         (gst_pad_template_class_init), (gst_pad_template_init),
1638         (gst_pad_template_dispose), (name_is_valid),
1639         (gst_static_pad_template_get), (gst_pad_template_new),
1640         (gst_static_pad_template_get_caps), (gst_pad_template_get_caps),
1641         (gst_pad_template_pad_created):
1642         * gst/gstpadtemplate.h:
1643           inlined two more docs
1644           factored gstpadtemplate out of gstpad
1645
1646 2005-09-24  Tim-Philipp Müller  <tim at centricular dot net>
1647
1648         * check/gst/gstbin.c: (test_children_state_change_order_flagged_sink),
1649         (test_children_state_change_order_semi_sink):
1650           Fix test case: we can't rely on a fixed state change order when
1651           going from READY => PAUSED because the sink might commit its 
1652           new state first when the first buffer created by the source 
1653           reaches the sink before the source has finished its change state.
1654           (Test case still fails at times, see #316856, comment 5 onwards)
1655
1656 2005-09-24  Wim Taymans  <wim@fluendo.com>
1657
1658         * docs/design/part-events.txt:
1659         * docs/design/part-gstbus.txt:
1660         * docs/design/part-gstpipeline.txt:
1661         * docs/design/part-messages.txt:
1662         * docs/design/part-overview.txt:
1663         * docs/design/part-segments.txt:
1664         * gst/gstbin.c:
1665         * gst/gstbuffer.c:
1666         * gst/gstclock.c:
1667         * gst/gstelement.c:
1668         * gst/gstevent.c:
1669         * gst/gstfilter.c:
1670         * gst/gstiterator.c:
1671         Various documentation updates.
1672
1673 2005-09-24  Thomas Vander Stichele  <thomas at apestaart dot org>
1674
1675         * gst/gstclock.h:
1676           Well, that's embarassing.  Luckily we weren't using
1677           GST_CLOCK_DIFF anywhere.
1678
1679 2005-09-23  Thomas Vander Stichele  <thomas at apestaart dot org>
1680
1681         * common/gtk-doc.mak:
1682           don't fail on building XML, FC4 slave shows a bunch of doc
1683           missing bits that I don't get
1684         * gst/gstpad.c:
1685         * gst/gstpipeline.c:
1686         * gst/gststructure.c:
1687           some doc updates
1688
1689 2005-09-23  Tim-Philipp Müller  <tim at centricular dot net>
1690
1691         * docs/design/part-gstbin.txt:
1692         * docs/design/part-gstbus.txt:
1693         * gst/gstbus.c:
1694           Add blurb about how the bus goes into flushing mode and
1695           drops all messages when its bin goes from READY into NULL 
1696           state.
1697
1698 2005-09-23  Thomas Vander Stichele  <thomas at apestaart dot org>
1699
1700         * docs/gst/gstreamer-sections.txt:
1701         * gst/gststructure.c: (gst_structure_get_clock_time):
1702         * gst/gststructure.h:
1703           add a method to get a GstClockTime out of a structure
1704
1705 2005-09-23  Tim-Philipp Müller  <tim at centricular dot net>
1706
1707         * check/gst/gstbin.c: (test_children_state_change_order_flagged_sink),
1708         (test_children_state_change_order_semi_sink), (gst_bin_suite):
1709           Added test to check state change order in bins (can still be made
1710           to fail here under heavy disk load; bails out with 'Push on pad
1711           fakesink:sink0, but it was not activated in push mode').
1712
1713         * gst/gstbin.c: (gst_bin_class_init), (gst_bin_change_state):
1714           Fix state change order when there is only a semi sink (#316856)
1715
1716         * gst/gstbus.c: (gst_bus_class_init):
1717           Use _class_peek_parent(), not _class_ref(); fix docs to say
1718           'default main context' instead of 'mainloop' where that is
1719           what's meant.
1720
1721         * gst/gstelement.c: (gst_element_commit_state),
1722         (gst_element_set_state):
1723           Fix typos in debug messages
1724
1725 2005-09-23  Thomas Vander Stichele  <thomas at apestaart dot org>
1726
1727         * docs/README:
1728         * gst/gstpad.c: (gst_pad_class_init), (gst_pad_chain):
1729         * gst/gstpluginfeature.c:
1730         * gst/gstutils.c:
1731           various doc updates
1732         * gst/base/gstbasesink.c: (gst_base_sink_handle_object):
1733           change an assert into an error until it gets fixed properly
1734
1735 2005-09-23  Stefan Kost  <ensonic@users.sf.net>
1736
1737         * docs/gst/gstreamer-sections.txt:
1738         * docs/gst/tmpl/.cvsignore:
1739         * docs/gst/tmpl/gstelement.sgml:
1740         * docs/gst/tmpl/gstinfo.sgml:
1741         * docs/gst/tmpl/gstobject.sgml:
1742         * gst/gstelement.c:
1743         * gst/gstelement.h:
1744         * gst/gstinfo.c:
1745         * gst/gstinfo.h:
1746         * gst/gstobject.c: (gst_object_class_init):
1747         * gst/gstobject.h:
1748           inlined 3 more biiiig doc files and added some missing docs on the fly
1749
1750 2005-09-23  Thomas Vander Stichele  <thomas at apestaart dot org>
1751
1752         * check/gst/.cvsignore:
1753         * check/gst/gstplugin.c: (GST_START_TEST), (gst_plugin_suite):
1754         * gst/gstregistryxml.c: (load_plugin),
1755         (gst_registry_xml_save_plugin):
1756           put back source in registry.  add checks for find_plugin.
1757         * testsuite/states/bin.c: (assert_state), (empty_bin),
1758         (test_adding_one_element), (main):
1759         * testsuite/states/locked.c: (main):
1760           some compile/run fixes
1761
1762 2005-09-22  Thomas Vander Stichele  <thomas at apestaart dot org>
1763
1764         * check/gst/gstvalue.c: (GST_START_TEST):
1765           fix leaks in the test itself
1766
1767 2005-09-22  Wim Taymans  <wim@fluendo.com>
1768
1769         * gst/base/gstbasesink.c: (gst_base_sink_class_init),
1770         (gst_base_sink_send_event), (gst_base_sink_peer_query),
1771         (gst_base_sink_query):
1772         Prepare for more accurate position reporting and query
1773         handling.
1774
1775         * gst/gstelement.c: (gst_element_send_event),
1776         (gst_element_set_state):
1777         Add some comment.
1778
1779 2005-09-22  Wim Taymans  <wim@fluendo.com>
1780
1781         * gst/gstquery.c: (gst_query_new_segment), (gst_query_set_segment),
1782         (gst_query_parse_segment):
1783         * gst/gstquery.h:
1784         More documentation.
1785         Add segment query for future use.
1786
1787 2005-09-22  Wim Taymans  <wim@fluendo.com>
1788
1789         * gst/gstbin.c: (gst_bin_add_func):
1790         Some more debug info.
1791
1792         * gst/gstelement.c: (gst_element_send_event):
1793         Simplify send_event
1794
1795         * gst/gstelement.h:
1796         Don't know how flags got broken.
1797
1798         * gst/gstquery.h:
1799         Added new query.
1800
1801 2005-09-22  Tim-Philipp Müller  <tim at centricular dot net>
1802
1803         * check/gst/gstvalue.c: (test_date), (gst_value_suite):
1804           Add simplistic test suite for GST_TYPE_DATE serialisation and
1805           deserialisation.
1806
1807 2005-09-22  Tim-Philipp Müller  <tim at centricular dot net>
1808
1809         * docs/gst/gstreamer-sections.txt:
1810         * gst/gststructure.c: (gst_structure_set_valist),
1811         (gst_structure_get_date):
1812         * gst/gststructure.h:
1813         * gst/gstvalue.c: (gst_value_set_date), (gst_value_get_date),
1814         (gst_date_copy), (gst_value_compare_date),
1815         (gst_value_serialize_date), (gst_value_deserialize_date),
1816         (gst_value_transform_date_string),
1817         (gst_value_transform_string_date), (_gst_value_initialize):
1818         * gst/gstvalue.h:
1819           Add GST_TYPE_DATE, a boxed type that wraps GDate, and the usual
1820           bunch of utility functions along with a hack that checks that
1821           developers don't accidentally use G_TYPE_DATE where GST_TYPE_DATE
1822           is required. Part of the grand scheme in #170777.
1823
1824 2005-09-22  Andy Wingo  <wingo@pobox.com>
1825
1826         * gst/gstconfig.h.in: Psych out gtk-doc.
1827
1828         * docs/gst/gstreamer-sections.txt: Add GST_HAVE_GLIB_2_8.
1829
1830         * check/Makefile.am (check_PROGRAMS): Add gstplugin to the tests.
1831
1832         * tools/gst-inspect.c (print_element_list): Plug some
1833         inconsequential leaks.
1834
1835         * gst/gstregistry.c (gst_registry_get_default): Doc.
1836
1837         * check/gst/gstplugin.c: 
1838         * gst/gsttypefindfactory.c (gst_type_find_factory_call_function):
1839         * gst/gstelementfactory.c (gst_element_factory_create): 
1840         * gst/gstindexfactory.c (gst_index_factory_create): Update for
1841         refcount changes.
1842
1843         * gst/gstpluginfeature.c (gst_plugin_feature_list_free): Doc.
1844         (gst_plugin_feature_load): Doc, don't eat refs.
1845
1846         * gst/gstplugin.c (gst_plugin_load): Doc, don't eat refs.
1847         (gst_plugin_list_free): Doc.
1848         (gst_plugin_load_file): Doc updates.
1849
1850         * gst/gstbuffer.c (gst_buffer_get_caps): Like all our _get
1851         accessors returning refcounted objects, return a ref.
1852
1853         * check/gst/gstbuffer.c (GST_START_TEST): Use refcount-idempotent
1854         accessor for caps. IDEMPOTENCE. Oh yes.
1855
1856 2005-09-21  Francis Labonte  <francis_labonte at hotmail dot com>
1857
1858         Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>
1859
1860         * gst/gstinfo.c: (_gst_debug_nameof_funcptr),
1861         (_gst_debug_register_funcptr):
1862           Add mutex to serialise access to the hash table with
1863           the function pointer => function name string mapping;
1864           make that hash table static scope (#316809).
1865
1866         * gst/registries/.cvsignore:
1867           Remove left-over file.
1868
1869 2005-09-21  Tim-Philipp Müller  <tim at centricular dot net>
1870
1871         * docs/pwg/appendix-porting.xml:
1872           And something about newsegment events and caps-on-buffers to
1873           the porting guide (feel free to improve).
1874
1875 2005-09-21  Andy Wingo  <wingo@pobox.com>
1876
1877         * check/gst/gstutils.c (test_buffer_probe_n_times): Add tests for
1878         data and event probes on the same pad.
1879         (test_buffer_probe_once): Test that removing probes from within
1880         the probe functions works.
1881
1882 2005-09-21  Andy Wingo  <wingo@pobox.com>
1883
1884         * check/gst/gstutils.c: New file.
1885         (test_buffer_probe_n_times): A simple buffer probe test. More to
1886         come, foolios.
1887
1888         * gst/gstutils.c (gst_pad_add_buffer_probe): Connect to
1889         have-data::buffer, not have-data.
1890         (gst_pad_add_event_probe): Likewise for have-data::event.
1891         (gst_pad_add_data_probe): More docs. The part about 'resolving the
1892         peer' isn't quite right yet though.
1893         (gst_pad_remove_buffer_probe, gst_pad_remove_event_probe) 
1894         (gst_pad_remove_data_probe): Change to take the guint handler_id
1895         as their arg, not the function+data, which is more glib-like.
1896
1897         * gst/gstpad.c (gst_pad_emit_have_data_signal): Add a detail to
1898         the signal emission to indicate if the data is a buffer or an
1899         event.
1900         (gst_pad_get_type): Initialize buffer and event quarks.
1901         (gst_pad_class_init): have-data is now a detailed signal, yes it
1902         is.
1903
1904 2005-09-21  Tim-Philipp Müller  <tim at centricular dot net>
1905
1906         * gst/base/gstbasetransform.c: (gst_base_transform_transform_size):
1907         * gst/gstutils.c: (gst_util_set_value_from_string),
1908         (gst_util_set_object_arg):
1909           Don't put functional code in g_return_if_fail() or
1910           g_return_val_if_fail() statements, otherwise things will 
1911           break when G_DISABLE_CHECKS is defined during compilation.
1912
1913 2005-09-21  Stefan Kost  <ensonic@users.sf.net>
1914
1915         * docs/gst/tmpl/.cvsignore:
1916         * docs/gst/tmpl/gstvalue.sgml:
1917         * gst/gstvalue.c:
1918         * gst/gstvalue.h:
1919           inlied another one and added  some obvious docs
1920
1921 2005-09-21  Wim Taymans  <wim@fluendo.com>
1922
1923         * gst/elements/gstfdsrc.c: (gst_fdsrc_class_init),
1924         (gst_fdsrc_init), (gst_fdsrc_start), (gst_fdsrc_stop),
1925         (gst_fdsrc_unlock), (gst_fdsrc_set_property),
1926         (gst_fdsrc_get_property), (gst_fdsrc_create):
1927         * gst/elements/gstfdsrc.h:
1928         Properly implement fdsrc. Removed signal and timeout,
1929         better implemented somewhere else.
1930
1931 2005-09-21  Stefan Kost  <ensonic@users.sf.net>
1932
1933         * docs/gst/tmpl/.cvsignore:
1934         * docs/gst/tmpl/gstimplementsinterface.sgml:
1935         * gst/gstinterface.c:
1936           inlined more docs
1937
1938 2005-09-21  Stefan Kost  <ensonic@users.sf.net>
1939
1940         * docs/gst/gstreamer-sections.txt:
1941         * docs/gst/tmpl/.cvsignore:
1942         * docs/gst/tmpl/gstenumtypes.sgml:
1943           remove obsolete doc file
1944
1945 2005-09-21  David Schleef  <ds@schleef.org>
1946
1947         * gst/gstelementfactory.c: (gst_element_factory_make): Drink a
1948         little beer, fix a little leak.
1949
1950 2005-09-21  Stefan Kost  <ensonic@users.sf.net>
1951
1952         * docs/gst/gstreamer-docs.sgml:
1953         * docs/gst/gstreamer-sections.txt:
1954         * docs/gst/tmpl/.cvsignore:
1955         * gst/Makefile.am:
1956         * gst/gst.h:
1957         * gst/gstbin.c:
1958         * gst/gstelement.h:
1959         * gst/gstindex.c: (gst_index_class_init):
1960         * gst/gstindex.h:
1961         * gst/gstindexfactory.c: (gst_index_factory_get_type),
1962         (gst_index_factory_class_init), (gst_index_factory_init),
1963         (gst_index_factory_finalize), (gst_index_factory_new),
1964         (gst_index_factory_destroy), (gst_index_factory_find),
1965         (gst_index_factory_create), (gst_index_factory_make):
1966         * gst/gstindexfactory.h:
1967         * gst/gstpluginfeature.c:
1968         * gst/gstpluginfeature.h:
1969         * libs/gst/controller/gstcontroller.c: (gst_controller_new_valist):
1970           more docs inlined, splitted gstindex.{c,h}
1971
1972 2005-09-20  Thomas Vander Stichele  <thomas at apestaart dot org>
1973
1974         * libs/gst/controller/gstcontroller.c: (gst_controller_new_valist):
1975           fix a leak
1976
1977 2005-09-20  Tim-Philipp Müller  <tim at centricular dot net>
1978
1979         * gst/elements/gstfilesink.c: (gst_file_sink_init):
1980           Set sync to FALSE by default.
1981
1982 2005-09-20  Wim Taymans  <wim@fluendo.com>
1983
1984         * gst/base/gstbasesink.c: (gst_base_sink_class_init),
1985         (gst_base_sink_init):
1986         Make sync property settable from subclass.
1987
1988         * gst/elements/gstfakesink.c: (gst_fake_sink_init),
1989         (gst_fake_sink_change_state):
1990         Set sync to FALSE by default.
1991
1992 2005-09-20  Wim Taymans  <wim@fluendo.com>
1993
1994         * gst/gstbus.c: (poll_func), (poll_timeout), (gst_bus_poll):
1995         * tools/gst-launch.c: (main):
1996         The timeout handler should have lower priority than the source
1997         so we don't timeout before popping a message with 0 timeout.
1998         Dump error messages after failed state change.
1999
2000 2005-09-20  Tim-Philipp Müller  <tim at centricular dot net>
2001
2002         * tools/gst-inspect.c: (print_element_properties_info):
2003           Fix two typos.
2004
2005 2005-09-20  Thomas Vander Stichele  <thomas at apestaart dot org>
2006
2007         * check/gst/gstevent.c:
2008         * gst/elements/gstfakesink.c:
2009         * gst/elements/gstfakesink.h:
2010           remove the sync property from fakesink.
2011           has the side effect of setting sync TRUE
2012           for fakesink, which is a change.  Anyone who knows how
2013           to fix this nicely in a GObject-y way, feel free.
2014
2015 2005-09-20  Stefan Kost  <ensonic@users.sf.net>
2016
2017         * docs/gst/gstreamer-docs.sgml:
2018           remove probe refsection
2019
2020 2005-09-20  Stefan Kost  <ensonic@users.sf.net>
2021
2022         * check/Makefile.am:
2023           disable valgrinding the controller test again
2024         * docs/gst/gstreamer-sections.txt:
2025           update for api-changes
2026
2027 2005-09-20  Wim Taymans  <wim@fluendo.com>
2028
2029         * gst/base/gstbasesink.c: (gst_base_sink_class_init),
2030         (gst_base_sink_set_property), (gst_base_sink_get_property),
2031         (gst_base_sink_do_sync):
2032         * gst/base/gstbasesink.h:
2033         Added sync property to basesink to disable clock sync.
2034
2035 2005-09-20  Andy Wingo  <wingo@pobox.com>
2036
2037         * gst/gstelementfactory.c (gst_element_factory_create): Avoid
2038         eating the caller's refcount.
2039
2040         * gst/gstobject.h (GST_OBJECT_REFCOUNT) 
2041         (GST_OBJECT_REFCOUNT_VALUE): Conditionally fondle the right
2042         refcount.
2043
2044         * gst/gstconfig.h.in (GST_HAVE_GLIB_2_8):
2045         * configure.ac (GST_HAVE_GLIB_2_8_DEFINE): Make the availability
2046         of GLib 2.8 public, so we can know which refcount to check in
2047         tests.
2048
2049         * gst/gstobject.c: Use the GST_HAVE_GLIB_2_8 define.
2050         (gst_object_init): Only set the gst refcount if we're going ahead
2051         with the refcount hack.
2052
2053 2005-09-20  Stefan Kost  <ensonic@users.sf.net>
2054
2055         * check/gst-libs/controller.c: (plugin_init), (GST_START_TEST):
2056         * libs/gst/controller/gstcontroller.c: (gst_controller_new_valist):
2057           more leaks plumbed, added more debug-logging
2058         * gst/gstmacros.h:
2059           whitespace fix
2060
2061 2005-09-20  Thomas Vander Stichele  <thomas at apestaart dot org>
2062
2063         * gst/gstmessage.c:
2064           remove include of gstmemchunk.h
2065
2066 2005-09-20  Thomas Vander Stichele  <thomas at apestaart dot org>
2067
2068         * gst/gstclock.c: (_gst_clock_id_free):
2069           Commit from the Political Party For More Atomic CVS Commits,
2070           so that people don't waste too much of their day fishing
2071           out obvious leaks out of massive commits.
2072           Oh, and fix a pretty damn obvious leak in the memchunk
2073           removal code.
2074
2075 2005-09-20  Stefan Kost  <ensonic@users.sf.net>
2076
2077         * check/Makefile.am:
2078         * check/gst-libs/controller.c: (plugin_init), (GST_START_TEST):
2079           plug mem-leak, re-add to valgrindable tests
2080
2081 2005-09-20  Thomas Vander Stichele  <thomas at apestaart dot org>
2082
2083         * gst/gstplugin.h:
2084           unbreak the build for those who have chronic arthritis
2085           and typing "make check" is just too taxing on the hands
2086
2087 2005-09-20  Andy Wingo  <wingo@pobox.com>
2088
2089         * gst/gst.h: Re-add marshal to gst.h's include list -- if we
2090         really want it out, you should fix plugins at the same time.
2091
2092 2005-09-19  Stefan Kost  <ensonic@users.sf.net>
2093
2094         * configure.ac:
2095         * docs/gst/gstreamer-sections.txt:
2096         * gst/gstobject.c:
2097           added missing symbols to api docs
2098           disable ref-count hack if we have glib >= 2.8
2099
2100 2005-09-19  David Schleef  <ds@schleef.org>
2101
2102         * docs/gst/Makefile.am: Ignore a few more internal headers
2103         * docs/gst/gstreamer-docs.sgml: Remove old sections
2104         * docs/gst/gstreamer-sections.txt: Remove old sections
2105         * docs/gst/tmpl/gstobject.sgml: update
2106         * docs/gst/tmpl/gstplugin.sgml: update
2107         * docs/gst/tmpl/gstpluginfeature.sgml: update
2108         * docs/random/ds/0.9-suggested-changes: update.
2109         * gst/Makefile.am: remove memchunk and trashstack, since they're
2110           not used.
2111         * gst/gst.c: (gst_deinit): rename gst_registry_deinit to _cleanup
2112         * gst/gst.h: don't include some headers
2113         * gst/gstchildproxy.c: add gstmarshal.h
2114         * gst/gstclock.c: Don't use memchunks
2115         * gst/gstminiobject.c: Add some docs
2116         * gst/gstobject.c: remove DESTROYED flag, since it's redundant
2117         * gst/gstobject.h: same
2118         * gst/gstplugin.c: include gstmacros.h
2119         * gst/gstplugin.h: don't include gstmacros.h, since it's private
2120         * gst/gstquery.c: don't use memchunks
2121         * gst/gstregistry.c: rename gst_registry_deinit()
2122         * gst/gstregistry.h: same
2123
2124 2005-09-19  David Schleef  <ds@schleef.org>
2125
2126         * docs/libs/gstreamer-libs-docs.sgml: Remove docs for getbits
2127         * docs/libs/gstreamer-libs-sections.txt:
2128         * docs/libs/tmpl/gstgetbits.sgml:
2129         * docs/libs/tmpl/gstputbits.sgml:
2130
2131 2005-09-19  Tim-Philipp Müller  <tim at centricular dot net>
2132
2133         * win32/gstenumtypes.c:
2134         * win32/gstenumtypes.h:
2135           Update.
2136
2137 2005-09-19  Wim Taymans  <wim@fluendo.com>
2138
2139         * gst/gstpipeline.c: (do_pipeline_seek), (gst_pipeline_send_event):
2140         Automatically PAUSE and RESUME a pipeline when a flushing seek
2141         is performed.
2142
2143 2005-09-19  Andy Wingo  <wingo@pobox.com>
2144
2145         * gst/gstregistry.h: Spacing fixen.
2146
2147 2005-09-19  Wim Taymans  <wim@fluendo.com>
2148
2149         * gst/base/gstbasesrc.c: (gst_base_src_change_state):
2150         Handle state change failure more correctly.
2151
2152 2005-09-19  Thomas Vander Stichele  <thomas at apestaart dot org>
2153
2154         * check/Makefile.am:
2155         * check/pipelines/cleanup.c: (run_pipeline):
2156         * check/pipelines/simple_launch_lines.c: (run_pipeline),
2157         (GST_START_TEST):
2158           enable cleanup again after fixing the leak
2159         * docs/README:
2160           some more info on docs
2161
2162 2005-09-19  Thomas Vander Stichele  <thomas at apestaart dot org>
2163
2164         * check/Makefile.am:
2165           re-enable tests now that leaks are plugged
2166         * check/gst/gst.c:
2167         * check/gst/gstbin.c:
2168         * check/gst/gstpipeline.c:
2169           add some more tests while fixing leaks
2170         * common/check.mak:
2171           make sure binaries are uptodate when valgrinding/gdbing
2172         * gst/gst.c:
2173         * gst/gstelementfactory.c:
2174           remove a ref too many, and add a FIXME for when we get
2175           round to disposing of classes
2176         * gst/gstplugin.c:
2177           fix the refcounting when loading a plugin from a file and
2178           the code pretends that the pointer is the same even though
2179           of course it can change
2180         * gst/gstpluginfeature.c:
2181           unref plugins marked cached (a bit confusing as a name)
2182           as the docs state should be done
2183           various doc additions to explain refcounting
2184         * gst/gstregistry.c:
2185         * gst/gstregistryxml.c:
2186           debugging
2187
2188 2005-09-19  Wim Taymans  <wim@fluendo.com>
2189
2190         * check/gst/gstbin.c: (pop_messages), (GST_START_TEST):
2191         * check/gst/gstbus.c: (message_func_eos), (message_func_app),
2192         (send_messages), (GST_START_TEST), (gstbus_suite):
2193         * check/gst/gstpipeline.c: (GST_START_TEST):
2194         * check/pipelines/cleanup.c: (run_pipeline):
2195         * check/pipelines/simple_launch_lines.c: (run_pipeline),
2196         (GST_START_TEST):
2197         * gst/gstbus.c: (gst_bus_have_pending), (gst_bus_source_prepare),
2198         (gst_bus_source_check), (gst_bus_source_dispatch),
2199         (gst_bus_create_watch), (gst_bus_add_watch_full),
2200         (gst_bus_add_watch), (poll_func), (poll_timeout), (gst_bus_poll):
2201         * gst/gstbus.h:
2202         * tools/gst-launch.c: (event_loop):
2203         * tools/gst-md5sum.c: (event_loop):
2204         GstBusHandler -> GstBusFunc, return value has the same meaning as
2205         any other GSource (FALSE == remove source).
2206         _add_watch() and _add_watch_full() now take a MessageType mask to
2207         only handle specific types of messages.
2208         _poll() returns the GstMessage instead of the message type to avoid
2209         race conditions.
2210         _have_pending() takes a MessageType mask now too.
2211         Added testsuite for multiple bus watches.
2212         Fix testsuites and applications for new bus API.
2213
2214 2005-09-19  Thomas Vander Stichele  <thomas at apestaart dot org>
2215
2216         * check/Makefile.am:
2217           mark a bunch of the tests as to fix until we fix them
2218
2219 2005-09-18  Thomas Vander Stichele  <thomas at apestaart dot org>
2220
2221         * common/check.mak:
2222           use GST_PLUGIN settings for valgrind tests as well, so we're
2223           valgrinding the correct thing
2224         * gst/gst.c: (init_post):
2225           plug another leak
2226
2227 2005-09-18  Thomas Vander Stichele  <thomas at apestaart dot org>
2228
2229         * gst/gst.c: (init_post), (gst_deinit):
2230         * gst/gstelementfactory.c: (gst_element_factory_class_init),
2231         (gst_element_factory_finalize), (gst_element_factory_cleanup):
2232         * gst/gstindex.c: (gst_index_factory_class_init),
2233         (gst_index_factory_finalize):
2234         * gst/gstobject.c: (gst_object_dispose):
2235         * gst/gstplugin.c: (gst_plugin_finalize), (gst_plugin_class_init),
2236         (gst_plugin_load_file), (gst_plugin_desc_free):
2237         * gst/gstpluginfeature.c: (gst_plugin_feature_class_init),
2238         (gst_plugin_feature_finalize):
2239         * gst/gstregistry.c: (gst_registry_class_init),
2240         (gst_registry_init), (gst_registry_finalize),
2241         (gst_registry_get_default), (gst_registry_deinit):
2242         * gst/gstregistry.h:
2243         * gst/gstregistryxml.c: (load_feature), (load_plugin):
2244           various cleanups and memleak plugging.  make valgrind is happy now.
2245
2246 2005-09-18  Thomas Vander Stichele  <thomas at apestaart dot org>
2247
2248         * common/check.mak:
2249           add a check-valgrind target
2250
2251 2005-09-18  David Schleef  <ds@schleef.org>
2252
2253         * tools/gst-inspect.c: Revert the GOption code.
2254
2255 2005-09-17  David Schleef  <ds@schleef.org>
2256
2257         * check/Makefile.am: Fix environment variables.
2258         * check/gst/gstplugin.c: Fix for API changes.
2259         * tools/gst-inspect.c: Fix for API changes.
2260         * tools/gst-xmlinspect.c: Fix for API changes.
2261         * gst/gstelementfactory.c:
2262         * gst/gstplugin.c:
2263         * gst/gstplugin.h:
2264         * gst/gstpluginfeature.c:
2265         * gst/gstpluginfeature.h:
2266         * gst/gstregistry.c:
2267         * gst/gstregistry.h:
2268         * gst/gstregistryxml.c:
2269         * gst/gsttypefind.c:
2270         * gst/gsttypefindfactory.c:
2271         * gst/indexers/gstfileindex.c:
2272         * gst/indexers/gstmemindex.c:
2273         * gst/schedulers/Makefile.am:
2274           Change registry to keep track of both plugins and features,
2275           removing the feature tracking from plugins themselves.
2276
2277 2005-09-16  Thomas Vander Stichele  <thomas at apestaart dot org>
2278
2279         * check/Makefile.am:
2280         * tools/gst-register.1.in:
2281           remove gst-register
2282
2283 2005-09-15  David Schleef  <ds@schleef.org>
2284
2285         * check/gst/gstplugin.c:
2286         * gst/gstelementfactory.c:
2287         * gst/gstplugin.c:
2288         * gst/gstpluginfeature.c:
2289         * gst/gstregistry.c:
2290           Getting tired of debugging.  Disabled all the unreffing of
2291           plugins and features, which fixes the segfaults, but of
2292           course leaks like crazy.  At least playbin works.
2293
2294 2005-09-15  David Schleef  <ds@schleef.org>
2295
2296         * check/gst/gstplugin.c: (register_check_elements),
2297         (GST_START_TEST), (peek), (suggest), (gst_plugin_suite):
2298         More testing
2299         * gst/elements/gsttypefindelement.c: Fix refcounting.
2300         * gst/gsttypefind.c:
2301         * gst/gsttypefindfactory.c:
2302         * gst/gsttypefindfactory.h:
2303
2304 2005-09-15  David Schleef  <ds@schleef.org>
2305
2306         * gst/gstindex.c: get refcounting correct.
2307         * gst/gstregistry.c: Handle the case where a feature/plugin is
2308           not found.
2309
2310 2005-09-15  David Schleef  <ds@schleef.org>
2311
2312         * check/Makefile.am:
2313         * check/gst/gstplugin.c: Add test
2314         * gst/gstplugin.c: Fix problems noticed by testsuite
2315         * gst/gstplugin.h:
2316         * gst/gstregistry.c: 
2317         * gst/gstregistry.h:
2318
2319 2005-09-15  David Schleef  <ds@schleef.org>
2320
2321         * gst/gstplugin.c: Implement semi-decent recounting and locking
2322           in plugins and plugin features.
2323         * gst/gstplugin.h:
2324         * gst/gstpluginfeature.c:
2325         * gst/gstpluginfeature.h:
2326         * gst/gstregistry.c:
2327
2328 2005-09-15  Michael Smith <msmith@fluendo.com>
2329
2330         * gst/gstregistry.c: (gst_registry_get_feature_list):
2331           Implement this. Makes oggdemux work; decodebin still broken.
2332
2333 2005-09-14  David Schleef  <ds@schleef.org>
2334
2335         * configure.ac: Add -no-undefined to GST_PLUGIN_LDFLAGS (bug
2336           #316076)
2337         * gst/base/Makefile.am: Add -no-undefined to LDFLAGS for libs
2338         * gst/check/Makefile.am:
2339         * libs/gst/controller/Makefile.am:
2340         * libs/gst/dataprotocol/Makefile.am:
2341
2342 2005-09-14  David Schleef  <ds@schleef.org>
2343
2344         * configure.ac: Remove getbits library.  Nothing uses it, and
2345           it should be in something like liboil if someone did want
2346           to use it.
2347         * libs/gst/Makefile.am:
2348         * libs/gst/getbits/Makefile.am:
2349         * libs/gst/getbits/gbtest.c:
2350         * libs/gst/getbits/getbits.c:
2351         * libs/gst/getbits/getbits.h:
2352         * libs/gst/getbits/gstgetbits_generic.c:
2353         * libs/gst/getbits/gstgetbits_i386.s:
2354         * libs/gst/getbits/gstgetbits_inl.h:
2355
2356 2005-09-14  David Schleef  <ds@schleef.org>
2357
2358         * gst/Makefile.am: Dist glib-compat.h
2359
2360 2005-09-14  David Schleef  <ds@schleef.org>
2361
2362         * configure.ac: Remove gst/registries, since it's no longer used.
2363         * gst/registries/Makefile.am:
2364         * gst/registries/gstlibxmlregistry.c:
2365         * gst/registries/gstlibxmlregistry.h:
2366         * gst/registries/gstxmlregistry.c:
2367         * gst/registries/gstxmlregistry.h:
2368         * gst/registries/registrytest.c:
2369
2370 2005-09-14  David Schleef  <ds@schleef.org>
2371
2372         * gst/glib-compat.h:
2373         * gst/gstregistryxml.c:
2374           Convergence is near.  Seriously.
2375
2376 2005-09-14  David Schleef  <ds@schleef.org>
2377
2378         * gst/glib-compat.c: (g_mkdir_with_parents), (g_mkdir), (g_stat):
2379         * gst/glib-compat.h:
2380           Attempt #4 to appease the buildbots.
2381
2382 2005-09-14  David Schleef  <ds@schleef.org>
2383
2384         * gst/glib-compat.c: (g_mkdir_with_parents), (g_mkdir), (g_stat):
2385           Attempt #3.
2386
2387 2005-09-14  David Schleef  <ds@schleef.org>
2388
2389         * gst/glib-compat.c: (g_mkdir_with_parents), (g_mkdir), (g_stat):
2390         Attempt #2.
2391
2392 2005-09-14  David Schleef  <ds@schleef.org>
2393
2394         * gst/Makefile.am: Oh yeah, libgstreamer.so needs to contain
2395           the new functions.
2396
2397 2005-09-14  David Schleef  <ds@schleef.org>
2398
2399         * gst/glib-compat.c: (g_mkdir_with_parents), (g_mkdir), (g_stat):
2400         * gst/glib-compat.h: Add some functions that are in newer versions
2401           of glib than we care to require.
2402         * gst/gstregistryxml.c: Use them.
2403
2404 2005-09-14  David Schleef  <ds@schleef.org>
2405
2406         * po/POTFILES.in: remove gst-register.c
2407
2408 2005-09-14  David Schleef  <ds@schleef.org>
2409
2410         * docs/gst/gstreamer-docs.sgml:
2411         * docs/gst/gstreamer-sections.txt:
2412         * docs/gst/gstreamer.types:
2413         * docs/gst/tmpl/gstelement.sgml:
2414         * docs/gst/tmpl/gstplugin.sgml:
2415         * docs/gst/tmpl/gstpluginfeature.sgml:
2416           Documentation updates for registry changes.
2417
2418 2005-09-14  David Schleef  <ds@schleef.org>
2419
2420         * gst/gstregistryxml.c: Copy g_mkdir_with_parent() from glib,
2421           because we don't require glib-2.8.
2422
2423 2005-09-14  David Schleef  <ds@schleef.org>
2424
2425         * gst/gstregistryxml.c: Added.  Essentially moved out of the
2426           registries directory.
2427
2428 2005-09-14  David Schleef  <ds@schleef.org>
2429
2430         * check/Makefile.am:
2431         * check/generic/states.c:
2432         * gst/Makefile.am:
2433         * gst/gst.c:
2434         * gst/gst.h:
2435         * gst/gst_private.h:
2436         * gst/gstelementfactory.c:
2437         * gst/gstindex.c:
2438         * gst/gstinfo.c:
2439         * gst/gstplugin.c:
2440         * gst/gstplugin.h:
2441         * gst/gstpluginfeature.c:
2442         * gst/gstpluginfeature.h:
2443         * gst/gstregistry.c:
2444         * gst/gstregistry.h:
2445         * gst/gstregistrypool.c: remove
2446         * gst/gstregistrypool.h: remove
2447         * gst/gsttypefind.c:
2448         * gst/gsttypefindfactory.c:
2449         * gst/gsturi.c:
2450         * tools/Makefile.am:
2451         * tools/gst-compprep.c:
2452         * tools/gst-inspect.c:
2453         * tools/gst-register.c: remove
2454         * tools/gst-xmlinspect.c:
2455           Registry rewrite.  Changes registry from being a file created
2456           by a tool into a simple cache file created automatically by 
2457           libgstreamer.  Removed gst-register (because it's no longer
2458           needed).  Remove registry pools, because we only have one
2459           registry implementation (XML).  Fix up other subsystems as
2460           necessary.
2461
2462 2005-09-13  Michael Smith <msmith@fluendo.com>
2463
2464         * gst/gstconfig.h.in:
2465           Don't Use windows linking attributes for MinGW. Fixes #316157
2466
2467 2005-09-13  Thomas Vander Stichele  <thomas at apestaart dot org>
2468
2469         * gst/gstutils.c: (set_state_async_thread_func),
2470         (gst_element_set_state_async):
2471           Apparently people think it's better if this function doesn't
2472           try to set the state to whatever state was asked for on the first
2473           call to this function for any object.  Seriously.
2474
2475 2005-09-12  Thomas Vander Stichele  <thomas at apestaart dot org>
2476
2477         * check/gst/gstpipeline.c: (GST_START_TEST):
2478         * docs/gst/gstreamer-sections.txt:
2479         * gst/gstutils.c: (set_state_async_thread_func),
2480         (gst_element_set_state_async):
2481         * gst/gstutils.h:
2482           add a "gst_element_set_state_async" method that
2483           sets the state and starts a thread to make sure the state
2484           change completes as best as it can
2485
2486 2005-09-12  Thomas Vander Stichele  <thomas at apestaart dot org>
2487
2488         * check/gst/gstpipeline.c: (GST_START_TEST), (gst_pipeline_suite):
2489           codify design+behaviour in testsuite after discussion
2490
2491 2005-09-12  Thomas Vander Stichele  <thomas at apestaart dot org>
2492
2493         * docs/gst/tmpl/gstelement.sgml:
2494         * docs/manual/appendix-quotes.xml:
2495           add a quote
2496         * gst/gstelement.c: (gst_element_set_state):
2497           add some debug
2498
2499 2005-09-12  Jan Schmidt  <thaytan@mad.scientist.com>
2500
2501         * gst/base/gstbasetransform.c: (gst_base_transform_class_init),
2502         (gst_base_transform_prepare_output_buf),
2503         (gst_base_transform_handle_buffer):
2504         * gst/elements/gstcapsfilter.c: (gst_capsfilter_transform_ip),
2505         (gst_capsfilter_prepare_buf):
2506           Remove the requirement for sub-classes to call the parent
2507           implementation of prepare_output_buffer with a wrapper function.
2508           
2509         * gst/gsttaglist.h:
2510         * gst/gsttagsetter.h:
2511           Fix #define wrapper
2512
2513 2005-09-11  Stefan Kost  <ensonic@users.sf.net>
2514
2515         * docs/gst/gstreamer-sections.txt:
2516           more doc cleanups
2517
2518 2005-09-11  Thomas Vander Stichele  <thomas at apestaart dot org>
2519
2520         * docs/gst/gstreamer-sections.txt:
2521         * docs/gst/tmpl/gstelement.sgml:
2522         * docs/gst/tmpl/gstplugin.sgml:
2523         * gst/gstminiobject.c:
2524         * gst/gstvalue.h:
2525           docs now stop throwing warnings
2526
2527 2005-09-11  Thomas Vander Stichele  <thomas at apestaart dot org>
2528
2529         * docs/gst/gstreamer-sections.txt:
2530         * docs/gst/gstreamer.types:
2531         * docs/gst/tmpl/gstpad.sgml:
2532         * docs/gst/tmpl/gsttypes.sgml:
2533         * gst/base/gstadapter.h:
2534         * gst/base/gstbasesink.h:
2535         * gst/base/gstbasesrc.h:
2536         * gst/gstbin.h:
2537         * gst/gstbuffer.h:
2538         * gst/gstbus.h:
2539         * gst/gstcaps.h:
2540         * gst/gstclock.h:
2541         * gst/gstelement.h:
2542         * gst/gstevent.h:
2543         * gst/gstmessage.h:
2544         * gst/gstpad.h:
2545         * gst/gststructure.c:
2546         * gst/registries/gstlibxmlregistry.h:
2547           various documentation fixes
2548
2549 2005-09-11  Thomas Vander Stichele  <thomas at apestaart dot org>
2550
2551         * docs/gst/gstreamer-sections.txt:
2552         * docs/gst/tmpl/gstvalue.sgml:
2553           rearrange gstvalue section
2554         * gst/gstutils.c: (gst_element_state_get_name):
2555           NONE -> VOID
2556         * gst/gstvalue.c: (_gst_value_initialize):
2557         * gst/gstvalue.h:
2558           doc updates
2559
2560 2005-09-10  Jan Schmidt  <thaytan@mad.scientist.com>
2561
2562         * check/gst-libs/controller.c:
2563           Header include fix.
2564         * gst/base/gstbasetransform.c:
2565         (gst_base_transform_default_prepare_buf),
2566         (gst_base_transform_handle_buffer):
2567         * gst/base/gstbasetransform.h:
2568           Some more basetransform changes and fixes to enable sub-classes
2569           that modify buffer metadata only.
2570         * gst/elements/gstcapsfilter.c: (gst_capsfilter_class_init),
2571         (gst_capsfilter_init), (gst_capsfilter_transform_ip),
2572         (gst_capsfilter_prepare_buf):
2573           If the output pad has fixed allowed caps and input buffers 
2574           don't have any, set the fixed caps on outgoing buffers.
2575
2576 2005-09-09  Jan Schmidt  <thaytan@mad.scientist.com>
2577         * check/elements/identity.c: (GST_START_TEST):
2578           Make the error a little clearer when the test fails because
2579           identity made a copy of the buffer.
2580         * docs/gst/gstreamer-sections.txt:
2581           New symbols in gstbasetransform.h
2582         * gst/base/gstbasetransform.c: (gst_base_transform_class_init),
2583         (gst_base_transform_init), (gst_base_transform_transform_size),
2584         (gst_base_transform_configure_caps), (gst_base_transform_setcaps),
2585         (gst_base_transform_default_prepare_buf),
2586         (gst_base_transform_get_unit_size),
2587         (gst_base_transform_buffer_alloc),
2588         (gst_base_transform_handle_buffer), (gst_base_transform_chain),
2589         (gst_base_transform_change_state),
2590         (gst_base_transform_set_passthrough),
2591         (gst_base_transform_set_in_place),
2592         (gst_base_transform_is_in_place):
2593         * gst/base/gstbasetransform.h:
2594           Change BaseTransform to separate in_place operate from same_caps
2595           output. in_place implies that the element can perform the transform
2596           on incoming buffers in-place, even if the caps on the output are
2597           different.
2598           Sub-class elements can now implement special buffer allocation
2599           methods for outgoing buffers if they wish to.
2600           Big documentation addition.
2601         * gst/elements/gstcapsfilter.c: (gst_capsfilter_transform_ip):
2602         * gst/elements/gstelements.c:
2603           Changes for basetransform modifications.
2604         * gst/elements/Makefile.am:
2605         * gst/elements/gstfdsrc.c: (gst_fdsrc_init), (gst_fdsrc_create):
2606           Compile fix. Extra debug output.
2607
2608 2005-09-09  Thomas Vander Stichele  <thomas at apestaart dot org>
2609
2610         * check/gst/gstpad.c: (GST_START_TEST), (name_is_valid),
2611         (gst_pad_suite):
2612           add tests for valid pad naming
2613         * gst/check/gstcheck.c: (gst_check_log_message_func),
2614         (gst_check_log_critical_func):
2615           add ASSERT_WARNING
2616           remove printing of code, it is fragile when the code contains
2617           % and the line number is enough info
2618         * gst/check/gstcheck.h:
2619         * gst/gstpad.c: (gst_pad_template_new):
2620           fix memleaks
2621
2622 2005-09-09  Thomas Vander Stichele  <thomas at apestaart dot org>
2623
2624         * configure.ac:
2625           say what CHECK flags we use
2626         * docs/libs/gstreamer-libs.types:
2627         * libs/gst/controller/Makefile.am:
2628         * libs/gst/controller/gst-controller.c:
2629         * libs/gst/controller/gst-controller.h:
2630         * libs/gst/controller/gst-helper.c:
2631         * libs/gst/controller/gst-interpolation.c:
2632         * libs/gst/controller/gstcontroller.c:
2633         * libs/gst/controller/gsthelper.c:
2634         * libs/gst/controller/gstinterpolation.c:
2635         * tools/gst-inspect.c: (print_plugin_info):
2636           we don't use dashes in header names
2637
2638 2005-09-09  Thomas Vander Stichele  <thomas at apestaart dot org>
2639
2640         * check/Makefile.am:
2641         * check/gst/.cvsignore:
2642         * check/gst/gstpipeline.c: (pop_messages), (GST_START_TEST),
2643         (gst_pipeline_suite), (main):
2644           adding a test for pipelines and state changes
2645         * gst/gstutils.c: (get_state_func):
2646           add some debugging
2647         * gstreamer.spec.in:
2648           fix up spec file
2649
2650 2005-09-08  Michael Smith <msmith@fluendo.com>
2651
2652         * gst/elements/gstfilesrc.c: (gst_file_src_map_region),
2653         (gst_file_src_map_small_region), (gst_file_src_create_mmap),
2654         (gst_file_src_is_seekable), (gst_file_src_get_size),
2655         (gst_file_src_start):
2656         * gst/elements/gstfilesrc.h:
2657           Various fixes for unseekable, unmmapable, and non-normal files, so
2658           that fallback to read() rather than mmap() works.
2659         * gst/gstevent.c: (gst_event_new_newsegment):
2660           Allow newsegment events with segment_start == segment_end, as will
2661           correctly happen if you use filesrc on a zero-size file, for
2662           example.
2663
2664 2005-09-07  Jan Schmidt  <thaytan@mad.scientist.com>
2665
2666         * gst/gstplugin.c: (gst_plugin_load_file):
2667           Call g_module_close when we don't load the module
2668
2669         * gst/registries/gstlibxmlregistry.c:
2670         (gst_xml_registry_get_property):
2671           Port leak fix from 0.8
2672
2673 2005-09-07  Stefan Kost  <ensonic@users.sf.net>
2674
2675         * docs/gst/gstreamer-docs.sgml:
2676         * docs/gst/tmpl/.cvsignore:
2677         * docs/gst/tmpl/gsttrace.sgml:
2678         * docs/gst/tmpl/gsttrashstack.sgml:
2679         * gst/Makefile.am:
2680         * gst/gst.h:
2681         * gst/gstelement.h:
2682         * gst/gstevent.h:
2683         * gst/gstmessage.c:
2684         * gst/gstmessage.h:
2685         * gst/gsttag.c:
2686         * gst/gsttag.h:
2687         * gst/gsttaginterface.c:
2688         * gst/gsttaginterface.h:
2689         * gst/gsttaglist.c:
2690         * gst/gsttaglist.h:
2691         * gst/gsttagsetter.c:
2692         * gst/gsttagsetter.h:
2693         * gst/gsttrace.c:
2694         * gst/gsttrace.h:
2695         * gst/gsttrashstack.c:
2696           renamed gsttag -> gsttaglist, gsttaginterface -> gsttagsetter
2697           inlined docs for gsttrace, gsttrashstack
2698
2699 2005-09-07  Stefan Kost  <ensonic@users.sf.net>
2700
2701         * gst/Makefile.am:
2702         * gst/elements/gstbufferstore.h:
2703         * gst/elements/gsttypefindelement.c:
2704         * gst/elements/gsttypefindelement.h:
2705         * gst/gst.h:
2706         * gst/gsttypefind.c:
2707         * gst/gsttypefind.h:
2708         * gst/gsttypefindfactory.c: (gst_type_find_factory_get_type),
2709         (gst_type_find_factory_class_init), (gst_type_find_factory_init),
2710         (gst_type_find_factory_dispose),
2711         (gst_type_find_factory_unload_thyself),
2712         (gst_type_find_load_plugin), (gst_type_find_factory_get_list),
2713         (gst_type_find_factory_get_caps),
2714         (gst_type_find_factory_get_extensions),
2715         (gst_type_find_factory_call_function):
2716         * gst/gsttypefindfactory.h:
2717         * gst/registries/gstlibxmlregistry.c:
2718         * gst/registries/gstxmlregistry.c:
2719           splitted gsttypefind into gsttypefind, gsttypefindfactory
2720
2721 2005-09-07  Andy Wingo  <wingo@pobox.com>
2722
2723         * gst/base/gstbasesink.c (gst_base_sink_activate_pull): Fix a race
2724         condition whereby the pad's task function is entered before the
2725         pad_mode variable was set.
2726
2727 2005-09-07  Jan Schmidt  <thaytan@mad.scientist.com>
2728
2729         * gst/gstpad.c: (gst_pad_alloc_buffer):
2730           Catch misbehaving pad_alloc functions that don't
2731           set up caps and do it for them.
2732
2733 2005-09-07  Stefan Kost  <ensonic@users.sf.net>
2734
2735         * check/pipelines/simple_launch_lines.c: (run_pipeline):
2736           test for pipe!=NULL
2737         * docs/gst/tmpl/.cvsignore:
2738         * docs/gst/tmpl/gstmemchunk.sgml:
2739         * docs/gst/tmpl/gstparse.sgml:
2740         * docs/gst/tmpl/gsttaglist.sgml:
2741         * docs/gst/tmpl/gsttagsetter.sgml:
2742         * docs/gst/tmpl/gsttypefind.sgml:
2743         * docs/gst/tmpl/gsttypefindfactory.sgml:
2744         * gst/gstmemchunk.c:
2745         * gst/gstparse.c:
2746         * gst/gsttag.c:
2747         * gst/gsttaginterface.c:
2748         * gst/gsttypefind.c:
2749         * gst/gsttypefind.h:
2750           inlined more docs
2751
2752 === release 0.9.2 ===
2753
2754 2005-09-06  Thomas Vander Stichele  <thomas at apestaart dot org>
2755
2756         * NEWS:
2757         * RELEASE:
2758         * configure.ac:
2759           releasing 0.9.2, "South"
2760
2761 2005-09-05  Andy Wingo  <wingo@pobox.com>
2762
2763         * gst/registries/gstxmlregistry.h:
2764         * gst/registries/gstxmlregistry.c: Um... resurrect...
2765         
2766         * gst/registries/gstxmlregistry.h:
2767         * gst/registries/gstxmlregistry.c: and update to newer API.
2768         Incidentally they should be a bit faster now that they don't have
2769         to parse the caps.
2770         
2771 2005-09-05  Andy Wingo  <wingo@pobox.com>
2772
2773         * gst/registries/gstxmlregistry.h:
2774         * gst/registries/gstxmlregistry.c: Remove from CVS, they were
2775         replaced by the libxml registry a while back
2776
2777 2005-09-03  Thomas Vander Stichele  <thomas at apestaart dot org>
2778
2779         * docs/gst/tmpl/gstplugin.sgml:
2780         * gst/elements/gstelements.c:
2781         * gst/gst.c:
2782         * gst/gstplugin.c: (gst_plugin_register_func),
2783         (gst_plugin_desc_copy), (gst_plugin_desc_free),
2784         (gst_plugin_get_source):
2785         * gst/gstplugin.h:
2786         * gst/registries/gstlibxmlregistry.c: (load_plugin),
2787         (gst_xml_registry_save_plugin):
2788         * gst/registries/gstxmlregistry.c: (gst_xml_registry_parse_plugin),
2789         (gst_xml_registry_save_plugin):
2790         * tools/gst-inspect.c: (print_plugin_info):
2791           add a "source" plugin description field, to represent the source
2792           module this plugin is a part of.  By default GST_PLUGIN_DEFINE
2793           will set it to PACKAGE, which is automake's idea of the name of
2794           the source project.
2795
2796 2005-09-03  Thomas Vander Stichele  <thomas at apestaart dot org>
2797
2798         * Makefile.am:
2799         * autogen.sh:
2800         * configure.ac:
2801         * docs/Makefile.am:
2802         * docs/faq/Makefile.am:
2803         * docs/gst/tmpl/gstelement.sgml:
2804         * docs/gst/tmpl/gsttypes.sgml:
2805         * docs/htmlinstall.mak:
2806         * docs/manual/Makefile.am:
2807         * docs/pwg/Makefile.am:
2808           reorganize doc build a little
2809           split out docbook and gtk-doc stuff
2810           have two separate --enable's and enable them through autogen
2811           but disable by default in configure (to be similar to other
2812           projects)
2813         * gstreamer.spec.in:
2814           clean up docs install
2815         * po/af.po:
2816         * po/az.po:
2817         * po/ca.po:
2818         * po/cs.po:
2819         * po/de.po:
2820         * po/en_GB.po:
2821         * po/fr.po:
2822         * po/it.po:
2823         * po/nb.po:
2824         * po/nl.po:
2825         * po/ru.po:
2826         * po/sq.po:
2827         * po/sr.po:
2828         * po/sv.po:
2829         * po/tr.po:
2830         * po/uk.po:
2831         * po/vi.po:
2832           translation updates
2833
2834 2005-09-03  Tim-Philipp Müller  <tim at centricular dot net>
2835
2836         * gst/base/gstbasesink.c: (gst_base_sink_pad_buffer_alloc):
2837           Add comment.
2838           
2839         * gst/elements/gstfakesink.c: (gst_fake_sink_init),
2840         (gst_fake_sink_change_state):
2841           Make state change function thread-safe.
2842           
2843         * gst/gstpad.c: (gst_pad_alloc_buffer):
2844           Set offset on generic buffer allocated by fallback.
2845
2846 2005-09-03  Stefan Kost  <ensonic@users.sf.net>
2847
2848         * docs/gst/gstreamer-sections.txt:
2849         * docs/gst/tmpl/gstelement.sgml:
2850         * gst/gstpad.c:
2851         * libs/gst/controller/gst-controller.c:
2852         (gst_controlled_property_set_interpolation_mode),
2853         (gst_controlled_property_new),
2854         (gst_controller_find_controlled_property):
2855          run the wingo-magic script against the docs
2856
2857 2005-09-02  Stefan Kost  <ensonic@users.sf.net>
2858
2859         * docs/gst/gstreamer-docs.sgml:
2860         * docs/gst/gstreamer-sections.txt:
2861         * docs/gst/tmpl/.cvsignore:
2862         * docs/gst/tmpl/gstelementdetails.sgml:
2863         * docs/gst/tmpl/gstelementfactory.sgml:
2864         * gst/gst.c:
2865         * gst/gstbus.c:
2866         * gst/gstelementfactory.c:
2867         * gst/gstelementfactory.h:
2868           merged elementdetails docs into elementfactory docs
2869           inlined both
2870
2871 2005-09-02  Andy Wingo  <wingo@pobox.com>
2872
2873         * gst/gstelement.h: Add magical pixie dust to make glib-mkenums
2874         consider this enum an enum and not a flags.
2875
2876 2005-09-02  Stefan Kost  <ensonic@users.sf.net>
2877
2878         * docs/gst/gstreamer-docs.sgml:
2879         * docs/gst/tmpl/.cvsignore:
2880         * docs/gst/tmpl/gstghostpad.sgml:
2881         * docs/gst/tmpl/gstiterator.sgml:
2882         * docs/gst/tmpl/gstmacros.sgml:
2883         * docs/gst/tmpl/gstrealpad.sgml:
2884         * docs/gst/tmpl/gstregistry.sgml:
2885         * docs/gst/tmpl/gstregistrypool.sgml:
2886         * docs/gst/tmpl/gststructure.sgml:
2887         * docs/gst/tmpl/gstsystemclock.sgml:
2888         * docs/gst/tmpl/gsttrace.sgml:
2889         * gst/gstghostpad.c:
2890         * gst/gstmacros.h:
2891         * gst/gstmemchunk.c:
2892         * gst/gstmemchunk.h:
2893         * gst/gstqueue.c:
2894         * gst/gstregistry.c:
2895         * gst/gstregistrypool.c:
2896         * gst/gststructure.c:
2897         * gst/gstsystemclock.c:
2898           more docs inlined
2899
2900 2005-09-02  Andy Wingo  <wingo@pobox.com>
2901
2902         * gst/gstelement.h (GstState): Renamed from GstElementState,
2903         changed to be a normal enum instead of flags.
2904         (GstStateChangeReturn): Renamed from GstElementStateReturn, names
2905         munged to be GST_STATE_CHANGE_*.
2906         (GST_STATE_CHANGE): Renamed from GST_STATE_TRANSITION, updated to
2907         work with the new state representation.
2908         (GstStateChange): New enumeration of possible state transitions.
2909         Replaces GST_STATE_FOO_TO_BAR with GST_STATE_CHANGE_FOO_TO_BAR.
2910         (GstElementClass::change_state): Pass the GstStateChange along as
2911         an argument. Helps language bindings, so they don't have to use
2912         tricky lock-needing macros like GST_STATE_CHANGE ().
2913
2914         * scripts/update-states (file): New script. Run it on a file to
2915         update it for state naming and API changes. Updates files in
2916         place.
2917
2918         * All files updated for the new API.
2919
2920 2005-09-02  Thomas Vander Stichele  <thomas at apestaart dot org>
2921
2922         * gst/gsttrace.c: (gst_trace_flush), (gst_trace_text_flush):
2923         * gst/gstutils.c: (gst_util_set_value_from_string),
2924         (gst_util_set_object_arg):
2925           fix a bunch of unchecked return values
2926         * tools/gst-complete.c: (main):
2927         * gstreamer.spec.in:
2928           clean up a little
2929
2930 2005-09-01  Wim Taymans  <wim@fluendo.com>
2931
2932         * gst/base/gstbasesink.c: (gst_base_sink_handle_object),
2933         (gst_base_sink_event), (gst_base_sink_do_sync),
2934         (gst_base_sink_handle_event):
2935         * gst/base/gstbasesink.h:
2936         Handle newsegments more correctly.
2937
2938         * gst/gstbus.c:
2939         Fix docs.
2940
2941         * gst/gstevent.c: (gst_event_new_newsegment):
2942         A newsegment cannot have a start_time of -1
2943
2944 2005-09-01  Tim-Philipp Müller  <tim at centricular dot net>
2945
2946         * win32/gstenumtypes.c:
2947         * win32/gstenumtypes.h:
2948           Update
2949
2950 2005-08-31  Stefan Kost  <ensonic@users.sf.net>
2951
2952         * libs/gst/controller/gst-controller.c:
2953         (gst_controlled_property_set_interpolation_mode),
2954         (gst_controlled_property_new):
2955          fixed boolean again
2956
2957 2005-08-31  Thomas Vander Stichele  <thomas at apestaart dot org>
2958
2959         * docs/faq/gst-uninstalled:
2960           add -good
2961         * gst/gstevent.c:
2962         * gst/gstevent.h:
2963           remove wrong docs
2964         * gst/gstutils.c: (gst_element_link_filtered):
2965         * gst/gstutils.h:
2966           add gst_element_link_filtered
2967
2968 2005-08-31  Stefan Kost  <ensonic@users.sf.net>
2969
2970         * docs/gst/gstreamer-docs.sgml:
2971         * docs/gst/gstreamer-sections.txt:
2972         * docs/gst/tmpl/.cvsignore:
2973         * docs/gst/tmpl/gsterror.sgml:
2974         * docs/gst/tmpl/gstfilter.sgml:
2975         * docs/gst/tmpl/gsturihandler.sgml:
2976         * docs/gst/tmpl/gsturitype.sgml:
2977         * docs/gst/tmpl/gstutils.sgml:
2978         * docs/gst/tmpl/gstxml.sgml:
2979         * gst/gsterror.c:
2980         * gst/gsterror.h:
2981         * gst/gstfilter.c:
2982         * gst/gsturi.c:
2983         * gst/gsturitype.c:
2984         * gst/gstutils.c:
2985         * gst/gstxml.c:
2986           inlined more docs, fixed double id-ref
2987
2988 2005-08-31  Wim Taymans  <wim@fluendo.com>
2989
2990         * gst/base/gstbasetransform.c: (gst_base_transform_setcaps),
2991         (gst_base_transform_handle_buffer):
2992         Passthrough elements don't need the caps as they don't care.
2993
2994 2005-08-31  Wim Taymans  <wim@fluendo.com>
2995
2996         * gst/base/gstbasetransform.c: (gst_base_transform_setcaps),
2997         (gst_base_transform_handle_buffer), (gst_base_transform_chain):
2998         Don't leak refcounts on buffers.
2999
3000 2005-08-31  Wim Taymans  <wim@fluendo.com>
3001
3002         * gst/base/gstbasetransform.c: (gst_base_transform_configure_caps),
3003         (gst_base_transform_setcaps), (gst_base_transform_handle_buffer),
3004         (gst_base_transform_chain), (gst_base_transform_change_state):
3005         * gst/base/gstbasetransform.h:
3006         Handle the case where we are not negotiated more gracefully.
3007
3008 2005-08-31  Tim-Philipp Müller  <tim at centricular dot net>
3009
3010         * gst/elements/gstfilesrc.c: (gst_mmap_buffer_init),
3011         (gst_file_src_map_region):
3012           Set READONLY flag on mmap'ed buffers, otherwise
3013           gst_buffer_make_writable() won't work properly (#314708).
3014
3015 2005-08-31  Wim Taymans  <wim@fluendo.com>
3016
3017         * gst/base/gstbasetransform.c: (gst_base_transform_handle_buffer):
3018         passthrough elements can even do inplace on non writable
3019         buffers (as they don't touch them).
3020
3021 2005-08-31  Stefan Kost  <ensonic@users.sf.net>
3022
3023         * check/gst-libs/controller.c: (gst_test_mono_source_get_property),
3024         (gst_test_mono_source_set_property),
3025         (gst_test_mono_source_class_init), (GST_START_TEST),
3026         (gst_controller_suite):
3027           more tests (hehe I have the most)
3028         * gst/gstbus.c:
3029           describe popping messages whenusing mulltiple sources
3030         * libs/gst/controller/gst-controller.c:
3031         (gst_controlled_property_set_interpolation_mode),
3032         (gst_controlled_property_new):
3033         * libs/gst/controller/gst-controller.h:
3034         * libs/gst/controller/gst-interpolation.c:
3035           implement boolean properties
3036
3037 2005-08-31  Wim Taymans  <wim@fluendo.com>
3038
3039         * gst/gstminiobject.c: (gst_mini_object_ref):
3040         Cannot assert that the refcount has to be positive
3041         since a disposed object can be resurrected.
3042
3043 2005-08-31  Wim Taymans  <wim@fluendo.com>
3044
3045         * gst/gstpad.c: (gst_pad_init):
3046         Revert change, need to first fix badly behaving 
3047         apps.
3048
3049 2005-08-30  Wim Taymans  <wim@fluendo.com>
3050
3051         * check/elements/fakesrc.c: (setup_fakesrc):
3052         * check/elements/identity.c: (setup_identity):
3053         Activate pads before using them.
3054
3055 2005-08-30  Wim Taymans  <wim@fluendo.com>
3056
3057         * gst/base/gstadapter.c: (gst_adapter_flush):
3058         Flushing out 0 bytes is ok for this function.
3059
3060         * gst/base/gstbasesink.c: (gst_base_sink_handle_object):
3061         no newsegment gives a warning and sets the start/stop to 
3062         invalid.
3063
3064         * gst/base/gstbasetransform.c: (gst_base_transform_change_state),
3065         (gst_base_transform_set_passthrough):
3066         Some debug info.
3067
3068         * gst/gstminiobject.c: (gst_mini_object_ref):
3069         Check refcount here too.
3070
3071         * gst/gstpad.c: (gst_pad_init):
3072         Pads are initially flushing and refusing data.
3073
3074         * gst/gstutils.c: (gst_element_link_pads_filtered):
3075         When adding a capsfilter element make sure it has the
3076         same state as the parent bin.
3077
3078 2005-08-30  Stefan Kost  <ensonic@users.sf.net>
3079
3080         * docs/gst/tmpl/.cvsignore:
3081         * docs/gst/tmpl/gstformat.sgml:
3082         * docs/gst/tmpl/gstversion.sgml:
3083         * gst/gstbus.h:
3084         * gst/gstformat.c:
3085         * gst/gstformat.h:
3086         * gst/gstversion.h.in:
3087           more docs and two more inlined
3088
3089 2005-08-30  Wim Taymans  <wim@fluendo.com>
3090
3091         * gst/elements/gstfilesink.c: (gst_file_sink_class_init):
3092         Don't sync to clock.
3093
3094 2005-08-30  Stefan Kost  <ensonic@users.sf.net>
3095
3096         * docs/gst/gstreamer-sections.txt:
3097           ultral33t func10ns deserve to appear in the docs actually
3098         * docs/gst/tmpl/.cvsignore:
3099         * docs/gst/tmpl/gstcompat.sgml:
3100         * docs/gst/tmpl/gstconfig.sgml:
3101         * gst/check/gstcheck.c:
3102         * gst/gstcompat.h:
3103         * gst/gstconfig.h.in:
3104           inlined more docs
3105
3106 2005-08-30  Stefan Kost  <ensonic@users.sf.net>
3107
3108         * docs/gst/tmpl/.cvsignore:
3109         * docs/gst/tmpl/gstquery.sgml:
3110         * docs/gst/tmpl/gstutils.sgml:
3111         * gst/gstquery.c:
3112         * gst/gstquery.h:
3113           inlined and extended docs
3114
3115 2005-08-30  Stefan Kost  <ensonic@users.sf.net>
3116
3117         * check/gst-libs/controller.c: (GST_START_TEST),
3118         (gst_controller_suite):
3119           more tests
3120         * docs/gst/tmpl/gstutils.sgml:
3121         * docs/libs/gstreamer-libs-sections.txt:
3122         * docs/libs/tmpl/gstdataprotocol.sgml:
3123           include path fixes
3124         * examples/controller/audio-example.c: (main):
3125           controller example works now
3126         * gst/gstclock.h:
3127           doc fixes
3128         * tools/gst-inspect.c: (print_element_properties_info):
3129           show param spec flags
3130
3131 2005-08-29  Andy Wingo  <wingo@pobox.com>
3132
3133         * gst/gstutils.c (gst_util_uint64_scale): New 3733t funct10n.
3134
3135 2005-08-28  Andy Wingo  <wingo@pobox.com>
3136
3137         * gst/gstutils.h (GST_BOILERPLATE_FULL): Prototype instance_init
3138         as having two arguments instead of just one. Allows superclasses
3139         to access information on subclasses -- see the terrible for() loop
3140         in gtype.c:g_type_create_instance for the reason why. All callers
3141         changed.
3142
3143 2005-08-27  Stefan Kost  <ensonic@users.sf.net>
3144
3145         * docs/design/part-messages.txt:
3146           update info
3147         * docs/gst/tmpl/.cvsignore:
3148         * docs/gst/tmpl/gstcaps.sgml:
3149         * docs/gst/tmpl/gstclock.sgml:
3150         * gst/gstbus.c:
3151         * gst/gstcaps.c:
3152         * gst/gstcaps.h:
3153         * gst/gstclock.c:
3154         * gst/gstclock.h:
3155         * gst/gstmessage.c:
3156           added descriptions for bus and message
3157           inline caps and clock docs
3158
3159 2005-08-27  Stefan Kost  <ensonic@users.sf.net>
3160
3161         * gst/gstmessage.c:
3162         * gst/gstmessage.h:
3163           doc fixes
3164
3165 2005-08-27  Stefan Kost  <ensonic@users.sf.net>
3166
3167         * gst/base/gstbasetransform.c: (gst_base_transform_transform_size):
3168           fix div-by-zero
3169
3170 2005-08-26  Andy Wingo  <wingo@pobox.com>
3171
3172         * check/pipelines/simple_launch_lines.c (run_pipeline): Check
3173         element_set_state's return val.
3174         (test_2_elements): Add test that's been disabled for months.
3175
3176         * gst/elements/gstfakesink.c: Cleanups. Add can-activate-push and
3177         can-activate-pull properties.
3178
3179         * gst/elements/gstfakesrc.c: Cleanups. Add can-activate-push and
3180         can-activate-pull properties. Implement is_seekable so fakesrc can
3181         operate in pull mode.
3182
3183         * gst/base/gstbasesink.c (GstBaseSink): Remove has-loop, has-chain
3184         properties.
3185         (gst_base_sink_activate, gst_base_sink_activate_pull)
3186         (gst_base_sink_activate_push): Make activation mode choosing work.
3187         Cleanups.
3188         (gst_base_sink_chain, gst_base_sink_loop): Assert activation mode
3189         is right. Make pull mode work. Post an eos before pausing in pull
3190         mode.
3191         (gst_base_sink_change_state): Pay attention to the core's
3192         change_state() return val.
3193         
3194         * gst/base/gstbasesrc.c (GstBaseSrc): Remove has-loop,
3195         has-getrange properties. Cleanups.
3196         
3197         * gst/base/gstbasesrc.h (GstBaseSrc): Remove has_loop,
3198         has_getrange and replace with can_activate_pull and
3199         can_activate_push.
3200
3201         * gst/base/gstbasesink.h (GstBaseSink): Rearrange fields, add
3202         locking comments. Remove has_loop, has_chain and replace with
3203         can_activate_pull and can_activate_push.
3204
3205 2005-08-26  Jan Schmidt  <thaytan@mad.scientist.com>
3206
3207         * configure.ac:
3208         * examples/Makefile.am:
3209         * examples/metadata/Makefile.am:
3210         * examples/metadata/read-metadata.c: (message_loop),
3211         (have_pad_handler), (make_pipeline), (print_tag), (main):
3212           Add metadata reading example that loops over a list of filenames,
3213           dumping any tags found.
3214
3215         * gst/gstbus.c: (gst_bus_dispose):
3216         * gst/gstelement.c: (gst_element_dispose):
3217           Release a few potentially-held references in dispose.
3218
3219 2005-08-26  Stefan Kost  <ensonic@users.sf.net>
3220
3221         * docs/gst/tmpl/gstminiobject.sgml:
3222           do *not* add tmpl/*.sgml files to CVS!
3223
3224 2005-08-26  Stefan Kost  <ensonic@users.sf.net>
3225
3226         * libs/gst/bytestream/.cvsignore:
3227         * libs/gst/bytestream/Makefile.am:
3228         * libs/gst/bytestream/adapter.c:
3229         * libs/gst/bytestream/adapter.h:
3230         * libs/gst/bytestream/bytestream.c:
3231         * libs/gst/bytestream/bytestream.h:
3232         * libs/gst/bytestream/filepad.c:
3233         * libs/gst/bytestream/filepad.h:
3234           removing obsolete files
3235
3236 2005-08-26  Stefan Kost  <ensonic@users.sf.net>
3237
3238         * docs/gst/gstreamer-docs.sgml:
3239         * docs/libs/gstreamer-libs-docs.sgml:
3240           disabed additional index entries again, as this makes docs-gen just
3241           slow and they aren't useful yet
3242         * docs/libs/gstreamer-libs-sections.txt:
3243           little -section.txt cleanup for libs
3244
3245 2005-08-26  Thomas Vander Stichele  <thomas at apestaart dot org>
3246
3247         * gst/base/gstbasesink.c: (gst_base_sink_handle_object):
3248         * gst/base/gstbasetransform.c: (gst_base_transform_transform_size),
3249           fix up some debugging
3250         (gst_base_transform_get_unit_size),
3251         (gst_base_transform_buffer_alloc), (gst_base_transform_event),
3252         (gst_base_transform_handle_buffer):
3253         * gst/base/gstbasetransform.h:
3254           handle and store timed NEWSEGMENT events so that subclasses that
3255           calculate time by counting samples have a segment_start time they
3256           need to add to their timestamps - see audioresample
3257
3258 2005-08-26  Stefan Kost  <ensonic@users.sf.net>
3259
3260         * gst/gstbin.h:
3261           removed ';' from the end of macro defs
3262         * docs/gst/gstreamer-docs.sgml:
3263         * docs/gst/gstreamer-sections.txt:
3264         * docs/gst/tmpl/.cvsignore:
3265         * gst/gstbus.h:
3266         * gst/gstelement.c: (gst_element_class_init),
3267         (gst_element_set_state), (activate_pads),
3268         (gst_element_save_thyself):
3269         * gst/gstevent.c: (gst_event_new_newsegment):
3270         * gst/gstevent.h:
3271         * gst/gstiterator.c:
3272         * gst/gstiterator.h:
3273         * gst/gstpad.c:
3274         * gst/gstprobe.h:
3275         * gst/gstutils.c: (gst_pad_query_convert):
3276         * gst/gstutils.h:
3277           fixed parameter name mismatches between source, header and docs
3278           added some more docs, resolved the last batch of unused elements in
3279           docs (now someone needs to doc them)
3280
3281 2005-08-25  Thomas Vander Stichele  <thomas at apestaart dot org>
3282
3283         * gst/registries/gstlibxmlregistry.c: (gst_xml_registry_rebuild):
3284         * gst/registries/gstxmlregistry.c: (gst_xml_registry_rebuild):
3285           don't walk through the plugins backwards.  Where is all this
3286           reversed logic coming from ?
3287
3288 2005-08-25  Wim Taymans  <wim@fluendo.com>
3289
3290         * gst/base/gstbasetransform.c: (gst_base_transform_init),
3291         (gst_base_transform_transform_size),
3292         (gst_base_transform_configure_caps),
3293         (gst_base_transform_get_unit_size),
3294         (gst_base_transform_buffer_alloc),
3295         (gst_base_transform_change_state):
3296         * gst/base/gstbasetransform.h:
3297         Cache caps unit_size.
3298         Make sure we cannot negotiate up and downstream at the
3299         same time.
3300
3301 2005-08-25  Thomas Vander Stichele  <thomas at apestaart dot org>
3302
3303         * gst/gst.c: (init_pre), (init_post):
3304           register the installed plugin path after the env var
3305         * gst/registries/gstlibxmlregistry.c: (gst_xml_registry_save):
3306         * gst/registries/gstxmlregistry.c: (gst_xml_registry_save):
3307           don't reverse order of paths; conserve the order of GST_PLUGIN_PATH
3308           directories, so the tests can prefer uninstalled over installed
3309
3310 2005-08-25  Thomas Vander Stichele  <thomas at apestaart dot org>
3311
3312         * gst/base/gstbasetransform.h:
3313           comment
3314         * gst/gstpad.c:
3315           add to docs
3316
3317 2005-08-25  Wim Taymans  <wim@fluendo.com>
3318
3319         * gst/gstbin.c: (bin_bus_handler):
3320         Be a bit more conservative about the posted message.
3321         
3322         * gst/gstbus.c: (gst_bus_post):
3323         Some cleanups, warn wrong return values.
3324
3325 2005-08-25  Jan Schmidt  <thaytan@mad.scientist.com>
3326
3327         * check/gst/gstbin.c: (GST_START_TEST):
3328         * gst/gstbin.c: (bin_bus_handler):
3329         * gst/gstmessage.c: (gst_message_finalize), (_gst_message_copy),
3330         (gst_message_new), (gst_message_new_eos), (gst_message_new_error),
3331         (gst_message_new_warning), (gst_message_new_tag),
3332         (gst_message_new_state_changed), (gst_message_new_segment_start),
3333         (gst_message_new_segment_done), (gst_message_new_custom):
3334         * gst/gstmessage.h:
3335         * tools/gst-launch.c: (event_loop):
3336         * tools/gst-md5sum.c: (event_loop):
3337           Revert unpopular change for GST_MESSAGE_SRC to GObject.
3338
3339 2005-08-25  Wim Taymans  <wim@fluendo.com>
3340
3341         * check/generic/states.c: (GST_START_TEST):
3342         Cleanup can be done at the end.
3343
3344         * gst/gsttask.c: (gst_task_get_type), (gst_task_finalize),
3345         (gst_task_func), (gst_task_cleanup_all), (gst_task_set_lock),
3346         (gst_task_get_state), (gst_task_start), (gst_task_pause):
3347         Oh boy.. Thanks for finding this, Thomas. 
3348
3349 2005-08-25  Stefan Kost  <ensonic@users.sf.net>
3350
3351         * docs/gst/gstreamer.types:
3352           added missing types
3353
3354 2005-08-25  Stefan Kost  <ensonic@users.sf.net>
3355
3356         * docs/gst/gstreamer-docs.sgml:
3357         * docs/gst/gstreamer-sections.txt:
3358         * docs/gst/tmpl/.cvsignore:
3359         * gst/gstbin.c:
3360         * gst/gstiterator.c:
3361         * gst/gstutils.c:
3362         * gst/registries/gstxmlregistry.h:
3363           added missing classes and symbols (123 more to go)
3364           removed removed symbols from section file
3365           fixed many doc-comments
3366
3367 2005-08-24  Wim Taymans  <wim@fluendo.com>
3368
3369         * check/generic/states.c: (GST_START_TEST):
3370         Make sure all tasks are stopped.
3371
3372         * check/gst/gstbin.c: (GST_START_TEST):
3373         Unref after usage for proper valgrinding.
3374
3375         * gst/gstpad.c: (gst_pad_finalize), (gst_pad_stop_task):
3376         Really wait for the task to stop before destroying the
3377         mutex.
3378
3379         * gst/gstqueue.c: (gst_queue_sink_activate_push),
3380         (gst_queue_src_activate_push):
3381         Small cleanups. Don't stop the task when we did not start
3382         it.
3383
3384         * gst/gsttask.c: (gst_task_get_type), (gst_task_init),
3385         (gst_task_func), (gst_task_cleanup_all), (gst_task_set_lock),
3386         (gst_task_get_state), (gst_task_start), (gst_task_pause),
3387         (gst_task_join):
3388         * gst/gsttask.h:
3389         Protect the stream lock with the object lock.
3390         Disallow setting the stream lock when running.
3391         Add cleanup_all to wait for the threadpool to finish.
3392         Remove code to autoallocate a mutex if none was provided.
3393         Add _join() to wait for a task to stop.
3394         Protect the thread pool with a global lock.
3395
3396 2005-08-24  Wim Taymans  <wim@fluendo.com>
3397
3398         * gst/base/gstbasesink.c: (gst_base_sink_handle_object),
3399         (gst_base_sink_get_times), (gst_base_sink_do_sync),
3400         (gst_base_sink_handle_buffer), (gst_base_sink_change_state):
3401         * gst/base/gstbasesink.h:
3402         Handle newsegment events correctly.
3403         Drop buffers out of the segment range.
3404
3405 2005-08-22  Andy Wingo  <wingo@pobox.com>
3406
3407         * gst/gstutils.h (GST_BOILERPLATE_WITH_INTERFACE): New ghetto
3408         macro, implements an interface and gstimplementsinterface for a
3409         new type.
3410
3411 2005-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>
3412
3413         * check/Makefile.am:
3414         * check/generic/states.c: (GST_START_TEST), (states_suite), (main):
3415           add a test that does a bunch of state changes on elements
3416           needs some fixing for valgrind
3417         * check/states/sinks.c: (gst_object_suite):
3418           whitespace
3419         * gst/gstcaps.h:
3420           add prototype for gst_caps_is_equal_fixed
3421         * gst/gstplugin.c:
3422         * gst/gstregistrypool.c:
3423           doc fixes
3424
3425 2005-08-24  Andy Wingo  <wingo@pobox.com>
3426
3427         * gst/gstquery.c (gst_query_new_convert): Spew if we try to
3428         convert a negative value. Doesn't make much sense. Mostly this is
3429         here to force callers to ensure -1 maps to -1.
3430
3431 2005-08-24  Jan Schmidt  <thaytan@mad.scientist.com>
3432
3433         * docs/pwg/advanced-types.xml:
3434           Well done to Michael for catching my deliberate introduction
3435           of this spelling mistake. 
3436         * gst/gstbin.c: (gst_bin_remove_func), (bin_bus_handler):
3437         * gst/gstelement.h:
3438           Add GST_ELEMENT_UNPARENTING to prevent races so that we can
3439           unlink pads before removing the element from the bin.
3440
3441 2005-08-24  Andy Wingo  <wingo@pobox.com>
3442
3443         * gst/gst.c (parse_debug_list): Accept e.g. GST_DEBUG=4 to mean
3444         the same thing as GST_DEBUG=*:4.
3445         (parse_debug_level, parse_debug_category): New helper parsers.
3446
3447 2005-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>
3448
3449         * gst/base/gstbasetransform.c: (gst_base_transform_transform_caps),
3450         (gst_base_transform_transform_size), (gst_base_transform_getcaps),
3451         (gst_base_transform_setcaps), (gst_base_transform_get_unit_size),
3452         (gst_base_transform_buffer_alloc),
3453         (gst_base_transform_handle_buffer):
3454           use gboolean return values and pointers to size so we can use the
3455           full GST_BUFFER_SIZE range (guint) for buffer sizes
3456           use GstPadDirection for transform_caps
3457         * gst/base/gstbasetransform.h:
3458           rename get_size to get_unit_size since that's what it is
3459         * gst/elements/gstcapsfilter.c: (gst_capsfilter_transform_caps):
3460           use GstPadDirection for transform_caps
3461         * gst/gstbuffer.c: (gst_buffer_new_and_alloc):
3462         * gst/gstutils.h:
3463           cleanup and debugging
3464
3465 2005-08-24  Stefan Kost  <ensonic@users.sf.net>
3466
3467         * gst/gstelement.c: (gst_element_class_init),
3468         (gst_element_set_state), (activate_pads),
3469         (gst_element_save_thyself):
3470         * tools/gst-compprep.c: (main):
3471         * tools/gst-inspect.c: (print_element_properties_info):
3472         * tools/gst-xmlinspect.c: (print_element_properties):
3473           Fixed long standing mem-leak
3474
3475 2005-08-24  Jan Schmidt  <thaytan@mad.scientist.com>
3476
3477         * check/gst/gstbin.c: (GST_START_TEST):
3478         * gst/gstbin.c: (bin_bus_handler):
3479         * gst/gstmessage.c: (gst_message_finalize), (_gst_message_copy),
3480         (gst_message_new), (gst_message_new_eos), (gst_message_new_error),
3481         (gst_message_new_warning), (gst_message_new_tag),
3482         (gst_message_new_state_changed), (gst_message_new_segment_start),
3483         (gst_message_new_segment_done), (gst_message_new_custom):
3484         * gst/gstmessage.h:
3485         * tools/gst-launch.c: (event_loop):
3486         * tools/gst-md5sum.c: (event_loop):
3487           Change GST_MESSAGE_SRC to be a GObject rather than a GstObject, so
3488           that applications can sensibly post custom messages with references
3489           to their own objects.
3490
3491 2005-08-24  Andy Wingo  <wingo@pobox.com>
3492
3493         * gst/gstpad.c (gst_pad_fixate_caps): Check if the caps is fixed
3494         already.
3495
3496 2005-08-24  Wim Taymans  <wim@fluendo.com>
3497
3498         * gst/base/gstbasetransform.c: (gst_base_transform_init),
3499         (gst_base_transform_transform_caps),
3500         (gst_base_transform_transform_size),
3501         (gst_base_transform_configure_caps), (gst_base_transform_setcaps),
3502         (gst_base_transform_get_size), (gst_base_transform_buffer_alloc),
3503         (gst_base_transform_handle_buffer):
3504         * gst/base/gstbasetransform.h:
3505         Many fixes and new features added by Thomas. Can now also do
3506         transforms with variable sizes and a custom fixate_caps function.
3507
3508 2005-08-24  Wim Taymans  <wim@fluendo.com>
3509
3510         * gst/gstbuffer.c: (gst_buffer_new_and_alloc):
3511         Some debugging.
3512
3513         * gst/gstclock.h:
3514         Cast to ClockTime before formatting to time.
3515
3516         * gst/gstutils.h:
3517         Cleanups.
3518
3519 2005-08-24  Stefan Kost  <ensonic@users.sf.net>
3520
3521         * check/gst-libs/controller.c: (GST_START_TEST),
3522         (gst_controller_suite):
3523         * docs/gst/tmpl/gstcaps.sgml:
3524         * docs/gst/tmpl/gstghostpad.sgml:
3525         * docs/gst/tmpl/gstquery.sgml:
3526         * docs/gst/tmpl/gstutils.sgml:
3527         * libs/gst/controller/gst-helper.c: (gst_object_set_controller),
3528         (gst_object_sink_values), (gst_object_get_value_arrays),
3529         (gst_object_get_value_array):
3530           gracefully handle helper method calls to objects that are not beeing
3531           controlled, added test case for that          
3532
3533 2005-08-23  Wim Taymans  <wim@fluendo.com>
3534
3535         * gst/gstevent.c: (_gst_event_copy), (gst_event_new_custom),
3536         (gst_event_new_newsegment), (gst_event_parse_newsegment),
3537         (gst_event_new_tag), (gst_event_parse_tag), (gst_event_new_qos),
3538         (gst_event_parse_qos), (gst_event_new_seek),
3539         (gst_event_parse_seek):
3540         * gst/gstevent.h:
3541         Some more debugging output and doc cleanups.
3542
3543         * gst/gstqueue.c: (gst_queue_handle_sink_event):
3544         Fix possible deadlock.
3545
3546 2005-08-23  Stefan Kost  <ensonic@users.sf.net>
3547
3548         * docs/gst/gstreamer-docs.sgml:
3549         * docs/gst/gstreamer-sections.txt:
3550         * docs/gst/gstreamer.types:
3551         * docs/gst/tmpl/.cvsignore:
3552         * gst/gstbin.h:
3553         * gst/gstbus.c:
3554         * gst/gstelement.c:
3555         * gst/gstevent.h:
3556           added 100 symbols from gstreamer-unused.txt to the right sections
3557           fixed more broken comments
3558           added GstBus to docs
3559
3560 2005-08-23  Stefan Kost  <ensonic@users.sf.net>
3561
3562         * docs/gst/gstreamer-sections.txt:
3563         * docs/gst/tmpl/.cvsignore:
3564         * docs/gst/tmpl/gstbin.sgml:
3565         * docs/gst/tmpl/gstbuffer.sgml:
3566         * gst/base/gstbasesrc.c:
3567         * gst/gstbin.c: (gst_bin_get_type), (gst_bin_class_init):
3568         * gst/gstbuffer.c:
3569         * gst/gstbuffer.h:
3570         * tools/gst-launch.1.in:
3571           inlined more doc comments, added missing comments and fixed comments
3572           fixed typos
3573
3574 2005-08-23  Thomas Vander Stichele  <thomas at apestaart dot org>
3575
3576         * gst/gstbuffer.c: (gst_buffer_new_and_alloc):
3577           some debugging
3578         * gst/gstcaps.h:
3579           whitespace fixes
3580         * gst/gstpad.c: (gst_pad_activate_push), (gst_pad_alloc_buffer):
3581           more debugging
3582         * gst/gststructure.c: (gst_caps_structure_fixate_field_boolean):
3583         * gst/gststructure.h:
3584           add a fixate function for booleans; add a FIXME that these func
3585           names should probably be gst_structure_fixate_*
3586
3587 2005-08-23  Stefan Kost  <ensonic@users.sf.net>
3588
3589         * docs/gst/gstreamer-docs.sgml:
3590         * docs/gst/gstreamer-sections.txt:
3591         * gst/Makefile.am:
3592         * gst/gstbin.c: (gst_bin_get_type),
3593         (gst_bin_child_proxy_get_child_by_index),
3594         (gst_bin_child_proxy_get_children_count),
3595         (gst_bin_child_proxy_init):
3596         * gst/gstchildproxy.c: (gst_child_proxy_get_child_by_name),
3597         (gst_child_proxy_get_child_by_index),
3598         (gst_child_proxy_get_children_count), (gst_child_proxy_lookup),
3599         (gst_child_proxy_get_property), (gst_child_proxy_get_valist),
3600         (gst_child_proxy_get), (gst_child_proxy_set_property),
3601         (gst_child_proxy_set_valist), (gst_child_proxy_set),
3602         (gst_child_proxy_child_added), (gst_child_proxy_child_removed),
3603         (gst_child_proxy_base_init), (gst_child_proxy_get_type):
3604         * gst/gstchildproxy.h:
3605         * gst/parse/grammar.y:
3606         * tools/gst-inspect.c: (print_interfaces),
3607         (print_element_properties_info), (print_element_info):
3608           ported gstchildproxy over from 0.8
3609           ported gst-inspect fixes and enhancements over from 0.8
3610
3611 2005-08-22  Wim Taymans  <wim@fluendo.com>
3612
3613         * gst/base/gstbasetransform.c: (gst_base_transform_transform_caps),
3614         (gst_base_transform_handle_buffer):
3615         Also call the transform function if we have ANY caps.
3616
3617         * gst/gstpipeline.c: (gst_pipeline_set_new_stream_time):
3618         Fix debug info.
3619
3620 2005-08-22  Jan Schmidt  <thaytan@mad.scientist.com>
3621
3622         * gst/base/gstbasesrc.c: (gst_base_src_event_handler)
3623           Don't pretend to handle seek events if the source is not seekable
3624
3625 2005-08-22  Jan Schmidt  <thaytan@mad.scientist.com>
3626
3627         * gst/base/gstbasesink.c: (gst_base_sink_handle_object):
3628           Remove extra parameter to debug output
3629
3630         * gst/base/gstbasesrc.c: (gst_base_src_send_discont),
3631         (gst_base_src_do_seek), (gst_base_src_activate_push):
3632           Fix seek event handling.
3633
3634         * gst/gstpipeline.c: (gst_pipeline_change_state):
3635         * gst/gstqueue.c: (gst_queue_handle_sink_event),
3636         (gst_queue_src_activate_push):
3637           Don't start the src pad task on FLUSH_STOP if the pad
3638           isn't linked.
3639           Debug changes.
3640
3641 2005-08-22  Wim Taymans  <wim@fluendo.com>
3642
3643         * check/gst/gstcaps.c: (GST_START_TEST), (gst_caps_suite):
3644         Added check for gst_static_caps_get() refcounting.
3645
3646 2005-08-22  Wim Taymans  <wim@fluendo.com>
3647
3648         * gst/gstcaps.c: (gst_static_caps_get), (gst_caps_to_string):
3649         Make _static_caps_get() refcounting sane.
3650         
3651         * gst/gstelement.c: (gst_element_set_state):
3652         Add g_return_val_if_fail() to protect against segfaults.
3653
3654 2005-08-22  Stefan Kost  <ensonic@users.sf.net>
3655
3656         * docs/gst/tmpl/gstevent.sgml:
3657         * gst/gstevent.c:
3658         * gst/gstevent.h:
3659           inlined remaining docs, added missing doc comments
3660
3661 2005-08-22  Thomas Vander Stichele  <thomas at apestaart dot org>
3662
3663         * check/gst/gstbin.c: (GST_START_TEST):
3664           since we don't know when preroll is done, use refcount range
3665           check for the sink
3666         * gst/check/gstcheck.h:
3667           add macro for checking refcount range
3668
3669 2005-08-21  Thomas Vander Stichele  <thomas at apestaart dot org>
3670
3671         * check/Makefile.am:
3672           clean up environment for when registry gets built versus
3673           when actual tests are run; valgrind seems to not report
3674           leaks if GST_PLUGIN_PATH is set to some specific values
3675         * check/gst/gstbin.c: (GST_START_TEST):
3676           add more refcounting checks; maybe this exposes a
3677           preroll lock bug ?
3678         * common/check.mak:
3679         * gst/base/gstbasesink.c: (gst_base_sink_handle_object):
3680         * gst/check/gstcheck.h:
3681         * gst/gstbin.c: (bin_element_is_semi_sink), (gst_bin_get_state),
3682         (gst_bin_change_state):
3683         * gst/gstpad.c: (gst_pad_activate_push), (gst_pad_chain):
3684           add/fix debugging/whitespace
3685
3686 2005-08-21  Jan Schmidt  <thaytan@mad.scientist.com>
3687
3688         * check/gst/gstevent.c: (event_probe), (test_event),
3689         (GST_START_TEST):
3690          Er, don't call gst_bin_watch_for_state_change you idiot.
3691
3692 2005-08-21  Jan Schmidt  <thaytan@mad.scientist.com>
3693
3694         * check/Makefile.am:
3695           Use CHECK_CFLAGS and CHECK_LIBS
3696         * check/gst/gstevent.c: (event_probe), (test_event),
3697         (GST_START_TEST):
3698           Don't leak events.
3699         * gst/base/gstbasesrc.c: (gst_base_src_send_discont),
3700         (gst_base_src_start), (gst_base_src_stop),
3701         (gst_base_src_activate_push), (gst_base_src_activate_pull),
3702         (gst_base_src_change_state):
3703           Sprinkle gst_base_src_stop liberally around error paths to fix
3704           problems reusing a source after failed state changes.
3705         * gst/base/gsttypefindhelper.c: (helper_find_peek),
3706         (helper_find_suggest), (gst_type_find_helper):
3707           Extra debug output. Don't segfault on GST_PAD_GETRANGEFUNC = NULL
3708         * gst/gstevent.h:
3709         * docs/gst/tmpl/gstevent.sgml:
3710           Migrate part of the docs from the SGML file. Wait for ensonic to
3711           tell me how I did it wrong ;)
3712         * tools/gst-typefind.c: (main):
3713           Extra robustness to state changes between files.
3714
3715 2005-08-21  Thomas Vander Stichele  <thomas at apestaart dot org>
3716
3717         * check/Makefile.am:
3718           don't valgrind the controller test - it's leaking - Stefan, HELP
3719         * gst/check/gstcheck.c: (gst_check_message_error),
3720         (gst_check_chain_func), (gst_check_setup_element),
3721         (gst_check_teardown_element), (gst_check_setup_src_pad),
3722         (gst_check_teardown_src_pad), (gst_check_setup_sink_pad),
3723         (gst_check_teardown_sink_pad):
3724         * gst/check/gstcheck.h:
3725           add a bunch of methods to set up elements, and src and sink pads
3726         * check/elements/fakesrc.c: (setup_fakesrc), (cleanup_fakesrc):
3727         * check/elements/identity.c: (setup_identity), (cleanup_identity),
3728         (GST_START_TEST):
3729           use them
3730         * gst/gstmessage.c:
3731         * gst/gsttag.h:
3732           whitespace/doc fixes
3733
3734 2005-08-20  Thomas Vander Stichele  <thomas at apestaart dot org>
3735
3736         * gst/gstelement.h:
3737           make GST_ELEMENT_ERROR not do GST_ERROR_OBJECT - these errors should
3738           be handled by the application and not always printed as well
3739
3740 2005-08-20  Thomas Vander Stichele  <thomas at apestaart dot org>
3741
3742         * check/Makefile.am:
3743           set GST_TOOLS_DIR
3744         * gst/check/gstcheck.c: (gst_check_message_error):
3745         * gst/check/gstcheck.h:
3746           add a fail_unless_equals_int
3747           add fail_unless for error messages
3748
3749 2005-08-20  Thomas Vander Stichele  <thomas at apestaart dot org>
3750
3751         * check/Makefile.am:
3752         * check/gst.supp:
3753         * common/Makefile.am:
3754         * common/check.mak:
3755         * common/gst.supp:
3756           factor out some of the common stuff so we can use it
3757
3758 2005-08-20  Thomas Vander Stichele  <thomas at apestaart dot org>
3759
3760         * check/Makefile.am:
3761         * check/gst/gstiterator.c: (GST_START_TEST):
3762         * check/gst/gstsystemclock.c: (GST_START_TEST),
3763         (gst_systemclock_suite):
3764         * check/gst/gsttag.c: (GST_START_TEST), (gst_tag_suite):
3765         * gst/gstclock.c:
3766           valgrind more tests
3767
3768 2005-08-20  Thomas Vander Stichele  <thomas at apestaart dot org>
3769
3770         * check/elements/.cvsignore:
3771         * check/elements/gstfakesrc.c:
3772           rename to name of element
3773         * check/elements/identity.c: (chain_func), (event_func),
3774         (setup_identity), (cleanup_identity), (GST_START_TEST),
3775         (identity_suite), (main):
3776           add a test for identity
3777         * check/Makefile.am:
3778         * pkgconfig/Makefile.am:
3779         * pkgconfig/gstreamer-check.pc.in:
3780         * pkgconfig/gstreamer-check-uninstalled.pc.in:
3781         * gst/check:
3782         * gst/Makefile.am:
3783         * configure.ac:
3784           move the check stuff to a library that gets installed
3785         * check/gst-libs/controller.c: (GST_START_TEST):
3786         * check/gst-libs/gdp.c:
3787         * check/gst/gst.c: (GST_START_TEST):
3788         * check/gst/gstbin.c:
3789         * check/gst/gstbuffer.c: (GST_START_TEST), (gst_test_suite):
3790         * check/gst/gstbus.c:
3791         * check/gst/gstcaps.c: (GST_START_TEST):
3792         * check/gst/gstelement.c:
3793         * check/gst/gstghostpad.c:
3794         * check/gst/gstiterator.c:
3795         * check/gst/gstmessage.c:
3796         * check/gst/gstminiobject.c: (thread_ref), (GST_START_TEST):
3797         * check/gst/gstobject.c:
3798         * check/gst/gstpad.c: (GST_START_TEST):
3799         * check/gst/gststructure.c: (GST_START_TEST):
3800         * check/gst/gstsystemclock.c: (GST_START_TEST),
3801         (gst_systemclock_suite):
3802         * check/gst/gsttag.c: (gst_tag_suite):
3803         * check/gst/gstvalue.c:
3804         * check/pipelines/cleanup.c:
3805         * check/pipelines/simple_launch_lines.c:
3806         * check/states/sinks.c:
3807           change include statement
3808
3809         * docs/gst/gstreamer-sections.txt:
3810         * docs/gst/tmpl/gstpad.sgml:
3811           document more pad stuff
3812         * gst/gstminiobject.c: (gst_mini_object_ref),
3813         (gst_mini_object_unref):
3814           debug refcounting
3815
3816 2005-08-19  Stefan Kost  <ensonic@users.sf.net>
3817
3818         * docs/gst/tmpl/gst.sgml:
3819         * gst/gst.c:
3820           eliminate another tmpl file, fix spelling in the long-description
3821
3822 2005-08-18  Jan Schmidt  <thaytan@mad.scientist.com>
3823
3824         * check/gst/gstevents.c: (GST_START_TEST), (event_probe),
3825         (test_event), (timediff), (gstevents_suite):
3826           Should fix build on 64-bit arch's
3827
3828 2005-08-18  Andy Wingo  <wingo@pobox.com>
3829
3830         Make sure that when a pipeline goes to PLAYING, that data has
3831         actually hit the sink.
3832
3833         * check/states/sinks.c (test_sink): A sink that doesn't get any
3834         data shouldn't return SUCCESS for going to either PLAYING or
3835         PAUSED. Test also the return values on the way back down.
3836
3837         * gst/gstelement.c (gst_element_set_state): When changing the
3838         state of an element currently changing state asynchronously, go to
3839         lost-state after commiting the pending state. Makes future calls
3840         to get_state continue to return ASYNC.
3841
3842         * gst/base/gstbasesink.c (gst_base_sink_change_state): Return
3843         ASYNC when going to PLAYING if we still don't have preroll, as can
3844         happen with live sources.
3845
3846 2005-08-18  Jan Schmidt  <thaytan@mad.scientist.com>
3847
3848         * docs/pwg/advanced-types.xml:
3849           Hack long paragraph into 2 chunks as a workaround for buggy
3850           jadetex version in sid and breezy that loops infinitely and
3851           eats all RAM.
3852
3853 2005-08-18  Jan Schmidt  <thaytan@mad.scientist.com>
3854
3855         * check/gst/gstevents.c: (GST_START_TEST), (event_probe),
3856         (test_event), (timediff), (gstevents_suite):
3857           Provide more error margin in clock measurements to allow for 
3858           g_get_current_time inaccuracies.
3859
3860 2005-08-18  Jan Schmidt  <thaytan@mad.scientist.com>
3861
3862         * check/gst/gstevents.c: (GST_START_TEST), (event_probe),
3863         (test_event), (timediff), (gstevents_suite):
3864            Fix error message output so I might be able to tell why the
3865            test works here but fails on the build farm.
3866
3867 2005-08-18  Jan Schmidt  <thaytan@mad.scientist.com>
3868
3869         * check/Makefile.am:
3870         * check/gst/gstevents.c: (GST_START_TEST), (event_probe),
3871         (test_event), (timediff), (gstevents_suite), (main):
3872           I wrote a test!
3873
3874         * docs/design/part-seeking.txt:
3875           Spelling correction
3876
3877         * docs/gst/tmpl/gstevent.sgml:
3878         * docs/gst/tmpl/gstfakesrc.sgml:
3879           Docs updates.
3880
3881         * gst/base/gstbasesink.c: (gst_base_sink_handle_object):
3882           Treat a buffer-without-newsegment the same as a receiving 
3883           a newsegment not in time format, and disable syncing to the clock
3884           with a warning.
3885
3886         * gst/gstbus.c: (gst_bus_set_sync_handler):
3887           Assert if anyone tries to replace the existing sync_handler for bus, 
3888           as only the owner should be setting it.
3889
3890         * gst/gstevent.h:
3891           Have a fixed set of custom event enums with events identified by
3892           their structure name (as in 0.8), rather than a free-for-all
3893           allowing collisions between enum values from different plugins.
3894
3895         * gst/gstpad.c: (gst_pad_class_init):
3896           Docs change.
3897           
3898         * gst/gstqueue.c: (gst_queue_handle_sink_event):
3899           Handle out-of-band downstream events from the sending thread.
3900
3901 2005-08-17  Andy Wingo  <wingo@pobox.com>
3902
3903         * gst/gstpipeline.c (gst_pipeline_change_state): Interpret
3904         play-timeout==0 to mean no timeout at all. In that case, don't
3905         bother with a get_state or a warning, just return directly, even
3906         if it's ASYNC.
3907
3908         * gst/base/gstbasetransform.c: Debug changes.
3909
3910         * gst/gstutils.h:
3911         * gst/gstutils.c (gst_bin_watch_for_state_change): Add function to
3912         ensure bins post state change messages. A bit of a hack but I can't
3913         think of a way to avoid it.
3914
3915         * check/gst/gstbin.c (test_watch_for_state_change): Added test.
3916
3917 2005-08-16  Andy Wingo  <wingo@pobox.com>
3918
3919         * gst/base/gstadapter.h:
3920         * gst/base/gstadapter.c (gst_adapter_take): New function, like
3921         peek() but you own the data. Not terribly efficient atm.
3922
3923 2005-08-16  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
3924
3925         * gst/gstutils.c: (gst_element_found_tags_for_pad), (push_and_ref),
3926         (gst_element_found_tags):
3927         * gst/gstutils.h:
3928           Add two utility functions for tag handling.
3929
3930 2005-08-16  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
3931
3932         * docs/manual/advanced-dataaccess.xml:
3933         * docs/manual/basics-helloworld.xml:
3934           Fix docs to use _bin_add() before _link(), which fixes the examples
3935           with recent core versions (reported by Madhan Raj M
3936           <raj_madan@rediffmail.com>, #313199).
3937
3938 2005-08-16  Wim Taymans  <wim@fluendo.com>
3939
3940         * check/gst/gstvalue.c: (GST_START_TEST), (gst_value_suite):
3941         Added subtract checks.
3942
3943         * docs/design/part-events.txt:
3944         Some more docs about newsegment
3945
3946         * gst/gstbin.c: (gst_bin_change_state), (bin_bus_handler):
3947         Fix FIXME
3948
3949         * gst/gstcaps.c: (gst_caps_to_string):
3950         Add comments, cleanups.
3951         
3952         * gst/gstelement.c: (gst_element_save_thyself):
3953         cleanups
3954         
3955         * gst/gstvalue.c: (gst_value_collect_int_range),
3956         (gst_string_unwrap), (gst_value_union_int_int_range),
3957         (gst_value_union_int_range_int_range),
3958         (gst_value_intersect_int_int_range),
3959         (gst_value_intersect_int_range_int_range),
3960         (gst_value_intersect_double_double_range),
3961         (gst_value_intersect_double_range_double_range),
3962         (gst_value_intersect_list), (gst_value_subtract_int_int_range),
3963         (gst_value_subtract_int_range_int),
3964         (gst_value_subtract_double_range_double),
3965         (gst_value_subtract_double_range_double_range),
3966         (gst_value_subtract_from_list), (gst_value_subtract_list),
3967         (gst_value_can_compare), (gst_value_compare_fraction):
3968         Cleanups, add comments, remove unneeded asserts.
3969
3970 2005-08-15  Thomas Vander Stichele  <thomas at apestaart dot org>
3971
3972         * tools/gst-launch.c: (event_loop):
3973           don't convert NULL structures to strings
3974
3975 2005-08-15  Stefan Kost  <ensonic@users.sf.net>
3976
3977         * docs/gst/gstreamer-sections.txt:
3978           made some defines private
3979         * docs/gst/tmpl/gstconfig.sgml:
3980         * docs/gst/tmpl/gstqueue.sgml:
3981         * docs/gst/tmpl/gsttaglist.sgml:
3982         * docs/gst/tmpl/gsttypes.sgml:
3983         * docs/gst/tmpl/gstutils.sgml:
3984         * docs/pwg/appendix-porting.xml:
3985         * gst/base/gstbasesink.h:
3986         * gst/base/gstbasesrc.c:
3987         * gst/base/gstbasesrc.h:
3988         * gst/elements/gstfakesink.c: (gst_fake_sink_class_init):
3989         * gst/elements/gstfakesrc.c: (gst_fake_src_class_init):
3990         * gst/gstelement.c: (gst_element_class_init):
3991         * gst/gstpad.c: (gst_pad_class_init):
3992         * gst/gstqueue.c: (gst_queue_class_init):
3993         * gst/gstxml.c: (gst_xml_class_init):
3994           documented all undocumented signal inline
3995         * libs/gst/controller/gst-controller.h:
3996           added padding
3997
3998 2005-08-15  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
3999
4000         * docs/pwg/appendix-porting.xml:
4001           Document _set_link_function -> _set_setcaps_function.
4002
4003 2005-08-15  Thomas Vander Stichele  <thomas at apestaart dot org>
4004
4005         * check/Makefile.am:
4006           add a .check target for running the check
4007         * check/gst-libs/controller.c: (GST_START_TEST):
4008           cosmetic fixups
4009         * check/gst/gstbuffer.c: (GST_START_TEST), (gst_test_suite):
4010           complete checks for gstbuffer; would be nice if I could get the
4011           gcov stuff to work so I can see if I actually completed gstbuffer.c
4012         * check/gstcheck.h:
4013           add ASSERT_BUFFER_REFCOUNT
4014
4015 2005-08-13  Tim-Philipp Müller  <tim at centricular dot net>
4016
4017         * docs/gst/gstreamer-sections.txt:
4018         * gst/gsttag.c: (_gst_tag_initialize), (gst_tag_register):
4019         * gst/gsttag.h:
4020           Add GST_TAG_LANGUAGE_CODE as we have in 0.8, and don't
4021           spew out a warning if a tag that is already registered
4022           is re-registered, unless it is re-registered with a 
4023           different type (#308438).
4024
4025 2005-08-12  Tim-Philipp Müller  <tim at centricular dot net>
4026
4027         * docs/pwg/appendix-porting.xml:
4028         * docs/pwg/building-state.xml:
4029           Add some paragraphs about state changes in 0.9 to the PWG
4030           and the porting guide, in particular about the new meaning
4031           of GST_STATE_PAUSED and how to write state change functions
4032           with concurrent access by multiple threads in mind.
4033
4034 2005-08-11  Stefan Kost  <ensonic@users.sf.net>
4035
4036         * docs/gst/gstreamer-docs.sgml:
4037         * docs/libs/gstreamer-libs-docs.sgml:
4038           added deprecation and since indexes
4039         * libs/gst/controller/gst-controller.c:
4040         * libs/gst/controller/gst-helper.c:
4041           added since tags
4042
4043
4044 2005-08-11  Wim Taymans  <wim@fluendo.com>
4045
4046         * gst/gstghostpad.c: (gst_proxy_pad_set_target_unlocked),
4047         (gst_proxy_pad_set_target), (gst_proxy_pad_get_target),
4048         (gst_proxy_pad_dispose), (gst_ghost_pad_do_activate_push),
4049         (gst_ghost_pad_do_link), (gst_ghost_pad_set_internal),
4050         (gst_ghost_pad_new_notarget), (gst_ghost_pad_get_target),
4051         (gst_ghost_pad_set_target):
4052         Actually implement (re)setting the target on a ghostpad
4053         as described in the docs.
4054
4055 2005-08-10  Tim-Philipp Müller  <tim at centricular dot net>
4056
4057         * gst/gst.c: (gst_init_check_with_popt_table), (init_pre):
4058           Check whether GST_DEBUG_NO_COLOR environment variable is
4059           set and disable coloured debug output if that is the case.
4060
4061 2005-08-10  Tim-Philipp Müller  <tim at centricular dot net>
4062
4063         * gst/base/gsttypefindhelper.c: (helper_find_peek),
4064         (gst_type_find_helper):
4065           The memory returned by gst_type_find_peek() needs to
4066           stay valid until the end of a typefind function, and
4067           typefind functions may keep results from different 
4068           offsets around, so we can't just unref the buffer from
4069           the previous _peek(), but have to save all buffers 
4070           returned by _peek() until typefinding is done and only
4071           free them then.
4072
4073 2005-08-09  Tim-Philipp Müller  <tim at centricular dot net>
4074
4075         * docs/gst/gstreamer-sections.txt:
4076         * gst/gstutils.h:
4077           New macros: GST_ROUND_UP_2() through GST_ROUND_UP_64().
4078
4079 2005-08-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
4080
4081         * gst/base/gstbasetransform.c: (gst_base_transform_buffer_alloc):
4082           Fix a pretty good memleak.
4083
4084 2005-08-08  Tim-Philipp Müller  <tim at centricular dot net>
4085
4086         * gst/gstiterator.h:
4087           Fix wrong include and 'make distcheck'.
4088
4089 2005-08-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
4090
4091         * gst/gstbin.c: (bin_bus_handler):
4092           Use gst_element_post_message() instead.
4093
4094 2005-08-08  Tim-Philipp Müller  <tim at centricular dot net>
4095
4096         * gst/base/gstadapter.h:
4097         * gst/base/gstbasesink.h:
4098         * gst/base/gstbasesrc.h:
4099         * gst/base/gstbasetransform.h:
4100         * gst/base/gstcollectpads.h:
4101         * gst/base/gstpushsrc.h:
4102         * gst/gstiterator.h:
4103           Add padding to our base elements' class and instance structs and
4104           to GstIterator (you will need to rebuild all plugins and apps!)
4105
4106 2005-08-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
4107
4108         * gst/gstbin.c: (bin_bus_handler):
4109           Make default message forwarding from child->bus to bin->bus
4110           threadsafe and make it not emit warnings if the parent has no bus.
4111
4112 2005-08-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
4113
4114         * gst/gstelement.c: (activate_pads):
4115           On paused->ready, set pad->caps to NULL, as is the documented
4116           behaviour in this state change. Fixes playback of series of
4117           media files when visualization is enabled in Totem.
4118
4119 2005-08-07  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
4120
4121         * gst/elements/gstcapsfilter.c: (gst_capsfilter_set_property):
4122           Allow NULL as filter-caps (which means "any").
4123
4124 2005-08-05  Stefan Kost  <ensonic@users.sf.net>
4125
4126         * docs/libs/gstreamer-libs-sections.txt:
4127         * libs/gst/controller/gst-controller.c:
4128         * libs/gst/controller/gst-controller.h:
4129         * libs/gst/controller/gst-helper.c:
4130           adding more entries to the docs and fix small doc-bugs
4131
4132 2005-08-05  Stefan Kost  <ensonic@users.sf.net>
4133
4134         * docs/gst/gstreamer-docs.sgml:
4135         * docs/gst/gstreamer-sections.txt:
4136         * docs/gst/gstreamer.types:
4137         * docs/gst/tmpl/gstbasesink.sgml:
4138         * docs/gst/tmpl/gstbasesrc.sgml:
4139         * docs/gst/tmpl/gstbasetransform.sgml:
4140         * docs/gst/tmpl/gstfakesrc.sgml:
4141         * gst/base/gstcollectpads.c:
4142         * gst/base/gstcollectpads.h:
4143         * libs/gst/controller/gst-controller.c:
4144         * libs/gst/controller/gst-controller.h:
4145         * libs/gst/controller/gst-helper.c:
4146         * libs/gst/controller/gst-interpolation.c:
4147         * libs/gst/controller/lib.c:
4148           added long/short desc for controller docs
4149           added collectpads base class docs
4150           added correct includes to base-class docs
4151
4152 2005-08-05  Stefan Kost  <ensonic@users.sf.net>
4153
4154         * check/gst-libs/controller.c: (gst_test_mono_source_get_property),
4155         (gst_test_mono_source_set_property),
4156         (gst_test_mono_source_class_init), (GST_START_TEST),
4157         (gst_controller_suite):
4158         * docs/gst/gstreamer-docs.sgml:
4159         * docs/gst/gstreamer-sections.txt:
4160         * docs/gst/gstreamer.types:
4161         * docs/libs/gstreamer-libs-docs.sgml:
4162         * docs/libs/gstreamer-libs-sections.txt:
4163         * gst/base/gstadapter.c:
4164         * libs/gst/controller/gst-controller.c:
4165         (gst_controlled_property_new), (gst_controlled_property_free),
4166         (gst_controller_new_valist),
4167         (gst_controller_remove_properties_valist),
4168         (gst_controller_sink_values), (_gst_controller_finalize):
4169         * libs/gst/controller/gst-controller.h:
4170         * libs/gst/controller/gst-helper.c:
4171         (gst_object_control_properties), (gst_object_uncontrol_properties),
4172         (gst_object_get_controller), (gst_object_set_controller),
4173         (gst_object_sink_values), (gst_object_get_value_arrays),
4174         (gst_object_get_value_array):
4175           more tests (and fixes) for the controller
4176           more docs for the controller
4177           integrated companies docs for the adapter 
4178
4179 2005-08-05  Thomas Vander Stichele  <thomas at apestaart dot org>
4180
4181         * check/elements/gstfakesrc.c: (setup_fakesrc), (cleanup_fakesrc),
4182         (GST_START_TEST), (fakesrc_suite):
4183           add tests for sizetype
4184
4185 2005-08-04  Andy Wingo  <wingo@pobox.com>
4186
4187         * gst/elements/gstcapsfilter.c: Reimplement using basetransform,
4188         fixes buffer_alloc proxying among other things.
4189
4190         * gst/base/gstbasetransform.c:
4191         * gst/base/gstbasetransform.h:
4192         Revert patch to gstbasetransform from 7-28 removing
4193         delay_configure.
4194
4195         * gst/base/gstbasetransform.h (GstBaseTransformClass.get_size):
4196         * gst/base/gstbasetransform.c (gst_base_transform_get_size):
4197         Semantics changed, should return not the size of the output buffer
4198         but the byte size of a buffer with a given caps.
4199
4200         * gst/base/gstbasetransform.c (gst_base_transform_getcaps): Better
4201         debug object.
4202         (gst_base_transform_configure_caps): Don't set out_size here: (in,
4203         out) are not the pad caps until setcaps finishes.
4204         (gst_base_transform_buffer_alloc): Proxy the buffer_alloc for the
4205         not-in-place case as well. Deal with changing from in-place to
4206         not-in-place within calling pad_alloc_buffer. Still a bit
4207         concerned about the overhead here...
4208
4209 2005-08-03  Andy Wingo  <wingo@pobox.com>
4210
4211         * gst/base/gstbasetransform.c (gst_base_transform_setcaps): Not
4212         fixating is an error.
4213
4214 2005-08-04  Edward Hervey  <edward@fluendo.com>
4215
4216         * gst/base/gstadapter.h: 
4217         Added gst_adapter_get_type() to the header
4218
4219 2005-08-03  Stefan Kost  <ensonic@users.sf.net>
4220
4221         * check/Makefile.am:
4222         * check/gst-libs/controller.c:
4223         * libs/gst/controller/gst-controller.c:
4224         (gst_controller_new_valist):
4225           added check test suite for the controller
4226         * gst/base/gstpushsrc.c:
4227           fixed a doc typo
4228
4229 2005-08-03  Stefan Kost  <ensonic@users.sf.net>
4230
4231         * docs/gst/Makefile.am:
4232         * docs/gst/gstreamer-docs.sgml:
4233         * docs/gst/gstreamer-sections.txt:
4234         * docs/gst/gstreamer.types:
4235         * docs/gst/tmpl/gstfakesrc.sgml:
4236         * gst/base/README:
4237         * gst/base/gstbasesink.c:
4238         * gst/base/gstbasesink.h:
4239         * gst/base/gstbasesrc.c:
4240         * gst/base/gstbasesrc.h:
4241         * gst/base/gstbasetransform.c:
4242         * gst/base/gstpushsrc.c:
4243         * gst/base/gstpushsrc.h:
4244           add short/long description docs to base classes
4245           add pushsrc to the docs
4246           remove consolidated doc fragments
4247
4248 2005-08-03  Stefan Kost  <ensonic@users.sf.net>
4249
4250         * configure.ac:
4251         * docs/libs/Makefile.am:
4252         * docs/libs/gstreamer-libs-docs.sgml:
4253         * docs/libs/gstreamer-libs-sections.txt:
4254         * docs/libs/gstreamer-libs.types:
4255         * examples/Makefile.am:
4256         * examples/controller/.cvsignore:
4257         * examples/controller/Makefile.am:
4258         * examples/controller/audio-example.c: (main):
4259         * libs/gst/Makefile.am:
4260         * libs/gst/controller/.cvsignore:
4261         * libs/gst/controller/Makefile.am:
4262         * libs/gst/controller/gst-controller.c:
4263         (on_object_controlled_property_changed), (gst_timed_value_compare),
4264         (gst_timed_value_find),
4265         (gst_controlled_property_set_interpolation_mode),
4266         (gst_controlled_property_new), (gst_controlled_property_free),
4267         (gst_controller_find_controlled_property),
4268         (gst_controller_new_valist), (gst_controller_new),
4269         (gst_controller_remove_properties_valist),
4270         (gst_controller_remove_properties), (gst_controller_set),
4271         (gst_controller_set_from_list), (gst_controller_unset),
4272         (gst_controller_get), (gst_controller_get_all),
4273         (gst_controller_sink_values), (gst_controller_get_value_arrays),
4274         (gst_controller_get_value_array),
4275         (gst_controller_set_interpolation_mode),
4276         (_gst_controller_finalize), (_gst_controller_init),
4277         (_gst_controller_class_init), (gst_controller_get_type):
4278         * libs/gst/controller/gst-controller.h:
4279         * libs/gst/controller/gst-helper.c: (g_object_control_properties),
4280         (g_object_uncontrol_properties), (g_object_get_controller),
4281         (g_object_set_controller), (g_object_sink_values),
4282         (g_object_get_value_arrays), (g_object_get_value_array):
4283         * libs/gst/controller/gst-interpolation.c:
4284         (gst_controlled_property_find_timed_value_node),
4285         (interpolate_none_get), (interpolate_trigger_get),
4286         (interpolate_trigger_get_value_array):
4287         * libs/gst/controller/lib.c: (gst_controller_init):
4288         * pkgconfig/Makefile.am:
4289         * pkgconfig/gstreamer-control-uninstalled.pc.in:
4290         * pkgconfig/gstreamer-control.pc.in:
4291         * testsuite/Makefile.am:
4292         * testsuite/controller/.cvsignore:
4293         * testsuite/controller/Makefile.am:
4294         * testsuite/controller/interpolator.c: (main):
4295           added controller code
4296           removed dparam pc files
4297
4298 2005-08-01  Jan Schmidt  <thaytan@mad.scientist.com>
4299         * gst/base/gstcollectpads.c: (gst_collectpads_finalize),
4300         (gst_collectpads_stop):
4301           Broadcast the condition when shutting down, to make sure we wake all
4302           threads up. Shut down pads on finalize, for safety.
4303
4304 2005-08-01  Jan Schmidt  <thaytan@mad.scientist.com>
4305         * gst/base/gstbasetransform.c: (gst_base_transform_init),
4306         (gst_base_transform_handle_buffer),
4307         (gst_base_transform_change_state):
4308           Handle PAUSED->READY->PAUSED transition after negotiation
4309           occurred already.
4310         * gst/gstmessage.c: (gst_message_init):
4311           Extra piece of debug for new messages.
4312
4313 2005-08-01  Stefan Kost  <ensonic@users.sf.net>
4314
4315         * configure.ac:
4316         * docs/gst/tmpl/gstbasesrc.sgml:
4317         * docs/gst/tmpl/gstelement.sgml:
4318         * docs/gst/tmpl/gstevent.sgml:
4319         * docs/gst/tmpl/gstfakesrc.sgml:
4320         * docs/gst/tmpl/gstformat.sgml:
4321         * docs/gst/tmpl/gstghostpad.sgml:
4322         * docs/gst/tmpl/gstpad.sgml:
4323         * docs/gst/tmpl/gstquery.sgml:
4324         * docs/gst/tmpl/gststructure.sgml:
4325         * docs/gst/tmpl/gsttaglist.sgml:
4326         * docs/gst/tmpl/gstvalue.sgml:
4327         * docs/libs/gstreamer-libs-docs.sgml:
4328         * docs/libs/gstreamer-libs-sections.txt:
4329         * docs/libs/gstreamer-libs.types:
4330         * libs/gst/Makefile.am:
4331         * libs/gst/control/.cvsignore:
4332         * libs/gst/control/Makefile.am:
4333         * libs/gst/control/control.c:
4334         * libs/gst/control/control.h:
4335         * libs/gst/control/dparam.c:
4336         * libs/gst/control/dparam.h:
4337         * libs/gst/control/dparam_smooth.c:
4338         * libs/gst/control/dparam_smooth.h:
4339         * libs/gst/control/dparamcommon.h:
4340         * libs/gst/control/dparammanager.c:
4341         * libs/gst/control/dparammanager.h:
4342         * libs/gst/control/dplinearinterp.c:
4343         * libs/gst/control/dplinearinterp.h:
4344         * libs/gst/control/unitconvert.c:
4345         * libs/gst/control/unitconvert.h:
4346         * testsuite/Makefile.am:
4347         * testsuite/dynparams/.cvsignore:
4348         * testsuite/dynparams/Makefile.am:
4349         * testsuite/dynparams/dparamstest.c:
4350         * tools/Makefile.am:
4351         * tools/gst-inspect.c: (print_element_info), (main):
4352         * tools/gst-xmlinspect.c: (print_element_info), (main):
4353           deactivate and remove dparams (libgstcontrol)
4354
4355 2005-08-01  Tim-Philipp Müller  <tim at centricular dot net>
4356
4357         * gst/elements/gsttypefindelement.c:
4358         (gst_type_find_element_have_type), (gst_type_find_element_init),
4359         (stop_typefinding), (gst_type_find_element_handle_event),
4360         (gst_type_find_element_chain), (gst_type_find_element_getrange):
4361         * gst/elements/gsttypefindelement.h:
4362           Set caps on all outgoing buffers, not just the first one.
4363
4364 2005-08-01  Tim-Philipp Müller  <tim at centricular dot net>
4365
4366         * gst/elements/gsttypefindelement.c:
4367         (gst_type_find_element_have_type),
4368         (gst_type_find_element_check_set_buffer_caps),
4369         (gst_type_find_element_init), (stop_typefinding),
4370         (gst_type_find_element_handle_event),
4371         (gst_type_find_element_chain), (gst_type_find_element_getrange):
4372         * gst/elements/gsttypefindelement.h:
4373           Set caps on first outgoing buffer when we've found the type.
4374
4375 2005-08-01  Tim-Philipp Müller  <tim at centricular dot net>
4376
4377         * docs/gst/gstreamer-docs.sgml:
4378         * docs/gst/gstreamer-sections.txt:
4379         * docs/gst/tmpl/gstscheduler.sgml:
4380         * docs/gst/tmpl/gstschedulerfactory.sgml:
4381           Remove some old cruft from docs.
4382
4383 2005-07-31  Tim-Philipp Müller  <tim at centricular dot net>
4384
4385         * gst/gstpad.h:
4386           Fix inline docs for GstPadLinkReturn.
4387           
4388         * gst/gststructure.c: (gst_structure_has_name):
4389         * gst/gststructure.h:
4390         * docs/gst/gstreamer-sections.txt:
4391           New API: gst_structure_has_name().
4392
4393 2005-07-30  Tim-Philipp Müller  <tim at centricular dot net>
4394
4395         * configure.ac:
4396           Use AC_SYS_LARGEFILE, which will set _FILE_OFFSET_BITS=64
4397           and _LARGEFILE_SOURCE in config.h as required. Do not 
4398           export those flags in our .pc files any longer (#142209).
4399
4400           Remove unused GST_DISABLE_OMEGA_COTHREADS stuff.
4401
4402         * gst/elements/gstfilesink.c: (gst_file_sink_class_init),
4403         (gst_file_sink_do_seek), (gst_file_sink_event),
4404         (gst_file_sink_get_current_offset), (gst_file_sink_render):
4405           Redo seek/tell calls with large file support in mind; add some
4406           debugging messages; add log message that tells us when large
4407           file support is unavailable or not enabled for some reason.
4408
4409         * gst/elements/gstfilesrc.c: (gst_file_src_class_init):
4410           Add log message that tells us when large file support 
4411           is unavailable or not enabled for some reason.
4412
4413 2005-07-29  Wim Taymans  <wim@fluendo.com>
4414
4415         * check/gst/gstghostpad.c: (GST_START_TEST), (gst_ghost_pad_suite):
4416         Added test for removing an element with ghostpad from a bin.
4417         Fixed test as current implementation does the right thing.
4418
4419         * gst/gstghostpad.c: (gst_proxy_pad_class_init),
4420         (gst_proxy_pad_do_query_type), (gst_proxy_pad_do_event),
4421         (gst_proxy_pad_do_query), (gst_proxy_pad_do_internal_link),
4422         (gst_proxy_pad_do_bufferalloc), (gst_proxy_pad_do_activate),
4423         (gst_proxy_pad_do_activatepull), (gst_proxy_pad_do_activatepush),
4424         (gst_proxy_pad_do_chain), (gst_proxy_pad_do_getrange),
4425         (gst_proxy_pad_do_checkgetrange), (gst_proxy_pad_do_getcaps),
4426         (gst_proxy_pad_do_acceptcaps), (gst_proxy_pad_do_fixatecaps),
4427         (gst_proxy_pad_do_setcaps), (gst_proxy_pad_set_target),
4428         (gst_proxy_pad_get_target), (gst_proxy_pad_init),
4429         (gst_proxy_pad_dispose), (gst_proxy_pad_finalize),
4430         (gst_ghost_pad_class_init), (gst_ghost_pad_do_activate_push),
4431         (gst_ghost_pad_do_link), (gst_ghost_pad_do_unlink),
4432         (gst_ghost_pad_set_internal), (gst_ghost_pad_dispose),
4433         (gst_ghost_pad_new_notarget), (gst_ghost_pad_new),
4434         (gst_ghost_pad_get_target), (gst_ghost_pad_set_target):
4435         * gst/gstghostpad.h:
4436         Clean up ghostpads, remove properties for internal stuff.
4437         Make threadsafe.
4438         Fix refcounting.
4439         Prepare for switching targets, not all use cases work yet.
4440
4441 2005-07-29  Wim Taymans  <wim@fluendo.com>
4442
4443         * docs/design/part-gstghostpad.txt:
4444         Small update.
4445
4446         * gst/gstbin.c: (unlink_pads), (gst_bin_add_func),
4447         (gst_bin_remove_func):
4448         Unlinking pads while holding the bin LOCK is not a good
4449         idea.
4450
4451         * gst/gstpad.c: (gst_pad_class_init),
4452         (gst_pad_link_check_hierarchy), (gst_pad_get_caps_unlocked),
4453         (gst_pad_accept_caps), (gst_pad_set_caps), (gst_pad_send_event):
4454         No prob setting template after creating the pad.
4455
4456 2005-07-29  Jan Schmidt  <thaytan@mad.scientist.com>
4457
4458         * gst/gstbus.c: (gst_bus_set_flushing), (gst_bus_pop),
4459         (gst_bus_peek), (gst_bus_source_dispatch),
4460         (gst_bus_add_watch_full), (poll_handler), (poll_timeout),
4461         (poll_destroy), (poll_destroy_timeout), (gst_bus_poll):
4462           gst_bus_poll may be called from other threads. Handle
4463           this nicely by not making poll_data disappear off the
4464           stack once gst_bus_poll returns.
4465           gst_bus_peek now increments the refcount on the returned
4466           message.
4467
4468 2005-07-29  Wim Taymans  <wim@fluendo.com>
4469
4470         * docs/design/part-gstghostpad.txt:
4471         Overview of current GhostPad datastructures and use
4472         cases for changing the target.
4473
4474 2005-07-28  Wim Taymans  <wim@fluendo.com>
4475
4476         * check/gst/gstbin.c: (GST_START_TEST), (gst_bin_suite):
4477         Added checks for hierarchy consistency whan adding linked
4478         elements to bins.
4479
4480         * check/gst/gstelement.c: (GST_START_TEST), (gst_element_suite):
4481         Added check to test element scheduling without bin/pipeline.
4482
4483         * check/pipelines/simple_launch_lines.c: (GST_START_TEST):
4484         First add elements to bin, then link.
4485         
4486         * gst/gstbin.c: (unlink_pads), (gst_bin_add_func),
4487         (gst_bin_remove_func):
4488         Unlink pads from elements added/removed from bin to maintain
4489         hierarchy consistency.
4490
4491 2005-07-28  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
4492
4493         * gst/base/gstbasetransform.c: (gst_base_transform_setcaps),
4494         (gst_base_transform_handle_buffer):
4495         * gst/base/gstbasetransform.h:
4496           Remove broken delay_configure (fixes renegotiation of software
4497           scaling pipelines); remove some leftover printf()s.
4498
4499 2005-07-28  Wim Taymans  <wim@fluendo.com>
4500
4501         * check/gst/gstghostpad.c: (GST_START_TEST), (gst_ghost_pad_suite):
4502         Added some more tests for wrong hierarchy
4503
4504         * docs/design/part-overview.txt:
4505         Some updates.
4506
4507         * gst/gstbin.c: (gst_bin_remove_func), (gst_bin_dispose):
4508         Cleanups.
4509
4510         * gst/gstelement.c: (gst_element_remove_pad), (gst_element_seek),
4511         (gst_element_dispose):
4512         Some more cleanups.
4513
4514         * gst/gstpad.c: (gst_pad_link_check_compatible_unlocked),
4515         (gst_pad_link_check_hierarchy), (gst_pad_link_prepare),
4516         (gst_pad_get_caps_unlocked), (gst_pad_accept_caps),
4517         (gst_pad_set_caps), (gst_pad_send_event):
4518         Check for correct hierarchy when linking pads. Moving to
4519         strict requirement for ghostpads when linking elements in
4520         different bins.
4521
4522         * gst/gstpad.h:
4523         Clean ups. Added WRONG_HIERARCHY return value.
4524
4525 2005-07-28  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
4526
4527         * gst/base/gstbasetransform.c: (gst_base_transform_setcaps):
4528           Better debug if no transform is possible.
4529
4530 2005-07-27  Wim Taymans  <wim@fluendo.com>
4531
4532         * docs/random/wtay/network-transp:
4533         Some old doc I had.
4534
4535 2005-07-27  Wim Taymans  <wim@fluendo.com>
4536
4537         * libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packet_from_event),
4538         (gst_dp_event_from_packet):
4539         Fix serialization of seek events.
4540
4541 2005-07-27  Wim Taymans  <wim@fluendo.com>
4542
4543         * check/gst-libs/gdp.c: (GST_START_TEST):
4544         * gst/elements/gstfakesink.c: (gst_fake_sink_event):
4545         Fix compilation and fix event serialization.
4546
4547 2005-07-27  Wim Taymans  <wim@fluendo.com>
4548
4549         * CHANGES-0.9:
4550         * docs/design/part-TODO.txt:
4551         * docs/design/part-events.txt:
4552         Some docs updates
4553
4554         * gst/base/gstbasesink.c: (gst_base_sink_handle_object),
4555         (gst_base_sink_event), (gst_base_sink_do_sync),
4556         (gst_base_sink_activate_push), (gst_base_sink_activate_pull):
4557         * gst/base/gstbasesrc.c: (gst_base_src_send_discont),
4558         (gst_base_src_do_seek), (gst_base_src_event_handler),
4559         (gst_base_src_loop):
4560         * gst/base/gstbasetransform.c: (gst_base_transform_transform_caps),
4561         (gst_base_transform_configure_caps), (gst_base_transform_setcaps),
4562         (gst_base_transform_get_size), (gst_base_transform_buffer_alloc),
4563         (gst_base_transform_event), (gst_base_transform_handle_buffer),
4564         (gst_base_transform_set_passthrough),
4565         (gst_base_transform_is_passthrough):
4566         * gst/elements/gstfakesink.c: (gst_fake_sink_event):
4567         * gst/elements/gstfilesink.c: (gst_file_sink_event):
4568         Event updates.
4569
4570         * gst/gstbuffer.h:
4571         Use faster casts.
4572
4573         * gst/gstelement.c: (gst_element_seek):
4574         * gst/gstelement.h:
4575         Update gst_element_seek.
4576
4577         * gst/gstevent.c: (gst_event_finalize), (_gst_event_copy),
4578         (gst_event_new), (gst_event_new_custom), (gst_event_get_structure),
4579         (gst_event_new_flush_start), (gst_event_new_flush_stop),
4580         (gst_event_new_eos), (gst_event_new_newsegment),
4581         (gst_event_parse_newsegment), (gst_event_new_tag),
4582         (gst_event_parse_tag), (gst_event_new_filler), (gst_event_new_qos),
4583         (gst_event_parse_qos), (gst_event_new_seek),
4584         (gst_event_parse_seek), (gst_event_new_navigation):
4585         * gst/gstevent.h:
4586         Make GstEvent use GstStructure. Add parsing code, make sure the
4587         API is sufficiently generic.
4588         Mark possible directions of events and serialization.
4589
4590         * gst/gstmessage.c: (gst_message_init), (gst_message_finalize),
4591         (_gst_message_copy), (gst_message_new_segment_start),
4592         (gst_message_new_segment_done), (gst_message_new_custom),
4593         (gst_message_parse_segment_start),
4594         (gst_message_parse_segment_done):
4595         Small cleanups.
4596
4597         * gst/gstpad.c: (gst_pad_get_caps_unlocked), (gst_pad_accept_caps),
4598         (gst_pad_set_caps), (gst_pad_send_event):
4599         Update for new events. 
4600         Catch events sent in wrong directions.
4601
4602         * gst/gstqueue.c: (gst_queue_link_src),
4603         (gst_queue_handle_sink_event), (gst_queue_chain), (gst_queue_loop),
4604         (gst_queue_handle_src_query):
4605         Event updates.
4606
4607         * gst/gsttag.c:
4608         * gst/gsttag.h:
4609         Remove event code from this file.
4610
4611         * libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packet_from_event),
4612         (gst_dp_event_from_packet):
4613         Event updates.
4614
4615 2005-07-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
4616
4617         * gst/base/gstbasetransform.c: (gst_base_transform_getcaps),
4618         (gst_base_transform_configure_caps), (gst_base_transform_setcaps),
4619         (gst_base_transform_get_size), (gst_base_transform_handle_buffer):
4620           Make debugging actually useful.
4621
4622 2005-07-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
4623
4624         * gst/gstpad.c: (fixate_value), (gst_pad_default_fixate),
4625         (gst_pad_fixate_caps):
4626           Implement default fixation once again, so that gst_pad_fixate()
4627           actually does anything at all. This probably needs to be some
4628           sort of a last resort, and use profile-based fixation first, but
4629           since that doesn't exist yet, this is the best we have. Fixes
4630           visualization in Totem.
4631
4632 2005-07-22  Wim Taymans  <wim@fluendo.com>
4633
4634         * docs/design/part-events.txt:
4635         Small update.
4636
4637         * gst/base/gstbasesink.c: (gst_base_sink_handle_object),
4638         (gst_base_sink_do_sync), (gst_base_sink_activate_push),
4639         (gst_base_sink_activate_pull):
4640         Some more comments.
4641
4642         * gst/elements/gstfakesrc.c: (gst_fake_src_class_init),
4643         (gst_fake_src_create):
4644         Fix handoff marshall.
4645
4646         * gst/elements/gstidentity.c: (gst_identity_class_init),
4647         (gst_identity_transform_ip):
4648         We're a real inplace element.
4649
4650         * gst/gstbus.c: (gst_bus_post):
4651         Added some comments.
4652
4653         * tests/lat.c: (fakesrc), (fakesink), (simple), (queue), (main):
4654         * tests/muxing/case1.c: (main):
4655         * tests/sched/dynamic-pipeline.c: (main):
4656         * tests/sched/interrupt1.c: (main):
4657         * tests/sched/interrupt2.c: (main):
4658         * tests/sched/interrupt3.c: (main):
4659         * tests/sched/runxml.c: (main):
4660         * tests/sched/sched-stress.c: (main):
4661         * tests/seeking/seeking1.c: (event_received), (main):
4662         * tests/threadstate/threadstate2.c: (bus_handler), (timeout_func),
4663         (main):
4664         * tests/threadstate/threadstate3.c: (main):
4665         * tests/threadstate/threadstate4.c: (main):
4666         * tests/threadstate/threadstate5.c: (main):
4667         Fix the tests.
4668
4669 2005-07-21  Wim Taymans  <wim@fluendo.com>
4670
4671         * docs/design/part-seeking.txt:
4672         Some small additions.
4673
4674         * gst/base/gstbasesink.c: (gst_base_sink_handle_object),
4675         (gst_base_sink_get_times), (gst_base_sink_do_sync),
4676         (gst_base_sink_activate_push), (gst_base_sink_activate_pull):
4677         * gst/base/gstbasesink.h:
4678         discont values are gint64, handle the math correctly.
4679
4680         * gst/base/gstbasesrc.c: (gst_base_src_loop):
4681         Make the basesrc report error if the source pad is not linked.
4682
4683         * gst/gstqueue.c: (gst_queue_link_src), (gst_queue_chain),
4684         (gst_queue_loop), (gst_queue_handle_src_query),
4685         (gst_queue_src_activate_push):
4686         Make queue collect data even if the srcpad is not linked.
4687         Start pushing out data as soon as it is linked.
4688
4689         * gst/gstutils.c: (gst_element_unlink), (gst_flow_get_name):
4690         * gst/gstutils.h:
4691         Added gst_flow_get_name() to ease error reporting.
4692
4693 2005-07-20  Wim Taymans  <wim@fluendo.com>
4694
4695         * gst/gstmessage.c: (gst_message_new_segment_start),
4696         (gst_message_new_segment_done), (gst_message_parse_segment_start),
4697         (gst_message_parse_segment_done):
4698         * gst/gstmessage.h:
4699         Added a bunch of messages for advanced seeking.
4700
4701         * gst/parse/grammar.y:
4702         * libs/gst/control/dparammanager.c: (gst_dpman_set_parent),
4703         (gst_dpman_state_changed):
4704         Fix some new-pad -> pad-added signals
4705
4706 2005-07-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
4707
4708         * docs/manual/appendix-porting.xml:
4709         * docs/pwg/appendix-porting.xml:
4710           Document new-pad/state-change signal renames and the FixedList
4711           type rename.
4712
4713 2005-07-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
4714
4715         * docs/manual/advanced-autoplugging.xml:
4716         * docs/manual/basics-helloworld.xml:
4717         * docs/manual/basics-pads.xml:
4718         * docs/random/ds/0.9-suggested-changes:
4719         * gst/gstelement.c: (gst_element_class_init), (gst_element_seek):
4720         * gst/gstelement.h:
4721         * gst/gstevent.h:
4722         * gst/gstformat.h:
4723         * gst/gstquery.h:
4724         * gst/gststructure.c: (gst_structure_value_get_generic_type),
4725         (gst_structure_parse_array), (gst_structure_parse_value):
4726         * gst/gstvalue.c: (gst_type_is_fixed),
4727         (gst_value_list_prepend_value), (gst_value_list_append_value),
4728         (gst_value_list_get_size), (gst_value_list_get_value),
4729         (gst_value_transform_array_string), (gst_value_serialize_array),
4730         (gst_value_deserialize_array), (gst_value_intersect_array),
4731         (gst_value_is_fixed), (_gst_value_initialize):
4732         * gst/gstvalue.h:
4733           GstElement::new-pad -> pad-added, GstElement::state-change ->
4734           state-changed, GstValueFixedList -> GstValueArray, add format and
4735           flags as their own arguments in gst_element_seek() (should improve
4736           "bindeability"), remove function generators since they don't work
4737           under a whole bunch of compilers (they were deprecated already
4738           anyway).
4739
4740 2005-07-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
4741
4742         * gst/gstinfo.c: (_gst_debug_nameof_funcptr),
4743         (_gst_debug_register_funcptr):
4744         * gst/gstinfo.h:
4745           Fix illegal cast on some platforms (#309253).
4746
4747 2005-07-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
4748
4749         * gst/gstmessage.c: (gst_message_new_custom):
4750         * gst/gstmessage.h:
4751           Add _new_custom, make _new_application a macro to _new_custom.
4752
4753 2005-07-20  Wim Taymans  <wim@fluendo.com>
4754
4755         * gst/base/gstbasesrc.c: (gst_base_src_init),
4756         (gst_base_src_do_seek), (gst_base_src_loop), (gst_base_src_start):
4757         * gst/base/gstbasesrc.h:
4758         Add a gboolean to decide when to push out a discont.
4759
4760         * gst/gstqueue.c: (gst_queue_handle_sink_event), (gst_queue_chain),
4761         (gst_queue_loop), (gst_queue_handle_src_query),
4762         (gst_queue_sink_activate_push), (gst_queue_src_activate_push),
4763         (gst_queue_set_property), (gst_queue_get_property):
4764         Some cleanups.
4765
4766         * tests/threadstate/threadstate1.c: (main):
4767         Make a thread test compile and run... very silly..
4768
4769
4770 2005-07-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
4771
4772         * docs/manual/appendix-porting.xml:
4773           Mention removal of libgstgconf-0.9.la and existence of gconf
4774           elements.
4775
4776 2005-07-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
4777
4778         * docs/pwg/advanced-clock.xml:
4779         * docs/pwg/appendix-porting.xml:
4780         * docs/pwg/intro-preface.xml:
4781         * docs/pwg/other-base.xml:
4782         * docs/pwg/other-manager.xml:
4783         * docs/pwg/other-nton.xml:
4784         * docs/pwg/other-ntoone.xml:
4785         * docs/pwg/other-oneton.xml:
4786         * docs/pwg/pwg.xml:
4787           Document base classes, update sections of n-to-1 and 1-to-n (muxer,
4788           demuxer), remove n-to-n (was never written), fix some code examples
4789           and links and update the porting section to include all this.
4790
4791 2005-07-19  Wim Taymans  <wim@fluendo.com>
4792
4793         * gst/gstqueue.c: (gst_queue_init), (gst_queue_handle_sink_event),
4794         (gst_queue_chain), (gst_queue_loop), (gst_queue_handle_src_event),
4795         (gst_queue_handle_src_query), (gst_queue_sink_activate_push),
4796         (gst_queue_src_activate_push), (gst_queue_change_state),
4797         (gst_queue_get_property):
4798         * gst/gstqueue.h:
4799         Propagate GstFlowReturn more intelligently upstream and output
4800         an ERROR/EOS when streaming stopped due to fatal error.
4801
4802 2005-07-19  Wim Taymans  <wim@fluendo.com>
4803
4804         * tools/gst-launch.c: (check_intr), (event_loop), (main):
4805         Don't block forever for the state change to complete, the
4806         pipeline already did with a sensible timeout.
4807
4808 2005-07-19  Wim Taymans  <wim@fluendo.com>
4809
4810         * gst/base/gstbasesrc.c: (gst_base_src_get_range):
4811         Make sure we never call the create function is we
4812         got deactivated.
4813
4814 2005-07-19  Andy Wingo  <wingo@pobox.com>
4815
4816         * gst/parse/parse.l: Attempt to solve bug #172815.
4817
4818 2005-07-19  Wim Taymans  <wim@fluendo.com>
4819
4820         * docs/design/part-clocks.txt:
4821         * docs/design/part-events.txt:
4822         * gst/base/gstbasesrc.c: (gst_base_src_do_seek):
4823         Small docs updates.
4824         Only update the seeking values when we are not
4825         busy streaming.
4826
4827 2005-07-19  Jan Schmidt  <thaytan@mad.scientist.com>
4828
4829         * gst/base/gstbasesrc.c: (gst_base_src_loop):
4830           Oops, ignore the result of gst_pad_push_event here.
4831
4832 2005-07-19  Jan Schmidt  <thaytan@mad.scientist.com>
4833
4834         * gst/base/gstbasesrc.c: (gst_base_src_loop),
4835         (gst_base_src_activate_push):
4836           Send discont event from the loop function, as pads
4837           aren't activated yet in the activate_push handler.
4838
4839         * gst/gstbin.c: (bin_bus_handler):
4840           Don't leak element name.
4841
4842 2005-07-18  Andy Wingo  <wingo@pobox.com>
4843
4844         * configure.ac: Use AS_LIBTOOL_TAGS.
4845
4846 2005-07-18  Wim Taymans  <wim@fluendo.com>
4847
4848         * docs/gst/gstreamer.types:
4849         Remove deleted types.
4850
4851 2005-07-18  Wim Taymans  <wim@fluendo.com>
4852
4853         * check/elements/gstfakesrc.c: (GST_START_TEST):
4854         * configure.ac:
4855         * gst/Makefile.am:
4856         * gst/gst.c: (gst_init_get_popt_table), (init_pre), (init_post),
4857         (init_popt_callback):
4858         * gst/gst.h:
4859         * gst/gst_private.h:
4860         * gst/gstbin.c: (gst_bin_class_init), (gst_bin_add_func),
4861         (gst_bin_remove_func), (gst_bin_get_state), (gst_bin_change_state):
4862         * gst/gstbin.h:
4863         * gst/gstbus.h:
4864         * gst/gstconfig.h.in:
4865         * gst/gstelement.c: (gst_element_class_init),
4866         (gst_element_set_base_time), (gst_element_get_base_time),
4867         (iterator_fold_with_resync), (gst_element_change_state),
4868         (gst_element_dispose), (gst_element_get_bus):
4869         * gst/gstelement.h:
4870         * gst/gstelementfactory.h:
4871         * gst/gsterror.c: (_gst_core_errors_init):
4872         * gst/gsterror.h:
4873         * gst/gstevent.h:
4874         * gst/gstghostpad.c: (gst_ghost_pad_do_activate_push):
4875         * gst/gstindex.c:
4876         * gst/gstinfo.c: (_gst_debug_init):
4877         * gst/gstmessage.c: (_gst_message_copy):
4878         * gst/gstmessage.h:
4879         * gst/gstminiobject.h:
4880         * gst/gstobject.c:
4881         * gst/gstobject.h:
4882         * gst/gstpad.c: (gst_pad_get_caps_unlocked), (gst_pad_accept_caps),
4883         (gst_pad_set_caps), (gst_pad_start_task), (gst_pad_stop_task):
4884         * gst/gstpad.h:
4885         * gst/gstparse.h:
4886         * gst/gstpipeline.c: (gst_pipeline_init), (gst_pipeline_dispose),
4887         (gst_pipeline_change_state), (gst_pipeline_set_new_stream_time),
4888         (gst_pipeline_get_last_stream_time):
4889         * gst/gstpipeline.h:
4890         * gst/gstpluginfeature.h:
4891         * gst/gstquery.h:
4892         * gst/gstscheduler.c:
4893         * gst/gstscheduler.h:
4894         * gst/gststructure.h:
4895         * gst/gsttask.c: (gst_task_get_type), (gst_task_class_init),
4896         (gst_task_finalize), (gst_task_func), (gst_task_create),
4897         (gst_task_set_lock), (gst_task_get_state), (gst_task_start),
4898         (gst_task_stop), (gst_task_pause):
4899         * gst/gsttask.h:
4900         * gst/gsttypefind.h:
4901         * gst/gsttypes.h:
4902         * gst/registries/gstlibxmlregistry.c: (load_feature),
4903         (gst_xml_registry_load), (gst_xml_registry_save_feature):
4904         * gst/registries/gstxmlregistry.c:
4905         (gst_xml_registry_start_element), (gst_xml_registry_save_feature):
4906         * gst/schedulers/threadscheduler.c:
4907         * libs/gst/control/dparammanager.h:
4908         * tools/gst-inspect.c: (print_element_list),
4909         (print_plugin_features), (print_element_features):
4910         * tools/gst-xmlinspect.c: (print_element_list),
4911         (print_plugin_info), (main):
4912         Removed plugable schedulers.
4913         Removed Scheduler/Manager from elements.
4914         Removed gsttypes.h, rearranged includes.
4915         Removed dependency pad<->element, element<>pipeline, and
4916         various others,  fix includes.
4917         implement gst_pad_get_parent() with gst_object_get_parent()
4918         Make GstTask sefcontained.
4919         Fix _get_state() on GstBin, it did not return ASYNC with a 0
4920         timeout.
4921         Fix endless loop in iterator_fold_with_resync.
4922
4923
4924 2005-07-18  Wim Taymans  <wim@fluendo.com>
4925
4926         * gst/Makefile.am:
4927         * gst/gstarch.h:
4928         Remove old file.
4929
4930 2005-07-18  Wim Taymans  <wim@fluendo.com>
4931
4932         * gst/Makefile.am:
4933         No more cothreads.h
4934
4935 2005-07-18  Wim Taymans  <wim@fluendo.com>
4936
4937         * gst/cothreads.c:
4938         * gst/cothreads.h:
4939         Let's remove these.
4940
4941 2005-07-18  Wim Taymans  <wim@fluendo.com>
4942
4943         * docs/design/part-dynamic.txt:
4944         * docs/design/part-events.txt:
4945         * docs/design/part-seeking.txt:
4946         Some more docs in the works.
4947
4948         * gst/base/gstbasetransform.c: (gst_base_transform_transform_caps),
4949         (gst_base_transform_getcaps), (gst_base_transform_configure_caps),
4950         (gst_base_transform_setcaps), (gst_base_transform_get_size),
4951         (gst_base_transform_buffer_alloc), (gst_base_transform_event),
4952         (gst_base_transform_handle_buffer),
4953         (gst_base_transform_sink_activate_push),
4954         (gst_base_transform_src_activate_pull),
4955         (gst_base_transform_set_passthrough),
4956         (gst_base_transform_is_passthrough):
4957         Refcounting fixes.
4958
4959         * gst/gstbus.c: (gst_bus_source_dispatch), (gst_bus_poll):
4960         Cleanups.
4961
4962         * gst/gstevent.c: (gst_event_finalize):
4963         Set SRC to NULL.
4964
4965         * gst/gstutils.c: (gst_element_unlink),
4966         (gst_pad_get_parent_element), (gst_pad_proxy_getcaps),
4967         (gst_pad_proxy_setcaps):
4968         * gst/gstutils.h:
4969         Add _get_parent_element() to get a pads parent as an element.
4970
4971 2005-07-18  Wim Taymans  <wim@fluendo.com>
4972
4973         * check/gst/gstbin.c: (GST_START_TEST):
4974         Remove bogus test.
4975
4976 2005-07-18  Wim Taymans  <wim@fluendo.com>
4977
4978         * gst/base/gstbasesink.c: (gst_base_sink_pad_getcaps),
4979         (gst_base_sink_pad_setcaps), (gst_base_sink_pad_buffer_alloc),
4980         (gst_base_sink_preroll_queue_flush), (gst_base_sink_handle_object),
4981         (gst_base_sink_event), (gst_base_sink_do_sync),
4982         (gst_base_sink_chain), (gst_base_sink_loop),
4983         (gst_base_sink_deactivate), (gst_base_sink_activate_push),
4984         (gst_base_sink_activate_pull), (gst_base_sink_change_state):
4985         Refcounting fixes.
4986         Fix logic for returning ASYNC when not prerolled.
4987
4988 2005-07-18  Wim Taymans  <wim@fluendo.com>
4989
4990         * gst/gstqueue.c: (gst_queue_handle_sink_event):
4991         Fix nasty refcount bug.
4992
4993 2005-07-16 Philippe Khalaf <burger@speedy.org>
4994
4995         * gst/elements/gstfdsrc.c:
4996         * gst/elements/gstfdsrc.h:
4997         * gst/elements/gstelements.c:
4998         * gst/elements/Makefile.am:
4999         Ported fdsrc to 0.9.
5000
5001 2005-07-16  Wim Taymans  <wim@fluendo.com>
5002
5003         * gst/base/gstbasesink.c: (gst_base_sink_handle_object),
5004         (gst_base_sink_do_sync):
5005         Fix compile error.
5006
5007 2005-07-16  Wim Taymans  <wim@fluendo.com>
5008
5009         * gst/base/gstbasesink.c: (gst_base_sink_handle_object),
5010         (gst_base_sink_event), (gst_base_sink_get_times),
5011         (gst_base_sink_do_sync), (gst_base_sink_change_state):
5012         * gst/base/gstbasesink.h:
5013         Store and use discont values when syncing buffers as described
5014         in design docs.
5015         
5016         * gst/base/gstbasesrc.c: (gst_base_src_send_discont),
5017         (gst_base_src_do_seek), (gst_base_src_loop), (gst_base_src_start),
5018         (gst_base_src_activate_push):
5019         Push discont event when starting.
5020
5021         * gst/elements/gstidentity.c: (gst_identity_transform):
5022         Small cleanups.
5023
5024         * gst/gstbin.c: (gst_bin_change_state):
5025         Small cleanups in base_time  distribution.
5026
5027         * gst/gstelement.c: (gst_element_set_base_time),
5028         (gst_element_get_base_time), (gst_element_change_state):
5029         * gst/gstelement.h:
5030         Added methods for the base_time of the element.
5031         Some MT fixes.
5032
5033         * gst/gstpipeline.c: (gst_pipeline_send_event),
5034         (gst_pipeline_change_state), (gst_pipeline_set_new_stream_time),
5035         (gst_pipeline_get_last_stream_time):
5036         * gst/gstpipeline.h:
5037         MT fixes.
5038         Handle seeking as described in design doc, remove stream_time
5039         hack.
5040         Cleanups clock and stream_time selection code. Added accessors
5041         for the stream_time.
5042         
5043
5044 2005-07-16  Andy Wingo  <wingo@pobox.com>
5045
5046         * gst/gsterror.c (_gst_core_errors_init): Use the magic word
5047         (#305291).
5048
5049 2005-07-16  Wim Taymans  <wim@fluendo.com>
5050
5051         * check/gst/gstbin.c: (GST_START_TEST):
5052         Make elements silent as the deep_notify refs the
5053         parent, which might make the test fail.
5054
5055         * gst/gstghostpad.c: (gst_ghost_pad_do_activate_push):
5056         Don't hold the lock for too long.
5057
5058 2005-07-16  Tim-Philipp Müller  <tim at centricular dot net>
5059
5060         * gst/base/gstbasesrc.c: (gst_base_src_default_negotiate):
5061           Don't unref the caps we passed to gst_caps_make_writable() after
5062           passing them. gst_caps_make_writable() will do that for us.
5063
5064 2005-07-15  Andy Wingo  <wingo@pobox.com>
5065
5066         * gst/gstcaps.h (gst_caps_is_simple): Removed deprecated macro
5067         (#157311).
5068
5069         * gst/elements/gstidentity.c (marshal_VOID__MINIOBJECT): Write our
5070         own marshalling function for the handoff signal. Properly type the
5071         buffer as a buffer. Fixes some warnings. Should do a more general
5072         solution.
5073         (gst_identity_class_init): Plug into the right marshaller.
5074
5075 2005-07-15  Wim Taymans  <wim@fluendo.com>
5076
5077         * docs/design/part-TODO.txt:
5078         * docs/design/part-clocks.txt:
5079         * docs/design/part-element-sink.txt:
5080         * docs/design/part-events.txt:
5081         * docs/design/part-gstpipeline.txt:
5082         Updated docs, mostly DISCONT related.
5083
5084 2005-07-15  Tim-Philipp Müller  <tim at centricular dot net>
5085
5086         * docs/pwg/building-pads.xml:
5087           s/GST_PAD_LINK_REFUSED/FALSE/ in gst_my_filter_setcaps()
5088
5089 2005-07-15  Andy Wingo  <wingo@pobox.com>
5090
5091         * tools/gst-typefind.c: Update, add copyright block.
5092
5093         * gst/base/gstbasesrc.c (gst_base_src_default_negotiate):
5094         Normalize and truncate caps before fixation.
5095
5096         * gst/gstcaps.h:
5097         * gst/gstcaps.c (gst_caps_truncate): New function, destructively
5098         discards all but the first structure from its argument.
5099
5100 2005-07-15  Wim Taymans  <wim@fluendo.com>
5101
5102         * gst/base/gstbasetransform.c: (gst_base_transform_init),
5103         (gst_base_transform_transform_caps), (gst_base_transform_getcaps),
5104         (gst_base_transform_configure_caps), (gst_base_transform_setcaps),
5105         (gst_base_transform_get_size), (gst_base_transform_buffer_alloc),
5106         (gst_base_transform_handle_buffer), (gst_base_transform_getrange),
5107         (gst_base_transform_chain), (gst_base_transform_change_state),
5108         (gst_base_transform_set_passthrough),
5109         (gst_base_transform_is_passthrough):
5110         * gst/base/gstbasetransform.h:
5111         Make passthrough work using the bufferpools.
5112         Changed API a bit, subclasses have to write into a buffer
5113         provided by the base class.
5114         More debug info in nego functions.
5115         
5116         * gst/elements/gstidentity.c: (gst_identity_init),
5117         (gst_identity_transform):
5118         Port to new base class.
5119
5120 2005-07-15  Wim Taymans  <wim@fluendo.com>
5121
5122         * gst/gstmessage.c: (gst_message_new_state_changed):
5123         * tools/gst-launch.c: (event_loop), (main):
5124         Totally dump messages in -launch with the -m option.
5125         Fix message name for State messages,
5126
5127 2005-07-14  Wim Taymans  <wim@fluendo.com>
5128
5129         * gst/base/gstbasesrc.c: (gst_base_src_loop):
5130         Post error messages on errors.
5131
5132 2005-07-14  Wim Taymans  <wim@fluendo.com>
5133
5134         * gst/gstcaps.c: (gst_caps_do_simplify):
5135         Remove debug info.
5136
5137         * gst/gsterror.h:
5138         Define error for stream stopped.
5139
5140         * gst/gstghostpad.c: (gst_proxy_pad_do_bufferalloc),
5141         (gst_proxy_pad_do_chain), (gst_proxy_pad_do_getrange):
5142         Do proper return values.
5143
5144         * gst/gstpad.c: (gst_pad_get_caps_unlocked), (gst_pad_accept_caps),
5145         (gst_pad_set_caps), (gst_pad_chain), (gst_pad_push),
5146         (gst_pad_get_range):
5147         Better return values.
5148
5149         * gst/gstpad.h:
5150         Reorganise return values, add macro to check for fatal errors.
5151
5152         * gst/gstqueue.c: (gst_queue_chain):
5153         Return proper GstFlowReturn values,
5154
5155 2005-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>
5156
5157         * docs/gst/gstreamer-sections.txt:
5158         * docs/gst/gstreamer.types:
5159         * docs/gst/tmpl/gst.sgml:
5160         * docs/gst/tmpl/gstbasesink.sgml:
5161         * docs/gst/tmpl/gstbasesrc.sgml:
5162         * docs/gst/tmpl/gstbasetransform.sgml:
5163         * docs/gst/tmpl/gstbin.sgml:
5164         * docs/gst/tmpl/gstbuffer.sgml:
5165         * docs/gst/tmpl/gstcaps.sgml:
5166         * docs/gst/tmpl/gstclock.sgml:
5167         * docs/gst/tmpl/gstcompat.sgml:
5168         * docs/gst/tmpl/gstconfig.sgml:
5169         * docs/gst/tmpl/gstelement.sgml:
5170         * docs/gst/tmpl/gstelementdetails.sgml:
5171         * docs/gst/tmpl/gstelementfactory.sgml:
5172         * docs/gst/tmpl/gstenumtypes.sgml:
5173         * docs/gst/tmpl/gsterror.sgml:
5174         * docs/gst/tmpl/gstevent.sgml:
5175         * docs/gst/tmpl/gstfakesink.sgml:
5176         * docs/gst/tmpl/gstfakesrc.sgml:
5177         * docs/gst/tmpl/gstfilesink.sgml:
5178         * docs/gst/tmpl/gstfilesrc.sgml:
5179         * docs/gst/tmpl/gstfilter.sgml:
5180         * docs/gst/tmpl/gstformat.sgml:
5181         * docs/gst/tmpl/gstghostpad.sgml:
5182         * docs/gst/tmpl/gstimplementsinterface.sgml:
5183         * docs/gst/tmpl/gstindex.sgml:
5184         * docs/gst/tmpl/gstindexfactory.sgml:
5185         * docs/gst/tmpl/gstinfo.sgml:
5186         * docs/gst/tmpl/gstiterator.sgml:
5187         * docs/gst/tmpl/gstmacros.sgml:
5188         * docs/gst/tmpl/gstmemchunk.sgml:
5189         * docs/gst/tmpl/gstminiobject.sgml:
5190         * docs/gst/tmpl/gstobject.sgml:
5191         * docs/gst/tmpl/gstpad.sgml:
5192         * docs/gst/tmpl/gstpadtemplate.sgml:
5193         * docs/gst/tmpl/gstparse.sgml:
5194         * docs/gst/tmpl/gstpipeline.sgml:
5195         * docs/gst/tmpl/gstplugin.sgml:
5196         * docs/gst/tmpl/gstpluginfeature.sgml:
5197         * docs/gst/tmpl/gstquery.sgml:
5198         * docs/gst/tmpl/gstqueue.sgml:
5199         * docs/gst/tmpl/gstregistry.sgml:
5200         * docs/gst/tmpl/gstregistrypool.sgml:
5201         * docs/gst/tmpl/gstscheduler.sgml:
5202         * docs/gst/tmpl/gstschedulerfactory.sgml:
5203         * docs/gst/tmpl/gststructure.sgml:
5204         * docs/gst/tmpl/gstsystemclock.sgml:
5205         * docs/gst/tmpl/gsttaglist.sgml:
5206         * docs/gst/tmpl/gsttagsetter.sgml:
5207         * docs/gst/tmpl/gsttrace.sgml:
5208         * docs/gst/tmpl/gsttrashstack.sgml:
5209         * docs/gst/tmpl/gsttypefind.sgml:
5210         * docs/gst/tmpl/gsttypefindfactory.sgml:
5211         * docs/gst/tmpl/gsttypes.sgml:
5212         * docs/gst/tmpl/gsturihandler.sgml:
5213         * docs/gst/tmpl/gsturitype.sgml:
5214         * docs/gst/tmpl/gstutils.sgml:
5215         * docs/gst/tmpl/gstvalue.sgml:
5216         * docs/gst/tmpl/gstversion.sgml:
5217         * docs/gst/tmpl/gstxml.sgml:
5218         * docs/libs/tmpl/gstcontrol.sgml:
5219         * docs/libs/tmpl/gstdataprotocol.sgml:
5220         * docs/libs/tmpl/gstdparam.sgml:
5221         * docs/libs/tmpl/gstdplinint.sgml:
5222         * docs/libs/tmpl/gstdpman.sgml:
5223         * docs/libs/tmpl/gstdpsmooth.sgml:
5224         * docs/libs/tmpl/gstgetbits.sgml:
5225         * docs/libs/tmpl/gstunitconvert.sgml:
5226         * gst/base/gstpushsrc.c: (gst_push_src_get_type),
5227         (gst_push_src_base_init), (gst_push_src_class_init),
5228         (gst_push_src_init), (gst_push_src_create):
5229         * gst/base/gstpushsrc.h:
5230         * gst/elements/gstelements.c:
5231         * gst/elements/gstfakesink.c: (gst_fake_sink_state_error_get_type),
5232         (gst_fake_sink_base_init), (gst_fake_sink_class_init),
5233         (gst_fake_sink_init), (gst_fake_sink_set_property),
5234         (gst_fake_sink_get_property), (gst_fake_sink_get_times),
5235         (gst_fake_sink_event), (gst_fake_sink_preroll),
5236         (gst_fake_sink_render), (gst_fake_sink_change_state):
5237         * gst/elements/gstfakesink.h:
5238         * gst/elements/gstfakesrc.c: (gst_fake_src_data_get_type),
5239         (gst_fake_src_sizetype_get_type), (gst_fake_src_filltype_get_type),
5240         (gst_fake_src_base_init), (gst_fake_src_class_init),
5241         (gst_fake_src_init), (gst_fake_src_event_handler),
5242         (gst_fake_src_alloc_parent), (gst_fake_src_set_property),
5243         (gst_fake_src_get_property), (gst_fake_src_prepare_buffer),
5244         (gst_fake_src_alloc_buffer), (gst_fake_src_get_size),
5245         (gst_fake_src_create_buffer), (gst_fake_src_create),
5246         (gst_fake_src_start), (gst_fake_src_stop):
5247         * gst/elements/gstfakesrc.h:
5248         * gst/elements/gstfilesink.c: (_do_init),
5249         (gst_file_sink_base_init), (gst_file_sink_class_init),
5250         (gst_file_sink_init), (gst_file_sink_dispose),
5251         (gst_file_sink_set_location), (gst_file_sink_set_property),
5252         (gst_file_sink_get_property), (gst_file_sink_open_file),
5253         (gst_file_sink_close_file), (gst_file_sink_query),
5254         (gst_file_sink_event), (gst_file_sink_render),
5255         (gst_file_sink_change_state), (gst_file_sink_uri_get_type),
5256         (gst_file_sink_uri_get_protocols), (gst_file_sink_uri_get_uri),
5257         (gst_file_sink_uri_set_uri), (gst_file_sink_uri_handler_init):
5258         * gst/elements/gstfilesink.h:
5259         * gst/elements/gstfilesrc.c: (_do_init), (gst_file_src_base_init),
5260         (gst_file_src_class_init), (gst_file_src_init),
5261         (gst_file_src_finalize), (gst_file_src_set_location),
5262         (gst_file_src_set_property), (gst_file_src_get_property),
5263         (gst_file_src_map_region), (gst_file_src_map_small_region),
5264         (gst_file_src_create_mmap), (gst_file_src_create_read),
5265         (gst_file_src_create), (gst_file_src_is_seekable),
5266         (gst_file_src_get_size), (gst_file_src_start), (gst_file_src_stop),
5267         (gst_file_src_uri_get_type), (gst_file_src_uri_get_protocols),
5268         (gst_file_src_uri_get_uri), (gst_file_src_uri_set_uri),
5269         (gst_file_src_uri_handler_init):
5270         * gst/elements/gstfilesrc.h:
5271           more autistic cleanliness in functions/names/defines
5272
5273 2005-07-13  Andy Wingo  <wingo@pobox.com>
5274
5275         * gst/base/gstbasesrc.c (gst_base_src_start): Post an error if the
5276         source couldn't negotiate.
5277
5278         * gst/parse/grammar.y: Revert 1.54->1.55, so we now do filtered
5279         connections again.
5280
5281         * gst/gstutils.h:
5282         * gst/gstutils.c (gst_element_link_pads_filtered): New old
5283         function. I am channeling Hades. Put your boots on suckers!!!
5284
5285 2005-07-13  Thomas Vander Stichele  <thomas at apestaart dot org>
5286
5287         * testsuite/caps/Makefile.am:
5288         * testsuite/caps/value_compare.c:
5289         * testsuite/caps/value_intersect.c:
5290         * check/gst/gstvalue.c: (GST_START_TEST), (gst_value_suite):
5291           move two testsuite apps over to the check dir
5292
5293 2005-07-12  Wim Taymans  <wim@fluendo.com>
5294
5295         * gst/base/gstbasetransform.c: (gst_base_transform_setcaps):
5296         Added more debug info in the negotiate process.
5297
5298         * gst/gstmessage.h:
5299         Prepare for segment playback.
5300
5301         * gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_set_caps):
5302         Better debugging.
5303
5304         * gst/gstutils.c:
5305         Some more docs.
5306
5307         * tools/gst-launch.c: (main):
5308         NULL pipeline on errors.
5309
5310 2005-07-12  Andy Wingo  <wingo@pobox.com>
5311
5312         * gst/gstbuffer.c (_gst_buffer_copy): Copy the buffer whether or
5313         not it comes from a malloc region. Make sure our copy gets freed.
5314
5315 2005-07-12  Thomas Vander Stichele  <thomas at apestaart dot org>
5316
5317         * check/gst/gstelement.c: (GST_START_TEST), (gst_element_suite):
5318         * check/gst/gstmessage.c: (GST_START_TEST):
5319         * check/gst/gststructure.c: (GST_START_TEST),
5320         (gst_structure_suite), (main):
5321           more testing
5322         * gst/gstelement.c: (gst_element_message_full):
5323           clean up GError and debug string now that they get copied
5324         * gst/gstmessage.c: (gst_message_new_error),
5325         (gst_message_new_warning), (gst_message_parse_error),
5326         (gst_message_parse_warning):
5327           use GST_TYPE_G_ERROR for structure_new, and take copies of
5328           arguments, so that we don't mess up refcounting
5329
5330 2005-07-12  Thomas Vander Stichele  <thomas at apestaart dot org>
5331
5332         * check/Makefile.am:
5333           add per-test valgrind targets
5334         * check/gst-libs/gdp.c: (GST_START_TEST),
5335         (gst_data_protocol_suite), (main):
5336           clean up
5337
5338 2005-07-12  Thomas Vander Stichele  <thomas at apestaart dot org>
5339
5340         * check/Makefile.am:
5341           instate more valgrindable tests
5342         * check/elements/gstfakesrc.c: (chain_func), (event_func),
5343         (GST_START_TEST), (fakesrc_suite):
5344         * check/gst/gstpad.c: (GST_START_TEST):
5345         * check/gst/gststructure.c: (GST_START_TEST):
5346           fix test leaks
5347         * docs/gst/tmpl/gstminiobject.sgml:
5348         * gst/gstpad.c: (gst_pad_finalize):
5349           fix the static mutex leak
5350
5351 2005-07-11  Thomas Vander Stichele  <thomas at apestaart dot org>
5352
5353         * check/Makefile.am:
5354           add two more tests for valgrinding
5355         * check/gst/gstvalue.c: (GST_START_TEST):
5356           test refcount of deserialized buffer, found a leak
5357         * docs/gst/gstreamer-docs.sgml:
5358         * docs/gst/gstreamer-sections.txt:
5359         * docs/gst/gstreamer.types:
5360         * docs/gst/tmpl/gstminiobject.sgml:
5361           add miniobject to docs
5362         * gst/gstminiobject.c:
5363           add some docs
5364         * gst/gstvalue.c: (gst_value_deserialize_buffer),
5365         (gst_string_unwrap):
5366           fix a hard-to-find invalid write for one of the tests
5367           fix a leak for deserialized buffers
5368
5369 2005-07-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
5370
5371         * docs/pwg/advanced-events.xml:
5372         * docs/pwg/advanced-request.xml:
5373         * docs/pwg/advanced-scheduling.xml:
5374         * docs/pwg/appendix-porting.xml:
5375         * docs/pwg/building-boiler.xml:
5376         * docs/pwg/intro-preface.xml:
5377         * docs/pwg/other-ntoone.xml:
5378           Rewrite scheduling-chapter for scheduling model in 0.9. Add lots
5379           of example code and explanation for pad activation, loop() and
5380           getrange() functions and a bit more. Remove old comments pointing
5381           to loop-functions.
5382         * examples/pwg/Makefile.am:
5383           Add loop/getrange examples.
5384
5385 2005-07-11  Thomas Vander Stichele  <thomas at apestaart dot org>
5386
5387         * configure.ac:
5388           check for valgrind binary + some fixes
5389         * check/gst.supp:
5390           valgrind suppressions for the tests
5391         * check/Makefile.am:
5392           add a valgrind: target that valgrinds the unit tests
5393         * check/gst/gst.c: (GST_START_TEST), (gst_suite):
5394         * check/gst/gstbin.c: (pop_messages), (GST_START_TEST):
5395         * check/gst/gstbuffer.c: (GST_START_TEST), (gst_test_suite):
5396         * check/gst/gstghostpad.c:
5397           added some cleanup
5398         * check/gst/gstdata.c:
5399           removed
5400         * check/gst/gstminiobject.c: (GST_START_TEST), (thread_ref),
5401         (thread_unref), (gst_mini_object_suite), (main):
5402           added
5403         * gst/gst.c: (gst_deinit):
5404         * gst/gst.h:
5405           add a method to clean up.
5406         * gst/gstsystemclock.c: (gst_system_clock_dispose),
5407         (gst_system_clock_obtain):
5408           allow for disposing the system clock.
5409         * tools/gst-launch.c: (main):
5410           deinit
5411
5412 2005-07-11  Thomas Vander Stichele  <thomas at apestaart dot org>
5413
5414         * docs/gst/tmpl/gstbasesrc.sgml:
5415         * docs/gst/tmpl/gstfakesrc.sgml:
5416         * gst/base/gstbasesrc.c: (gst_base_src_class_init),
5417         (gst_base_src_init), (gst_base_src_set_property),
5418         (gst_base_src_get_property), (gst_base_src_get_range),
5419         (gst_base_src_start):
5420         * gst/base/gstbasesrc.h:
5421           add num-buffers property
5422         * gst/elements/gstfakesrc.c: (gst_fakesrc_class_init),
5423         (gst_fakesrc_init), (gst_fakesrc_set_property),
5424         (gst_fakesrc_get_property), (gst_fakesrc_create),
5425         (gst_fakesrc_start):
5426           remove num-buffers property
5427
5428 2005-07-10  Thomas Vander Stichele  <thomas at apestaart dot org>
5429
5430         * docs/gst/gstreamer-sections.txt:
5431         * docs/gst/tmpl/gstbasesink.sgml:
5432         * docs/gst/tmpl/gstbasesrc.sgml:
5433         * gst/base/gstbasesink.c: (gst_base_sink_pad_getcaps),
5434         (gst_base_sink_pad_setcaps), (gst_base_sink_pad_buffer_alloc),
5435         (gst_base_sink_finalize), (gst_base_sink_set_clock),
5436         (gst_base_sink_set_property), (gst_base_sink_get_property),
5437         (gst_base_sink_handle_object), (gst_base_sink_event),
5438         (gst_base_sink_do_sync), (gst_base_sink_handle_event),
5439         (gst_base_sink_handle_buffer), (gst_base_sink_chain),
5440         (gst_base_sink_loop), (gst_base_sink_deactivate),
5441         (gst_base_sink_activate_push), (gst_base_sink_activate_pull),
5442         (gst_base_sink_change_state):
5443         * gst/base/gstbasesink.h:
5444         * gst/base/gstbasesrc.h:
5445         * gst/elements/gstfakesink.c: (gst_fakesink_get_times):
5446         * gst/elements/gstfilesink.c: (gst_filesink_class_init),
5447         (gst_filesink_init):
5448           more macro splitting
5449
5450 2005-07-10  Thomas Vander Stichele  <thomas at apestaart dot org>
5451
5452         * gst/gstelement.c: (gst_element_get_bus):
5453           add debug
5454         * tools/gst-launch.c: (check_intr), (event_loop):
5455           fix bus leaks
5456
5457 2005-07-10  Thomas Vander Stichele  <thomas at apestaart dot org>
5458
5459         * gst/gstpad.c: (gst_pad_link_check_compatible_unlocked):
5460           fix a caps leak
5461
5462 2005-07-10  Thomas Vander Stichele  <thomas at apestaart dot org>
5463
5464         * gst/base/gstbasesrc.c: (gst_base_src_class_init),
5465         (gst_base_src_finalize):
5466           add finalize method and clean up properly
5467         * gst/gstpipeline.c: (gst_pipeline_dispose):
5468           add debug
5469
5470 2005-07-09  Thomas Vander Stichele  <thomas at apestaart dot org>
5471
5472         * check/gst/gstbin.c: (pop_messages), (GST_START_TEST),
5473         (gst_bin_suite):
5474           add more things to check
5475         * gst/gstbin.c: (gst_bin_change_state), (bin_bus_handler):
5476         * gst/gstelement.c:
5477           more debug
5478
5479 2005-07-09  Thomas Vander Stichele  <thomas at apestaart dot org>
5480
5481         * check/elements/gstfakesrc.c: (chain_func), (event_func),
5482         (GST_START_TEST), (fakesrc_suite):
5483         * check/gst-libs/gdp.c: (GST_START_TEST):
5484         * check/gst/gst.c: (GST_START_TEST):
5485         * check/gst/gstbin.c: (GST_START_TEST), (gst_bin_suite):
5486         * check/gst/gstbuffer.c: (GST_START_TEST), (gst_test_suite):
5487         * check/gst/gstbus.c: (GST_START_TEST):
5488         * check/gst/gstcaps.c: (GST_START_TEST):
5489         * check/gst/gstdata.c: (GST_START_TEST):
5490         * check/gst/gstelement.c: (GST_START_TEST):
5491         * check/gst/gstghostpad.c: (GST_START_TEST):
5492         * check/gst/gstiterator.c: (GST_START_TEST):
5493         * check/gst/gstmessage.c: (GST_START_TEST):
5494         * check/gst/gstobject.c: (GST_START_TEST):
5495         * check/gst/gstpad.c: (GST_START_TEST):
5496         * check/gst/gststructure.c: (GST_START_TEST):
5497         * check/gst/gstsystemclock.c: (GST_START_TEST),
5498         (gst_systemclock_suite):
5499         * check/gst/gsttag.c: (GST_START_TEST), (gst_tag_suite):
5500         * check/gst/gstvalue.c: (GST_START_TEST):
5501         * check/pipelines/cleanup.c: (GST_START_TEST):
5502         * check/pipelines/simple_launch_lines.c: (GST_START_TEST):
5503         * check/states/sinks.c: (GST_START_TEST):
5504         * check/gstcheck.c: (gst_check_init):
5505         * check/gstcheck.h:
5506           add debugging category
5507           use GST_START_TEST now, so we add a debug line
5508
5509 2005-07-09  Thomas Vander Stichele  <thomas at apestaart dot org>
5510
5511         * check/gst/gstbin.c: (START_TEST), (gst_bin_suite):
5512           add test for state change message on a bin
5513         * check/gst/gstelement.c: (START_TEST), (gst_element_suite):
5514           add another test
5515         * gst/gstbin.c: (gst_bin_init):
5516         * gst/gstbus.c: (gst_bus_init), (gst_bus_post):
5517         * gst/gstelement.c: (gst_element_post_message),
5518         (gst_element_set_state):
5519         * gst/gstelementfactory.c: (gst_element_factory_create):
5520         * gst/gstmessage.c: (gst_message_new):
5521         * gst/gstscheduler.c:
5522           various debugging additions and cleanups
5523
5524 2005-07-08  Thomas Vander Stichele  <thomas at apestaart dot org>
5525
5526         * check/Makefile.am:
5527         * check/gst/gstelement.c: (START_TEST), (gst_element_suite),
5528         (main):
5529           adding tests for elements
5530         * gst/gstelement.c: (gst_element_dispose):
5531
5532 2005-07-08  Thomas Vander Stichele  <thomas at apestaart dot org>
5533
5534         * gst/registries/gstlibxmlregistry.c: (load_feature):
5535           plug more leaks.  A simple gst_init() now is leakfree, yay.
5536
5537 2005-07-08  Thomas Vander Stichele  <thomas at apestaart dot org>
5538
5539         * gst/registries/gstlibxmlregistry.c: (read_string), (load_paths),
5540         (gst_xml_registry_load):
5541           plug another memleak
5542
5543 2005-07-08  Thomas Vander Stichele  <thomas at apestaart dot org>
5544
5545         * configure.ac:
5546           use GST_SET_ERROR_CFLAGS
5547         * docs/faq/cvs.xml:
5548           change to ERROR_CFLAGS
5549
5550 2005-07-08  Thomas Vander Stichele  <thomas at apestaart dot org>
5551
5552         * configure.ac:
5553           make GST_ERROR_CFLAGS overridable and re-enable Werror
5554         * docs/faq/cvs.xml:
5555           add a note about error CFLAGS
5556         * docs/gst/tmpl/gstfakesrc.sgml:
5557         * gst/elements/gstfakesrc.c:
5558           comment out some unused code
5559         * gst/gst.c: (split_and_iterate):
5560         * gst/registries/gstlibxmlregistry.c: (load_pad_template),
5561         (load_feature):
5562           plug some memleaks
5563
5564 2005-07-07  Thomas Vander Stichele  <thomas at apestaart dot org>
5565
5566         * common/Makefile.am:
5567         * common/gtk-doc.mak:
5568         * docs/gst/Makefile.am:
5569           factor out gtk-doc.mak
5570
5571 2005-07-07  Wim Taymans  <wim@fluendo.com>
5572
5573         * gst/schedulers/threadscheduler.c: (gst_thread_scheduler_func),
5574         (gst_thread_scheduler_dispose):
5575         Unlock the STREAM_LOCK completely.
5576
5577 2005-07-07  Thomas Vander Stichele  <thomas at apestaart dot org>
5578
5579         * check/Makefile.am:
5580         * check/elements/.cvsignore:
5581         * check/elements/gstfakesrc.c: (chain_func), (event_func),
5582         (START_TEST), (fakesrc_suite), (main):
5583         * gst/elements/gstfakesrc.c: (gst_fakesrc_class_init),
5584         (gst_fakesrc_set_property), (gst_fakesrc_get_property),
5585         (gst_fakesrc_create), (gst_fakesrc_start):
5586         * gst/elements/gstfakesrc.h:
5587           adding a first element test
5588
5589 2005-07-07  Andy Wingo  <wingo@pobox.com>
5590
5591         * gst/gstbus.c (gst_bus_have_pending): Remove intensely irritating
5592         debug message.
5593
5594 2005-07-07  Wim Taymans  <wim@fluendo.com>
5595
5596         * gst/gstquery.c:
5597         * gst/gstquery.h:
5598         Remove old types
5599
5600 2005-07-07  Wim Taymans  <wim@fluendo.com>
5601
5602         * gst/base/gstbasesrc.c: (gst_base_src_get_range),
5603         (gst_base_src_default_negotiate), (gst_base_src_negotiate):
5604         Allow subclasses to implement their own negotiation.
5605
5606 2005-07-07  Jan Schmidt  <thaytan@mad.scientist.com>
5607
5608         * docs/design/part-gstbin.txt:
5609         * docs/design/part-gstpipeline.txt:
5610           Update design notes to reflect the movement of
5611           responsibility for bus handling from GstPipeline to
5612           GstBin
5613
5614 2005-07-07  Jan Schmidt  <thaytan@mad.scientist.com>
5615
5616         * configure.ac:
5617           Remove unnecessary queue2/3/4 examples.
5618
5619 2005-07-07  Jan Schmidt  <thaytan@mad.scientist.com>
5620
5621         * examples/Makefile.am:
5622         * examples/helloworld/helloworld.c: (event_loop), (main):
5623         * examples/queue/queue.c: (event_loop), (main):
5624         * examples/queue2/queue2.c: (main):
5625           Update a couple of the examples to work again.
5626
5627         * gst/base/gstbasesink.c: (gst_base_sink_preroll_queue_empty),
5628         (gst_base_sink_preroll_queue_flush), (gst_base_sink_handle_event):
5629          Spelling corrections and extra debug.
5630         
5631         * gst/gstbin.c: (gst_bin_class_init), (gst_bin_init), (is_eos),
5632         (gst_bin_add_func), (bin_element_is_sink), (gst_bin_get_state),
5633         (gst_bin_change_state), (gst_bin_dispose), (bin_bus_handler):
5634         * gst/gstbin.h:
5635         * gst/gstpipeline.c: (gst_pipeline_init), (gst_pipeline_dispose),
5636         (gst_pipeline_change_state):
5637         * gst/gstpipeline.h:
5638           Move the bus handler for children to the GstBin, and create a
5639           separate bus for receiving messages from children to the one the
5640           bus sends 'upwards' on.
5641
5642 2005-07-06  Wim Taymans  <wim@fluendo.com>
5643
5644         * gst/base/README:
5645         * gst/base/gstbasesink.c: (gst_base_sink_preroll_queue_empty),
5646         (gst_base_sink_handle_object), (gst_base_sink_loop),
5647         (gst_base_sink_change_state):
5648         * gst/base/gstbasesink.h:
5649         * gst/base/gstbasesrc.c: (gst_base_src_class_init),
5650         (gst_base_src_init), (gst_base_src_setcaps),
5651         (gst_base_src_getcaps), (gst_base_src_loop),
5652         (gst_base_src_default_negotiate), (gst_base_src_negotiate),
5653         (gst_base_src_start), (gst_base_src_change_state):
5654         * gst/base/gstbasesrc.h:
5655         Make basesrc negotiate.
5656         Handle the case where preroll fails in basesink.
5657         Update README.
5658
5659 2005-07-06  Wim Taymans  <wim@fluendo.com>
5660
5661         * gst/gstpad.c: (gst_pad_fixate_caps), (gst_pad_accept_caps):
5662         Implement the fixate function.
5663         Clean up acceptcaps.
5664
5665 2005-07-06  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
5666
5667         * docs/pwg/building-filterfactory.xml:
5668         * docs/pwg/pwg.xml:
5669           Remove never-written filter-factory chapter; I'll add the various
5670           base classes to part 4 ("other element types") later on.
5671
5672 2005-07-06  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
5673
5674         * docs/pwg/advanced-negotiation.xml:
5675         * docs/pwg/building-boiler.xml:
5676         * docs/pwg/building-pads.xml:
5677         * docs/pwg/pwg.xml:
5678         * examples/pwg/Makefile.am:
5679           Add a chapter on caps negotiation, simplify the original code
5680           samples a bit w.r.t. caps negotiation, add link to the advanced
5681           section. Add a bunch of examples showing different use cases of
5682           different types of caps negotiation. Upstream renegotiation isn't
5683           fully documented yet since nobody knows how that works.
5684
5685 2005-07-06  Thomas Vander Stichele  <thomas at apestaart dot org>
5686
5687         * check/gst/gstpad.c:
5688         * check/gstcheck.c:
5689         * gst/gstpad.c: (gst_pad_get_internal_links_default):
5690           if pad has no parent, return NULL as list of internal links
5691
5692 2005-07-05  Andy Wingo  <wingo@pobox.com>
5693
5694         * gst/elements/gstfilesrc.c:
5695         * gst/elements/gstfakesrc.c: 
5696         * gst/base/gstpushsrc.c:
5697         * gst/base/gstbasesrc.h: 
5698         * gst/base/gstbasesrc.c: s/BASESRC/BASE_SRC/g.
5699         
5700 2005-07-05  Stefan Kost  <ensonic@users.sf.net>
5701
5702         * Makefile.am:
5703           better report generation target (lcov needs a patch)
5704
5705 2005-07-05  Andy Wingo  <wingo@pobox.com>
5706
5707         * gst/elements, testsuite: Null if we got it...
5708
5709 2005-07-05  Wim Taymans  <wim@fluendo.com>
5710
5711         * configure.ac:
5712         * libs/gst/dataprotocol/Makefile.am:
5713         * libs/gst/dataprotocol/dataprotocol.c: (gst_dp_validate_packet):
5714         * libs/gst/dataprotocol/dataprotocol.h:
5715         * pkgconfig/Makefile.am:
5716         * pkgconfig/gstreamer-dataprotocol-uninstalled.pc.in:
5717         * pkgconfig/gstreamer-dataprotocol.pc.in:
5718         Ported dataprotol to 0.9. 
5719         Added pkgconfig files.
5720
5721 2005-07-05  Andy Wingo  <wingo@pobox.com>
5722
5723         * gst/base/gstbasetransform.c (gst_base_transform_setcaps):
5724         Default to returning TRUE for the case when tranform_caps returns
5725         a fixed caps, like for identity or volume.
5726
5727         * check/gst/gstbus.c (pound_bus_with_messages): 
5728         * check/gst/gstmessage.c (START_TEST): 
5729         * check/pipelines/simple_launch_lines.c (got_handoff): Application
5730         message API change.
5731
5732         * gst/base/gstbasetransform.c (gst_base_transform_setcaps): More
5733         logic weaks here: always run transform_caps, trying passthrough
5734         operation only if the original caps intersects with the transform.
5735
5736         * gst/gstpad.c (gst_pad_link_check_compatible_unlocked): Debug
5737         source and sink caps.
5738
5739         * gst/base/gstbasetransform.c (gst_base_transform_getcaps):
5740         Intersect the peer caps with the pad template before going into
5741         transform_caps.
5742         (gst_base_transform_transform_caps): More debugging.
5743
5744         * gst/gstmessage.h (gst_message_new_application): Take a GstObject
5745         src argument.
5746
5747 2005-07-04  Edward Hervey  <edward@fluendo.com>
5748
5749         * gst/gstutils.c:
5750         * gst/gstutils.h:
5751         (gst_pad_add_*_probe): now returns the signal id for better wrapping
5752         in bindings.
5753
5754 2005-07-04  Andy Wingo  <wingo@pobox.com>
5755
5756         * check/gst/gstpad.c: Only set explicit caps on pads.
5757
5758 2005-07-01  Andy Wingo  <wingo@pobox.com>
5759
5760         * tests/network-clock.scm: Commentary update.
5761
5762         * gst/elements/gstidentity.c (PROP_DUPLICATE): Gone daddy gone.
5763         Didn't really make sense, not implementable with basetransform,
5764         etc.
5765         (gst_identity_transform): Unref inbuf via make_writable. Feeble
5766         attempt at implementing the sync property, needs an unlock method.
5767
5768         * gst/base/gstbasetransform.c (gst_base_transform_transform_caps):
5769         New func, by default returns the same caps (the identity
5770         transformation).
5771         (gst_base_transform_getcaps): Uses transform_caps to return
5772         something sensible.
5773         (gst_base_transform_setcaps): Complicated logic to get caps on
5774         both pads, even if they are different, and to call set_caps once
5775         for every time both pads get their caps set.
5776         (gst_base_transform_handle_buffer): Give the ref to the transform
5777         function. Allows in-place modification of the buffer.
5778
5779         * gst/base/gstbasetransform.h (transform_caps): New class method.
5780         Given caps on one side, what can I do on the other.
5781         (set_caps): Take two caps, one for each side of the element.
5782
5783         * gst/gstpad.h:
5784         * gst/gstpad.c (gst_pad_fixate_caps): Change prototype to modify
5785         caps in place. This is safe because we can check the mutability of
5786         the caps, and a good idea because fixate functions are just called
5787         as a matter of last resort. (Not actually implemented.)
5788         (gst_pad_set_caps): If the caps we're setting is actually the same
5789         as the existing pad caps, just update the pointer without calling
5790         setcaps. Assert that caps is either NULL or fixed, as per the
5791         docs.
5792
5793         * gst/gstghostpad.c: Update for fixate changes.
5794
5795 2005-07-02  Andy Wingo  <wingo@pobox.com>
5796
5797         * gst/gstcaps.c:
5798         * gst/gstcaps.h (gst_static_caps_get): Not const return, having
5799         two refcounts makes it immutable, which is enough. Doc more.
5800
5801 2005-07-02  Jan Schmidt  <thaytan@mad.scientist.com>
5802
5803         * gst/gstpad.c: (gst_pad_emit_have_data_signal):
5804           Put the mini_object into GValue as a mini_object,
5805           not a gpointer, since that's how we declared
5806           the signal.
5807
5808 2005-07-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
5809
5810         * examples/pwg/Makefile.am:
5811           Fix buildbot again.
5812
5813 2005-07-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
5814
5815         * docs/pwg/building-testapp.xml:
5816           Add extra check.
5817         * examples/pwg/Makefile.am:
5818           Fix buildbot.
5819
5820 2005-07-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
5821
5822         * configure.ac:
5823         * examples/Makefile.am:
5824         * examples/pwg/Makefile.am:
5825         * examples/pwg/extract.pl:
5826           Enable building the PWG examples.
5827         * docs/pwg/advanced-interfaces.xml:
5828           Add URI interface stub.
5829         * docs/pwg/advanced-types.xml:
5830         * docs/pwg/other-autoplugger.xml:
5831         * docs/pwg/appendix-porting.xml:
5832         * docs/pwg/pwg.xml:
5833           Add porting guide (mostly stubs), remove autoplugging (see ADM).
5834         * docs/pwg/building-boiler.xml:
5835         * docs/pwg/building-chainfn.xml:
5836         * docs/pwg/building-pads.xml:
5837         * docs/pwg/building-props.xml:
5838         * docs/pwg/building-state.xml:
5839         * docs/pwg/building-testapp.xml:
5840           Update the building-*.xml parts for 0.9 changes. All examples
5841           code blocks compile in examples/pwg/*.
5842
5843 2005-06-30  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
5844
5845         * docs/manual/advanced-autoplugging.xml:
5846         * docs/manual/appendix-checklist.xml:
5847         * docs/manual/appendix-integration.xml:
5848         * docs/manual/highlevel-components.xml:
5849           Fix playbin/decodebin examples, update docs a bit, mention bus
5850           instead of signals in various places, mention kmplayer and
5851           kaffeine since they have a working GStreamer backend in the KDE
5852           section.
5853
5854 2005-06-30  Wim Taymans  <wim@fluendo.com>
5855
5856         * CHANGES-0.9:
5857         * docs/design/draft-ghostpads.txt:
5858         * docs/design/draft-push-pull.txt:
5859         * docs/design/draft-query.txt:
5860         * docs/design/part-TODO.txt:
5861         * docs/design/part-query.txt:
5862         Added CHANGES-0.9 doc, updated status of other docs.
5863         
5864         * gst/gstquery.h:
5865         Remove "hmm" macro
5866
5867 2005-06-30  Wim Taymans  <wim@fluendo.com>
5868
5869         * gst/base/gstbasesink.c: (gst_base_sink_preroll_queue_empty),
5870         (gst_base_sink_preroll_queue_flush), (gst_base_sink_handle_object),
5871         (gst_base_sink_change_state):
5872         * gst/base/gstbasesink.h:
5873         Some tweaks, only EOS and a buffer complete a preroll.
5874
5875 2005-06-30  Andy Wingo  <wingo@pobox.com>
5876
5877         * gst/gstghostpad.c (gst_ghost_pad_do_activate_push): Proxy
5878         activate_push down to the internal pad as well.
5879
5880 2005-06-30  Torsten Schoenfeld  <kaffeetisch@gmx.de>
5881
5882         Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
5883
5884         * gst/gsttaginterface.c:
5885           Some documentation fixes (#307394 and #307397).
5886
5887 2005-06-30  Antoine Tremblay  <hexa00@gmail.com>
5888
5889         Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
5890
5891         * gst/gstvalue.c: (gst_value_intersect_list):
5892           Fix memleak (#309125).
5893
5894 2005-06-30  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
5895
5896         * docs/manual/advanced-dataaccess.xml:
5897           Fix fakesrc example to compile; doesn't work, bug somewhere...?
5898         * docs/manual/basics-pads.xml:
5899           Add reference for filtered caps to above chapter.
5900
5901 2005-06-30  Wim Taymans  <wim@fluendo.com>
5902
5903         * gst/gstbin.c: (clear_queue), (remove_all_from_queue),
5904         (gst_bin_change_state):
5905         Probes are gone.
5906         Lame attempt at making the state change function a bit
5907         more readable.
5908
5909 2005-06-30  Wim Taymans  <wim@fluendo.com>
5910
5911         * docs/design/part-clocks.txt:
5912         * docs/design/part-element-sink.txt:
5913         * docs/design/part-events.txt:
5914         * docs/design/part-preroll.txt:
5915         * docs/design/part-states.txt:
5916         Some more tweeks and additions to the docs.
5917
5918 2005-06-30  Wim Taymans  <wim@fluendo.com>
5919
5920         * gst/gstpad.c: (_gst_do_pass_data_accumulator),
5921         (default_have_data), (gst_pad_class_init), (gst_pad_init),
5922         (gst_pad_emit_have_data_signal), (gst_pad_chain), (gst_pad_push),
5923         (gst_pad_check_pull_range), (gst_pad_get_range),
5924         (gst_pad_pull_range), (gst_pad_push_event), (gst_pad_send_event):
5925         * gst/gstpad.h:
5926         * gst/gstutils.c: (gst_atomic_int_set), (gst_pad_add_data_probe),
5927         (gst_pad_add_event_probe), (gst_pad_add_buffer_probe),
5928         (gst_pad_remove_data_probe), (gst_pad_remove_event_probe),
5929         (gst_pad_remove_buffer_probe):
5930         Removed atomic operations, use existing LOCK.
5931         Move exception handling out of main code path.
5932
5933 2005-06-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
5934
5935         * gst/gstpad.c: (_gst_do_pass_data_accumulator),
5936         (silly_return_true_function), (gst_pad_class_init),
5937         (gst_pad_emit_have_data_signal), (gst_pad_chain), (gst_pad_push),
5938         (gst_pad_get_range), (gst_pad_pull_range), (gst_pad_push_event),
5939         (gst_pad_send_event):
5940           Fix accumulator, add default value by using _emitv() instead
5941           of _emit() for signal emission.
5942
5943 2005-06-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
5944
5945         * docs/manual/advanced-dataaccess.xml:
5946         * examples/manual/Makefile.am:
5947           Add probe example.
5948         * gst/gstpad.c: (_gst_do_pass_data_accumulator):
5949           Make work (??).
5950
5951 2005-06-29  Tim-Philipp Müller  <tim at centricular dot net>
5952
5953         * gst/elements/gstfilesink.c: (gst_filesink_render):
5954           Simplify code so that we don't have to handle short
5955           writes and return GST_FLOW_ERROR if an error occured.
5956
5957 2005-06-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
5958
5959         * docs/gst/gstreamer-docs.sgml:
5960           Remove probes more.
5961
5962 2005-06-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
5963
5964         * docs/gst/gstreamer-sections.txt:
5965         * docs/gst/tmpl/gstpad.sgml:
5966         * docs/gst/tmpl/gstprobe.sgml:
5967         * gst/Makefile.am:
5968         * gst/gstpad.c: (_gst_do_pass_data_accumulator),
5969         (gst_pad_class_init), (gst_pad_init), (gst_pad_chain),
5970         (gst_pad_push), (gst_pad_get_range), (gst_pad_pull_range),
5971         (gst_pad_push_event), (gst_pad_send_event):
5972         * gst/gstpad.h:
5973         * gst/gstutils.c: (gst_pad_add_data_probe),
5974         (gst_pad_add_event_probe), (gst_pad_add_buffer_probe),
5975         (gst_pad_remove_data_probe), (gst_pad_remove_event_probe),
5976         (gst_pad_remove_buffer_probe):
5977         * gst/gstutils.h:
5978           Remove old probes, add new g-signal-based probes and some utility
5979           functions.
5980
5981 2005-06-29  Edward Hervey  <edward@fluendo.com>
5982
5983         * gst/gstelementfactory.c:
5984         * gst/gstutils.h:
5985         * gst/gstutils.c:
5986         Moved gst_element_factory_can_[sink|src]_caps() to gstutils and added
5987         the definition to the header file.
5988
5989 2005-06-29  Andy Wingo  <wingo@pobox.com>
5990
5991         * docs/gst/Makefile.am (scan-build.stamp): Totally only check
5992         plugins from the source directory.
5993
5994 2005-06-29  Wim Taymans  <wim@fluendo.com>
5995
5996         * docs/gst/tmpl/gstbuffer.sgml:
5997         * docs/gst/tmpl/gstclock.sgml:
5998         Some fixings for blantently wrong text.
5999
6000 2005-06-29  Thomas Vander Stichele  <thomas at apestaart dot org>
6001
6002         * check/Makefile.am:
6003         * gst/gst.c: (add_path_func), (init_pre):
6004         * gst/gstregistry.c: (gst_registry_add_path):
6005           add A GST_PLUGIN_PATH_ONLY env var; if it is set, it will
6006           only scan the GST_PLUGIN_PATH locations, and not add
6007           system locations
6008
6009 2005-06-29  Thomas Vander Stichele  <thomas at apestaart dot org>
6010
6011         * docs/gst/gstreamer-sections.txt:
6012         * docs/gst/tmpl/gstbasesrc.sgml:
6013         * gst/gstelement.c:
6014         * gst/gstelement.h:
6015         * gst/gstevent.c:
6016         * gst/gstutils.c:
6017           doc fixes
6018
6019 2005-06-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
6020
6021         * docs/manual/advanced-autoplugging.xml:
6022           Fix autoplugging example.
6023
6024 2005-06-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
6025
6026         * docs/manual/advanced-autoplugging.xml:
6027         * docs/manual/mime-world.fig:
6028           Try to get autoplugging working, fix type detection. Fix text
6029           in hello-world image.
6030
6031 2005-06-29  Wim Taymans  <wim@fluendo.com>
6032
6033         * gst/base/gstbasesink.c: (gst_base_sink_handle_object),
6034         (gst_base_sink_change_state):
6035         Small debug line.
6036
6037         * gst/gstclock.h:
6038         map SIGNAL and BROADCAST to the right function.
6039
6040         * gst/gstobject.h:
6041         Remove redundant braces.
6042
6043         * gst/gstpad.c: (gst_pad_set_caps):
6044         Don't call setcaps function when reseting caps to NULL.
6045
6046         * gst/gstsystemclock.c: (gst_system_clock_dispose),
6047         (gst_system_clock_async_thread), (gst_system_clock_id_wait_async),
6048         (gst_system_clock_id_unschedule):
6049         Use BROADCAST as this is what we do.
6050
6051 2005-06-29  Wim Taymans  <wim@fluendo.com>
6052
6053         * gst/base/gstbasesink.c: (gst_base_sink_handle_object):
6054         We are actually prerolling before commiting the state
6055         change. 
6056
6057 2005-06-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
6058
6059         * docs/manual/advanced-clocks.xml:
6060         * docs/manual/advanced-interfaces.xml:
6061         * docs/manual/advanced-metadata.xml:
6062         * docs/manual/advanced-position.xml:
6063         * docs/manual/advanced-schedulers.xml:
6064         * docs/manual/advanced-threads.xml:
6065         * docs/manual/appendix-porting.xml:
6066         * docs/manual/basics-bins.xml:
6067         * docs/manual/basics-bus.xml:
6068         * docs/manual/basics-elements.xml:
6069         * docs/manual/basics-helloworld.xml:
6070         * docs/manual/basics-pads.xml:
6071         * docs/manual/highlevel-components.xml:
6072         * docs/manual/manual.xml:
6073         * docs/manual/thread.fig:
6074           Update (until threads/scheduling) Application Development Manual;
6075           remove GstThread, add GstBus, add simple porting checklist, add
6076           documentation for tag writing, clocks, make all examples until this
6077           part compile and run.
6078         * examples/manual/Makefile.am:
6079           Update from changes to Application Development Manual; add bus
6080           example, remove thread example.
6081
6082 2005-06-28  Wim Taymans  <wim@fluendo.com>
6083
6084         * gst/gstbus.c: (gst_bus_post), (gst_bus_have_pending),
6085         (gst_bus_set_flushing), (gst_bus_pop), (gst_bus_peek),
6086         (gst_bus_source_dispatch):
6087         Add debugging messages.
6088         Make internal methods static.
6089         Handle the case where the bus is flushed in the handler.
6090         
6091         * gst/gstelement.c: (gst_element_get_bus):
6092         Fix refcount in _get_bus();
6093
6094         * gst/gstpipeline.c: (gst_pipeline_change_state),
6095         (gst_pipeline_get_clock_func):
6096         Clock refcounting fixes.
6097         Handle the case where preroll timed out more gracefully.
6098         
6099         * gst/gstsystemclock.c: (gst_system_clock_dispose):
6100         Clean up the internal thread in dispose. This is needed
6101         for subclasses that actually get disposed.
6102         
6103         * gst/schedulers/threadscheduler.c:
6104         (gst_thread_scheduler_class_init), (gst_thread_scheduler_func),
6105         (gst_thread_scheduler_dispose):
6106         Free thread pool in dispose.
6107
6108 2005-06-28  Andy Wingo  <wingo@pobox.com>
6109
6110         * tests/network-clock-utils.scm (debug, print-event): New utils.
6111
6112         * tests/network-clock.scm (*debug*, *with-graph*): New parameters.
6113         (*packet-loss*): Unified loss probability.
6114         (network-time): Report out-of-band events.
6115
6116         * tests/plot-data: Add support for out-of-band events. Hack it
6117         into this script instead of passing it down the pipe; should fix
6118         this later.
6119
6120 2005-06-28  Wim Taymans  <wim@fluendo.com>
6121
6122         * docs/gst/gstreamer.types:
6123         * docs/gst/tmpl/gstbasesrc.sgml:
6124         * docs/gst/tmpl/gstpad.sgml:
6125         Docs fixes.
6126
6127 2005-06-28  Wim Taymans  <wim@fluendo.com>
6128
6129         * gst/gstghostpad.c: (gst_proxy_pad_do_bufferalloc),
6130         (gst_proxy_pad_do_checkgetrange), (gst_proxy_pad_do_acceptcaps),
6131         (gst_proxy_pad_do_fixatecaps):
6132         Correctly proxy the check_pull_range function.
6133
6134 2005-06-28  Andy Wingo  <wingo@pobox.com>
6135
6136         * tests/network-clock.scm: Removed need for slib.
6137         
6138 2005-06-28  Wim Taymans  <wim@fluendo.com>
6139
6140         * gst/base/gstbasesink.c: (gst_basesink_set_pad_functions),
6141         (gst_basesink_preroll_queue_flush):
6142         * gst/base/gstbasesrc.c: (gst_basesrc_set_dataflow_funcs):
6143         * gst/elements/gsttee.c: (gst_tee_update_pad_functions):
6144         * gst/gstghostpad.c: (gst_proxy_pad_do_bufferalloc),
6145         (gst_proxy_pad_do_acceptcaps), (gst_proxy_pad_do_fixatecaps),
6146         (gst_proxy_pad_set_property):
6147         * gst/gstpad.c:
6148         * gst/gstpad.h:
6149         * gst/gstqueue.c: (gst_queue_init):
6150         The deprecated pad loop function is removed now.
6151
6152 2005-06-28  Andy Wingo  <wingo@pobox.com>
6153
6154         * tests/network-clock.scm (*timeout*, *send-loss*, *recv-loss*):
6155         New parameters, simulate network packet loss.
6156
6157         * tests/network-clock-utils.scm: Initialize the RNG.
6158
6159 2005-06-28  Wim Taymans  <wim@fluendo.com>
6160
6161         * gst/base/gstbasesink.c: (gst_basesink_preroll_queue_flush),
6162         (gst_basesink_event), (gst_basesink_deactivate):
6163         Flushing the preroll queue always needs to unlock the waiters.
6164
6165 2005-06-28  Edward Hervey  <edward@fluendo.com>
6166
6167         * gst/gstpipeline.c: (gst_pipeline_send_event): 
6168         Wheen a seek was successful on a pipeline, set the stream_time to the
6169         seek offset in order to have a synchronized stream_time.
6170
6171 2005-06-28  Wim Taymans  <wim@fluendo.com>
6172
6173         * gst/gstghostpad.c: (gst_proxy_pad_do_bufferalloc),
6174         (gst_proxy_pad_do_getrange), (gst_proxy_pad_do_checkgetrange),
6175         (gst_proxy_pad_do_getcaps), (gst_proxy_pad_do_acceptcaps),
6176         (gst_proxy_pad_do_fixatecaps):
6177         Call wrapper function instead of just calling the function
6178         pointers. This takes care of any locking and whatmore.
6179
6180 2005-06-28  Wim Taymans  <wim@fluendo.com>
6181
6182         * gst/gstpad.c: (gst_pad_alloc_buffer), (gst_pad_push),
6183         (gst_pad_pull_range):
6184         * gst/gstpad.h:
6185         CONNECTED -> LINKED.
6186
6187 2005-06-28  Andy Wingo  <wingo@pobox.com>
6188
6189         * *.c: Don't cast to GST_OBJECT when reffing or unreffing. Large
6190         source-munging commit!!!
6191
6192         * gst/gstobject.c (gst_object_unref, gst_object_ref) 
6193         (gst_object_sink): Take gpointer arguments, not GstObject --
6194         avoids casts. Like GLib.
6195
6196         * gst/gstghostpad.c (gst_proxy_pad_do_activate): Don't proxy
6197         activate.
6198
6199 2005-06-27  Andy Wingo  <wingo@pobox.com>
6200
6201         * gst/base/gsttypefindhelper.c (gst_type_find_helper): Unref any
6202         remaining buffer.
6203
6204         * gst/gsttrace.c (gst_alloc_trace_list_sorted): New helper,
6205         returns a sorted copy of the trace list.
6206         (gst_alloc_trace_print_live): New API, only prints traces with
6207         live objects. Sort the list.
6208         (gst_alloc_trace_print_all): Sort the list.
6209         (gst_alloc_trace_print): Align columns.
6210
6211         * gst/elements/gstttypefindelement.c:
6212         * gst/elements/gsttee.c:
6213         * gst/base/gstbasesrc.c:
6214         * gst/base/gstbasesink.c:
6215         * gst/base/gstbasetransform.c:
6216         * gst/gstqueue.c: Adapt for pad activation changes.
6217
6218         * gst/gstpipeline.c (gst_pipeline_init): Unref after parenting
6219         sched.
6220         (gst_pipeline_dispose): Drop ref on sched.
6221
6222         * gst/gstpad.c (gst_pad_init): Set the default activate func.
6223         (gst_pad_activate_default): Push mode by default.
6224         (pre_activate_switch, post_activate_switch): New stubs, things to
6225         do before and after switching activation modes on pads.
6226         (gst_pad_set_active): Take a boolean and not a mode, dispatch to
6227         the pad's activate function to choose which mode to activate.
6228         Shortcut on deactivation and call the right function directly.
6229         (gst_pad_activate_pull): New API, (de)activates a pad in pull
6230         mode.
6231         (gst_pad_activate_push): New API, same for push mode.
6232         (gst_pad_set_activate_function) 
6233         (gst_pad_set_activatepull_function) 
6234         (gst_pad_set_activatepush_function): Setters for new API.
6235
6236         * gst/gstminiobject.c (gst_mini_object_new, gst_mini_object_free):
6237         Trace all miniobjects.
6238         (gst_mini_object_make_writable): Unref the arg if we copy, like
6239         gst_caps_make_writable.
6240
6241         * gst/gstmessage.c (_gst_message_initialize): No trace init.
6242
6243         * gst/gstghostpad.c (gst_proxy_pad_do_activate) 
6244         (gst_proxy_pad_do_activatepull, gst_proxy_pad_do_activatepush):
6245         Adapt for new pad API.
6246
6247         * gst/gstevent.c (_gst_event_initialize): Don't initialize trace.
6248
6249         * gst/gstelement.h:
6250         * gst/gstelement.c (gst_element_iterate_src_pads) 
6251         (gst_element_iterate_sink_pads): New API functions.
6252         
6253         * gst/gstelement.c (iterator_fold_with_resync): New utility,
6254         should fold into gstiterator.c in some form.
6255         (gst_element_pads_activate): Simplified via use of fold and
6256         delegation of decisions to gstpad->activate.
6257
6258         * gst/gstbus.c (gst_bus_source_finalize): Set the bus to NULL,
6259         help in debugging.
6260
6261         * gst/gstbuffer.c (_gst_buffer_initialize): Ref the buffer type
6262         class once in init, like gstmessage. Didn't run into this issue
6263         but it seems correct. Don't initialize a trace, gstminiobject does
6264         that.
6265
6266         * check/pipelines/simple_launch_lines.c (test_stop_from_app): New
6267         test, runs fakesrc ! fakesink, stopping on ::handoff via a message
6268         to the bus.
6269         (assert_live_count): New util function, uses alloc traces to check
6270         cleanup.
6271
6272         * check/gst/gstghostpad.c (test_ghost_pads): More refcount checks.
6273         To be modified when unlink drops the internal pad.
6274
6275 2005-06-27  Wim Taymans  <wim@fluendo.com>
6276
6277         * gst/gstbin.c: (gst_bin_get_state), (gst_bin_iterate_state_order),
6278         (gst_bin_change_state):
6279         Cleanup the get_state() function a little, make sure it
6280         iterates the same set of elements.
6281         Added stub iterate_state_order().
6282
6283 2005-06-27  Thomas Vander Stichele  <thomas at apestaart dot org>
6284
6285         * docs/gst/gstreamer-docs.sgml:
6286         * docs/gst/gstreamer-sections.txt:
6287         * docs/gst/gstreamer.types:
6288         * docs/gst/tmpl/gstbasesink.sgml:
6289         * docs/gst/tmpl/gstbasesrc.sgml:
6290         * docs/gst/tmpl/gstbasetransform.sgml:
6291         * docs/gst/tmpl/gstelement.sgml:
6292         * docs/gst/tmpl/gstiterator.sgml:
6293         * gst/base/gstbasesrc.c:
6294         * gst/base/gstbasesrc.h:
6295         * gst/base/gstbasetransform.h:
6296         * gst/gstelement.c:
6297         * gst/gstiterator.h:
6298           adding basetransform and iterator docs
6299
6300 2005-06-27  Andy Wingo  <wingo@pobox.com>
6301
6302         * docs/design/part-activation.txt: Notes on how activation should
6303         work -- not quite implemented yet.
6304
6305 2005-06-25  Wim Taymans  <wim@fluendo.com>
6306
6307         * gst/gstghostpad.c: (gst_proxy_pad_do_chain):
6308         At least get the chain function correct, needs more
6309         fixing.
6310
6311 2005-06-25  Wim Taymans  <wim@fluendo.com>
6312
6313         * gst/base/gstbasesink.c: (gst_basesink_preroll_queue_empty),
6314         (gst_basesink_handle_object), (gst_basesink_event),
6315         (gst_basesink_do_sync), (gst_basesink_handle_event),
6316         (gst_basesink_change_state):
6317         * gst/gsttask.h:
6318         Right, two problems here: ghostpads don't take locks and
6319         glib _rec_mutex_lock_full() with depth==0 still locks.
6320         Catch illegal locking and g_warn them.
6321
6322 2005-06-25  Wim Taymans  <wim@fluendo.com>
6323
6324         * check/states/sinks.c: (START_TEST), (gst_object_suite):
6325         Have to check for completion now...
6326
6327 2005-06-25  Wim Taymans  <wim@fluendo.com>
6328
6329         * gst/base/gstbasesink.c: (gst_basesink_preroll_queue_empty),
6330         (gst_basesink_handle_object), (gst_basesink_event),
6331         (gst_basesink_do_sync), (gst_basesink_handle_event),
6332         (gst_basesink_change_state):
6333         * gst/gstpad.h:
6334         Unlock STREAM_LOCK whatever the recursion was.
6335
6336 2005-06-25  Wim Taymans  <wim@fluendo.com>
6337
6338         * gst/base/gstbasesink.c: (gst_basesink_set_property),
6339         (gst_basesink_preroll_queue_empty),
6340         (gst_basesink_preroll_queue_flush), (gst_basesink_handle_object),
6341         (gst_basesink_event), (gst_basesink_do_sync),
6342         (gst_basesink_handle_event), (gst_basesink_handle_buffer),
6343         (gst_basesink_chain), (gst_basesink_loop), (gst_basesink_activate),
6344         (gst_basesink_change_state):
6345         Reworked the base sink, handle event and buffer serialisation
6346         correctly and removed possible deadlock.
6347         Handle EOS correctly.
6348
6349 2005-06-25  Wim Taymans  <wim@fluendo.com>
6350
6351         * gst/gstpipeline.c: (is_eos), (pipeline_bus_handler),
6352         (gst_pipeline_change_state):
6353         * tools/gst-launch.c: (check_intr), (event_loop), (main):
6354         Allow elements to post EOS in the state change function.
6355         Fix up -launch, make it exit the poll loop when the
6356         pipeline actually changed state.
6357         Fix up warning parsing in -launch.
6358
6359 2005-06-25  Wim Taymans  <wim@fluendo.com>
6360
6361         * gst/elements/gsttee.c: (gst_tee_chain), (gst_tee_loop),
6362         (gst_tee_sink_activate):
6363         Core takes STREAM_LOCK for us now.
6364
6365 2005-06-25  Wim Taymans  <wim@fluendo.com>
6366
6367         * gst/gstelement.c: (gst_element_get_state_func),
6368         (gst_element_set_state):
6369         * gst/gstelement.h:
6370         * gst/gstmessage.c: (gst_message_parse_error),
6371         (gst_message_parse_warning):
6372         Keep track of current target state while performing a state
6373         change so that subclasses can do something interesting.
6374         Fix parsing of warning/error messages when GError is NULL.
6375
6376 2005-06-24  Thomas Vander Stichele  <thomas at apestaart dot org>
6377
6378         * docs/gst/Makefile.am:
6379         * docs/gst/gstreamer-docs.sgml:
6380         * docs/gst/gstreamer-sections.txt:
6381         * docs/gst/gstreamer.types:
6382         * docs/gst/tmpl/gstbasesink.sgml:
6383         * docs/gst/tmpl/gstbasesrc.sgml:
6384         * docs/gst/tmpl/gstbin.sgml:
6385         * docs/gst/tmpl/gstcompat.sgml:
6386         * docs/gst/tmpl/gstfakesink.sgml:
6387         * docs/gst/tmpl/gstfakesrc.sgml:
6388         * docs/gst/tmpl/gstfilesink.sgml:
6389         * docs/gst/tmpl/gstfilesrc.sgml:
6390         * docs/gst/tmpl/gstindex.sgml:
6391         * docs/manual/appendix-quotes.xml:
6392         * gst/base/gstbasesrc.h:
6393         * gst/elements/gstfakesrc.h:
6394         * gst/gstmessage.h:
6395           start pulling in base classes and elements in our docs
6396
6397 2005-06-24  Stefan Kost  <ensonic@users.sf.net>
6398
6399         * docs/gst/Makefile.am:
6400         * docs/libs/Makefile.am:
6401           fixed make distcheck with gtk-doc 1.3
6402
6403 2005-06-23  Wim Taymans  <wim@fluendo.com>
6404
6405         * gst/gstelement.c: (gst_element_get_state_func),
6406         (gst_element_set_state), (gst_element_change_state):
6407         When the state did not change, also report NO_PREROLL
6408         when it matters.
6409
6410 2005-06-23  Wim Taymans  <wim@fluendo.com>
6411
6412         * gst/gstpad.c: (gst_pad_event_default):
6413         * gst/gstqueue.c: (gst_queue_loop):
6414         No unsafe task pausing please.
6415
6416 2005-06-23  Wim Taymans  <wim@fluendo.com>
6417
6418         * gst/schedulers/threadscheduler.c:
6419         (gst_thread_scheduler_task_start),
6420         (gst_thread_scheduler_task_pause), (gst_thread_scheduler_func):
6421         Ref the task before pushing it on the threadpool. This
6422         makes sure that we have a ref when the threadfunction is
6423         actually called.
6424
6425 2005-06-23  Andy Wingo  <wingo@pobox.com>
6426
6427         * gst/base/gstbasesrc.c (gst_basesrc_get_range): Check if the
6428         offset is greater than the file's size.
6429
6430         * gst/gstobject.h (GST_CLASS_LOCK, GST_CLASS_TRYLOCK) 
6431         (GST_CLASS_UNLOCK, GST_CLASS_GET_LOCK, GstObjectClass)
6432         * gst/gstobject.c (gst_object_class_init): Make the class lock
6433         recursive. Wim won't let me drop deep_notify. Decodebin works
6434         again, whoopdy doo.
6435
6436         * gst/gstghostpad.c (on_int_notify): Catches notify::caps on the
6437         internal pad, and hacks accordingly. Doesn't do it on the target
6438         pad because we change its caps. Probably catches all cases of
6439         interest tho.
6440         (gst_ghost_pad_set_property): Connect to notify::caps as
6441         appropritate.
6442
6443         * tests/network-clock.scm (plot-simulation): Pipe data to the
6444         elite python skript.
6445
6446         * tests/network-clock-utils.scm (define-parameter): New macro,
6447         defines a parameter that can be set via the command line.
6448         (set-parameter!, parse-parameter-arguments): Command line args
6449         parser.
6450
6451         * tests/plot-data: Simple matplotlib-based plotter, takes input on
6452         stdin.
6453
6454 2005-06-23  Jan Schmidt  <thaytan@mad.scientist.com>
6455
6456         * gst/elements/gsttypefindelement.c:
6457         (gst_type_find_element_handle_event):
6458           Don't restart typefinding on a discont.
6459         * gst/gstelement.c: (gst_element_set_state):
6460           Debug spelling fix.
6461         * gst/gstpad.c: (gst_pad_set_active), (gst_pad_send_event):
6462           Allow changing mode of an active pad.
6463           Debug output fixes.
6464         * gst/registries/gstlibxmlregistry.c: (load_feature):
6465           Don't cast a static pad template to a normal pad template.
6466
6467 2005-06-23  Thomas Vander Stichele  <thomas at apestaart dot org>
6468
6469         * check/gst/gstvalue.c: (START_TEST), (gst_value_suite):
6470         * gst/gstvalue.c: (gst_value_deserialize_int_helper):
6471           remove gst_strtoll completely, since it didn't actually do
6472           anything more than what g_ascii_strtoull already does.
6473           check for range errors when deserializing
6474           do a cast for the unsigned cases; but further fixing needs
6475           a decision on what the interpretation of "(int)" and
6476           deserialization should be for values that fall outside the
6477           type's boundaries (ie, refuse, or interpret as casting)
6478
6479 2005-06-23  Wim Taymans  <wim@fluendo.com>
6480
6481         * check/Makefile.am:
6482         * check/states/sinks.c: (START_TEST), (gst_object_suite), (main):
6483         * docs/design/part-live-source.txt:
6484         * docs/design/part-states.txt:
6485         * gst/base/gstbasesrc.c: (gst_basesrc_init),
6486         (gst_basesrc_set_live), (gst_basesrc_is_live),
6487         (gst_basesrc_get_range), (gst_basesrc_activate),
6488         (gst_basesrc_change_state):
6489         * gst/base/gstbasesrc.h:
6490         * gst/elements/gstfakesrc.c: (gst_fakesrc_class_init),
6491         (gst_fakesrc_set_property), (gst_fakesrc_get_property):
6492         * gst/gstbin.c: (gst_bin_get_state), (gst_bin_change_state):
6493         * gst/gstelement.c: (gst_element_get_state_func),
6494         (gst_element_set_state):
6495         * gst/gstelement.h:
6496         * gst/gsttypes.h:
6497         * tools/gst-launch.c: (event_loop), (main):
6498         Added support for live sources and other elements that
6499         cannot do preroll.
6500         Updated design docs, added live-source design doc.
6501         Implemented live source functionality in basesrc
6502         Fix error condition in _bin_get_state()
6503         Implement live source handling in -launch.
6504         Added check for live sources.
6505         Fixed case in GstBin where elements were changed state
6506         multiple times.
6507
6508
6509 2005-06-23  Andy Wingo  <wingo@pobox.com>
6510
6511         * check/gst/gstpad.c (test_get_allowed_caps, test_refcount): Fix
6512         borken refcounting.
6513
6514         * gst/gstpad.c (gst_pad_set_caps): Remove needless refs,
6515         gst_caps_replace takes care of this for us.
6516
6517         * gst/gstghostpad.c (gst_proxy_pad_do_setcaps): Call the full
6518         gst_pad_set_caps on the target, not just its setcaps() function.
6519
6520         * tests/network-clock.scm: 
6521         * tests/network-clock-utils.scm: A network clock simulator.
6522         Something of an algorithmic testbed before doing something in C.
6523
6524 2005-06-22  Thomas Vander Stichele  <thomas at apestaart dot org>
6525
6526         * check/Makefile.am:
6527         * check/gst/capslist.h:
6528           copy over from 0.8, and add two with bitmasks specified with
6529           (int) 0xFF...
6530         * check/gst/gstcaps.c: (START_TEST), (gst_caps_suite):
6531           add test to parse everything from capslist.h
6532         * check/gst/gststructure.c: (START_TEST), (gst_value_suite),
6533         (main):
6534           add test for structure deserialization
6535         * check/gst/gstvalue.c: (START_TEST), (gst_value_suite):
6536           add tests for deserialization of strings to int types
6537         * gst/gststructure.c: (gst_structure_nth_field_name):
6538         * gst/gststructure.h:
6539           add a way to get the name of a field referenced by index
6540         * gst/gstvalue.c: (gst_value_deserialize_int_helper):
6541           instead of checking if the resulting long long lies between
6542           min and max, we check if the long long would fit into
6543           a number of bytes for the final type.
6544           This fixes cases where a string represents 2^32 - 1, which
6545           when cast to int would be the (valid) -1, but is bigger than
6546           G_MAXINT
6547
6548 2005-06-22  Thomas Vander Stichele  <thomas at apestaart dot org>
6549
6550         * gst/parse/grammar.y:
6551           add a log line for type deserialization
6552
6553 2005-06-22  Thomas Vander Stichele  <thomas at apestaart dot org>
6554
6555         * check/gst/gstvalue.c: (START_TEST):
6556         * gst/gstvalue.c: (gst_value_deserialize):
6557           return long long, not int, so gint64 deserialization actually
6558           works.  Is there any flag that makes the compiler check this ?
6559           Fixes #308559
6560
6561 2005-06-22  Wim Taymans  <wim@fluendo.com>
6562
6563         * gst/gstbuffer.h:
6564         Added convenience macros for setting buffers in GValue.
6565
6566 2005-06-21  Thomas Vander Stichele  <thomas at apestaart dot org>
6567
6568         * check/gst/.cvsignore:
6569         * check/gst/gstvalue.c: (START_TEST), (gst_value_suite):
6570           add a test deserializing int64, and comment part out because
6571           it fails, yay !
6572
6573 2005-06-21  Thomas Vander Stichele  <thomas at apestaart dot org>
6574
6575         * check/Makefile.am:
6576         * check/gst/gstvalue.c: (START_TEST), (gst_value_suite), (main):
6577         * testsuite/Makefile.am:
6578         * testsuite/caps/Makefile.am:
6579         * testsuite/caps/value_serialize.c:
6580         * testsuite/test_gst_init.c:
6581           move a value_serialize test over
6582
6583 2005-06-20  Wim Taymans  <wim@fluendo.com>
6584
6585         * gst/gstpad.c:
6586         Small doc updates.
6587         
6588         * gst/gstvalue.c: (gst_value_compare_buffer),
6589         (gst_value_serialize_buffer), (gst_value_deserialize_buffer),
6590         (gst_value_compare_flags), (gst_value_serialize_flags),
6591         (gst_value_deserialize_flags), (_gst_value_initialize):
6592         Fix serialisation of buffers, they are not boxed types anymore
6593
6594 2005-06-20  Wim Taymans  <wim@fluendo.com>
6595
6596         * check/gst/gstcaps.c: (START_TEST), (gst_caps_suite):
6597         Testcase to show error in buffer-on-caps serialisation.
6598
6599 2005-06-20  Andy Wingo  <wingo@pobox.com>
6600
6601         * docs/random/wingo/porting-plugins-to-0.9: A pitiful document I
6602         will be adding to later.
6603
6604         * gst/gstsystemclock.c (gst_system_clock_init): Unlock the clock
6605         if its socks fill with rocks.
6606         (gst_system_clock_obtain): Set the name on object construction.
6607         Avoid double-checked locking.
6608
6609 2005-06-20  Tim-Philipp Müller  <tim at centricular dot net>
6610
6611         * gst/gsturi.c: (gst_element_make_from_uri):
6612           Fix potential endless loop.
6613
6614 2005-06-19  Thomas Vander Stichele  <thomas at apestaart dot org>
6615
6616         * check/Makefile.am:
6617           add gsttag
6618         * check/gst/gsttag.c: (check_tags), (START_TEST), (gst_tag_suite),
6619         (main):
6620           move over from testsuite dir and clean up
6621         * configure.ac:
6622         * gst/gsttag.c:
6623         * testsuite/Makefile.am:
6624         * testsuite/tags/.cvsignore:
6625         * testsuite/tags/Makefile.am:
6626         * testsuite/tags/merge.c:
6627           remove testsuite/tags
6628
6629 2005-06-19  Thomas Vander Stichele  <thomas at apestaart dot org>
6630
6631         * docs/gst/gstreamer-sections.txt:
6632         * docs/gst/tmpl/gstenumtypes.sgml:
6633         * win32/gstenumtypes.c:
6634           clean up documentation build a little
6635
6636 2005-06-19  Thomas Vander Stichele  <thomas at apestaart dot org>
6637
6638         * check/gstcheck.h:
6639           add macros for checking refcounts on objects and caps
6640         * check/gst/gstpad.c: (START_TEST), (gst_pad_suite):
6641           add some more unit tests
6642         * gst/gstpad.c: (gst_pad_link_check_compatible_unlocked),
6643         (gst_pad_link_prepare), (gst_pad_link), (gst_pad_get_allowed_caps):
6644           fix leaked refcounts (I hope :)) so unittest works
6645         * gst/gstpad.h:
6646           whitespace removal
6647
6648 2005-06-19  Thomas Vander Stichele  <thomas at apestaart dot org>
6649
6650         * configure.ac: back to HEAD
6651
6652 === release 0.9.1 ===
6653
6654 2005-06-17  Thomas Vander Stichele  <thomas at apestaart dot org>
6655
6656         * NEWS:
6657         * RELEASE:
6658           updated
6659
6660 2005-06-17  Andy Wingo  <wingo@pobox.com>
6661
6662         * gst/base/gstbasesink.c (gst_basesink_chain): Remove bogus
6663         assert; it's always possible that the pad gets deactivated in
6664         between the checks in gstpad.c and the implementation. Rely on
6665         finish_preroll() to return a FLUSHING or similar instead of on the
6666         assert.
6667         
6668         * gst/base/gstbasesink.c (gst_basesink_event): Only wait for the
6669         clock and post an EOS message if we come out of finish_preroll in
6670         the playing state.
6671
6672 2005-06-16  David Schleef  <ds@schleef.org>
6673
6674         * gst/elements/gstcapsfilter.c: (gst_capsfilter_class_init),
6675         (gst_capsfilter_set_property): Allow NULL as possible value
6676         for filter_caps property, indicating GST_CAPS_ANY.
6677
6678 2005-06-09  Thomas Vander Stichele  <thomas at apestaart dot org>
6679
6680         * gst/elements/gstfakesrc.c: (gst_fakesrc_create):
6681           fix debug output
6682         * gst/schedulers/Makefile.am:
6683           use libgst prefix
6684         * gstreamer.spec.in:
6685           fix spec for it
6686
6687 2005-06-09  Thomas Vander Stichele  <thomas at apestaart dot org>
6688
6689         * gstreamer.spec.in:
6690           clean up
6691
6692 2005-06-08  Andy Wingo  <wingo@pobox.com>
6693
6694         * gst/gstutils.c: RPAD fixes all around.
6695         (gst_element_link_pads): Refcounting fixes.
6696
6697         * tools/gst-inspect.c:
6698         * tools/gst-xmlinspect.c:
6699         * parse/grammar.y:
6700         * gst/base/gsttypefindhelper.c:
6701         * gst/base/gstbasesink.c:
6702         * gst/gstqueue.c: RPAD fixes.
6703
6704         * gst/gstghostpad.h:
6705         * gst/gstghostpad.c: New ghost pad implementation as full proxy
6706         pads. The tricky thing is they provide both source and sink
6707         interfaces, since they proxy the internal pad for the external
6708         pad, and vice versa. Implement with lower-level ProxyPad objects,
6709         with the interior proxy pad as a child of the exterior ghost pad.
6710         Should write a doc on this.
6711         
6712         * gst/gstpad.h: s/RPAD/PAD/, s/RealPad/Pad/.
6713         (gst_pad_set_name, gst_pad_set_parent): Macros removed, use
6714         gst_object API.
6715         
6716         * gst/gstpad.c: Big changes. No more stub base GstPad, now all
6717         pads are real pads. No ghost pads in this file. Not documenting
6718         the myriad s/RPAD/PAD/ and REALIZE fixes.
6719         (gst_pad_class_init): Add properties for "direction" and
6720         "template". Both are construct-only, so they can't change during
6721         the life of the pad. Fixes properly deriving from GstPad.
6722         (gst_pad_custom_new, gst_pad_custom_new_from_template): Gone. For
6723         derived objects, just set properties when creating the objects via
6724         g_object_new.
6725         (gst_pad_get_parent): Implement as a function, return NULL if the
6726         parent is not an element.
6727         (gst_pad_get_real_parent, gst_pad_add_ghost_pad)
6728         (gst_pad_remove_ghost_pad, gst_pad_realize): Removed.
6729         
6730         * gst/gstobject.c (gst_object_class_init): Make name a construct
6731         property. Don't set it in the object init.
6732
6733         * gst/gstelement.c (gst_element_add_pad): Don't allow adding pads
6734         with UNKNOWN direction.
6735         (gst_element_add_ghost_pad): Remove non-orthogonal API. Replace
6736         with gst_element_add_pad (e, gst_ghost_pad_new (name, pad)).
6737         (gst_element_remove_pad): Remove ghost-pad special cases.
6738         (gst_element_pads_activate): Remove rpad cruft.
6739
6740         * gst/gstbin.c (gst_bin_change_state): Use gst_pad_get_parent to
6741         catch the pad's-parent-not-an-element case.
6742
6743         * gst/gst.h: Include gstghostpad.h.
6744
6745         * gst/gst.c (init_post): No more real, ghost pads.
6746
6747         * gst/Makefile.am: Add gstghostpad.[ch].
6748
6749         * check/Makefile.am:
6750         * check/gst/gstbin.c:
6751         * check/gst/gstghostpad.c (test_ghost_pads): Check that linking
6752         into a bin creates ghost pads, and that the refcounts are right.
6753         Partly moved from gstbin.c.
6754
6755 2005-06-08  Thomas Vander Stichele  <thomas at apestaart dot org>
6756
6757         * check/gst-libs/.cvsignore:
6758         * check/gst/.cvsignore:
6759         * check/pipelines/.cvsignore:
6760           ignore more
6761         * check/pipelines/cleanup.c: (setup_pipeline), (run_pipeline),
6762         (START_TEST), (cleanup_suite), (main):
6763           add some tests related to cleanup after running pipelines
6764
6765 2005-06-08  Thomas Vander Stichele  <thomas at apestaart dot org>
6766
6767         * check/gst/gstbuffer.c: (START_TEST), (gst_test_suite), (main):
6768           add a testsuite for GstBuffer
6769
6770 2005-06-08  Thomas Vander Stichele  <thomas at apestaart dot org>
6771
6772         * gst/gstminiobject.h:
6773           add defines for accessing the refcount
6774
6775 2005-06-03  Stefan Kost  <ensonic@users.sf.net>
6776
6777         * Makefile.am: added support for html unit test coverage reports
6778
6779 2005-06-03  Jan Schmidt  <thaytan@mad.scientist.com>
6780
6781         * gst/elements/gstcapsfilter.c: (gst_capsfilter_set_property):
6782           Free existing caps if the capsfilter changes. Add a FIXME about
6783           setting those caps on the pads.
6784
6785         * gst/gstutils.c: (gst_element_get_compatible_pad), (ghost_up):
6786           Before adding a ghost pad to a parent bin, check that there isn't
6787           already one for the element on the bin. Prevents infinite recursion
6788           when using decodebin in parse pipelines. Andy says he'll rewrite the
6789           way this works anyway, so ignore the hack.
6790
6791 2005-06-02  Andy Wingo  <wingo@pobox.com>
6792
6793         * gst/elements/gsttypefindelement.c (do_pull_typefind): Query the
6794         file size, pass it on to the type find helper.
6795
6796         * gst/base/gstbasesrc.c (gst_basesrc_do_seek): Set the
6797         segment_start and segment_end properly according to the seek
6798         method. Segment_end is still a bit flaky because offset can be
6799         negative for CUR and END cases, but it takes -1 as an "unset"
6800         value.
6801
6802 2005-06-02  Wim Taymans  <wim@fluendo.com>
6803
6804         * gst/base/gstbasesink.c: (gst_basesink_pad_buffer_alloc),
6805         (gst_base_sink_buffer_alloc), (gst_basesink_preroll_queue_push),
6806         (gst_basesink_activate):
6807         * gst/base/gstbasesink.h:
6808         * gst/gstpad.c: (gst_pad_set_active), (gst_pad_link_prepare),
6809         (gst_pad_link), (gst_pad_accept_caps), (gst_pad_alloc_buffer),
6810         (gst_pad_query), (gst_pad_start_task):
6811         * gst/gstpad.h:
6812         * gst/gstqueue.c: (gst_queue_bufferalloc),
6813         (gst_queue_handle_sink_event), (gst_queue_chain):
6814         Bufferalloc: return GstFlowReturn to more accuratly report
6815         why allocation failed.
6816
6817 2005-06-02  Wim Taymans  <wim@fluendo.com>
6818
6819         * gst/gstpipeline.c: (gst_pipeline_send_event):
6820         Take snapshot of state without blocking.
6821
6822 2005-06-02  Wim Taymans  <wim@fluendo.com>
6823
6824         * docs/design/part-TODO.txt:
6825         * docs/design/part-caps.txt:
6826         * docs/design/part-clocks.txt:
6827         * docs/design/part-negotiation.txt:
6828         * docs/design/part-preroll.txt:
6829         Small doc updates 
6830
6831 2005-05-30  Wim Taymans  <wim@fluendo.com>
6832
6833         * gst/elements/gstidentity.c: (gst_identity_event),
6834         (gst_identity_transform), (gst_identity_get_property):
6835         Protect last_message property as it is accessed from
6836         multiple threads.
6837
6838 2005-05-30  Wim Taymans  <wim@fluendo.com>
6839
6840         * gst/gstelement.c: (gst_element_init),
6841         (gst_element_pads_activate), (gst_element_change_state):
6842         Slicker pad activation code.
6843
6844 2005-05-30  Wim Taymans  <wim@fluendo.com>
6845
6846         * gst/Makefile.am:
6847         * gst/gstelement.h:
6848         * gst/gstelementfactory.h:
6849         * gst/gsttypes.h:
6850         Move elementfactory methods to separate .h file.
6851
6852 2005-05-30  Wim Taymans  <wim@fluendo.com>
6853
6854         * docs/design/part-overview.txt:
6855         * gst/gstsystemclock.h:
6856         Small typo fixes, doc updates.
6857
6858 2005-05-30  Wim Taymans  <wim@fluendo.com>
6859
6860         * gst/gst.c: (gst_init_get_popt_table), (init_post),
6861         (init_popt_callback):
6862         Remove cpu-opt flag.
6863
6864 2005-05-30  Wim Taymans  <wim@fluendo.com>
6865
6866         * gst/gstbuffer.c: (gst_subbuffer_finalize),
6867         (gst_buffer_create_sub), (gst_buffer_is_span_fast):
6868         * gst/gstbuffer.h:
6869         Avoid typechecking in places where not needed.
6870         Added accessor for malloc_data.
6871
6872 2005-05-30  Wim Taymans  <wim@fluendo.com>
6873
6874         * gst/gstpad.c: (gst_real_pad_init), (gst_pad_set_active),
6875         (gst_pad_link_prepare), (gst_pad_link), (gst_pad_accept_caps),
6876         (gst_pad_configure_sink), (gst_pad_configure_src),
6877         (gst_pad_alloc_buffer), (gst_pad_query), (gst_pad_send_event),
6878         (gst_pad_start_task):
6879         Propagate errors from _set_caps() in configure_src/sink
6880         functions instead of returning TRUE.
6881         FLUSH events can travel up and downstream
6882
6883
6884 2005-05-30  Wim Taymans  <wim@fluendo.com>
6885
6886         * gst/base/gstbasesink.c: (gst_basesink_preroll_queue_push),
6887         (gst_basesink_activate):
6888         Handle EOS in preroll.
6889
6890 2005-05-30  Wim Taymans  <wim@fluendo.com>
6891
6892         * gst/gstqueue.c: (gst_queue_handle_sink_event), (gst_queue_chain),
6893         (gst_queue_loop), (gst_queue_handle_src_event):
6894         Remove old pieces of code
6895         Flushing the queue in an upstream event is a very bad idea.
6896
6897 2005-05-26  Andy Wingo  <wingo@pobox.com>
6898
6899         * gst/gstminiobject.c (gst_value_mini_object_collect): Use
6900         gst_value_set_mini_object so as to add a ref on the object (which
6901         will be removed when the value is unset).
6902
6903         * gst/elements/gstfakesink.c (gst_fakesink_class_init): Fix signal
6904         arg type in ::handoff.
6905
6906         * gst/gstelement.c (gst_element_change_state): Also deactivate
6907         pads in READY->NULL, just in case the element didn't make it to
6908         PAUSED. Wingo tested, Wim approved.
6909
6910 2005-05-26  Wim Taymans  <wim@fluendo.com>
6911
6912         * gst/gstpad.c: (gst_pad_set_active), (gst_pad_link_prepare),
6913         (gst_pad_link), (gst_pad_accept_caps), (gst_pad_alloc_buffer),
6914         (gst_pad_query), (gst_pad_send_event), (gst_pad_start_task):
6915         A flushing pad cannot be used to alloc_buffer from.
6916
6917 2005-05-26  Wim Taymans  <wim@fluendo.com>
6918
6919         * gst/gstbus.c: (gst_bus_init), (gst_bus_dispose), (gst_bus_post),
6920         (gst_bus_pop), (gst_bus_source_prepare), (gst_bus_source_check),
6921         (gst_bus_source_dispatch), (gst_bus_source_finalize),
6922         (gst_bus_create_watch), (gst_bus_add_watch_full):
6923         * gst/gstbus.h:
6924         Implement a real GSource and use g_main_context_wakeup() to
6925         signal new messages instead of the socketpair.
6926
6927 2005-05-25  Wim Taymans  <wim@fluendo.com>
6928
6929         * gst/gstbin.c: (bin_element_is_sink), (has_ancestor),
6930         (bin_element_is_semi_sink), (append_child), (gst_bin_change_state):
6931         * gst/gstpad.c: (gst_pad_set_active), (gst_pad_link_prepare),
6932         (gst_pad_link), (gst_pad_accept_caps), (gst_pad_query),
6933         (gst_pad_send_event), (gst_pad_start_task):
6934         * gst/gstqueue.c: (gst_queue_init), (gst_queue_locked_flush),
6935         (gst_queue_handle_sink_event), (gst_queue_chain), (gst_queue_loop),
6936         (gst_queue_sink_activate), (gst_queue_src_activate),
6937         (gst_queue_change_state):
6938         * gst/gstqueue.h:
6939         Fix state changes for non sinks. We now change sinks, then elements
6940         with unconnected srcpads, then the rest.
6941         More efficient queue unlocking in flush and state changes.
6942         Set the pad activate mode even if it does not have an activate
6943         function.
6944
6945 2005-05-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
6946
6947         * gst/base/gstbasesrc.c: (gst_basesrc_activate):
6948           Don't go in pull mode for non-seekable sources.
6949         * gst/elements/gsttypefindelement.h:
6950         * gst/elements/gsttypefindelement.c: (gst_type_find_element_init),
6951         (gst_type_find_element_dispose), (gst_type_find_handle_src_query),
6952         (free_entry), (stop_typefinding),
6953         (gst_type_find_element_handle_event), (find_peek),
6954         (gst_type_find_element_chain), (do_pull_typefind),
6955         (gst_type_find_element_change_state):
6956           Allow typefinding (w/o seeking) in push-mode, simplified version
6957           of what was in 0.8.
6958         * gst/gstutils.c: (gst_buffer_join):
6959         * gst/gstutils.h:
6960           gst_buffer_join() from 0.8.
6961
6962 2005-05-25  Wim Taymans  <wim@fluendo.com>
6963
6964         * gst/gstpad.c: (gst_pad_set_active), (gst_pad_link_prepare),
6965         (gst_pad_link), (gst_pad_accept_caps), (gst_pad_query),
6966         (gst_pad_send_event), (gst_pad_start_task):
6967         Disable attempt at mode switching until it is figured out.
6968
6969 2005-05-25  Wim Taymans  <wim@fluendo.com>
6970
6971         * gst/base/gstadapter.c: (gst_adapter_peek), (gst_adapter_flush):
6972         * gst/base/gstbasesink.c: (gst_basesink_preroll_queue_push),
6973         (gst_basesink_finish_preroll), (gst_basesink_chain),
6974         (gst_basesink_loop), (gst_basesink_activate),
6975         (gst_basesink_change_state):
6976         * gst/base/gstbasesrc.c: (gst_basesrc_do_seek),
6977         (gst_basesrc_get_range), (gst_basesrc_loop),
6978         (gst_basesrc_activate):
6979         * gst/elements/gsttee.c: (gst_tee_sink_activate):
6980         * gst/gstpad.c: (gst_pad_dispose), (gst_real_pad_class_init),
6981         (gst_real_pad_init), (gst_real_pad_set_property),
6982         (gst_real_pad_get_property), (gst_pad_set_active),
6983         (gst_pad_is_active), (gst_pad_get_query_types), (gst_pad_unlink),
6984         (gst_pad_link_prepare), (gst_pad_link), (gst_pad_get_real_parent),
6985         (gst_real_pad_get_caps_unlocked), (gst_pad_peer_get_caps),
6986         (gst_pad_accept_caps), (gst_pad_get_peer), (gst_pad_realize),
6987         (gst_pad_event_default_dispatch), (gst_pad_event_default),
6988         (gst_pad_dispatcher), (gst_pad_query), (gst_real_pad_dispose),
6989         (gst_pad_save_thyself), (handle_pad_block), (gst_pad_chain),
6990         (gst_pad_push), (gst_pad_get_range), (gst_pad_pull_range),
6991         (gst_pad_send_event), (gst_pad_start_task), (gst_pad_pause_task),
6992         (gst_pad_stop_task):
6993         * gst/gstpad.h:
6994         * gst/gstqueue.c: (gst_queue_handle_sink_event), (gst_queue_chain),
6995         (gst_queue_loop), (gst_queue_src_activate):
6996         * gst/gsttask.c: (gst_task_init), (gst_task_set_lock),
6997         (gst_task_get_state):
6998         * gst/gsttask.h:
6999         * gst/schedulers/threadscheduler.c:
7000         (gst_thread_scheduler_task_start), (gst_thread_scheduler_func):
7001         Implement gst_pad_pause/start/stop_task(), take STREAM lock
7002         in task function.
7003         Remove ACTIVE pad flag, use FLUSHING everywhere
7004         Added _pad_chain(), _pad_get_range() to call chain/getrange 
7005         functions.
7006         Add locks around IS_FLUSHING when reading.
7007         Take STREAM lock in chain(), get_range() functions so plugins
7008         don't need to take it anymore.
7009         
7010
7011
7012 2005-05-25  Wim Taymans  <wim@fluendo.com>
7013
7014         * tools/gst-launch.c: (event_loop):
7015         Unref message after using its contents instead of
7016         before.
7017
7018 2005-05-24  Wim Taymans  <wim@fluendo.com>
7019
7020         * docs/design/draft-ghostpads.txt:
7021         * docs/design/draft-push-pull.txt:
7022         * docs/design/draft-query.txt:
7023         * docs/design/part-overview.txt:
7024         Docs updates, added general overview doc.
7025
7026 2005-05-21  David Schleef  <ds@schleef.org>
7027
7028         * docs/gst/tmpl/old/GstBin.sgml:
7029         * docs/gst/tmpl/old/GstBuffer.sgml:
7030         * docs/gst/tmpl/old/GstCaps.sgml:
7031         * docs/gst/tmpl/old/GstClock.sgml:
7032         * docs/gst/tmpl/old/GstCompat.sgml:
7033         * docs/gst/tmpl/old/GstData.sgml:
7034         * docs/gst/tmpl/old/GstElement.sgml:
7035         * docs/gst/tmpl/old/GstEvent.sgml:
7036         * docs/gst/tmpl/old/GstIndex.sgml:
7037         * docs/gst/tmpl/old/GstStructure.sgml:
7038         * docs/gst/tmpl/old/GstTag.sgml:
7039         * docs/gst/tmpl/old/cothreads.sgml:
7040         * docs/gst/tmpl/old/cothreads_compat.sgml:
7041         * docs/gst/tmpl/old/gettext.sgml:
7042         * docs/gst/tmpl/old/gobject2gtk.sgml:
7043         * docs/gst/tmpl/old/grammar.tab.sgml:
7044         * docs/gst/tmpl/old/gst-i18n-app.sgml:
7045         * docs/gst/tmpl/old/gst-i18n-lib.sgml:
7046         * docs/gst/tmpl/old/gst_private.sgml:
7047         * docs/gst/tmpl/old/gstaggregator.sgml:
7048         * docs/gst/tmpl/old/gstarch.sgml:
7049         * docs/gst/tmpl/old/gstatomic_impl.sgml:
7050         * docs/gst/tmpl/old/gstbufferstore.sgml:
7051         * docs/gst/tmpl/old/gstdata_private.sgml:
7052         * docs/gst/tmpl/old/gstdisksink.sgml:
7053         * docs/gst/tmpl/old/gstdisksrc.sgml:
7054         * docs/gst/tmpl/old/gstelementfactory.sgml:
7055         * docs/gst/tmpl/old/gstextratypes.sgml:
7056         * docs/gst/tmpl/old/gstfakesink.sgml:
7057         * docs/gst/tmpl/old/gstfakesrc.sgml:
7058         * docs/gst/tmpl/old/gstfdsink.sgml:
7059         * docs/gst/tmpl/old/gstfdsrc.sgml:
7060         * docs/gst/tmpl/old/gstfilesink.sgml:
7061         * docs/gst/tmpl/old/gstfilesrc.sgml:
7062         * docs/gst/tmpl/old/gsthttpsrc.sgml:
7063         * docs/gst/tmpl/old/gstidentity.sgml:
7064         * docs/gst/tmpl/old/gstindexfactory.sgml:
7065         * docs/gst/tmpl/old/gstmarshal.sgml:
7066         * docs/gst/tmpl/old/gstmd5sink.sgml:
7067         * docs/gst/tmpl/old/gstmultidisksrc.sgml:
7068         * docs/gst/tmpl/old/gstmultifilesrc.sgml:
7069         * docs/gst/tmpl/old/gstpadtemplate.sgml:
7070         * docs/gst/tmpl/old/gstpipefilter.sgml:
7071         * docs/gst/tmpl/old/gstschedulerfactory.sgml:
7072         * docs/gst/tmpl/old/gstsearchfuncs.sgml:
7073         * docs/gst/tmpl/old/gstshaper.sgml:
7074         * docs/gst/tmpl/old/gstspider.sgml:
7075         * docs/gst/tmpl/old/gstspideridentity.sgml:
7076         * docs/gst/tmpl/old/gststatistics.sgml:
7077         * docs/gst/tmpl/old/gsttee.sgml:
7078         * docs/gst/tmpl/old/gsttimecache.sgml:
7079         * docs/gst/tmpl/old/gsttypefindfactory.sgml:
7080         * docs/gst/tmpl/old/gstxmlregistry.sgml:
7081         * docs/gst/tmpl/old/gthread-cothreads.sgml:
7082         * docs/gst/tmpl/old/types.sgml:
7083           I didn't intend to add these or check them in.
7084
7085 2005-05-19  David Schleef  <ds@schleef.org>
7086
7087         * configure.ac: Use -no-common everywhere.  In a sane world, it
7088           would be the default in libtool, because without it, you can't
7089           build DLLs on Windows.
7090         * docs/gst/gstreamer-docs.sgml: Remove GstCpu, GstData, GstThread
7091         * docs/gst/gstreamer-sections.txt:
7092         * docs/gst/tmpl/gstcpu.sgml:
7093         * docs/gst/tmpl/gstdata.sgml:
7094         * docs/gst/tmpl/gstthread.sgml:
7095
7096 2005-05-19  David Schleef  <ds@schleef.org>
7097
7098         * gst/gstminiobject.c: (gst_value_set_mini_object),
7099         (gst_value_take_mini_object), (gst_value_get_mini_object):
7100         * gst/gstminiobject.h: Add GValue set/get functions.
7101
7102 2005-05-19  Wim Taymans  <wim@fluendo.com>
7103
7104         * gst/gstbuffer.c: (gst_buffer_init), (gst_subbuffer_get_type),
7105         (gst_subbuffer_class_init), (gst_subbuffer_finalize),
7106         (gst_subbuffer_init), (gst_buffer_is_span_fast):
7107         * gst/gstbuffer.h:
7108         * gst/gstbus.c: (gst_bus_post):
7109         * gst/gstelement.c: (gst_element_get_random_pad):
7110         * gst/gstmessage.c: (gst_message_init), (gst_message_finalize):
7111         Make subbufer unref the parent in finalize.
7112         some more debugging info.
7113
7114
7115 2005-05-19  Wim Taymans  <wim@fluendo.com>
7116
7117         * gst/base/gstbasesink.c: (gst_basesink_class_init),
7118         (gst_basesink_init), (gst_basesink_finalize),
7119         (gst_basesink_activate), (gst_basesink_change_state):
7120         Don't free preroll queue too early.
7121
7122 2005-05-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
7123
7124         * gst/Makefile.am:
7125         * gst/ROADMAP:
7126           Hi, I'm outdated. Please shoot me.
7127
7128 2005-05-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
7129
7130         * gst/gstpipeline.c: (gst_pipeline_send_event):
7131           Do not access variables after they have been deleted.
7132
7133 2005-05-19  Wim Taymans  <wim@fluendo.com>
7134
7135         * tools/gst-inspect.c: (print_plugin_features):
7136         A plugin feature does unfortunatly not use the
7137         object name yet...
7138
7139 2005-05-18  Wim Taymans  <wim@fluendo.com>
7140
7141         * gst/gstbuffer.c: (gst_buffer_is_span_fast), (gst_buffer_span):
7142         Port _span() functions to new subbuffers.
7143
7144 2005-05-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
7145
7146         * gst/gstbin.c: (gst_bin_add_func):
7147           Fix clock settery in bins when adding kids after the clock has
7148           been selected.
7149
7150 2005-05-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
7151
7152         * gst/elements/gstidentity.c: (gst_identity_class_init):
7153           Workaround until signals support GstMiniObject.
7154
7155 2005-05-18  Jan Schmidt  <thaytan@mad.scientist.com>
7156
7157         * gst/gstbuffer.c:
7158         Oops, fix a typo GST_TYPE_BUFFER -> GST_TYPE_SUBBUFFER.
7159
7160 2005-05-18  Wim Taymans  <wim@fluendo.com>
7161
7162         * gst/base/Makefile.am:
7163         * gst/base/gstadapter.c: (gst_adapter_base_init),
7164         (gst_adapter_class_init), (gst_adapter_init),
7165         (gst_adapter_dispose), (gst_adapter_finalize), (gst_adapter_new),
7166         (gst_adapter_clear), (gst_adapter_push), (gst_adapter_peek),
7167         (gst_adapter_flush), (gst_adapter_available),
7168         (gst_adapter_available_fast):
7169         * gst/base/gstadapter.h:
7170         Ported and added adapter to the base classes.
7171
7172 2005-05-17  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>
7173
7174         * gst/gst.c:
7175         * gst/gstmessage.c:
7176           Make sure the class is reffed/unreffed once before threads can be
7177           used.  Fixes #304551.
7178
7179 2005-05-17  Wim Taymans  <wim@fluendo.com>
7180
7181         * gst/base/gstbasesink.c: (gst_basesink_finish_preroll),
7182         (gst_basesink_chain_unlocked), (gst_basesink_activate):
7183         * gst/gstminiobject.c: (gst_mini_object_get_type),
7184         (gst_mini_object_free):
7185         * gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_query),
7186         (gst_pad_push), (gst_pad_push_event):
7187         * gst/gstqueue.c: (gst_queue_change_state):
7188         Don't queue buffers in basesink when we are flushing.
7189         Unref buffer when flushing in basesink.
7190         Flush queue when going to READY
7191         Unref buffer when _push() returns an error.
7192         Don't free MiniObject instance when refcount is incremented
7193         in _finalize() so that we can recover objects.
7194
7195 2005-05-17  Thomas Vander Stichele  <thomas at apestaart dot org>
7196
7197         * docs/manual/advanced-schedulers.xml:
7198         * docs/manual/appendix-checklist.xml:
7199         * docs/pwg/advanced-clock.xml:
7200         * docs/pwg/advanced-interfaces.xml:
7201         * docs/pwg/advanced-request.xml:
7202         * docs/pwg/advanced-types.xml:
7203         * docs/pwg/intro-preface.xml:
7204         * examples/plugins/example.c: (gst_example_get_type),
7205         (gst_example_class_init), (gst_example_chain),
7206         (gst_example_set_property), (gst_example_get_property),
7207         (gst_example_change_state), (plugin_init):
7208         * examples/plugins/example.h:
7209           small doc fixes
7210
7211 2005-05-17  Wim Taymans  <wim@fluendo.com>
7212
7213         * gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_set_caps),
7214         (gst_pad_alloc_buffer), (gst_pad_query), (gst_pad_push):
7215         * gst/gstqueue.c: (gst_queue_change_state):
7216         Clear queue when going to READY.
7217         Remove IN_SETCAPS flag too.
7218
7219 2005-05-17  Tim-Philipp Müller  <tim at centricular dot net>
7220
7221         * gst/base/gstbasesrc.c: (gst_basesrc_change_state):
7222           Remove implicit cast from gboolean to GstElementStateReturn;
7223           make sure we still return failure in paused => ready case if
7224           the parent class fails to change state and our own stop 
7225           vfunc succeeds.
7226
7227 2005-05-17  Wim Taymans  <wim@fluendo.com>
7228
7229         * tools/gst-launch.c: (event_loop):
7230         Message was unreffed too soon.
7231
7232 2005-05-16  Andy Wingo  <wingo@pobox.com>
7233
7234         * gst/gstbin.c (sink_iterator_filter): Err... um...
7235
7236         * check/gst/gstbin.c (test_ghost_pads): New test for the
7237         ghosting-if-elements-not-in-same-bin behavior.
7238
7239 2005-05-16  David Schleef  <ds@schleef.org>
7240
7241         * gst/gstminiobject.c: Use g_atomic_int_get() instead of
7242         accessing refcount directly.
7243
7244 2005-05-15  David Schleef  <ds@schleef.org>
7245
7246         * check/Makefile.am: remove GstData checks
7247         * check/gst-libs/gdp.c: (START_TEST): fix for API changes
7248         * gst/Makefile.am: add miniobject, remove data
7249         * gst/gst.h: add miniobject, remove data
7250         * gst/gstdata.c: remove
7251         * gst/gstdata.h: remove
7252         * gst/gstdata_private.h: remove
7253         * gst/gsttypes.h: remove GstEvent and GstMessage
7254         * gst/gstelement.c: (gst_element_post_message): fix for API changes
7255         * gst/gstmarshal.list: change BOXED -> OBJECT
7256
7257         Implement GstMiniObject.
7258         * gst/gstminiobject.c:
7259         * gst/gstminiobject.h:
7260
7261         Modify to be subclasses of GstMiniObject.
7262         * gst/gstbuffer.c: (_gst_buffer_initialize), (gst_buffer_get_type),
7263         (gst_buffer_class_init), (gst_buffer_finalize), (_gst_buffer_copy),
7264         (gst_buffer_init), (gst_buffer_new), (gst_buffer_new_and_alloc),
7265         (gst_subbuffer_get_type), (gst_subbuffer_init),
7266         (gst_buffer_create_sub), (gst_buffer_is_span_fast),
7267         (gst_buffer_span):
7268         * gst/gstbuffer.h:
7269         * gst/gstevent.c: (_gst_event_initialize), (gst_event_get_type),
7270         (gst_event_class_init), (gst_event_init), (gst_event_finalize),
7271         (_gst_event_copy), (gst_event_new):
7272         * gst/gstevent.h:
7273         * gst/gstmessage.c: (_gst_message_initialize),
7274         (gst_message_get_type), (gst_message_class_init),
7275         (gst_message_init), (gst_message_finalize), (_gst_message_copy),
7276         (gst_message_new), (gst_message_new_error),
7277         (gst_message_new_warning), (gst_message_new_tag),
7278         (gst_message_new_state_changed), (gst_message_new_application):
7279         * gst/gstmessage.h:
7280         * gst/gstprobe.c: (gst_probe_perform),
7281         (gst_probe_dispatcher_dispatch):
7282         * gst/gstprobe.h:
7283         * gst/gstquery.c: (_gst_query_initialize), (gst_query_get_type),
7284         (gst_query_class_init), (gst_query_finalize), (gst_query_init),
7285         (_gst_query_copy), (gst_query_new):
7286
7287         Update elements for GstData -> GstMiniObject changes
7288         * gst/gstquery.h:
7289         * gst/gstqueue.c: (gst_queue_finalize), (gst_queue_locked_flush),
7290         (gst_queue_chain), (gst_queue_loop):
7291         * gst/elements/gstbufferstore.c:
7292         (gst_buffer_store_add_buffer_func),
7293         (gst_buffer_store_cleared_func), (gst_buffer_store_get_buffer):
7294         * gst/elements/gstfakesink.c: (gst_fakesink_class_init),
7295         (gst_fakesink_render):
7296         * gst/elements/gstfakesrc.c: (gst_fakesrc_class_init):
7297         * gst/elements/gstfilesrc.c: (gst_mmap_buffer_get_type),
7298         (gst_mmap_buffer_class_init), (gst_mmap_buffer_init),
7299         (gst_mmap_buffer_finalize), (gst_filesrc_map_region),
7300         (gst_filesrc_create_read):
7301         * gst/elements/gstidentity.c: (gst_identity_class_init):
7302         * gst/elements/gsttypefindelement.c:
7303         (gst_type_find_element_src_event), (free_entry_buffers),
7304         (gst_type_find_element_handle_event):
7305         * libs/gst/dataprotocol/dataprotocol.c:
7306         (gst_dp_header_from_buffer):
7307         * libs/gst/dataprotocol/dataprotocol.h:
7308         * libs/gst/dataprotocol/dp-private.h:
7309
7310 2005-05-15  David Schleef  <ds@schleef.org>
7311
7312         * gst/elements/gstelements.c: Don't include headers that were
7313         just removed.
7314
7315 2005-05-15  David Schleef  <ds@schleef.org>
7316
7317         * gst/elements/Makefile.am: Remove some elements that don't
7318         need to be in the core (or even exist at all).
7319         * gst/elements/gstaggregator.c:
7320         * gst/elements/gstaggregator.h:
7321         * gst/elements/gstmd5sink.c:
7322         * gst/elements/gstmd5sink.h:
7323         * gst/elements/gstmultifilesrc.c:
7324         * gst/elements/gstmultifilesrc.h:
7325         * gst/elements/gstpipefilter.c:
7326         * gst/elements/gstpipefilter.h:
7327         * gst/elements/gstshaper.c:
7328         * gst/elements/gstshaper.h:
7329         * gst/elements/gststatistics.c:
7330         * gst/elements/gststatistics.h:
7331         * po/POTFILES.in: Remove above files.
7332
7333 2005-05-14  Andy Wingo  <wingo@pobox.com>
7334
7335         * gst/gstbin.c (gst_bin_iterate_sinks): Use sink_iterator_filter
7336         so as to get the refs right.
7337         (sink_iterator_filter): New function, wraps bin_element_is_sink,
7338         unreffing objects that don't pass the filter.
7339
7340         * gst/gstpipeline.c (gst_pipeline_init): Drop ref on bus after
7341         gst_element_set_bus.
7342         (gst_pipeline_dispose): Set the bus on the pipeline to NULL. In
7343         normal cases, this will destroy the bus.
7344
7345         * gst/gstutils.c (prepare_link_maybe_ghosting): Drop ref on root
7346         object.
7347
7348         * gst/gstbin.c (gst_bin_change_state): Fix state changes if a bin
7349         has no sinks.
7350
7351 2005-05-13  Andy Wingo  <wingo@pobox.com>
7352
7353         * gst/gstutils.c (gst_element_link_pads): Instead of calling
7354         gst_pad_link, call pad_link_maybe_ghosting,
7355         (pad_link_maybe_ghosting): Links pads, making sure that the
7356         elements being linked are in the same bin.
7357         (find_common_root, object_has_ancestor, ghost_up, remove_pad):
7358         Helpers for pad_link_maybe_ghosting.
7359
7360 2005-05-13  Tim-Philipp Müller  <tim at centricular dot net>
7361
7362         * configure.ac:
7363           Require GLib >= 2.4.0 (for the g_atomic_* funcs)
7364
7365 2005-05-13  Tim-Philipp Müller  <tim at centricular dot net>
7366
7367         * docs/design/part-element-source.txt:
7368           Mention GstPushSrc
7369
7370 2005-05-12  Wim Taymans  <wim@fluendo.com>
7371
7372         * gst/base/gstbasesink.c: (gst_basesink_init),
7373         (gst_basesink_activate):
7374         * gst/base/gstbasesrc.c: (gst_basesrc_unlock),
7375         (gst_basesrc_is_seekable):
7376         * gst/gstbin.c: (gst_bin_add_func), (gst_bin_remove_func),
7377         (bin_element_is_sink), (gst_bin_change_state):
7378         * gst/gstelement.c: (gst_element_add_pad), (gst_element_query):
7379         * gst/gstelement.h:
7380         Identify sinks by their flag to avoid overly complicated
7381         checks (fow now).
7382         Do state changes even for elements not reachable from the
7383         sinks.
7384         BaseSink is a sink now :)
7385         Some more debugging info in the basesrc.
7386
7387
7388 2005-05-12  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
7389
7390         * gst/gstbin.c: (gst_bin_class_init), (gst_bin_query):
7391           Implement _query on a bin, similar to _send_event.
7392
7393 2005-05-12  Tim-Philipp Müller  <tim at centricular dot net>
7394
7395         * gst/base/gstbasesrc.c: (gst_basesrc_do_seek):
7396           Discont event offset format should be GST_FORMAT_BYTES,
7397           not GST_FORMAT_TIME.
7398
7399 2005-05-12  Wim Taymans  <wim@fluendo.com>
7400
7401         * gst/gstbin.c: (gst_bin_remove_func), (gst_bin_get_state):
7402         Same fix as Ronald's but without the signal. 
7403
7404 2005-05-12  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
7405
7406         * gst/gstutils.c: (gst_element_query_position):
7407           No, an element is not a pad.
7408
7409 2005-05-12  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
7410
7411         * gst/gstbin.c: (gst_bin_add_func), (cb_parent_unset),
7412         (gst_bin_get_state):
7413           If a child is removed from a bin while we remove the child from
7414           the bin and while we're retrieving its state, signal this to the
7415           get_state function so we abort the wait (instead of waiting for
7416           a timeout) and can immediately re-iterate over all other elements.
7417
7418 2005-05-12  Wim Taymans  <wim@fluendo.com>
7419
7420         * gst/base/Makefile.am:
7421         * gst/base/gstbasesrc.c: (gst_basesrc_is_seekable),
7422         (gst_basesrc_start):
7423         * gst/base/gstbasesrc.h:
7424         * gst/base/gstpushsrc.c: (gst_pushsrc_get_type),
7425         (gst_pushsrc_base_init), (gst_pushsrc_class_init),
7426         (gst_pushsrc_init), (gst_pushsrc_create):
7427         * gst/base/gstpushsrc.h:
7428         Added is_seekable to BaseSrc
7429         Added simple PushSrc.
7430
7431 2005-05-11  Wim Taymans  <wim@fluendo.com>
7432
7433         * gst/gstelement.c: (gst_element_add_pad), (gst_element_query):
7434         * gst/gstutils.c: (gst_element_get_compatible_pad_template),
7435         (gst_element_link_pads), (gst_element_query_position),
7436         (gst_element_query_convert), (intersect_caps_func),
7437         (gst_pad_query_position), (gst_pad_query_convert):
7438         Fix refcounting in utils function.
7439         No point in trying to activate a pad when it's added, it could
7440         be added from the state change function and then we deadlock, the
7441         element has to decide what to do.
7442
7443 2005-05-10  Andy Wingo  <wingo@pobox.com>
7444
7445         * gst/elements/gstfakesink.c (gst_fakesink_render): Er, emit with
7446         *all* the arguments.
7447
7448         * gst/base/gstbasetransform.c (gst_base_transform_event): Grab the
7449         stream lock if it's a FLUSH_DONE; normal flushes don't get the
7450         lock (according to the docs -- if this is wrong change the docs).
7451
7452         * gst/gstpipeline.c (gst_pipeline_change_state): Set the bus to
7453         flush messages in the NULL state.
7454
7455         * gst/gstbus.c (gst_bus_post): If a bus is flushing, unref the
7456         message immediately and return.
7457         (gst_bus_set_flushing): New function. If a bus is flushing, it
7458         flushes out any queued messages and immediately unrefs new
7459         messages. This is so when an element goes to NULL, all of the
7460         unhandled messages coming from it can be freed, and their
7461         references to the element dropped. In other words: message source
7462         ref considered harmful :P
7463
7464         * gst/gstbin.c (gst_bin_change_state): Unref peer element when
7465         we're finished with it.
7466
7467         * gst/gstmessage.c (gst_message_new_state_changed): 
7468
7469 2005-05-10  Wim Taymans  <wim@fluendo.com>
7470
7471         * gst/gstvalue.c: (gst_value_compare_flags),
7472         (gst_value_serialize_flags), (gst_value_deserialize_flags),
7473         (_gst_value_initialize):
7474         Added flags serialize/deserialize/compare code.
7475
7476 2005-05-09  Andy Wingo  <wingo@pobox.com>
7477
7478         * gst/base/gstbasetransform.c (gst_base_transform_proxy_getcaps):
7479         Intersect the peer's caps with our caps.
7480
7481 2005-05-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
7482
7483         * gst/base/gsttypefindhelper.c: (helper_find_peek):
7484         * gst/elements/gsttypefindelement.c: (find_peek):
7485           Handle negative offsets better. Fixes decodebin.
7486
7487 2005-05-09  Wim Taymans  <wim@fluendo.com>
7488
7489         * gst/base/gstbasetransform.c: (gst_base_transform_proxy_getcaps),
7490         (gst_base_transform_event):
7491         * gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_query):
7492         Implement accept_caps.
7493         Fix silly lock/unlock mismatch in base class.
7494
7495 2005-05-09  Wim Taymans  <wim@fluendo.com>
7496
7497         * docs/design/draft-push-pull.txt:
7498         * gst/base/gstbasesrc.c: (gst_basesrc_init), (gst_basesrc_query):
7499         * gst/elements/gstfilesink.c: (gst_filesink_init),
7500         (gst_filesink_query):
7501         * gst/elements/gsttypefindelement.c: (gst_type_find_element_init),
7502         (gst_type_find_handle_src_query), (find_element_get_length):
7503         * gst/gstelement.c: (gst_element_seek), (gst_element_query):
7504         * gst/gstelement.h:
7505         * gst/gstmessage.c:
7506         * gst/gstmessage.h:
7507         * gst/gstpad.c: (gst_real_pad_init), (gst_pad_get_query_types),
7508         (gst_real_pad_get_caps_unlocked),
7509         (gst_pad_get_internal_links_default), (gst_pad_get_internal_links),
7510         (gst_pad_event_default_dispatch), (gst_pad_event_default),
7511         (gst_pad_dispatcher), (gst_pad_query), (gst_pad_query_default),
7512         (gst_real_pad_dispose), (gst_real_pad_finalize),
7513         (gst_pad_load_and_link), (gst_pad_save_thyself),
7514         (gst_ghost_pad_save_thyself), (handle_pad_block), (gst_pad_push),
7515         (gst_pad_check_pull_range), (gst_pad_pull_range),
7516         (gst_pad_template_get_type), (gst_pad_template_class_init),
7517         (gst_pad_template_init), (gst_pad_template_dispose),
7518         (name_is_valid), (gst_static_pad_template_get),
7519         (gst_pad_template_new), (gst_static_pad_template_get_caps),
7520         (gst_pad_template_get_caps), (gst_pad_set_element_private),
7521         (gst_pad_get_element_private), (gst_pad_start_task),
7522         (gst_pad_pause_task), (gst_pad_stop_task),
7523         (gst_ghost_pad_get_type), (gst_ghost_pad_class_init),
7524         (gst_ghost_pad_init), (gst_ghost_pad_dispose),
7525         (gst_ghost_pad_set_property), (gst_ghost_pad_get_property),
7526         (gst_ghost_pad_new):
7527         * gst/gstpad.h:
7528         * gst/gstquery.c: (_gst_query_initialize), (gst_query_new),
7529         (gst_query_new_position), (gst_query_set_position),
7530         (gst_query_parse_position), (gst_query_new_convert),
7531         (gst_query_set_convert), (gst_query_parse_convert):
7532         * gst/gstquery.h:
7533         * gst/gstqueryutils.c:
7534         * gst/gstqueryutils.h:
7535         * gst/gstqueue.c: (gst_queue_init), (gst_queue_getcaps),
7536         (gst_queue_bufferalloc), (gst_queue_handle_sink_event),
7537         (gst_queue_handle_src_query):
7538         * gst/gstutils.c: (gst_element_get_compatible_pad_template),
7539         (gst_element_query_position), (gst_element_query_convert),
7540         (intersect_caps_func), (gst_pad_query_position),
7541         (gst_pad_query_convert):
7542         * gst/gstutils.h:
7543         * tools/gst-inspect.c: (print_pad_info):
7544         * tools/gst-xmlinspect.c: (print_element_info):
7545         Remove old query functions. Ported old code.
7546         Added position/convert helper functions to gstutils.
7547         Reordered gstpad.c code, grouping relevant things.
7548         Remove gst_message_new(), always need to speficy a specific
7549         message.
7550
7551
7552 2005-05-09  Andy Wingo  <wingo@pobox.com>
7553
7554         * gst/gstiterator.h: Add some includes.
7555
7556         * gst/gstqueryutils.h: Include more headers.
7557
7558         * gst/gstpad.h:
7559         * gst/gstpad.c (gst_pad_query_position): New routine, replaces
7560         some uses of gst_pad_query.
7561
7562         * gst/gstqueryutils.c: Build fixes. Make parse functions ignore
7563         NULL out parameters.
7564         (gst_query_new_position): New proc, allocates a new position
7565         query.
7566
7567         * gst/Makefile.am (libgstreamer_@GST_MAJORMINOR@_la_SOURCES): Add
7568         gstqueryutils.c to the build.
7569
7570         * gst/gststructure.c (gst_structure_set_valist): Implement with
7571         the generic G_VALUE_COLLECT.
7572         
7573 2005-05-08  Edward Hervey  <bilboed@bilboed.com>
7574
7575         * gst/Makefile.am: (gst_headers):
7576         Added gstqueryutils.h to the list of headers to install, that was
7577         a 'nachty' move wingo :)
7578
7579 2005-05-06  Andy Wingo  <wingo@pobox.com>
7580
7581         * gst/gstquery.h
7582         * gst/gstquery.c (_gst_query_initialize): Extend GstQuery from
7583         GstData, init a memchunk.
7584         (standard_definitions): Add a few query types, deprecate a few.
7585         (gst_query_get_type): New proc.
7586         (_gst_query_copy, _gst_query_free, gst_query_new): GstData
7587         implementation.
7588         (gst_query_new_application, gst_query_get_structure): New public
7589         procs.
7590
7591         * docs/design/draft-query.txt: Removed LINKS from the query types,
7592         because all the rest can be dispatched to other pads -- seemed
7593         ugly to have a query that couldn't be dispatched. internal_links
7594         is fine as a pad method.
7595
7596         * gst/gstpad.h: Add query2 as a pad method, add the new functions
7597         in gstpad.c, but maintain binary compatibility for the moment.
7598         Will fix before 0.9 is out.
7599
7600         * gst/gstqueryutils.c: 
7601         * gst/gstqueryutils.h: New files, implement 3 methods for each
7602         query type: parse_query, parse_response, and set. Probably need an
7603         allocator as well.
7604
7605         * gst/gst.h: Add gstquery.h and gstqueryutils.h to the list.
7606
7607         * gst/elements/gstfilesink.c (gst_filesink_query2):
7608         * gst/base/gstbasesrc.c (gst_basesrc_query2): Replace old query,
7609         query_types, and formats methods.
7610
7611         * gst/gstpad.c (gst_pad_query2, gst_pad_query2_default)
7612         (gst_pad_set_query2_function): New functions.
7613         (gst_real_pad_init): Set query2_default as the default query2
7614         function. Basically just dispatches to internally linked pads.
7615
7616         Needs review!
7617         
7618         * gst/gstdata_private.h (_GST_DATA_INIT): Set data->refcount to 1
7619         without using the atomic operations. Only one thread can possibly
7620         be accessing the data at this point. Changed so as to avoid
7621         gst_atomic operations.
7622
7623 2005-05-06  Wim Taymans  <wim@fluendo.com>
7624
7625         * gst/gstpad.c: (gst_pad_alloc_buffer), (gst_pad_push):
7626         Also set caps if we use the fallback buffer alloc.
7627
7628 2005-05-06  Tim-Philipp Müller  <tim at centricular dot net>
7629
7630         * docs/gst/Makefile.am:
7631         * docs/gst/gstreamer-docs.sgml:
7632         * docs/gst/gstreamer-sections.txt:
7633         * docs/gst/tmpl/gstatomic.sgml:
7634         * docs/gst/tmpl/gstmemchunk.sgml:
7635         * testsuite/elements/struct_i386.h:
7636         * win32/GStreamer.vcproj:
7637         * win32/Makefile:
7638           Purge GstAtomic stuff from docs and win32 makefiles as well
7639
7640 2005-05-06  Wim Taymans  <wim@fluendo.com>
7641
7642         * gst/base/gstbasetransform.c: (gst_base_transform_proxy_getcaps):
7643         * gst/elements/gstcapsfilter.c: (gst_capsfilter_getcaps):
7644         * gst/gstpad.c: (gst_pad_peer_get_caps):
7645         * gst/gstqueue.c: (gst_queue_init), (gst_queue_getcaps),
7646         (gst_queue_bufferalloc), (gst_queue_handle_sink_event),
7647         (gst_queue_src_activate), (gst_queue_change_state):
7648         * gst/gstqueue.h:
7649         * gst/gstutils.c: (gst_element_get_compatible_pad_template),
7650         (intersect_caps_func):
7651         Fix gst_pad_peer_get_caps(), make it return NULL if no peer.
7652         Always take QUEUE_LOCK after STREAM_LOCK or we might deadlock.
7653         Some fixes for the peer_get_caps() change.
7654
7655 2005-05-06  Wim Taymans  <wim@fluendo.com>
7656
7657         * gst/base/gstbasesink.c: (gst_basesink_preroll_queue_empty),
7658         (gst_basesink_handle_buffer), (gst_basesink_chain_unlocked),
7659         (gst_basesink_activate):
7660         Actually do something with error codes returned from the push
7661         functions.
7662
7663 2005-05-06  Wim Taymans  <wim@fluendo.com>
7664
7665         * docs/design/part-element-sink.txt:
7666         * docs/design/part-element-source.txt:
7667         * gst/base/gstbasesink.c: (gst_basesink_class_init),
7668         (gst_basesink_event), (gst_basesink_activate):
7669         * gst/base/gstbasesink.h:
7670         * gst/base/gstbasesrc.c: (gst_basesrc_init), (gst_basesrc_unlock),
7671         (gst_basesrc_activate):
7672         * gst/base/gstbasesrc.h:
7673         * gst/gstelement.c: (gst_element_pads_activate):
7674         Some more documentation.
7675         Fixed scheduling decision in _pads_activate().
7676
7677 2005-05-05  Andy Wingo  <wingo@pobox.com>
7678
7679         * check/pipelines/simple_launch_lines.c (test_2_elements): "Fix"
7680         the test suite.
7681
7682 2005-05-05  Wim Taymans  <wim@fluendo.com>
7683
7684         * gst/base/Makefile.am:
7685         * gst/base/gstbasesink.h:
7686         * gst/base/gstbasesrc.c: (gst_basesrc_init),
7687         (gst_basesrc_set_dataflow_funcs), (gst_basesrc_query):
7688         * gst/base/gstcollectpads.c: (gst_collectpads_get_type),
7689         (gst_collectpads_class_init), (gst_collectpads_init),
7690         (gst_collectpads_finalize), (gst_collectpads_new),
7691         (gst_collectpads_set_function), (gst_collectpads_add_pad),
7692         (find_pad), (gst_collectpads_remove_pad),
7693         (gst_collectpads_is_active), (gst_collectpads_collect),
7694         (gst_collectpads_collect_range), (gst_collectpads_start),
7695         (gst_collectpads_stop), (gst_collectpads_peek),
7696         (gst_collectpads_pop), (gst_collectpads_available),
7697         (gst_collectpads_read), (gst_collectpads_flush),
7698         (gst_collectpads_chain):
7699         * gst/base/gstcollectpads.h:
7700         * gst/elements/Makefile.am:
7701         * gst/elements/gstelements.c:
7702         * gst/elements/gstfakesink.c: (gst_fakesink_class_init),
7703         (gst_fakesink_get_times), (gst_fakesink_event),
7704         (gst_fakesink_preroll), (gst_fakesink_render):
7705         * gst/elements/gstfilesink.c: (gst_filesink_class_init),
7706         (gst_filesink_init), (gst_filesink_set_location),
7707         (gst_filesink_open_file), (gst_filesink_close_file),
7708         (gst_filesink_pad_query), (gst_filesink_event),
7709         (gst_filesink_render), (gst_filesink_change_state):
7710         * gst/elements/gstfilesink.h:
7711         Added object to help in making collect pad based elements.
7712         Ported filesink.
7713         Make event function in sink baseclass return gboolean.
7714
7715 2005-05-05  Wim Taymans  <wim@fluendo.com>
7716
7717         * gst/gstbin.c: (gst_bin_send_event), (compare_name),
7718         (gst_bin_get_by_name):
7719         * gst/gstbuffer.h:
7720         * gst/gstclock.c: (gst_clock_entry_new), (gst_clock_class_init),
7721         (gst_clock_finalize):
7722         * gst/gstdata.c: (gst_data_replace):
7723         * gst/gstdata.h:
7724         * gst/gstelement.c: (gst_element_request_pad),
7725         (gst_element_pads_activate):
7726         * gst/gstobject.c: (gst_object_init), (gst_object_ref),
7727         (gst_object_unref):
7728         * gst/gstpad.c: (gst_pad_set_active), (gst_pad_peer_set_active),
7729         (gst_pad_set_checkgetrange_function),
7730         (gst_pad_link_check_compatible_unlocked), (gst_pad_set_caps),
7731         (gst_pad_check_pull_range), (gst_pad_pull_range),
7732         (gst_static_pad_template_get_caps), (gst_pad_start_task),
7733         (gst_pad_pause_task), (gst_pad_stop_task):
7734         * gst/gstutils.c: (gst_element_get_compatible_pad_template),
7735         (gst_element_request_pad), (gst_pad_proxy_getcaps):
7736         Fix name lookup in GstBin.
7737         Added _data_replace() function and _buffer_replace()
7738         Use finalize method to clean up clock.
7739         Fix refcounting on request pads.
7740         Fix pad schedule mode error.
7741         Some more object refcounting debug info,
7742
7743
7744 2005-05-04  Andy Wingo <wingo@pobox.com>
7745
7746         * check/Makefile.am:
7747         * docs/gst/tmpl/gstatomic.sgml:
7748         * docs/gst/tmpl/gstplugin.sgml:
7749         * gst/base/gstbasesink.c: (gst_basesink_activate):
7750         * gst/base/gstbasesrc.c: (gst_basesrc_class_init),
7751         (gst_basesrc_init), (gst_basesrc_set_dataflow_funcs),
7752         (gst_basesrc_query), (gst_basesrc_set_property),
7753         (gst_basesrc_get_property), (gst_basesrc_check_get_range),
7754         (gst_basesrc_activate):
7755         * gst/base/gstbasesrc.h:
7756         * gst/base/gstbasetransform.c: (gst_base_transform_sink_activate),
7757         (gst_base_transform_src_activate):
7758         * gst/elements/gstelements.c:
7759         * gst/elements/gstfakesrc.c: (gst_fakesrc_class_init),
7760         (gst_fakesrc_set_property), (gst_fakesrc_get_property):
7761         * gst/elements/gsttee.c: (gst_tee_sink_activate):
7762         * gst/elements/gsttypefindelement.c: (find_element_get_length),
7763         (gst_type_find_element_checkgetrange),
7764         (gst_type_find_element_activate):
7765         * gst/gstbin.c: (gst_bin_save_thyself), (gst_bin_restore_thyself):
7766         * gst/gstcaps.c: (gst_caps_do_simplify), (gst_caps_save_thyself),
7767         (gst_caps_load_thyself):
7768         * gst/gstelement.c: (gst_element_pads_activate),
7769         (gst_element_save_thyself), (gst_element_restore_thyself):
7770         * gst/gstpad.c: (gst_pad_load_and_link), (gst_pad_save_thyself),
7771         (gst_ghost_pad_save_thyself), (gst_pad_check_pull_range):
7772         * gst/gstpad.h:
7773         * gst/gstxml.c: (gst_xml_write), (gst_xml_parse_doc),
7774         (gst_xml_parse_file), (gst_xml_parse_memory),
7775         (gst_xml_get_element), (gst_xml_make_element):
7776         * gst/indexers/gstfileindex.c: (gst_file_index_load),
7777         (_file_index_id_save_xml), (gst_file_index_commit):
7778         * gst/registries/gstlibxmlregistry.c: (read_string), (read_uint),
7779         (read_enum), (load_pad_template), (load_feature), (load_plugin),
7780         (load_paths):
7781         * libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packet_from_caps),
7782         (gst_dp_packet_from_event), (gst_dp_caps_from_packet):
7783         * tools/gst-complete.c: (main):
7784         * tools/gst-compprep.c: (main):
7785         * tools/gst-inspect.c: (print_element_properties_info):
7786         * tools/gst-launch.c: (xmllaunch_parse_cmdline):
7787         * tools/gst-xmlinspect.c: (print_element_properties):
7788         GCC 4 fixen.
7789         
7790 2005-05-03  Thomas Vander Stichele  <thomas at apestaart dot org>
7791
7792         * gst/gstplugin.c: (gst_plugin_check_module),
7793         (gst_plugin_check_file), (gst_plugin_load_file):
7794             apply patch from #172526 to make register work on MacOSX
7795
7796 2005-05-02  Thomas Vander Stichele  <thomas at apestaart dot org>
7797
7798         * docs/gst/tmpl/gstconfig.sgml:
7799         * gst/gstconfig.h.in:
7800           move documentation for some symbols.  Add doc for GST_PTR_FORMAT
7801         * testsuite/debug/printf_extension.c: (main):
7802           Do not use GST_PTR_FORMAT on pointers to types with
7803           sizeof < sizeof(gpointer).  Fixes test on 64-bit
7804         * testsuite/elements/property.h:
7805           use correct printf format
7806
7807 2005-05-02  Wim Taymans  <wim@fluendo.com>
7808
7809         * docs/design/draft-push-pull.txt:
7810         * docs/design/draft-query.txt:
7811         * gst/base/gstbasesrc.c: (gst_basesrc_get_range_unlocked),
7812         (gst_basesrc_start):
7813         Added draft for new query API.
7814         Added draft for better selecting scheduling methods.
7815         Make basesrc ignore length if the subclass does not support
7816         it.
7817
7818 2005-05-02  Thomas Vander Stichele  <thomas at apestaart dot org>
7819
7820         * gst/Makefile.am:
7821           possible fixes for automake-1.5 - _LIBADD is reserved
7822
7823 2005-05-02  Thomas Vander Stichele  <thomas at apestaart dot org>
7824
7825         * docs/faq/Makefile.am:
7826         * docs/manual/Makefile.am:
7827         * docs/manuals.mak:
7828         * docs/pwg/Makefile.am:
7829         * gst/Makefile.am:
7830           possible fixes for automake-1.5
7831
7832 2005-04-28  Wim Taymans  <wim@fluendo.com>
7833
7834         * gst/base/gstbasesink.c: (gst_basesink_base_init),
7835         (gst_basesink_pad_getcaps), (gst_basesink_init),
7836         (gst_basesink_do_sync):
7837         * gst/gstclock.c: (gst_clock_entry_new):
7838         * gst/gstevent.c: (gst_event_discont_get_value):
7839         * gst/gstpipeline.c: (pipeline_bus_handler),
7840         (gst_pipeline_change_state):
7841         * gst/gstsystemclock.c: (gst_system_clock_id_wait_unlocked):
7842         Better debugging of clocking info.
7843         Allow NULL values when getting discont values.
7844
7845 2005-04-27  Wim Taymans  <wim@fluendo.com>
7846
7847         * check/gst/gstobject.c: (START_TEST), (gst_object_suite):
7848         * check/gst/gstpad.c: (gst_pad_suite):
7849         Increase timeout for checks.
7850
7851 2005-04-27  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>
7852
7853         * check/Makefile.am:
7854           fix the broken rule for cleanup.  Apparently this rule is
7855           only needed on FC2, so maybe this warrants further autotool
7856           inspection.
7857
7858 2005-04-26  Wim Taymans  <wim@fluendo.com>
7859
7860         * gst/gsttrashstack.h:
7861         Ooohh. a nasty one! After having a failed pop() from the stack,
7862         it's possible that the stack is empty. In that case, don't
7863         follow the NULL pointer.
7864
7865 2005-04-25  Wim Taymans  <wim@fluendo.com>
7866
7867         * gst/gstpad.c: (gst_pad_set_active), (gst_pad_peer_set_active),
7868         (gst_pad_set_checkgetrange_function),
7869         (gst_pad_link_check_compatible_unlocked), (gst_pad_link_prepare),
7870         (gst_pad_check_pull_range), (gst_pad_pull_range),
7871         (gst_static_pad_template_get_caps), (gst_pad_start_task),
7872         (gst_pad_pause_task), (gst_pad_stop_task):
7873         * gst/gstplugin.c: (gst_plugin_load):
7874         * gst/gstplugin.h:
7875         Remove gst_library_load as it does more harm than good with
7876         the new g_module flags.
7877         Revert bogus caps template check in pad linking, pad caps
7878         are important when linking not the template, which is more
7879         general than the current caps.
7880
7881 2005-04-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
7882
7883         * gst/autoplug/.cvsignore:
7884         * gst/autoplug/Makefile.am:
7885         * gst/autoplug/gstsearchfuncs.c:
7886         * gst/autoplug/gstsearchfuncs.h:
7887         * gst/autoplug/gstspider.c:
7888         * gst/autoplug/gstspider.h:
7889         * gst/autoplug/gstspideridentity.c:
7890         * gst/autoplug/gstspideridentity.h:
7891         * gst/autoplug/spidertest.c:
7892           Die, spider, die.
7893
7894 2005-04-25  Wim Taymans  <wim@fluendo.com>
7895
7896         * gst/gstpad.c: (gst_pad_set_active), (gst_pad_peer_set_active),
7897         (gst_pad_set_checkgetrange_function), (gst_pad_check_pull_range),
7898         (gst_pad_pull_range), (gst_static_pad_template_get_caps),
7899         (gst_pad_start_task), (gst_pad_pause_task), (gst_pad_stop_task):
7900         * gst/gstpad.h:
7901         Added stubs for unimplemented functions. 
7902
7903 2005-04-24  David Schleef  <ds@schleef.org>
7904
7905         * gst/gstpad.h: Disable some unimplemented functions.  Wim,
7906         please fix.
7907
7908 2005-04-24  David Schleef  <ds@schleef.org>
7909
7910         Convert everything from GstAtomicInt to g_atomic_int_*, and
7911         remove gstatomic.
7912         * gst/Makefile.am:
7913         * gst/gstatomic.c:
7914         * gst/gstatomic.h:
7915         * gst/gstatomic_impl.h:
7916         * gst/gstbuffer.c:
7917         * gst/gstcaps.c:
7918         * gst/gstcaps.h:
7919         * gst/gstclock.c:
7920         * gst/gstclock.h:
7921         * gst/gstdata.c:
7922         * gst/gstdata.h:
7923         * gst/gstdata_private.h:
7924         * gst/gstevent.c:
7925         * gst/gstinfo.c:
7926         * gst/gstinfo.h:
7927         * gst/gstmessage.c:
7928         * gst/gstobject.c:
7929         * gst/gstobject.h:
7930         * gst/gststructure.c:
7931         * gst/gststructure.h:
7932         * gst/gstutils.c: Add gst_atomic_int_set() compaitibility function.
7933         * gst/gstutils.h:
7934
7935 2005-04-24  David Schleef  <ds@schleef.org>
7936
7937         * check/gst/gstpad.c: (START_TEST): Oh yeah, it's always nice to
7938         make the regressions tests work.  Remove some code that is no
7939         longer true.
7940         * gst/gstpad.c: (gst_pad_link_check_templates_compatible_unlocked):
7941         Disable warning for pads without templates.
7942
7943 2005-04-24  David Schleef  <ds@schleef.org>
7944
7945         * gst/gstpad.c: Remove handling of filtered caps.  Fix/merge
7946         functions that handle filtered links.
7947         * gst/gstpad.h: Remove 'appfilter' field and prototypes of
7948         removed functions.
7949         * gst/gstutils.c: Fix/remove utility functions that handle
7950         filtered caps.
7951         * gst/gstutils.h:
7952         * gst/gstvalue.c: Add serialization/deserialization of caps
7953         * gst/parse/grammar.y: Ignore filtered caps when linking.  This
7954         requires fixing so that the filter caps notation creates
7955         a capsfilter element and sets the filter_caps property.  I
7956         think everyone probably wants to keep the shorthand notation.
7957         * docs/gst/tmpl/gstelement.sgml: updates for API changes.
7958         * docs/gst/tmpl/gstpad.sgml:
7959
7960         * gst/elements/gstelements.c: Register capsfilter element.
7961         * gst/Makefile.am: fix spacing
7962         * docs/random/ds/0.9-suggested-changes: random
7963
7964 2005-04-23  David Schleef  <ds@schleef.org>
7965
7966         * gst/elements/Makefile.am:
7967         * gst/elements/gstcapsfilter.c: New element that acts like an
7968         identity, but filters caps.  Will eventually replace filtered
7969         caps in pad linking.
7970         * gst/gstutils.c: (gst_element_create_all_pads): New function
7971         to create all the ALWAYS pads that are registered with an
7972         element class.  This functionality should eventually be
7973         merged in with GstElement initialization.
7974         * gst/gstutils.h:
7975         * testsuite/trigger/README: part of trigger test code that should
7976         have been checked in a long time ago.
7977
7978 2005-04-23  David Schleef  <ds@schleef.org>
7979
7980         * gst/Makefile.am: Remove as-libtool stuff.  It's likely not
7981         needed with new versions of libtool (nobody will confirm this),
7982         and hard to carry around.
7983         * gst/autoplug/Makefile.am:
7984         * gst/base/Makefile.am:
7985         * gst/elements/Makefile.am:
7986         * gst/indexers/Makefile.am:
7987         * gst/schedulers/Makefile.am:
7988         * libs/gst/bytestream/Makefile.am:
7989         * libs/gst/control/Makefile.am:
7990         * libs/gst/dataprotocol/Makefile.am:
7991         * libs/gst/getbits/Makefile.am:
7992
7993 2005-04-21  Wim Taymans  <wim@fluendo.com>
7994
7995         * docs/design/draft-push-pull.txt:
7996         * docs/design/part-MT-refcounting.txt:
7997         * docs/design/part-TODO.txt:
7998         * docs/design/part-caps.txt:
7999         * docs/design/part-events.txt:
8000         * docs/design/part-gstbus.txt:
8001         * docs/design/part-gstpipeline.txt:
8002         * docs/design/part-messages.txt:
8003         * docs/design/part-push-pull.txt:
8004         * docs/design/part-query.txt:
8005         Some more docs.
8006
8007 2005-04-21  Wim Taymans  <wim@fluendo.com>
8008
8009         * gst/gstmessage.c: (_gst_message_copy), (_gst_message_free),
8010         (gst_message_new), (gst_message_new_error),
8011         (gst_message_new_warning), (gst_message_new_tag),
8012         (gst_message_new_state_changed), (gst_message_new_application),
8013         (gst_message_get_structure):
8014         * gst/gstmessage.h:
8015         * gst/gststructure.c: (gst_structure_set_parent_refcount),
8016         (gst_structure_copy_conditional):
8017         Use parent refcount in GstMessage to ensure GstStructure
8018         consistency.
8019         Cleaned up headers a bit.
8020         
8021
8022 2005-04-20  Wim Taymans  <wim@fluendo.com>
8023
8024         * gst/base/gstbasesink.c: (gst_basesink_base_init),
8025         (gst_basesink_pad_getcaps), (gst_basesink_init),
8026         (gst_basesink_chain_unlocked):
8027         * gst/base/gsttypefindhelper.c: (helper_find_suggest),
8028         (gst_type_find_helper):
8029         * gst/elements/gsttypefindelement.c:
8030         (gst_type_find_element_have_type), (gst_type_find_element_init),
8031         (stop_typefinding), (gst_type_find_element_handle_event),
8032         (find_suggest), (gst_type_find_element_chain),
8033         (gst_type_find_element_checkgetrange),
8034         (gst_type_find_element_getrange), (do_typefind),
8035         (gst_type_find_element_activate):
8036         * gst/gstbuffer.c: (_gst_buffer_sub_free),
8037         (gst_buffer_default_free), (gst_buffer_default_copy),
8038         (gst_buffer_set_caps):
8039         * gst/gstcaps.c: (gst_caps_ref), (gst_caps_unref),
8040         (gst_caps_replace):
8041         * gst/gstmessage.c: (gst_message_new),
8042         (gst_message_new_state_changed):
8043         * gst/gstpad.c: (gst_pad_set_active), (gst_pad_peer_set_active),
8044         (gst_pad_set_checkgetrange_function),
8045         (gst_pad_link_prepare_filtered), (gst_pad_relink_filtered),
8046         (gst_pad_set_caps), (gst_pad_check_pull_range),
8047         (gst_pad_pull_range), (gst_static_pad_template_get_caps):
8048         * gst/gstpad.h:
8049         * gst/gsttypefind.c: (gst_type_find_register):
8050         Make gst_caps_replace() work like other _replace() functions.
8051         Use _caps_replace() where possible.
8052         Make sure _message_new() initialises its field.
8053         Add gst_static_pad_template_get_caps()
8054
8055
8056 2005-04-18  Andy Wingo  <wingo@pobox.com>
8057
8058         * gst/gstelement.c (gst_element_pads_activate): Check pull_range
8059         on the peer, not the pad. I think that was a typo. Pass an extra
8060         arg to see if random access is possible. Activate the pads as
8061         PULL_RANGE if possible.
8062
8063         * gst/elements/gstfakesrc.c: s/ARG_/PROP_/.
8064
8065         * gst/base/gstbasesrc.c (gst_basesrc_set_property) 
8066         (gst_basesrc_get_property): BLOCKSIZE is a ULONG. Rename ARG_...
8067         to PROP_....
8068
8069 2005-04-14  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
8070
8071         * docs/faq/using.xml:
8072           Add note on gstreamer-properties (#154996).
8073
8074 2005-04-13  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
8075
8076         * docs/random/bbb/optional-properties:
8077           Some analysis on optional properties.
8078
8079 2005-04-12  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
8080
8081         * docs/gst/tmpl/gstelementfactory.sgml:
8082         * gst/gstelement.h:
8083         * gst/gstelementfactory.c: (gst_element_factory_init),
8084         (gst_element_factory_cleanup), (gst_element_register),
8085         (__gst_element_factory_add_static_pad_template),
8086         (gst_element_factory_get_static_pad_templates),
8087         (gst_element_factory_can_src_caps),
8088         (gst_element_factory_can_sink_caps):
8089         * gst/registries/Makefile.am:
8090         * gst/registries/gstlibxmlregistry.c: (gst_xml_registry_get_type),
8091         (gst_xml_registry_class_init), (gst_xml_registry_init),
8092         (gst_xml_registry_new), (gst_xml_registry_set_property),
8093         (gst_xml_registry_get_property), (get_time), (make_dir),
8094         (gst_xml_registry_get_perms_func),
8095         (plugin_times_older_than_recurse), (plugin_times_older_than),
8096         (gst_xml_registry_open_func), (gst_xml_registry_load_func),
8097         (gst_xml_registry_save_func), (gst_xml_registry_close_func),
8098         (add_to_char_array), (read_string), (read_uint), (read_enum),
8099         (load_pad_template), (load_feature), (load_plugin), (load_paths),
8100         (gst_xml_registry_load), (gst_xml_registry_load_plugin),
8101         (gst_xml_registry_save_caps), (gst_xml_registry_save_pad_template),
8102         (gst_xml_registry_save_feature), (gst_xml_registry_save_plugin),
8103         (gst_xml_registry_save), (gst_xml_registry_rebuild_recurse),
8104         (gst_xml_registry_rebuild):
8105         * gst/registries/gstlibxmlregistry.h:
8106         * tools/gst-compprep.c: (main):
8107         * tools/gst-inspect.c: (print_pad_templates_info):
8108         * tools/gst-xmlinspect.c: (print_element_info):
8109           Use libxml2 for registry parsing, use staticpadtemplates in
8110           elementfactories. Makes gst_init() +/- 10x faster.
8111
8112 2005-04-12  Wim Taymans  <wim@fluendo.com>
8113
8114         * gst/base/Makefile.am:
8115         * gst/base/gstbasesink.c: (gst_basesink_base_init),
8116         (gst_basesink_pad_getcaps), (gst_basesink_init),
8117         (gst_basesink_event), (gst_basesink_change_state):
8118         * gst/base/gstbasesrc.c: (gst_basesrc_get_type),
8119         (gst_basesrc_init), (gst_basesrc_query),
8120         (gst_basesrc_get_event_mask), (gst_basesrc_do_seek),
8121         (gst_basesrc_event_handler), (gst_basesrc_get_range_unlocked),
8122         (gst_basesrc_check_get_range), (gst_basesrc_loop),
8123         (gst_basesrc_unlock), (gst_basesrc_get_size), (gst_basesrc_start),
8124         (gst_basesrc_stop), (gst_basesrc_activate),
8125         (gst_basesrc_change_state):
8126         * gst/base/gsttypefindhelper.c: (helper_find_peek),
8127         (helper_find_suggest), (gst_type_find_helper):
8128         * gst/base/gsttypefindhelper.h:
8129         * gst/elements/Makefile.am:
8130         * gst/elements/gstelements.c:
8131         * gst/elements/gstfakesink.c: (gst_fakesink_class_init),
8132         (gst_fakesink_get_times), (gst_fakesink_event),
8133         (gst_fakesink_preroll), (gst_fakesink_render):
8134         * gst/elements/gstfakesrc.c: (gst_fakesrc_class_init),
8135         (gst_fakesrc_init), (gst_fakesrc_event_handler),
8136         (gst_fakesrc_get_property), (gst_fakesrc_create),
8137         (gst_fakesrc_start), (gst_fakesrc_stop):
8138         * gst/elements/gstfakesrc.h:
8139         * gst/elements/gstfilesrc.c: (gst_filesrc_class_init),
8140         (gst_filesrc_free_parent_mmap), (gst_filesrc_map_region),
8141         (gst_filesrc_map_small_region), (gst_filesrc_create_mmap),
8142         (gst_filesrc_create_read), (gst_filesrc_create),
8143         (gst_filesrc_is_seekable), (gst_filesrc_get_size),
8144         (gst_filesrc_start):
8145         * gst/elements/gsttypefindelement.c:
8146         (gst_type_find_element_have_type), (gst_type_find_element_init),
8147         (start_typefinding), (stop_typefinding), (push_buffer_store),
8148         (gst_type_find_element_handle_event),
8149         (gst_type_find_element_chain),
8150         (gst_type_find_element_checkgetrange),
8151         (gst_type_find_element_getrange), (do_typefind),
8152         (gst_type_find_element_activate),
8153         (gst_type_find_element_change_state):
8154         * gst/elements/gsttypefindelement.h:
8155         * gst/gstpipeline.c: (pipeline_bus_handler):
8156         Added typefind helper.
8157         Small preroll fix in the base sink.
8158         Disable typefind code in basesrc.
8159         Crude port of typefindelement.
8160         Fakesrc cleanups.
8161
8162
8163 2005-04-11  Wim Taymans  <wim@fluendo.com>
8164
8165         * check/gst/gstbus.c: (gstbus_suite):
8166         * check/gst/gstdata.c: (thread_ref), (gst_data_suite):
8167         * check/gstcheck.h:
8168           Fix up the timeout so that the test does not fail.
8169
8170 2005-04-06  Wim Taymans  <wim@fluendo.com>
8171
8172         * gst/base/README:
8173         * gst/base/gstbasesrc.c: (gst_basesrc_get_type),
8174         (gst_basesrc_init), (gst_basesrc_get_formats), (gst_basesrc_query),
8175         (gst_basesrc_get_event_mask), (gst_basesrc_do_seek),
8176         (gst_basesrc_event_handler), (gst_basesrc_get_range_unlocked),
8177         (gst_basesrc_check_get_range), (gst_basesrc_loop),
8178         (gst_basesrc_unlock), (gst_basesrc_get_size), (gst_basesrc_start),
8179         (gst_basesrc_stop), (gst_basesrc_activate),
8180         (gst_basesrc_change_state), (basesrc_find_peek),
8181         (basesrc_find_suggest), (gst_basesrc_type_find):
8182         * gst/base/gstbasesrc.h:
8183         * gst/elements/gstfilesrc.c: (gst_filesrc_base_init),
8184         (gst_filesrc_class_init), (gst_filesrc_init),
8185         (gst_filesrc_finalize), (gst_filesrc_set_location),
8186         (gst_filesrc_set_property), (gst_filesrc_get_property),
8187         (gst_filesrc_free_parent_mmap), (gst_filesrc_map_region),
8188         (gst_filesrc_map_small_region), (gst_filesrc_create_mmap),
8189         (gst_filesrc_create_read), (gst_filesrc_create),
8190         (gst_filesrc_get_size), (gst_filesrc_start), (gst_filesrc_stop):
8191         * gst/elements/gstfilesrc.h:
8192         * gst/gstelement.c: (gst_element_get_state_func),
8193         (gst_element_lost_state), (gst_element_pads_activate):
8194         * gst/gstpad.c: (gst_pad_set_active), (gst_pad_peer_set_active),
8195         (gst_pad_set_checkgetrange_function), (gst_pad_check_pull_range),
8196         (gst_pad_pull_range):
8197         * gst/gstpad.h:
8198         More work on the generic source base class, implement seeking,
8199         query.
8200         Make filesrc extend the base source class.
8201         Added gst_pad_set_checkgetrange_function to GstPad.
8202
8203 2005-04-06  Andy Wingo  <wingo@pobox.com>
8204
8205         * pkgconfig/gstreamer-base.pc.in:
8206         * pkgconfig/gstreamer-base-uninstalled.pc.in: New files.
8207
8208         * pkgconfig/Makefile.am:
8209         * configure.ac (AC_OUTPUT): Add gstreamer-base pkgconfig files.
8210
8211 2005-04-04  Wim Taymans  <wim@fluendo.com>
8212
8213         * gst/base/Makefile.am:
8214         * gst/base/README:
8215         * gst/base/gstbasesink.c: (gst_basesink_base_init),
8216         (gst_basesink_pad_getcaps), (gst_basesink_pad_setcaps),
8217         (gst_basesink_pad_buffer_alloc), (gst_basesink_init),
8218         (gst_basesink_do_sync), (gst_basesink_chain_unlocked):
8219         * gst/base/gstbasesrc.c: (gst_basesrc_get_type),
8220         (gst_basesrc_base_init), (gst_basesrc_class_init),
8221         (gst_basesrc_init), (gst_basesrc_get_formats),
8222         (gst_basesrc_get_query_types), (gst_basesrc_query),
8223         (gst_basesrc_get_event_mask), (gst_basesrc_event_handler),
8224         (gst_basesrc_set_property), (gst_basesrc_get_property),
8225         (gst_basesrc_get_range_unlocked), (gst_basesrc_get_range),
8226         (gst_basesrc_loop), (gst_basesrc_activate),
8227         (gst_basesrc_change_state):
8228         * gst/base/gstbasesrc.h:
8229         * gst/elements/gstfakesrc.c: (gst_fakesrc_base_init),
8230         (gst_fakesrc_class_init), (gst_fakesrc_init),
8231         (gst_fakesrc_event_handler), (gst_fakesrc_set_property),
8232         (gst_fakesrc_get_property), (gst_fakesrc_create):
8233         * gst/elements/gstfakesrc.h:
8234         * gst/elements/gstfilesrc.c: (gst_filesrc_getrange),
8235         (gst_filesrc_open_file), (gst_filesrc_loop),
8236         (gst_filesrc_activate), (filesrc_find_peek),
8237         (gst_filesrc_type_find):
8238         Made base source class, make fakesrc extend it.
8239         Add comments to basesink class.
8240         Some filesrc cleanup.
8241
8242 2005-03-31  David Schleef  <ds@schleef.org>
8243
8244         * gst/gstplugin.c: (gst_plugin_check_file), (gst_plugin_load_file):
8245         Switch to using G_MODULE_BIND_LOCAL, which means plugins are now
8246         expected to link against libgstreamer.
8247         * gst/base/Makefile.am: link against libgstreamer
8248         * gst/elements/Makefile.am: same
8249
8250 2005-03-31  Andy Wingo  <wingo@pobox.com>
8251
8252         * tests/instantiate/Makefile.am:
8253         * tests/instantiate/caps.c: Add test to test speed of caps copy
8254         and free.
8255
8256         * tests/memchunk/gmemchunktest.c (main): Use alloc only on the
8257         GMemChunk to be fair.
8258
8259         * gst/gsttrashstack.h: Remove warning about using the fallback
8260         trash stack implementation, it's still faster than malloc.
8261
8262 2005-03-30  Andy Wingo  <wingo@pobox.com>
8263
8264         * tests/complexity.c: Add a copyright.
8265
8266 2005-03-31  Wim Taymans  <wim@fluendo.com>
8267
8268         * gst/base/gstbasetransform.c: (gst_base_transform_base_init),
8269         (gst_base_transform_class_init), (gst_base_transform_init),
8270         (gst_base_transform_setcaps), (gst_base_transform_handle_buffer),
8271         (gst_base_transform_get_property),
8272         (gst_base_transform_sink_activate),
8273         (gst_base_transform_src_activate),
8274         (gst_base_transform_change_state):
8275         * gst/base/gstbasetransform.h:
8276         * gst/elements/gstidentity.c: (gst_identity_class_init),
8277         (gst_identity_event), (gst_identity_check_perfect),
8278         (gst_identity_transform), (gst_identity_start),
8279         (gst_identity_stop):
8280         Added start/stop methods to transform base class so subclasses 
8281         don't need to deal with state changes even.
8282
8283 2005-03-31  Wim Taymans  <wim@fluendo.com>
8284
8285         * gst/gstevent.c: (gst_event_new_discontinuous_valist),
8286         (gst_event_new_discontinuous), (gst_event_discont_get_value):
8287         * gst/gstevent.h:
8288         * gst/gstpad.c: (gst_pad_set_active), (gst_pad_peer_set_active),
8289         (gst_pad_pull_range):
8290         Added rate to the discont event to prepare for variable speed
8291         and reverse playback.
8292
8293 2005-03-29  David Schleef  <ds@schleef.org>
8294
8295         * configure.ac:
8296         * testsuite/trigger/Makefile.am:
8297         * testsuite/trigger/trigger.c: A little example program to show
8298         how trigger-based elements can work.
8299
8300 2005-03-29  Wim Taymans  <wim@fluendo.com>
8301
8302         * gst/base/Makefile.am:
8303         * gst/base/README:
8304         * gst/base/gstbasesink.c: (gst_basesink_get_type),
8305         (gst_basesink_base_init), (gst_basesink_class_init),
8306         (gst_basesink_pad_getcaps), (gst_basesink_init),
8307         (gst_basesink_activate), (gst_basesink_change_state):
8308         * gst/base/gstbasesink.h:
8309         * gst/base/gstbasetransform.c: (gst_base_transform_get_type),
8310         (gst_base_transform_base_init), (gst_base_transform_finalize),
8311         (gst_base_transform_class_init), (gst_base_transform_init),
8312         (gst_base_transform_proxy_getcaps), (gst_base_transform_setcaps),
8313         (gst_base_transform_event), (gst_base_transform_getrange),
8314         (gst_base_transform_chain), (gst_base_transform_handle_buffer),
8315         (gst_base_transform_set_property),
8316         (gst_base_transform_get_property),
8317         (gst_base_transform_sink_activate),
8318         (gst_base_transform_src_activate),
8319         (gst_base_transform_change_state):
8320         * gst/base/gstbasetransform.h:
8321         * gst/elements/gstidentity.c: (gst_identity_finalize),
8322         (gst_identity_class_init), (gst_identity_init),
8323         (gst_identity_event), (gst_identity_check_perfect),
8324         (gst_identity_transform), (gst_identity_set_property),
8325         (gst_identity_get_property), (gst_identity_change_state):
8326         * gst/elements/gstidentity.h:
8327         * gst/gstelement.c: (gst_element_get_state_func),
8328         (gst_element_lost_state), (gst_element_pads_activate):
8329         * gst/gstpad.c: (gst_pad_set_active), (gst_pad_peer_set_active),
8330         (gst_pad_check_pull_range), (gst_pad_pull_range):
8331         * gst/gstpad.h:
8332         Simplify pad activation.
8333         Added function to check if pull_range can be performed.
8334         Error out when pulling inactive or flushing pads.
8335         Removed const from refcounted types as it does not make sense.
8336         Simplify pad templates in basesink
8337         Added base class for simple 1-to-1 transforms.
8338         Make identity subclass the base transform.
8339
8340 2005-03-29  Andy Wingo  <wingo@pobox.com>
8341
8342         * docs/libs/gstreamer-libs-overrides.txt: 
8343         * docs/gst/gstreamer-overrides.txt: Add these files to CVS. Now I
8344         really don't understand what's going on, but like whatever. I want
8345         green buildbot!
8346
8347         * docs/gst/Makefile.am:
8348         * docs/libs/Makefile.am: Dist the overrides files.
8349
8350         * check/Makefile.am (clean-local): Remove .libs directories.
8351
8352         * gst/elements/Makefile.am (EXTRA_DIST): Add all the attic
8353         elements to EXTRA_DIST, so po/ files are happy.
8354
8355         * po/POTFILES.in: Er, remove it here.
8356
8357         * po/POTFILES: Remove gstspider.c.
8358
8359         * configure.ac (AC_OUTPUT): Add missing testsuite makefiles.
8360
8361         * docs/libs/gstreamer-libs-docs.sgml: 
8362         * docs/libs/gstreamer-libs-sections.txt: Remove the section on
8363         bytestream.
8364
8365         * tests/complexity.c (main): Set the length of the preroll queue
8366         on the sinks to prevent a lockup.
8367
8368         * libs/gst/dataprotocol/Makefile.am: 
8369         * libs/gst/dataprotocol/dataprotocol-test.c: Remove test, it's
8370         the same as the one in check/gst-libs/gdp.c.
8371
8372         * po/, docs/gst/: Commit automatic changes to docs and po files.
8373
8374         * gst/elements/Makefile.am (libgstelements_la_LDFLAGS): Link to
8375         the versioned libgstbase.
8376
8377         * check/Makefile.am: Depend on an unversioned gst-register, seems
8378         to make autoconf happier.
8379
8380         * gst/base/Makefile.am: Make libgstbase a versioned lib.
8381
8382 2005-03-28  Wim Taymans  <wim@fluendo.com>
8383
8384         * configure.ac:
8385         * docs/design/part-gstelement.txt:
8386         * docs/design/part-negotiation.txt:
8387         * docs/design/part-preroll.txt:
8388         * docs/design/part-scheduling.txt:
8389         * docs/design/part-states.txt:
8390         * gst/Makefile.am:
8391         * gst/base/Makefile.am:
8392         * gst/base/README:
8393         * gst/base/gstbasesink.c: (gst_basesink_get_template),
8394         (gst_basesink_base_init), (gst_basesink_class_init),
8395         (gst_basesink_pad_getcaps), (gst_basesink_pad_setcaps),
8396         (gst_basesink_pad_buffer_alloc), (gst_basesink_init),
8397         (gst_basesink_set_pad_functions),
8398         (gst_basesink_set_all_pad_functions), (gst_basesink_set_clock),
8399         (gst_basesink_set_property), (gst_basesink_get_property),
8400         (gst_base_sink_get_template), (gst_base_sink_get_caps),
8401         (gst_base_sink_set_caps), (gst_base_sink_buffer_alloc),
8402         (gst_basesink_preroll_queue_push),
8403         (gst_basesink_preroll_queue_empty),
8404         (gst_basesink_preroll_queue_flush), (gst_basesink_finish_preroll),
8405         (gst_basesink_event), (gst_basesink_get_times),
8406         (gst_basesink_do_sync), (gst_basesink_handle_buffer),
8407         (gst_basesink_chain_unlocked), (gst_basesink_chain),
8408         (gst_basesink_loop), (gst_basesink_activate),
8409         (gst_basesink_change_state):
8410         * gst/base/gstbasesink.h:
8411         * gst/elements/Makefile.am:
8412         * gst/elements/gstfakesink.c: (gst_fakesink_base_init),
8413         (gst_fakesink_class_init), (gst_fakesink_init),
8414         (gst_fakesink_set_property), (gst_fakesink_get_property),
8415         (gst_fakesink_get_times), (gst_fakesink_event),
8416         (gst_fakesink_preroll), (gst_fakesink_render),
8417         (gst_fakesink_change_state):
8418         * gst/elements/gstfakesink.h:
8419         * gst/gstbin.c: (gst_bin_class_init), (gst_bin_set_manager),
8420         (gst_bin_get_state), (gst_bin_change_state), (gst_bin_send_event):
8421         * gst/gstelement.c: (gst_element_add_pad),
8422         (gst_element_get_state_func), (gst_element_abort_state),
8423         (gst_element_commit_state), (gst_element_lost_state),
8424         (gst_element_set_state), (gst_element_pads_activate):
8425         * gst/gstpad.c: (gst_pad_set_active), (gst_pad_event_default):
8426         * gst/gstpipeline.c: (gst_pipeline_send_event),
8427         (gst_pipeline_change_state):
8428         Added state change code.
8429         Added/updated docs.
8430         Added sink base class, make fakesink extend the base class.
8431         Small cleanups in GstPipeline.
8432
8433 2005-03-26  David Schleef  <ds@schleef.org>
8434
8435         * gst/Makefile.am: remove gstcpu.[ch].  The gst_cpu functionality
8436         is broken and should be implemented in a different library.
8437         * gst/gst.c: (init_post): don't call _gst_cpu_initialize()
8438         * gst/gst.h: remove gstcpu.h
8439         * gst/gstcpu.c: remove
8440         * gst/gstcpu.h: remove
8441         * gst/Makefile.am.future: Remove this file.  It's ancient.
8442
8443 2005-03-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
8444
8445         * gst/gstbin.c: (gst_bin_class_init), (gst_bin_set_manager),
8446         (gst_bin_send_event):
8447           Add default event/set_manager handlers. The set_manager handler
8448           takes care that the manager is distributed over kids that were
8449           already in the bin before the manager was set. The event handler
8450           is a utility virtual function that sends the event over all sinks,
8451           so that gst_element_send_event (bin, event); has the expected
8452           behaviour.
8453         * gst/gstpad.c: (gst_pad_event_default):
8454           Re-install default event handling for discontinuities, so that
8455           seeking works without requiring hacks in applications or extra
8456           code in sinks.
8457         * gst/gstpipeline.c: (gst_pipeline_class_init),
8458         (gst_pipeline_send_event):
8459           Half hack, half utility: set a pipeline to PAUSED for seek events,
8460           since that is the only way we can guarantee a/v sync. Means that
8461           you can do gst_element_seek (pipeline, method, pos); on a pipeline
8462           and it "just works".
8463
8464 2005-03-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
8465
8466         * gst/gstpipeline.c: (gst_pipeline_use_clock):
8467           Lock/unlock mismatch.
8468
8469 2005-03-25  Thomas Vander Stichele  <thomas at apestaart dot org>
8470
8471         * docs/faq/gst-uninstalled:
8472           add gst-plugins-base
8473         * docs/gst/Makefile.am:
8474           don't error out until docs are fixed
8475         * docs/gst/gstreamer.types:
8476           remove thread
8477
8478 2005-03-22  Wim Taymans  <wim@fluendo.com>
8479
8480         * check/Makefile.am:
8481         * check/gst/gstmessage.c: (START_TEST), (gst_data_suite), (main):
8482         * gst/gststructure.c: (gst_structure_set_valist),
8483         (gst_structure_copy_conditional):
8484         Activated more tests.
8485         Added message test.
8486         Added G_TYPE_POINTER to GstStructure.
8487         
8488
8489 2005-03-22  Wim Taymans  <wim@fluendo.com>
8490
8491         * docs/design/part-TODO.txt:
8492         * docs/design/part-events.txt:
8493         * docs/design/part-gstbin.txt:
8494         * docs/design/part-gstbus.txt:
8495         * docs/design/part-gstpipeline.txt:
8496         * docs/design/part-messages.txt:
8497         * gst/gstbus.c:
8498         * gst/gstmessage.c:
8499         Docs updates
8500
8501 2005-03-21  Wim Taymans  <wim@fluendo.com>
8502
8503         * gst/gstbus.c: (gst_bus_post):
8504         Fix copy-and-paste error.
8505
8506 2005-03-21  Wim Taymans  <wim@fluendo.com>
8507
8508         * check/Makefile.am:
8509         * gst/Makefile.am:
8510         * gst/elements/Makefile.am:
8511         * gst/elements/gstelements.c:
8512         * gst/elements/gstfakesink.c: (gst_fakesink_init),
8513         (gst_fakesink_event), (gst_fakesink_chain):
8514         * gst/elements/gstfakesrc.c: (gst_fakesrc_class_init),
8515         (gst_fakesrc_init), (gst_fakesrc_get_event_mask),
8516         (gst_fakesrc_event_handler), (gst_fakesrc_set_pad_functions),
8517         (gst_fakesrc_set_all_pad_functions), (gst_fakesrc_request_new_pad),
8518         (gst_fakesrc_set_property), (gst_fakesrc_get_property),
8519         (gst_fakesrc_get_range_unlocked), (gst_fakesrc_get_range),
8520         (gst_fakesrc_loop), (gst_fakesrc_activate),
8521         (gst_fakesrc_change_state):
8522         * gst/elements/gstfakesrc.h:
8523         * gst/elements/gstfilesrc.c: (gst_filesrc_init),
8524         (gst_filesrc_get_read), (gst_filesrc_getrange), (gst_filesrc_get),
8525         (gst_filesrc_open_file), (gst_filesrc_loop),
8526         (gst_filesrc_activate), (gst_filesrc_change_state),
8527         (filesrc_find_peek), (filesrc_find_suggest),
8528         (gst_filesrc_type_find):
8529         * gst/elements/gstidentity.c: (gst_identity_finalize),
8530         (gst_identity_class_init), (gst_identity_init),
8531         (gst_identity_proxy_getcaps), (identity_queue_push),
8532         (identity_queue_pop), (identity_queue_flush), (gst_identity_event),
8533         (gst_identity_getrange), (gst_identity_chain),
8534         (gst_identity_sink_loop), (gst_identity_src_loop),
8535         (gst_identity_handle_buffer), (gst_identity_set_dataflow_funcs),
8536         (gst_identity_set_property), (gst_identity_get_property),
8537         (gst_identity_change_state):
8538         * gst/elements/gstidentity.h:
8539         * gst/elements/gsttee.c: (gst_tee_class_init), (gst_tee_init),
8540         (gst_tee_update_pad_functions), (gst_tee_request_new_pad),
8541         (gst_tee_set_property), (gst_tee_get_property), (gst_tee_do_push),
8542         (gst_tee_handle_buffer), (gst_tee_chain), (gst_tee_loop),
8543         (gst_tee_sink_activate):
8544         * gst/elements/gsttee.h:
8545         * gst/gst.c: (gst_register_core_elements), (init_post):
8546         * gst/gst.h:
8547         * gst/gstbin.c: (gst_bin_class_init), (gst_bin_set_bus),
8548         (gst_bin_set_scheduler), (gst_bin_add_func), (gst_bin_add),
8549         (gst_bin_remove_func), (gst_bin_remove), (gst_bin_get_state),
8550         (gst_bin_change_state):
8551         * gst/gstbin.h:
8552         * gst/gstbus.c: (gst_bus_get_type), (gst_bus_class_init),
8553         (gst_bus_init), (gst_bus_dispose), (gst_bus_set_property),
8554         (gst_bus_get_property), (gst_bus_new), (gst_bus_post),
8555         (gst_bus_have_pending), (gst_bus_pop), (gst_bus_peek),
8556         (gst_bus_set_sync_handler), (gst_bus_create_watch),
8557         (bus_watch_callback), (bus_watch_destroy),
8558         (gst_bus_add_watch_full), (gst_bus_add_watch), (poll_handler),
8559         (poll_timeout), (gst_bus_poll):
8560         * gst/gstbus.h:
8561         * gst/gstcaps.h:
8562         * gst/gstdata.h:
8563         * gst/gstelement.c: (gst_element_class_init), (gst_element_init),
8564         (gst_element_post_message), (gst_element_message_full),
8565         (gst_element_get_state_func), (gst_element_get_state),
8566         (gst_element_abort_state), (gst_element_commit_state),
8567         (gst_element_lost_state), (gst_element_set_state),
8568         (gst_element_pads_activate), (gst_element_change_state),
8569         (gst_element_dispose), (gst_element_set_manager_func),
8570         (gst_element_set_bus_func), (gst_element_set_scheduler_func),
8571         (gst_element_set_manager), (gst_element_get_manager),
8572         (gst_element_set_bus), (gst_element_get_bus),
8573         (gst_element_set_scheduler), (gst_element_get_scheduler):
8574         * gst/gstelement.h:
8575         * gst/gstevent.c: (gst_event_new_segment_seek),
8576         (gst_event_new_flush):
8577         * gst/gstevent.h:
8578         * gst/gstmessage.c: (_gst_message_initialize), (_gst_message_copy),
8579         (_gst_message_free), (gst_message_get_type), (gst_message_new),
8580         (gst_message_new_eos), (gst_message_new_error),
8581         (gst_message_new_warning), (gst_message_new_tag),
8582         (gst_message_new_state_changed), (gst_message_new_application),
8583         (gst_message_get_structure), (gst_message_parse_tag),
8584         (gst_message_parse_state_changed), (gst_message_parse_error),
8585         (gst_message_parse_warning):
8586         * gst/gstmessage.h:
8587         * gst/gstpad.c: (gst_real_pad_class_init), (gst_real_pad_init),
8588         (gst_real_pad_set_property), (gst_pad_set_active),
8589         (gst_pad_is_active), (gst_pad_set_blocked_async),
8590         (gst_pad_set_blocked), (gst_pad_is_blocked),
8591         (gst_pad_set_activate_function), (gst_pad_set_loop_function),
8592         (gst_pad_set_getrange_function), (gst_pad_set_acceptcaps_function),
8593         (gst_pad_set_fixatecaps_function), (gst_pad_set_setcaps_function),
8594         (gst_pad_unlink), (gst_pad_link_prepare_filtered),
8595         (gst_pad_link_filtered), (gst_pad_relink_filtered),
8596         (gst_real_pad_get_caps_unlocked), (gst_pad_get_caps),
8597         (gst_pad_peer_get_caps), (gst_pad_fixate_caps),
8598         (gst_pad_accept_caps), (gst_pad_peer_accept_caps),
8599         (gst_pad_set_caps), (gst_pad_configure_sink),
8600         (gst_pad_configure_src), (gst_pad_get_negotiated_caps),
8601         (gst_pad_get_filter_caps), (gst_pad_alloc_buffer),
8602         (gst_real_pad_dispose), (gst_real_pad_finalize),
8603         (handle_pad_block), (gst_pad_push), (gst_pad_pull_range),
8604         (gst_pad_event_default_dispatch), (gst_pad_event_default),
8605         (gst_pad_push_event), (gst_pad_send_event), (gst_pad_get_formats):
8606         * gst/gstpad.h:
8607         * gst/gstpipeline.c: (gst_pipeline_init), (is_eos),
8608         (pipeline_bus_handler), (gst_pipeline_change_state),
8609         (gst_pipeline_get_scheduler), (gst_pipeline_get_bus):
8610         * gst/gstpipeline.h:
8611         * gst/gstprobe.h:
8612         * gst/gstqueue.c: (gst_queue_class_init), (gst_queue_init),
8613         (gst_queue_finalize), (gst_queue_getcaps), (gst_queue_link_sink),
8614         (gst_queue_link_src), (gst_queue_bufferalloc),
8615         (gst_queue_locked_flush), (gst_queue_handle_sink_event),
8616         (gst_queue_is_empty), (gst_queue_is_filled), (gst_queue_chain),
8617         (gst_queue_loop), (gst_queue_handle_src_event),
8618         (gst_queue_handle_src_query), (gst_queue_src_activate),
8619         (gst_queue_change_state):
8620         * gst/gstqueue.h:
8621         * gst/gstscheduler.c: (gst_scheduler_init),
8622         (gst_scheduler_dispose), (gst_scheduler_create_task),
8623         (gst_scheduler_factory_create):
8624         * gst/gstscheduler.h:
8625         * gst/gststructure.c: (gst_structure_get_type),
8626         (gst_structure_copy_conditional):
8627         * gst/gststructure.h:
8628         * gst/gsttaginterface.h:
8629         * gst/gsttask.c: (gst_task_get_type), (gst_task_class_init),
8630         (gst_task_init), (gst_task_dispose), (gst_task_create),
8631         (gst_task_get_state), (gst_task_start), (gst_task_stop),
8632         (gst_task_pause):
8633         * gst/gsttask.h:
8634         * gst/gstthread.c:
8635         * gst/gstthread.h:
8636         * gst/gsttypes.h:
8637         * gst/schedulers/Makefile.am:
8638         * gst/schedulers/cothreads_compat.h:
8639         * gst/schedulers/entryscheduler.c:
8640         * gst/schedulers/faircothreads.c:
8641         * gst/schedulers/faircothreads.h:
8642         * gst/schedulers/fairscheduler.c:
8643         * gst/schedulers/gstbasicscheduler.c:
8644         * gst/schedulers/gstoptimalscheduler.c:
8645         * gst/schedulers/gthread-cothreads.h:
8646         * gst/schedulers/threadscheduler.c:
8647         (gst_thread_scheduler_task_get_type),
8648         (gst_thread_scheduler_task_class_init),
8649         (gst_thread_scheduler_task_init),
8650         (gst_thread_scheduler_task_start),
8651         (gst_thread_scheduler_task_stop),
8652         (gst_thread_scheduler_task_pause), (gst_thread_scheduler_get_type),
8653         (gst_thread_scheduler_class_init), (gst_thread_scheduler_func),
8654         (gst_thread_scheduler_init), (gst_thread_scheduler_create_task),
8655         (gst_thread_scheduler_setup), (gst_thread_scheduler_reset),
8656         (plugin_init):
8657         * libs/gst/Makefile.am:
8658         * libs/gst/bytestream/bytestream.c: (gst_bytestream_get_next_buf):
8659         * libs/gst/bytestream/filepad.c: (gst_file_pad_init),
8660         (gst_file_pad_parent_set):
8661         * libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packet_from_event),
8662         (gst_dp_event_from_packet):
8663         * tests/complexity.c: (main):
8664         * tests/mass_elements.c: (main):
8665         * testsuite/states/locked.c: (message_received), (main):
8666         * testsuite/states/parent.c: (main):
8667         * tools/gst-inspect.c: (print_element_flag_info),
8668         (print_implementation_info), (print_pad_info):
8669         * tools/gst-launch.c: (check_intr), (play_handler), (event_loop),
8670         (main):
8671         * tools/gst-md5sum.c: (event_loop), (main):
8672         * tools/gst-typefind.c: (main):
8673         * tools/gst-xmlinspect.c: (print_element_info):
8674         Next big merge.
8675         Added GstBus for mainloop integration.
8676         Added GstMessage for sending notifications on the bus.
8677         Added GstTask as an abstraction for pipeline entry points.
8678         Removed GstThread.
8679         Removed Schedulers.
8680         Simplified GstQueue for multithreaded core.
8681         Made _link threadsafe, removed old capsnego.
8682         Added STREAM_LOCK and PREROLL_LOCK in GstPad.
8683         Added pad blocking functions.
8684         Reworked scheduling functions in GstPad to prepare for
8685         scheduling updates soon.
8686         Moved events out of data stream.
8687         Simplified GstEvent types.
8688         Added return values to push/pull.
8689         Removed clocking from GstElement.
8690         Added prototypes for state change function for next merge.
8691         Removed iterate from bins and state change management.
8692         Fixed some elements, disabled others for now.
8693         Fixed -inspect and -launch.
8694         Added check for GstBus.
8695
8696 2005-03-10  Wim Taymans  <wim@fluendo.com>
8697
8698         * docs/design/part-MT-refcounting.txt:
8699         * docs/design/part-clocks.txt:
8700         * docs/design/part-gstelement.txt:
8701         * docs/design/part-gstobject.txt:
8702         * docs/design/part-standards.txt:
8703         * gst/gstbin.c: (gst_bin_add_func), (gst_bin_add),
8704         (gst_bin_remove_func), (gst_bin_remove):
8705         * gst/gstbin.h:
8706         * gst/gstbuffer.c:
8707         * gst/gstcaps.h:
8708         * testsuite/clock/clock1.c: (main):
8709         * testsuite/clock/clock2.c: (gst_clock_debug), (element_wait),
8710         (main):
8711         * testsuite/dlopen/loadgst.c: (do_test):
8712         * testsuite/refcounting/bin.c: (add_remove_test1),
8713         (add_remove_test2), (main):
8714         * testsuite/refcounting/element.c: (main):
8715         * testsuite/refcounting/element_pad.c: (main):
8716         * testsuite/refcounting/pad.c: (main):
8717         * tools/gst-launch.c: (sigint_handler_sighandler):
8718         * tools/gst-typefind.c: (main):
8719         Doc updates.
8720         Added doc about clock.
8721         removed gst_bin_iterate_recurse_up(), marked methods
8722         for removal.
8723         Fix more testsuites.
8724
8725 2005-03-09  Wim Taymans  <wim@fluendo.com>
8726
8727         * gst/gstpad.c: (gst_pad_get_direction),
8728         (_gst_pad_default_fixate_foreach), (gst_pad_collectv),
8729         (gst_pad_collect_valist):
8730         * testsuite/bins/interface.c: (main):
8731         * testsuite/caps/audioscale.c: (test_caps):
8732         * testsuite/caps/caps.c: (test1), (test2), (test3):
8733         * testsuite/caps/deserialize.c: (main):
8734         * testsuite/caps/enumcaps.c: (main):
8735         * testsuite/caps/filtercaps.c: (main):
8736         * testsuite/caps/intersect2.c: (main):
8737         * testsuite/caps/random.c: (main):
8738         * testsuite/caps/renegotiate.c: (my_fixate), (main):
8739         * testsuite/caps/sets.c: (check_caps):
8740         * testsuite/caps/simplify.c: (check_caps), (main):
8741         * testsuite/caps/subtract.c: (check_caps):
8742         Fix _pad_get_direction wrt ghostpads.
8743         Fix caps testsuite.
8744
8745 2005-03-09  Wim Taymans  <wim@fluendo.com>
8746
8747         * check/Makefile.am:
8748         * check/gst/gstbin.c: (START_TEST), (gst_bin_suite), (main):
8749         * check/gst/gstsystemclock.c: (START_TEST), (gst_clock_debug),
8750         (ok_callback), (error_callback), (gst_systemclock_suite), (main):
8751         * gst/gstbin.c: (gst_bin_class_init), (gst_bin_set_index_func),
8752         (gst_bin_set_clock_func), (gst_bin_get_clock_func),
8753         (gst_bin_add_func), (gst_bin_add), (gst_bin_remove_func),
8754         (gst_bin_remove), (gst_bin_iterate_recurse_up),
8755         (bin_element_is_sink), (gst_bin_iterate_sinks),
8756         (gst_bin_iterate_all_by_interface):
8757         * gst/gstbin.h:
8758         * gst/gstelement.c: (gst_element_init), (gst_element_error_full),
8759         (gst_element_change_state), (gst_element_dispose),
8760         (gst_element_finalize), (gst_element_set_loop_function):
8761         * gst/gstelement.h:
8762         * gst/gstiterator.c: (find_custom_fold_func):
8763         * gst/gstpad.c: (_gst_pad_default_fixate_foreach),
8764         (gst_pad_collectv), (gst_pad_collect_valist),
8765         (gst_pad_template_new):
8766         * gst/gstpipeline.c: (gst_pipeline_class_init),
8767         (gst_pipeline_dispose), (gst_pipeline_set_property),
8768         (gst_pipeline_get_property), (gst_pipeline_get_clock_func),
8769         (gst_pipeline_get_clock), (gst_pipeline_use_clock),
8770         (gst_pipeline_set_clock), (gst_pipeline_auto_clock):
8771         * gst/gstutils.h:
8772         * gst/schedulers/entryscheduler.c:
8773         * gst/schedulers/gstbasicscheduler.c:
8774         (gst_basic_scheduler_cothreaded_chain),
8775         (gst_basic_scheduler_chain_add_element):
8776         * testsuite/bins/interface.c: (main):
8777         Added GstBin test.
8778         Added GstSystemClock test.
8779         Implemented clock distribution code in GstBin.
8780         Implemented iterate sinks method for future use.
8781         Rearranged gstelement.h
8782         Fix GstIterator comparison bug.
8783         Moved some code to GstPipeline, mostly clocking related.
8784
8785 2005-03-09  Wim Taymans  <wim@fluendo.com>
8786
8787         * configure.ac:
8788         * gst/gst_private.h:
8789         * gst/gstbin.c: (gst_bin_add_func), (gst_bin_add),
8790         (gst_bin_remove_func), (gst_bin_remove),
8791         (gst_bin_get_by_name_recurse_up):
8792         * gst/gstclock.c: (gst_clock_id_ref), (gst_clock_id_unref),
8793         (gst_clock_id_compare_func), (gst_clock_id_wait),
8794         (gst_clock_id_wait_async), (gst_clock_init),
8795         (gst_clock_adjust_unlocked), (gst_clock_get_time):
8796         * gst/gstelement.h:
8797         * gst/gstinfo.c: (_gst_debug_init):
8798         * gst/gstobject.h:
8799         * gst/gstpad.c: (_gst_pad_default_fixate_foreach),
8800         (gst_pad_collectv), (gst_pad_collect_valist), (gst_pad_query):
8801         * gst/gstpad.h:
8802         Bump version number, we're now 0.9.0
8803         Add future debugging category.
8804         Fix NULL _unref() in _get_by_name_recurse_up
8805         Rearrange gstpad.h.
8806         Update some docs.
8807
8808 2005-03-08  Wim Taymans  <wim@fluendo.com>
8809
8810         * gst/elements/gstaggregator.c: (gst_aggregator_class_init):
8811         * gst/elements/gstfakesink.c: (gst_fakesink_class_init):
8812         * gst/elements/gstfakesrc.c: (gst_fakesrc_class_init):
8813         * gst/elements/gstfdsink.c: (gst_fdsink_class_init):
8814         * gst/elements/gstfdsrc.c: (gst_fdsrc_class_init):
8815         * gst/elements/gstfilesink.c: (gst_filesink_class_init):
8816         * gst/elements/gstfilesrc.c: (gst_filesrc_class_init):
8817         * gst/elements/gstidentity.c: (gst_identity_class_init):
8818         * gst/elements/gstmd5sink.c: (gst_md5sink_class_init):
8819         * gst/elements/gstmultifilesrc.c: (gst_multifilesrc_class_init):
8820         * gst/elements/gstshaper.c: (gst_shaper_class_init):
8821         * gst/elements/gststatistics.c: (gst_statistics_class_init):
8822         * gst/elements/gsttee.c: (gst_tee_class_init), (gst_tee_getcaps),
8823         (gst_tee_link):
8824         * gst/gstelement.c: (gst_element_class_init),
8825         (gst_element_base_class_init), (gst_element_init),
8826         (gst_element_get_random_pad), (gst_element_wait_state_change),
8827         (gst_element_change_state), (gst_element_dispose),
8828         (gst_element_finalize), (gst_element_set_loop_function):
8829         * gst/gstelement.h:
8830         * gst/gstqueue.c: (gst_queue_class_init), (gst_queue_link_src):
8831         * gst/gstthread.c: (gst_thread_class_init),
8832         (gst_thread_release_children_locks), (gst_thread_change_state):
8833         * gst/schedulers/gstbasicscheduler.c:
8834         (gst_basic_scheduler_loopfunc_wrapper),
8835         (gst_basic_scheduler_chain_wrapper),
8836         (gst_basic_scheduler_src_wrapper),
8837         (gst_basic_scheduler_remove_element):
8838         * gst/schedulers/gstoptimalscheduler.c: (schedule_group):
8839         Remove threadsafe properties. Fix elements because GObject
8840         complains when installing a property before declaring a
8841         set/get_property handler.
8842         Rearrange gstelement.h file, use STATE macros for state locks.
8843         Free mutexes in the finalize method instead of dispose.
8844
8845 2005-03-08  Wim Taymans  <wim@fluendo.com>
8846
8847         * check/gst/gstobject.c: (START_TEST), (gst_object_suite):
8848         * gst/gstthread.c: (gst_thread_release_children_locks):
8849         Added parentage check.
8850         Fix build og GstThread again.
8851
8852 2005-03-08  Wim Taymans  <wim@fluendo.com>
8853
8854         * docs/design/part-MT-refcounting.txt:
8855         * docs/design/part-conventions.txt:
8856         * docs/design/part-gstobject.txt:
8857         * docs/design/part-relations.txt:
8858         * docs/design/part-standards.txt:
8859         * gst/gstbin.c: (gst_bin_add_func), (gst_bin_add),
8860         (gst_bin_remove_func), (gst_bin_remove), (gst_bin_iterate_recurse),
8861         (gst_bin_get_by_name), (gst_bin_get_by_interface),
8862         (gst_bin_iterate_all_by_interface):
8863         * gst/gstbuffer.h:
8864         * gst/gstclock.h:
8865         * gst/gstelement.c: (gst_element_class_init),
8866         (gst_element_change_state), (gst_element_set_loop_function):
8867         * gst/gstelement.h:
8868         * gst/gstiterator.c:
8869         * gst/gstobject.c: (gst_object_class_init), (gst_object_ref),
8870         (gst_object_unref), (gst_object_sink), (gst_object_dispose),
8871         (gst_object_dispatch_properties_changed), (gst_object_set_name),
8872         (gst_object_set_parent), (gst_object_unparent),
8873         (gst_object_check_uniqueness):
8874         * gst/gstobject.h:
8875         Docs updates, clean up some headers.
8876
8877 2005-03-07  Wim Taymans  <wim@fluendo.com>
8878
8879         * check/.cvsignore:
8880         * check/Makefile.am:
8881         * check/gst-libs/.cvsignore:
8882         * check/gst-libs/gdp.c: (START_TEST), (gst_object_suite), (main):
8883         * check/gst/.cvsignore:
8884         * check/gst/gstbus.c: (pound_bus_with_messages), (pull_messages),
8885         (START_TEST), (gstbus_suite), (main):
8886         * check/gst/gstcaps.c: (START_TEST), (gst_caps_suite), (main):
8887         * check/gst/gstdata.c: (START_TEST), (thread_ref), (thread_unref),
8888         (gst_data_suite), (main):
8889         * check/gst/gstiterator.c: (make_list_of_ints), (START_TEST),
8890         (add_fold_func), (gstiterator_suite), (main):
8891         * check/gst/gstobject.c: (gst_fake_object_get_type), (START_TEST),
8892         (thread_name_object), (thread_name_object_default),
8893         (gst_object_name_compare), (gst_object_suite), (main):
8894         * check/gst/gstpad.c: (START_TEST), (thread_link_unlink),
8895         (gst_pad_suite), (main):
8896         * check/gstcheck.c: (gst_check_log_message_func),
8897         (gst_check_log_critical_func), (gst_check_init):
8898         * check/gstcheck.h:
8899         * check/pipelines/simple_launch_lines.c: (setup_pipeline),
8900         (run_pipeline), (START_TEST), (simple_launch_lines_suite), (main):
8901         Added checks.
8902
8903 2005-03-07  Wim Taymans  <wim@fluendo.com>
8904
8905         * gst/gstiterator.c: (gst_iterator_init), (gst_iterator_new),
8906         (gst_list_iterator_next), (gst_list_iterator_resync),
8907         (gst_list_iterator_free), (gst_iterator_new_list),
8908         (gst_iterator_pop), (gst_iterator_next), (gst_iterator_resync),
8909         (gst_iterator_free), (gst_iterator_push), (filter_next),
8910         (filter_resync), (filter_uninit), (filter_free),
8911         (gst_iterator_filter), (gst_iterator_fold), (foreach_fold_func),
8912         (gst_iterator_foreach), (find_custom_fold_func),
8913         (gst_iterator_find_custom):
8914         * gst/gstiterator.h:
8915         Added missing files.
8916
8917 2005-03-07  Wim Taymans  <wim@fluendo.com>
8918
8919         * Makefile.am:
8920         * configure.ac:
8921         * docs/design/part-MT-refcounting.txt:
8922         * docs/design/part-conventions.txt:
8923         * docs/design/part-gstobject.txt:
8924         * docs/design/part-relations.txt:
8925         * examples/mixer/mixer.c: (main):
8926         * examples/thread/thread.c: (eos), (main):
8927         * gst/Makefile.am:
8928         * gst/autoplug/gstsearchfuncs.c: (gst_autoplug_caps_intersect):
8929         * gst/autoplug/gstspider.c: (gst_spider_identity_plug),
8930         (gst_spider_plug_from_srcpad):
8931         * gst/autoplug/gstspideridentity.c: (gst_spider_identity_getcaps),
8932         (gst_spider_identity_change_state),
8933         (gst_spider_identity_sink_loop_type_finding):
8934         * gst/elements/gstfakesrc.c: (gst_fakesrc_loop):
8935         * gst/elements/gstidentity.c: (gst_identity_init):
8936         * gst/elements/gsttee.c: (gst_tee_init), (gst_tee_getcaps),
8937         (gst_tee_link), (gst_tee_request_new_pad), (gst_tee_chain):
8938         * gst/elements/gsttypefindelement.c: (free_entry):
8939         * gst/gst.c:
8940         * gst/gst.h:
8941         * gst/gstbin.c: (gst_bin_init), (gst_bin_get_clock_func),
8942         (gst_bin_set_clock_func), (gst_bin_auto_clock),
8943         (gst_bin_set_index), (gst_bin_set_element_sched),
8944         (gst_bin_unset_element_sched), (gst_bin_add_func), (gst_bin_add),
8945         (gst_bin_remove_func), (gst_bin_remove), (iterate_child),
8946         (gst_bin_iterate_elements), (iterate_child_recurse),
8947         (gst_bin_iterate_recurse), (gst_bin_dispose), (compare_name),
8948         (gst_bin_get_by_name), (gst_bin_get_by_name_recurse_up),
8949         (compare_interface), (gst_bin_get_by_interface),
8950         (gst_bin_iterate_all_by_interface), (gst_bin_iterate_func):
8951         * gst/gstbin.h:
8952         * gst/gstbuffer.c: (gst_buffer_get_type), (_gst_buffer_sub_free),
8953         (gst_buffer_default_free), (gst_buffer_default_copy),
8954         (gst_buffer_new), (gst_buffer_get_caps), (gst_buffer_set_caps),
8955         (gst_buffer_create_sub):
8956         * gst/gstbuffer.h:
8957         * gst/gstcaps.c: (gst_caps_get_type), (gst_caps_new_empty),
8958         (_gst_caps_free), (gst_caps_make_writable), (gst_caps_ref),
8959         (gst_caps_unref), (gst_static_caps_get),
8960         (gst_caps_remove_and_get_structure), (gst_caps_append),
8961         (gst_caps_append_structure), (gst_caps_remove_structure),
8962         (gst_caps_copy_nth), (gst_caps_set_simple),
8963         (gst_caps_set_simple_valist), (gst_caps_is_fixed_foreach),
8964         (gst_structure_is_equal_foreach), (gst_caps_is_subset),
8965         (gst_caps_structure_intersect_field), (gst_caps_intersect),
8966         (gst_caps_structure_subtract_field), (gst_caps_subtract),
8967         (gst_caps_normalize_foreach), (gst_caps_compare_structures),
8968         (gst_caps_structure_figure_out_union),
8969         (gst_caps_switch_structures), (gst_caps_do_simplify),
8970         (gst_caps_replace), (gst_caps_from_string),
8971         (gst_caps_copy_conditional):
8972         * gst/gstcaps.h:
8973         * gst/gstclock.c: (gst_clock_entry_new), (gst_clock_id_ref),
8974         (_gst_clock_id_free), (gst_clock_id_unref),
8975         (gst_clock_id_compare_func), (gst_clock_id_wait),
8976         (gst_clock_id_wait_async), (gst_clock_class_init),
8977         (gst_clock_init), (gst_clock_dispose), (gst_clock_adjust_unlocked),
8978         (gst_clock_get_time), (gst_clock_set_time_adjust),
8979         (gst_clock_set_property), (gst_clock_get_property):
8980         * gst/gstclock.h:
8981         * gst/gstcompat.h:
8982         * gst/gstcpu.c: (_gst_cpu_initialize_i386), (gst_cpu_get_flags):
8983         * gst/gstdata.c: (gst_data_is_writable), (gst_data_copy_on_write):
8984         * gst/gstdata.h:
8985         * gst/gstelement.c: (gst_element_class_init), (gst_element_init),
8986         (gst_element_requires_clock), (gst_element_provides_clock),
8987         (gst_element_set_clock), (gst_element_clock_wait),
8988         (gst_element_wait), (gst_element_set_time_delay),
8989         (gst_element_is_indexable), (gst_element_add_pad),
8990         (gst_element_add_ghost_pad), (gst_element_remove_pad),
8991         (pad_compare_name), (gst_element_get_static_pad),
8992         (gst_element_request_pad), (gst_element_get_request_pad),
8993         (gst_element_get_pad), (iterate_pad), (gst_element_iterate_pads),
8994         (gst_element_class_get_pad_template_list),
8995         (gst_element_class_get_pad_template), (gst_element_error_func),
8996         (gst_element_get_random_pad), (gst_element_get_event_masks),
8997         (gst_element_send_event), (gst_element_seek),
8998         (gst_element_get_query_types), (gst_element_query),
8999         (gst_element_get_formats), (gst_element_convert),
9000         (gst_element_is_locked_state), (gst_element_set_locked_state),
9001         (gst_element_sync_state_with_parent), (gst_element_change_state),
9002         (gst_element_finalize), (gst_element_yield),
9003         (gst_element_interrupt), (gst_element_set_scheduler),
9004         (gst_element_get_scheduler), (gst_element_set_loop_function):
9005         * gst/gstelement.h:
9006         * gst/gstevent.h:
9007         * gst/gstformat.c: (_gst_format_initialize), (gst_format_register),
9008         (gst_format_get_by_nick), (gst_format_get_details),
9009         (gst_format_iterate_definitions):
9010         * gst/gstformat.h:
9011         * gst/gstindex.c: (gst_index_gtype_resolver):
9012         * gst/gstinfo.c:
9013         * gst/gstinfo.h:
9014         * gst/gstmemchunk.c: (gst_mem_chunk_alloc), (gst_mem_chunk_alloc0),
9015         (gst_mem_chunk_free):
9016         * gst/gstobject.c: (gst_object_class_init), (gst_object_init),
9017         (gst_object_ref), (gst_object_unref), (gst_object_sink),
9018         (gst_object_replace), (gst_object_dispose), (gst_object_finalize),
9019         (gst_object_dispatch_properties_changed),
9020         (gst_object_set_name_default), (gst_object_set_name),
9021         (gst_object_get_name), (gst_object_set_name_prefix),
9022         (gst_object_get_name_prefix), (gst_object_set_parent),
9023         (gst_object_get_parent), (gst_object_unparent),
9024         (gst_object_check_uniqueness), (gst_object_save_thyself),
9025         (gst_object_restore_thyself), (gst_object_real_restore_thyself),
9026         (gst_object_set_property), (gst_object_get_property),
9027         (gst_object_get_path_string):
9028         * gst/gstobject.h:
9029         * gst/gstpad.c: (gst_pad_dispose), (gst_real_pad_class_init),
9030         (gst_real_pad_init), (gst_real_pad_get_property),
9031         (gst_pad_custom_new), (gst_pad_get_direction),
9032         (gst_pad_set_active), (gst_pad_is_active),
9033         (gst_pad_set_event_function), (gst_pad_is_linked),
9034         (gst_pad_link_free), (gst_pad_link_intersect),
9035         (gst_pad_link_fixate), (gst_pad_set_caps),
9036         (gst_pad_try_set_caps_nonfixed), (gst_pad_set_pad_template),
9037         (gst_pad_get_real_parent), (gst_pad_add_ghost_pad),
9038         (gst_pad_remove_ghost_pad), (_gst_pad_default_fixate_foreach),
9039         (gst_pad_link_unnegotiate), (gst_pad_proxy_fixate),
9040         (gst_pad_get_caps), (gst_pad_peer_get_caps),
9041         (gst_pad_get_pad_template_caps), (gst_pad_get_peer),
9042         (gst_pad_realize), (gst_pad_get_allowed_caps),
9043         (gst_real_pad_dispose), (gst_real_pad_finalize),
9044         (gst_pad_collectv), (gst_pad_collect_valist),
9045         (gst_pad_template_dispose), (gst_pad_template_new),
9046         (gst_pad_get_internal_links):
9047         * gst/gstpad.h:
9048         * gst/gstpipeline.c: (gst_pipeline_dispose),
9049         (gst_pipeline_change_state):
9050         * gst/gstpipeline.h:
9051         * gst/gstplugin.c:
9052         * gst/gstpluginfeature.c: (gst_plugin_feature_get_name),
9053         (gst_plugin_feature_set_rank), (gst_plugin_feature_get_rank):
9054         * gst/gstpluginfeature.h:
9055         * gst/gstprobe.c: (gst_probe_dispatcher_dispatch):
9056         * gst/gstquery.c: (_gst_query_type_initialize),
9057         (gst_query_type_register), (gst_query_type_get_by_nick),
9058         (gst_query_type_get_details), (gst_query_type_iterate_definitions):
9059         * gst/gstquery.h:
9060         * gst/gstqueue.c: (gst_queue_link_sink), (gst_queue_link_src):
9061         * gst/gstscheduler.c: (gst_scheduler_add_element),
9062         (gst_scheduler_factory_create):
9063         * gst/gststructure.c: (gst_structure_set_parent_refcount),
9064         (gst_structure_free), (gst_structure_set_name),
9065         (gst_structure_id_set_value), (gst_structure_set_value),
9066         (gst_structure_set_valist), (gst_structure_remove_field),
9067         (gst_structure_remove_fields),
9068         (gst_structure_remove_fields_valist),
9069         (gst_structure_remove_all_fields), (gst_structure_foreach),
9070         (gst_structure_map_in_place),
9071         (gst_caps_structure_fixate_field_nearest_int),
9072         (gst_caps_structure_fixate_field_nearest_double):
9073         * gst/gststructure.h:
9074         * gst/gstsystemclock.c: (gst_system_clock_class_init),
9075         (gst_system_clock_init), (gst_system_clock_dispose),
9076         (gst_system_clock_async_thread),
9077         (gst_system_clock_id_wait_unlocked), (gst_system_clock_id_wait),
9078         (gst_system_clock_id_wait_async), (gst_system_clock_id_unschedule):
9079         * gst/gstsystemclock.h:
9080         * gst/gsttag.c: (gst_tag_list_add_value_internal),
9081         (gst_tag_list_copy_foreach), (structure_foreach_wrapper):
9082         * gst/gsttaginterface.c:
9083         * gst/gstthread.c: (gst_thread_dispose),
9084         (gst_thread_release_children_locks), (gst_thread_change_state),
9085         (gst_thread_main_loop):
9086         * gst/gsttrashstack.h:
9087         * gst/gsttypefind.c: (gst_type_find_factory_dispose):
9088         * gst/gsttypes.h:
9089         * gst/gstutils.c: (gst_element_get_compatible_pad_template),
9090         (gst_element_request_pad), (gst_element_get_pad_from_template),
9091         (gst_element_request_compatible_pad),
9092         (gst_element_get_compatible_pad_filtered),
9093         (gst_element_get_compatible_pad), (gst_element_state_get_name),
9094         (gst_element_link_pads_filtered), (gst_element_link_filtered),
9095         (gst_element_link_many), (gst_element_link),
9096         (gst_element_link_pads), (gst_element_unlink_pads),
9097         (gst_element_unlink_many), (gst_element_unlink),
9098         (gst_pad_can_link_filtered), (gst_pad_can_link),
9099         (gst_pad_use_fixed_caps), (gst_pad_get_fixed_caps_func),
9100         (gst_object_default_error), (gst_bin_add_many),
9101         (gst_bin_remove_many), (gst_element_populate_std_props),
9102         (gst_element_class_install_std_props), (gst_buffer_merge),
9103         (gst_buffer_stamp), (intersect_caps_func), (gst_pad_proxy_getcaps),
9104         (link_fold_func), (gst_pad_proxy_setcaps):
9105         * gst/gstutils.h:
9106         * gst/gstvalue.c: (gst_value_deserialize_string):
9107         * gst/parse/grammar.y:
9108         * gst/schedulers/gstbasicscheduler.c:
9109         (gst_basic_scheduler_cothreaded_chain),
9110         (gst_basic_scheduler_chain_recursive_add),
9111         (gst_basic_scheduler_pad_link):
9112         * gst/schedulers/gstoptimalscheduler.c:
9113         (get_group_schedule_function),
9114         (gst_opt_scheduler_state_transition),
9115         (gst_opt_scheduler_add_element), (element_get_reachables_func):
9116         * libs/gst/bytestream/bytestream.c:
9117         * libs/gst/dataprotocol/dataprotocol.c:
9118         (gst_dp_header_from_buffer):
9119         * po/nb.po:
9120         * po/ru.po:
9121         * tests/threadstate/threadstate2.c: (eos):
9122         * tools/gst-compprep.c: (main):
9123         * tools/gst-inspect.c: (print_field), (print_element_flag_info),
9124         (print_pad_info), (print_children_info):
9125         * tools/gst-launch.c: (idle_func), (main):
9126         * tools/gst-md5sum.c: (idle_func), (main):
9127         * tools/gst-xmlinspect.c: (print_element_info):
9128         First THREADED backport attempt, focusing on adding locks and
9129         making sure the API is threadsafe. Needs more work. More docs
9130         follow this week.
9131
9132 2005-02-24  Andy Wingo  <wingo@pobox.com>
9133
9134         * tests/bench-complexity.scm:
9135         * tests/complexity.gnuplot: New files, good for running complexity
9136         benchmarks.
9137
9138         * tests/Makefile.am:
9139         * tests/complexity.c: New test, sets up N elements, at each level
9140         teeing into M streams per element. Eeeenteresting.
9141
9142         * tests/mass_elements.gnuplot: gnuplot file for the mass_elements
9143         benchmark. Run as gnuplot mass_elements.gnuplot > foo.ps, after
9144         running bench-mass_elements.scm.
9145
9146         * tests/bench-mass_elements.scm: New script, runs mass_elements
9147         for various numbers of identities, outputting the results to a
9148         file. Requires guile 1.6. Just for testing.
9149
9150 2005-02-23  Thomas Vander Stichele  <thomas at apestaart dot org>
9151
9152         * gst/schedulers/fairscheduler.c:
9153           compile with debug disabled
9154
9155 2005-02-22  Thomas Vander Stichele  <thomas at apestaart dot org>
9156
9157         * configure.ac:
9158           hunting season on 0.9 is now OPEN