ChangeLog surgery: mention bug number
[glsdk/gstreamer0-10.git] / ChangeLog
1 2007-11-03  Tim-Philipp Müller  <tim at centricular dot net>
3         Patch by: Murray Cumming  <murrayc@murrayc.com>
5         * gst/gstobject.c:
6           Corrected the registration of the parent-set and parent-unset
7           signals: The parameter is a GstObject, not a GObject (#493134).
9 2007-11-02  Tim-Philipp Müller  <tim at centricular dot net>
11         * gst/gst_private.h:
12         * gst/gstbuffer.h:
13         * gst/gstevent.h:
14         * gst/gstformat.h:
15         * gst/gstmessage.h:
16         * gst/gstplugin.h:
17         * gst/gstquery.h:
18         * gst/gsttaglist.h:
19         * gst/gstvalue.h:
20           Move declaration of private _gst_foo_initialize() functions into
21           our private header file where they should have been all along.
23 2007-11-02  Tim-Philipp Müller  <tim at centricular dot net>
25         * docs/plugins/gstreamer-plugins-sections.txt:
26         * gst/gstdebugutils.h:
27         * gst/gstxml.h:
28         * plugins/elements/gstqueue.c:
29           gtk-doc fixes; trailing-comma-in-enum fix.
31 2007-11-02  Tim-Philipp Müller  <tim at centricular dot net>
33         * gst/gst.c: (gst_deinit):
34           Clean up on deinit (not the external ones though, doesn't seem to be
35           needed for some reason).
37 2007-11-01  Tim-Philipp Müller  <tim at centricular dot net>
39         * gst/gstinfo.h: (GST_DEBUG_CATEGORY_EXTERN):
40           Remove __declspec(dllimport) for MSVC that was copied over into core
41           from a plugin, obviously without ever having been tested (note the
42           single underscore in _declspec in the initial commit), and that doesn't
43           really make sense.  See #492077.
45 2007-11-01  Tim-Philipp Müller  <tim at centricular dot net>
47         * gst/gst.c: (init_post):
48         * gst/gstevent.c: (_gst_event_initialize):
49         * gst/gstquery.c: (_gst_query_initialize):
50         * libs/gst/dataprotocol/dataprotocol.c (gst_dp_init):
51           g_type_class_ref() other types as well, see #349410 and #64764.
53         * gst/gstbuffer.c: (_gst_buffer_initialize):
54         * gst/gstmessage.c: (_gst_message_initialize):
55           Simplify existing g_type_class_ref().
57 2007-11-01  Tim-Philipp Müller  <tim at centricular dot net>
59         * gst/gstformat.c: (_gst_format_initialize):
60           g_type_class_ref() our GstFormat type to make sure we avoid the
61           thread-unsafe bits of the GObject/GType system, ie. bug #349410 and
62           bug #64764. Should fix intermittent tee unit test failures (#474823).
64 2007-11-01  Tim-Philipp Müller  <tim at centricular dot net>
66         * tests/check/elements/tee.c: (test_num_buffers):
67           Simplify, simplify, simplify - or not.  Rewrite unit test
68           not to use gst_parse_launch(); allow N sub-streams. Increasing
69           the number of sub-streams seems to reproduce #474823 more easily.
71 2007-10-31  Tim-Philipp Müller  <tim at centricular dot net>
73         Patch by: Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>
75         * gst/gsttrace.c:
76         * libs/gst/net/gstnetclientclock.c: (gst_net_client_clock_new):
77         * libs/gst/net/gstnettimepacket.c: (gst_net_time_packet_send):
78         * libs/gst/net/gstnettimeprovider.c: (gst_net_time_provider_new):
79           Fix a couple of missing includes for MSVC2005 and a C99 issue. Also,
80           starting with 2.14.0, GLib won't provide a pipe() macro any longer,
81           so use _pipe() directly (#492077).
83         * win32/common/dirent.c: (_treaddir):
84           Add a couple of casts to make it build without warnings with MSVC.
86         * win32/common/libgstreamer.def:
87           Add some more symbols that need to be exported.
89 2007-10-31  Tim-Philipp Müller  <tim at centricular dot net>
91         * tests/examples/metadata/read-metadata.c: (message_loop):
92           Use _KEEP as merge mode rather than _KEEP_ALL, so tags
93           arriving in a second or third tag message are added to
94           the tag list as well.
96 2007-10-31  Stefan Kost  <ensonic@users.sf.net>
98         * libs/gst/base/gstbasesrc.c:
99           Its "Since:" and not "@Since:". And remove an superflous cast.
101 2007-10-30  Wim Taymans  <wim.taymans@gmail.com>
103         * docs/libs/gstreamer-libs-sections.txt:
104         * libs/gst/base/gstbasesink.c: (gst_base_sink_class_init),
105         (gst_base_sink_get_last_buffer), (gst_base_sink_set_last_buffer),
106         (gst_base_sink_get_property), (gst_base_sink_render_object),
107         (gst_base_sink_preroll_object),
108         (gst_base_sink_queue_object_unlocked), (gst_base_sink_event),
109         (gst_base_sink_change_state):
110         * libs/gst/base/gstbasesink.h:
111         Add a new last-buffer property that contains the last buffer used in
112         basesink for preroll or rendering. useful for making snapshots.
113         API: gst_base_sink_get_last_buffer()
114         API: GstBaseSink::last-buffer
116 2007-10-29  Stefan Kost  <ensonic@users.sf.net>
118         * docs/gst/running.xml:
119         * gst/gst.c:
120         * gst/gstdebugutils.c:
121         * gst/gstdebugutils.h:
122         * tools/gst-launch.c:
123           Improve bin graph dumping, by using the envvar to specify a path.
124           Rename the envvar to GST_DEBUG_DUMP_DOT_DIR.
126 2007-10-29  Tim-Philipp Müller  <tim at centricular dot net>
128         * plugins/elements/gsttypefindelement.c:
129           (gst_type_find_element_handle_event),
130           (gst_type_find_element_activate):
131           Post special error message if we can't determine the type of a stream
132           because it's empty.
134 2007-10-29  Stefan Kost  <ensonic@users.sf.net>
136         * docs/gst/running.xml:
137         * gst/gstdebugutils.c:
138           Document new env-var. Add one log-line after dumpng a graph.
140 2007-10-26  Tim-Philipp Müller  <tim at centricular dot net>
142         * configure.ac:
143           Ugly hack to put the (recently removed and non-portable, apparently)
144           -Wl,--export-dynamic back into libgstcheck's LDFLAGS when we're using
145           GNU ld, because without that 'make check' fails miserably on my debian
146           stable box.  Someone with more knowledge of linker intricacies and
147           portability issues than me fix this properly please.
149 2007-10-25  Wim Taymans  <wim.taymans@gmail.com>
151         * libs/gst/base/gstbasesink.c: (gst_base_sink_event):
152         Reset last seen position after flushing so that we don't report the old
153         position anymore.
155 2007-10-25  Jan Schmidt  <Jan.Schmidt@sun.com>
157         * gst/gstelementfactory.c: (gst_element_register):
158         * gst/gsturi.h:
159         Patch from Alessandro Decina adding get_type_full and
160         get_protocols_full private vfuncs to the URIHandler interface
161         to allow bindings to support creating URI handlers. 
162         Partially fixes: #339279
163         API: GstURIHandlerInterface::get_type_full
164         API: GstURIHandlerInterface::get_protocols_full
166 2007-10-25  Jan Schmidt  <Jan.Schmidt@sun.com>
168         * plugins/elements/gstmultiqueue.c: (gst_multi_queue_set_property),
169         (gst_multi_queue_request_new_pad), (gst_single_queue_flush),
170         (gst_multi_queue_loop), (gst_multi_queue_sink_activate_push):
171         Make it so that pads are considered linked until a buffer is pushed
172         and discovered otherwise. This avoids problems with decodebin2 hanging
173         after a seek in the filesrc ! decodebin2 name=d ! fakesink d. ! fakesink
174         case.
176         Make sure we lock the multiqueue when updating the max-size properties.
177         
178         Fix a crash on Solaris in a debug statement in get_request_pad that
179         passes a NULL string to GST_DEBUG. 
181         * tests/check/elements/multiqueue.c: (mq_dummypad_chain),
182         (run_output_order_test):
183         Fix the test to allow the first buffer on not-linked pads to come out
184         of sequence while multiqueue discovers that they are not-linked.
186 2007-10-25  Jan Schmidt  <Jan.Schmidt@sun.com>
188         * configure.ac:
189         * libs/gst/check/Makefile.am:
190         Use a custom export symbol regex for libgstcheck, as it needs
191         to export symbols that don't match the standard GStreamer gst_*
192         pattern, and  --export-dynamic is not portable (only works on 
193         GNU ld)
195         * libs/gst/check/gstcheck.c: (gst_check_setup_src_pad),
196         (gst_check_setup_sink_pad):
197         Make sure to pass a message parameter to the fail_* macros.
199         * tests/check/gst/gstinfo.c: (GST_START_TEST):
200         Fix some compiler warnings.
202 2007-10-25  Tim-Philipp Müller  <tim at centricular dot net>
204         * tests/check/gst/gststructure.c: (test_to_string):
205           Disable test that checks that white spaces are not allowed
206           in structure names or field names, since we need to
207           support that for now for backwards compatibility reasons.
209 2007-10-24  Tim-Philipp Müller  <tim at centricular dot net>
211         * docs/gst/gstreamer-sections.txt:
212         * gst/gsttaglist.c:
213         * gst/gsttaglist.h:
214           API: add GST_TAG_ARTIST_SORTNAME
215           API: add GST_TAG_ALBUM_SORTNAME
216           API: add GST_TAG_TITLE_SORTNAME
217           Add tag variants for sorting (#414539).
219 2007-10-24  Tim-Philipp Müller  <tim at centricular dot net>
221         * gst/gststructure.c:
222           Also allow white space for names so we don't break
223           backwards compatibility.
225 2007-10-22  Wim Taymans  <wim.taymans@gmail.com>
227         * docs/design/part-TODO.txt:
228         * docs/design/part-segments.txt:
229         * docs/design/part-streams.txt:
230         Small updates.
232 2007-10-22  Edgard Lima  <edgard.lima@indt.org.br>
234         * docs/gst/gstreamer-sections.txt:
235          Fixed documentation from my previous commit (added new API add
236          gst_value_set_structure(), add gst_value_get_structure() and
237          GST_VALUE_HOLDS_STRUCTURE).
239 2007-10-22  Stefan Kost  <ensonic@users.sf.net>
241         * gst/gstdebugutils.c:
242           Reflow code to fix uninitialized variable warning.
244 2007-10-22  Edgard Lima  <edgard.lima@indt.org.br>
246         * gst/gstcaps.c: (gst_caps_to_string),
247         (gst_caps_from_string_inplace):
248         * gst/gststructure.c: (gst_structure_get_abbrs),
249         (gst_structure_to_string), (gst_structure_from_string):
250         * gst/gstvalue.c: (gst_value_set_structure),
251         (gst_value_get_structure), (gst_value_serialize_structure),
252         (gst_value_deserialize_structure), (_gst_value_initialize):
253         * gst/gstvalue.h:
254         * tests/check/gst/gststructure.c: (GST_START_TEST),
255         (gst_structure_suite):
256         * tests/check/gst/gstvalue.c: (GST_START_TEST):
257          Added GstStructure to gst_value_table and its related functions.
258          Changed gst_structure_to_string to print ';' in the end.
259          Changed gst_caps_to_string to not print ';' beteween its
260          fields (structures) anymore and remove the lastes ';' from latest
261          structure. Now it is possible to have nested structures.
262          In addition, backward compatibilty is assured by accepting '\0' as
263          end delimiter. Fixes: #487969.
264          API: add gst_value_set_structure()
265          API: add gst_value_get_structure()
266          API: add GST_VALUE_HOLDS_STRUCTURE
268 2007-10-19  Tim-Philipp Müller  <tim at centricular dot net>
270         * gst/gstbus.c:
271           When no GSource callback has been set up, tell developer
272           to use a function that actually exists.
274 2007-10-17  Stefan Kost  <ensonic@users.sf.net>
276         * docs/gst/gstreamer-sections.txt:
277         * gst/Makefile.am:
278         * gst/gst.c:
279         * gst/gst.h:
280         * gst/gstdebugutils.c:
281         * gst/gstdebugutils.h:
282         * gst/gstinfo.c:
283         * gst/gstinfo.h:
284         * tools/gst-launch.c:
285           Allow dumping pipelines as dot graphs. Fixes #456573.
287 2007-10-16  Tim-Philipp Müller  <tim at centricular dot net>
289         * gst/gststructure.c:
290           Allow '+' as well, it can be part of media or mime types
291           such as image/svg+xml.
293 2007-10-16  Tim-Philipp Müller  <tim at centricular dot net>
295         * docs/gst/gstreamer-sections.txt:
296         * gst/gstbus.c:
297         * gst/gstbus.h:
298           API: add gst_bus_pop_filtered
299           API: add gst_bus_timed_pop_filtered
300           Two new functions for waiting for specific message types on the
301           bus for a specified amount of time without iterating any main
302           loops or main contexts.
304         * tests/check/gst/gstbus.c:
305           Some tests for the new functions.
307 2007-10-16  Tim-Philipp Müller  <tim at centricular dot net>
309         * docs/libs/gstreamer-libs-sections.txt:
310           Make gtk-doc ignore stuff it should ignore.
312 2007-10-16  Tim-Philipp Müller  <tim at centricular dot net>
314         * libs/gst/check/gstcheck.c:
315         * libs/gst/check/gstcheck.h:
316           Allow runtime selection of unit tests to run via the GST_CHECKS
317           environment variable (test case function names, comma-separated).
319 2007-10-16  Stefan Kost  <ensonic@users.sf.net>
321         * gst/gststructure.c:
322         * tests/check/gst/gststructure.c:
323           Revert serialisation change and constrain structure-names after
324           consensus on irc. Update api documentation to reflect the change.
326 2007-10-16  Stefan Kost  <ensonic@users.sf.net>
328         * gst/gststructure.c:
329           Improve serialization and fix tests.
331         * tests/check/gst/gststructure.c:
332           Add another test that covers why I actually did the previous structure
333           change.
335 2007-10-15  Wim Taymans  <wim.taymans@gmail.com>
337         * tools/gst-inspect.c: (print_element_info):
338         Don't crash when inspecting an element.
340 2007-10-15  Tim-Philipp Müller  <tim at centricular dot net>
342         * tests/check/gst/gststructure.c:
343           Add unit test for escaping of structure name when serialising
344           and deserialising to/from strings.
346 2007-10-15  Wim Taymans  <wim.taymans@gmail.com>
348         * plugins/elements/gstmultiqueue.c: (gst_single_queue_push_one),
349         (gst_single_queue_new):
350         * plugins/elements/gstqueue.c: (gst_queue_init),
351         (gst_queue_push_one):
352         Fix queue negotiation. If acceptcaps unconditionally returns TRUE,
353         upstream is tricked into thinking it can suggest a format downstream
354         while downstream does not support that format. The real problem is that
355         core calls acceptcaps when pushing a buffer with new caps, for which we
356         do a little workaround by setting the caps on the srcpad ourselves
357         before pushing the buffer (until this is figured out). Fixes #486758.
359 2007-10-15  Stefan Kost  <ensonic@users.sf.net>
361         * gst/gststructure.c:
362         * gst/gstvalue.c:
363           Add some more comments and debug output. Quote structure name to fix
364           deserialisation of some strings.
366 2007-10-15  Stefan Kost  <ensonic@users.sf.net>
368         * gst/gstbuffer.h:
369           Define GST_BUFFER_FLAG_GAP more strictly to enable optimizations based
370           on it. Fix docs for GST_BUFFER_MALLOCDATA and GstBuffer.malloc_data.
372 2007-10-15  Stefan Kost  <ensonic@users.sf.net>
374         * tools/gst-inspect.c:
375           Save approx. 400 1 byte allocs when printing. Use API to acces element
376           details.
378         * tools/gst-run.c:
379           Avoid a strdup.
381         * tools/gst-xmlinspect.c:
382           Use API to acces element details.
384 2007-10-15  Stefan Kost  <ensonic@users.sf.net>
386         * gst/gstinfo.c:
387           Fix some spelling errors.
389 2007-10-14  Wim Taymans  <wim.taymans@gmail.com>
391         * gst/gstbin.c: (bin_handle_async_done):
392         Correctly set the next state if all of our async children commited their
393         state. This makes sure we can actually cancel the state change in
394         progress. Fixes a regression in Rhythmbox when seeking.
396 2007-10-13  Tim-Philipp Müller  <tim at centricular dot net>
398         * gst/gstbin.c:
399           Don't shadow local variable.
401         * gst/gstinfo.c:
402           Don't shadow global function name.
404 2007-10-13  Tim-Philipp Müller  <tim at centricular dot net>
406         * gst/gstelementfactory.c:
407         * gst/gstpluginfeature.c:
408         * gst/gstpluginfeature.h:
409         * gst/gstregistrybinary.c:
410         * gst/gstregistryxml.c:
411         * gst/gsttypefind.c:
412           Use already-interned string for the private GstPluginFeature
413           plugin_name field.
415 2007-10-10  Tim-Philipp Müller  <tim at centricular dot net>
417         * docs/libs/gstreamer-libs-sections.txt:
418           Add new API to docs; fixes the build.
420 2007-10-10  Wim Taymans  <wim.taymans@gmail.com>
421         
422         Patch inspired by: Benoit Fouet <benoit dot fouet at purplelabs dot com>
424         * libs/gst/base/gstbasesink.c: (gst_base_sink_wait_eos),
425         (gst_base_sink_event):
426         * libs/gst/base/gstbasesink.h:
427         Add function to wait for EOS, subclasses can use this to correctly wait
428         for devices to drain before performing the EOS logic. Fixes #485343.
429         API: gst_base_sink_wait_eos()
431 2007-10-10  Tim-Philipp Müller  <tim at centricular dot net>
433         * gst/gstplugin.h:
434           Cast description string constants in GST_PLUGIN_DEFINE macros
435           to a (gchar*) to make C++ code using these macros compile
436           without warning with g++-4.2 (see #462737).  Even if slightly
437           ugly, this seems preferable to putting the description strings
438           into the GLib quark table or making the structure member a
439           const gchar * and doing casts in core code that allocs and
440           frees these strings, or requiring a cast in the C++ code.
442 2007-10-09  Tim-Philipp Müller  <tim at centricular dot net>
444         * gst/gstinfo.h:
445           Use __FUNCTION__ instead of __PRETTY_FUNCTION__, it's silly
446           to print the entire class/function signature into the log
447           file for C++ code.  This only affects C++ code, for C code
448           everything remains the same.
450 2007-10-09  Wim Taymans  <wim.taymans@gmail.com>
452         * gst/gstbin.c: (remove_from_queue):
453         Work around a problem with pipelines containing (semi)loops until a
454         proper, more complicated solution is ready. See #475455.
456 2007-10-09  Tim-Philipp Müller  <tim at centricular dot net>
458         * gst/gstplugin.c:
459         * gst/gstplugin.h:
460         * gst/gstregistrybinary.c:
461         * gst/gstregistryxml.c:
462           Put more strings into the GLib quark table. No need to keep
463           a hundred-something copies of identical version strings,
464           license strings, package name strings and package origin
465           strings around. 
467 2007-10-09  Tim-Philipp Müller  <tim at centricular dot net>
469         * docs/manual/advanced-dataaccess.xml:
470           Don't imply that it's okay to unconditionally change
471           buffer data or buffer metadata in a pad probe callback,
472           and a bunch of other comments. Fixes #430031.
474 2007-10-08  Tim-Philipp Müller  <tim at centricular dot net>
476         * win32/common/gstenumtypes.c:
477         * win32/common/gstenumtypes.h:
478         * win32/common/gstversion.h:
479           Update generated files.
481 2007-10-08  Tim-Philipp Müller  <tim at centricular dot net>
483         * docs/manual/advanced-autoplugging.xml:
484           Prefix section with broken code with a warning (see #342432).
486 2007-10-08  Tim-Philipp Müller  <tim at centricular dot net>
488         * docs/manual/appendix-integration.xml:
489         * docs/manual/basics-init.xml:
490           Call g_thread_init() before g_option_context_new() to
491           avoid warnings. Spotted by Ritesh Khadgaray. Fixes #484225.
493 2007-10-08  Wim Taymans  <wim.taymans@gmail.com>
495         * libs/gst/base/gstbasesink.c: (gst_base_sink_preroll_queue_flush),
496         (gst_base_sink_queue_object_unlocked),
497         (gst_base_sink_queue_object), (gst_base_sink_event),
498         (gst_base_sink_needs_preroll), (gst_base_sink_chain_unlocked):
499         When we received EOS and are waiting for when to post the EOS message,
500         our state is prerolled and we should not return ASYNC.
501         Reorganize some code paths to implement this behavior.
503         * tests/check/generic/sinks.c: (send_eos), (GST_START_TEST),
504         (gst_sinks_suite):
505         Add unit test to verify above EOS fix.
507 2007-10-08  Wim Taymans  <wim.taymans@gmail.com>
509         * plugins/elements/gsttypefindelement.c:
510         (gst_type_find_element_have_type), (gst_type_find_element_init),
511         (gst_type_find_element_setcaps), (gst_type_find_element_chain):
512         Move detecting the input caps of the sinkpad to the setcaps function.
513         This allows us to update the output caps when we receive new input caps
514         instead of always using the first detected caps.
516 2007-10-08  Wim Taymans  <wim.taymans@gmail.com>
518         * libs/gst/base/gstbasesink.c: (gst_base_sink_event),
519         (gst_base_sink_get_position):
520         Don't try to preroll non-async elements after a flush.
521         Subtract latency form clock times when reporting position.
523 2007-10-05  Wim Taymans  <wim.taymans@gmail.com>
525         * gst/gstpad.c: (gst_pad_pause_task):
526         * gst/gstutils.c:
527         Small comment and documentation update.
529 2007-10-05  Wim Taymans  <wim.taymans@gmail.com>
531         * libs/gst/base/gstbasesrc.c: (gst_base_src_wait_playing),
532         (gst_base_src_set_live), (gst_base_src_is_live),
533         (gst_base_src_query_latency), (gst_base_src_perform_seek),
534         (gst_base_src_default_event), (gst_base_src_wait),
535         (gst_base_src_do_sync), (gst_base_src_get_range),
536         (gst_base_src_pad_get_range), (gst_base_src_loop),
537         (gst_base_src_unlock), (gst_base_src_unlock_stop),
538         (gst_base_src_set_flushing), (gst_base_src_set_playing),
539         (gst_base_src_activate_push), (gst_base_src_activate_pull),
540         (gst_base_src_change_state):
541         Rework the locking of basesrc in a similar fashion to basesink. We
542         basically have one lock (LIVE_LOCK) protecting the dataflow. This allows
543         us to handle live sources and semi live ones much better.
544         Simplify flushing.
545         Fix unlocking when seeking, shutting down and pausing in live sources.
547 2007-10-05  Wim Taymans  <wim.taymans@gmail.com>
549         * tests/check/pipelines/simple-launch-lines.c: (run_pipeline):
550         Fix compilation again.
552 2007-10-03  Stefan Kost  <ensonic@users.sf.net>
554         * gst/gstelement.c:
555           Use meaningful categories for the logs to clean the default one.
557 2007-10-03  Stefan Kost  <ensonic@users.sf.net>
559         * tests/check/pipelines/cleanup.c:
560           Print message name and not just number.
562 2007-10-03  Stefan Kost  <ensonic@users.sf.net>
564         * docs/design/draft-tagreading.txt:
565           Add some more thoughts.
567 2007-10-03  Stefan Kost  <ensonic@users.sf.net>
569         * tests/check/pipelines/simple-launch-lines.c:
570           Print message name and not just number.
572 2007-10-03  Stefan Kost  <ensonic@users.sf.net>
574         * libs/gst/base/gsttypefindhelper.c:
575           Speedup typefinding. This is work in progress (see #459862).
577 2007-10-03  Stefan Kost  <ensonic@users.sf.net>
579         * gst/gstplugin.c:
580           Fix docs that mention 'plugin_desc' instead of 'gst_plugin_desc'.
581           Spotted by Josep Torra Valles <josep@fluendo.com>.
583 2007-10-03  Tim-Philipp Müller  <tim at centricular dot net>
585         * gst/gstclock.h:
586           Fix up broken GST_CLOCK_FLAGS macro and GstClock docs. The flags
587           field has moved to GstObject.
589 2007-10-02  Wim Taymans  <wim.taymans@gmail.com>
591         * libs/gst/base/gstbasesrc.c: (gst_base_src_do_sync),
592         (gst_base_src_get_range), (gst_base_src_change_state):
593         Call unlock for live sources so that they can't get stuck in _create and
594         produce a buffer before they are set back to PLAYING.
596 2007-10-02  Edward Hervey  <bilboed@bilboed.com>
598         * plugins/elements/gstqueue.c: (gst_queue_locked_enqueue),
599         (gst_queue_locked_dequeue):
600         Comment the segment-related code... in the PROPER function.
601         See #482147 and my commit from yesterday.
603 2007-10-01  Wim Taymans  <wim.taymans@gmail.com>
605         * libs/gst/base/gstbasesrc.c: (gst_base_src_change_state):
606         Also initialize the counter that calculates the first timestamp on a
607         buffer correctly for non-live sources.
609 2007-10-01  Edward Hervey  <bilboed@bilboed.com>
611         * plugins/elements/gstqueue.c: (gst_queue_locked_dequeue):
612         Disable code that's breaking the current-time-level reporting.
613         See #482147
615 2007-09-30  Sebastian Dröge  <slomo@circular-chaos.org>
617         * docs/gst/gstreamer-sections.txt:
618         Add M_PI and IMPORT_SYMBOL to the private part of the GstInfo section
619         as they shouldn't show up. Fixes the docs build.
621 2007-09-29  Sebastien Moutte  <sebastien@moutte.net>
622         
623         * gst/gstinfo.h:
624         Add an explicit variable importation needed on VS6 (only for MSC_VER)
625         Define M_PI which is used in files which are including gstinfo.h. 
626         VS6 includes doesn't define it.
627         * win32/common/libgstbase.def:
628         * win32/common/libgstcontroller.def:
629         * win32/common/libgstreamer.def:
630         Add new exported functions and variables.
631         * win32/vs6/libgstcontroller.dsp:
632         * win32/vs6/libgstreamer.dsp:
633         Update the list of files to build.
634         
635 2007-09-28  Wim Taymans  <wim.taymans@gmail.com>
637         Patch by: Felipe Contreras <felipe dot contreras at gmail dot com>
639         * plugins/elements/gstqueue.c: (update_time_level), (apply_buffer),
640         (gst_queue_locked_dequeue), (gst_queue_handle_sink_event),
641         (gst_queue_chain), (gst_queue_loop), (gst_queue_src_activate_push):
642         Improve debugging. Fixes #480858.
644 2007-09-28  Wim Taymans  <wim.taymans@gmail.com>
646         Patch by: Felipe Contreras <felipe dot contreras at gmail dot com>
648         * plugins/elements/gstqueue.c: (gst_queue_handle_sink_event):
649         First patch of code cleanups, use the macros and right arguments in the
650         macros to signal and lock the queue. See #480858.
652 2007-09-26  Wim Taymans  <wim.taymans@gmail.com>
654         * gst/gstbus.c: (poll_func):
655         Improve debugging when dealing with _poll().
657 2007-09-26  Tim-Philipp Müller  <tim at centricular dot net>
659         * gst/gstregistryxml.c:
660           Fix memory leak I introduced a few days ago.
662 2007-09-26  Michael Smith <msmith@fluendo.com>
664         * gst/gstbuffer.c: (gst_buffer_finalize):
665           Make it once again possible to free GstBuffers in the default
666           build.
667           The poisoning scribbles on parts of the miniobject we need in
668           order to free it.
669           Fixes #480341
671 2007-09-25  Tim-Philipp Müller  <tim at centricular dot net>
673         * docs/gst/gstreamer-sections.txt:
674         * gst/gsttaglist.c:
675         * gst/gsttaglist.h:
676         API: add GST_TAG_COMPOSER, fixes #459809.
678 2007-09-24  Sebastian Dröge  <slomo@circular-chaos.org>
680         * gst/gstplugin.c:
681         * gst/gstplugin.h:
682         Add the 3-clause BSD license and the MIT/X11 license to the license
683         list. Fixes #479784.
685 2007-09-24  Tim-Philipp Müller  <tim at centricular dot net>
687         * docs/faq/getting.xml:
688           Add Q+A about different GStreamer versions (#364056).
690 2007-09-24  Wim Taymans  <wim.taymans@gmail.com>
692         * libs/gst/base/gstbasesink.c: (gst_base_sink_query_latency),
693         (gst_base_sink_event), (gst_base_sink_change_state):
694         Return correct gboolean from query function.
696 2007-09-24  Wim Taymans  <wim.taymans@gmail.com>
698         * libs/gst/base/gstbasesink.c: (gst_base_sink_query_latency),
699         (gst_base_sink_event), (gst_base_sink_query),
700         (gst_base_sink_change_state):
701         Simplify latency query.
702         When not synchronizing, we can report latency without querying the peer
703         element.
705 2007-09-24  Wim Taymans  <wim.taymans@gmail.com>
707         * gst/gstobject.h:
708         * gst/gstvalue.c:
709         Fix small typos in the docs.
711 2007-09-24  Wim Taymans  <wim.taymans@gmail.com>
713         * docs/design/draft-latency.txt:
714         * docs/design/draft-push-pull.txt:
715         * docs/design/draft-tagreading.txt:
716         * docs/design/part-MT-refcounting.txt:
717         * docs/design/part-activation.txt:
718         * docs/design/part-block.txt:
719         * docs/design/part-element-source.txt:
720         * docs/design/part-events.txt:
721         * docs/design/part-gstbin.txt:
722         * docs/design/part-gstelement.txt:
723         * docs/design/part-gstobject.txt:
724         * docs/design/part-gstpipeline.txt:
725         * docs/design/part-messages.txt:
726         * docs/design/part-preroll.txt:
727         * docs/design/part-push-pull.txt:
728         * docs/design/part-qos.txt:
729         * docs/design/part-query.txt:
730         * docs/design/part-scheduling.txt:
731         * docs/design/part-seeking.txt:
732         * docs/design/part-segments.txt:
733         * docs/design/part-states.txt:
734         Documentation updates and typo fixes.
736 2007-09-23  Tim-Philipp Müller  <tim at centricular dot net>
738         * plugins/elements/gstfakesink.c:
739           Add some debug text to error message to indicate that
740           we errored out on request.
742         * tools/gst-launch.c:
743           When the state change to PLAYING fails, check for an
744           error message on the bus and print it.
746 2007-09-22  Thomas Vander Stichele  <thomas at apestaart dot org>
748         translated by: Jorge González González <aloriel@gmail.com>
750         * po/LINGUAS:
751         * po/es.po:
752           Added Spanish translation.
754 2007-09-21  Wim Taymans  <wim.taymans@gmail.com>
756         * plugins/elements/gstqueue.c: (gst_queue_push_one):
757         Fix printf arguments.
759 2007-09-20  Stefan Kost  <ensonic@users.sf.net>
761         * tests/check/generic/states.c:
762           Improved state change unit test.
764 2007-09-20  Stefan Kost  <ensonic@users.sf.net>
766         * gst/gstbin.h:
767           Move priv to the right place.
769         * gst/gstsystemclock.c:
770           Add FIXME: and improve log.
772         * tests/check/Makefile.am:
773         * tests/examples/manual/Makefile.am:
774           Work with all types of registries.
776 2007-09-19  Wim Taymans  <wim.taymans@gmail.com>
778         * libs/gst/base/gstbasesrc.c: (gst_base_src_send_event):
779         Don't unref the event after pushing it. Fixes #478401.
781 2007-09-19  Stefan Kost  <ensonic@users.sf.net>
783         * .cvsignore:
784         * tests/examples/manual/.cvsignore:
785           Ignore registries in any format.
787 2007-09-19  Tim-Philipp Müller  <tim at centricular dot net>
789         * gst/glib-compat-private.h:
790           Add compatibility macro for g_intern_string() for
791           GLib-2.8 (any reason we can't just bump the
792           requirement to at least 2.10?)
794         * gst/gstpadtemplate.h:
795         * gst/gstelementfactory.c:
796         * gst/gstregistryxml.c:
797         * gst/gstregistrybinary.c:
798           Make GstStaticPadTemplate's templ_name field a const gchar * and fix
799           up the internal code accordingly.  This shouldn't be a problem, since
800           there is no reason external code could ever assume the string in such
801           a structure is dynamically allocated unless it did that itself;  the
802           use of g_strdup() is private to element factories.  The new code also
803           saves some memory by putting pad template name strings into the GLib
804           quark table instead of allocating them dynamically.
805           Declaring this field constant fixes warnings with g++-4.2 when using
806           the GST_STATIC_PAD_TEMPLATE macro in c++ code (#478092).
808 2007-09-19  Stefan Kost  <ensonic@users.sf.net>
810         * gst/gstelementfactory.c:
811           Release static caps. Fixes #475723.
813 2007-09-18  Tim-Philipp Müller  <tim at centricular dot net>
815         * gst/gstinfo.c:
816         * gst/gstinfo.h:
817           Make some internal API take const gchar * instead of just
818           gchar * to avoid compiler warnings with g++-4.2.2 when
819           passing string constants (partially fixes #478092).
821 2007-09-17  Wim Taymans  <wim.taymans@gmail.com>
823         * gst/gstbin.c: (bin_query_latency_fold), (gst_bin_query):
824         A latency query fails when one of the sinks fail.
826         * gst/gstelement.c: (gst_element_set_base_time):
827         Improve debugging.
829 2007-09-17  Jan Schmidt - Sun Microsystems <jan.schmidt@sun.com>
831         * gst/gstbin.c: (gst_bin_continue_func):
832         * libs/gst/base/gstbasesrc.c: (gst_base_src_do_sync):
833         * libs/gst/base/gstcollectpads.c: (gst_collect_pads_add_pad_full):
834         * plugins/elements/gstmultiqueue.c: (gst_multi_queue_loop):
836         Fix minor compilation warnings shown with Forte.
838 2007-09-17  Wim Taymans  <wim.taymans@gmail.com>
840         * plugins/elements/gstqueue.c: (apply_buffer),
841         (gst_queue_locked_enqueue), (gst_queue_locked_dequeue):
842         Measure queue level based on the diff between head and tail timestamps
843         even when pushing the first buffer.
845 2007-09-14  Wim Taymans  <wim.taymans@gmail.com>
847         * libs/gst/base/gstbasesink.c: (gst_base_sink_preroll_queue_flush),
848         (gst_base_sink_event), (gst_base_sink_change_state):
849         Sinks that don't preroll can always be queried for the latency.
850         Don't post ASYNC start when we are not async.
852 2007-09-14  Wim Taymans  <wim.taymans@gmail.com>
854         * plugins/elements/gstqueue.c: (gst_queue_locked_enqueue),
855         (gst_queue_handle_sink_event), (gst_queue_chain),
856         (gst_queue_push_one), (gst_queue_handle_src_query),
857         (gst_queue_sink_activate_push), (gst_queue_src_activate_push):
858         * plugins/elements/gstqueue.h:
859         When downstream returns UNEXPECTED from pushing a buffer, don't try to
860         push more buffers but allow pushing of EOS and NEWSEGMENT.
861         Add some more debug info here and there. Fixes #476514.
863 2007-09-14  Wim Taymans  <wim.taymans@gmail.com>
865         * libs/gst/base/gstbasesink.c: (gst_base_sink_init),
866         (gst_base_sink_preroll_queue_flush), (gst_base_sink_commit_state),
867         (gst_base_sink_wait_preroll), (gst_base_sink_needs_preroll),
868         (gst_base_sink_set_flushing), (gst_base_sink_query),
869         (gst_base_sink_change_state):
870         Latency query is allowed after we are prerolled. Introduce a new flag
871         for this and stop abusing other variables.
873 2007-09-13  Wim Taymans  <wim.taymans@gmail.com>
875         * libs/gst/base/gstbasesrc.c: (gst_base_src_send_event):
876         Push OOB events downstream when we get them in send_event. This allows
877         the application to insert events in the pipeline.
878         Add some more comments.
880 2007-09-13  Wim Taymans  <wim.taymans@gmail.com>
882         * gst/gstbin.c: (gst_bin_class_init), (clear_queue),
883         (do_bin_latency), (gst_bin_change_state_func):
884         * gst/gstpipeline.c: (gst_pipeline_change_state):
885         Move latency query from GstPipeline to GstBin so that we can also
886         use it when async-handling is enabled on bins.
888 2007-09-13  Wim Taymans  <wim.taymans@gmail.com>
890         * libs/gst/base/gstbasesrc.c: (gst_base_src_query_latency),
891         (gst_base_src_do_sync), (gst_base_src_change_state):
892         Update docs.
893         Clean up the timestamping and syncing code for pseudo live sources.
895 2007-09-13  Tim-Philipp Müller  <tim at centricular dot net>
897         Patch by: Steve Fink  <sphink gmail com>
899         * docs/manual/appendix-checklist.xml:
900           Mention less -R switch in the section about debug output (#474055).
902 2007-09-13  Wim Taymans  <wim.taymans@gmail.com>
904         * plugins/elements/gstqueue.c: (gst_queue_handle_src_query):
905         Queue can latency to the pipeline up to the configured max size in time.
906         Report this fact in the latency query.
908 2007-09-13  Sebastian Dröge  <slomo@circular-chaos.org>
910         Patch by: Sebastien Moutte <sebastien at moutte dot net>
912         * libs/gst/controller/gstinterpolation.c:
913         * libs/gst/controller/gstlfocontrolsource.c:
914         Use gst_guint64_to_gdouble() when converting from a uint64 or
915         GstClockTime to double to fix the build on win32. Fixes #474371.
917 2007-09-13  Sebastian Dröge  <slomo@circular-chaos.org>
919         * gst/gstbuffer.c: (gst_buffer_finalize):
920         Implement poisoning for GstBuffer if --enable-poisoning is specified.
921         When finalizing a buffer the complete struct is filled with 0xff,
922         thus making a use of the buffer after the final unref impossible.
924 2007-09-13  Sebastian Dröge  <slomo@circular-chaos.org>
926         * tests/check/libs/controller.c: (GST_START_TEST):
927         Use fail_unless_equals_int(a, b) instead of
928         fail_unless_equals (a == b) to get better output on failures.
930 2007-09-12  Tim-Philipp Müller  <tim at centricular dot net>
932         * tests/check/gst/gsturi.c:
933           Also check for the other file URI variant on win32.
935 2007-09-12  Tim-Philipp Müller  <tim at centricular dot net>
937         * gst/gsturi.c: (gst_uri_get_location):
938           If there's no hostname, we want to return 'c:/foo/bar.txt'
939           and not '/c:/foo/bar.txt' on Windows. Fixes #469402.
941         * tests/check/gst/gsturi.c:
942           Unit test for the above and a few more things.
944 2007-09-11  Wim Taymans  <wim.taymans@gmail.com>
946         * docs/design/part-live-source.txt:
947         Add docs on how live sources should timestamp.
949         * libs/gst/base/gstbasesrc.c: (gst_base_src_do_sync):
950         Add some more debug info.
951         For subclasses that are live and like to sync, add aditional startup
952         latency to sync time and timestamps so that we timstamp according to the
953         design doc.
955 2007-09-11  Tim-Philipp Müller  <tim at centricular dot net>
957         * gst/gstbuffer.c:
958           Also do a g_type_class_ref() for the subbuffer type in
959           the init function.
961 2007-09-11  Wim Taymans  <wim.taymans@gmail.com>
963         * docs/gst/gstreamer-sections.txt:
964         * gst/gstpad.c: (gst_pad_peer_query):
965         * gst/gstpad.h:
966         Add function to perform a query on the peer of a pad.
967         API: gst_pad_peer_query()
969 2007-09-11  Stefan Kost  <ensonic@users.sf.net>
971         * tests/check/gst/gstsystemclock.c:
972           Cleanup the test a little (use gst-logging and not g_message). Improve
973           test to check if a wait reached the target.
975 2007-09-11  Tim-Philipp Müller  <tim at centricular dot net>
977         * docs/libs/gstreamer-libs-sections.txt:
978           Add new API to docs and fix the build.
980 2007-09-10  Wim Taymans  <wim.taymans@gmail.com>
982         * libs/gst/base/gstbasesrc.c: (gst_base_src_class_init),
983         (gst_base_src_init), (gst_base_src_set_do_timestamp),
984         (gst_base_src_get_do_timestamp), (gst_base_src_set_property),
985         (gst_base_src_get_property), (gst_base_src_do_sync):
986         * libs/gst/base/gstbasesrc.h:
987         Add property to make the basesrc timestamp buffers based on the current
988         running time.
989         API: GstBaseSrc::do-timestamp
990         API: gst_base_src_set_do_timestamp()
991         API: gst_base_src_get_do_timestamp()
993 2007-09-08  Tim-Philipp Müller  <tim at centricular dot net>
995         * docs/random/release:
996           Really make sure translations are up-to-date before
997           a release (#465010).
999 2007-09-07  Sebastian Dröge  <slomo@circular-chaos.org>
1001         * gst/gstregistrybinary.c: (gst_registry_binary_read_cache):
1002         Always destroy the timer, also in error cases.
1004 2007-09-05  Wim Taymans  <wim.taymans@gmail.com>
1006         * docs/manual/highlevel-xml.xml:
1007         Fix XML example code. Fixes #472714.
1009 2007-09-05  Wim Taymans  <wim.taymans@gmail.com>
1011         * libs/gst/base/gstbasesink.c: (gst_base_sink_preroll_queue_flush),
1012         (gst_base_sink_wait_preroll), (gst_base_sink_needs_preroll),
1013         (gst_base_sink_query):
1014         Protect eos and have_preroll with the OBJECT lock so we don't need to
1015         take the PREROLL lock when querying the latency. Fixes #473846.
1017 2007-09-05  Stefan Kost  <ensonic@users.sf.net>
1019         * gst/gstelement.c:
1020           Give some log-messages a category.
1022 2007-09-04  Wim Taymans  <wim.taymans@gmail.com>
1024         * gst/gststructure.c:
1025         (gst_structure_fixate_field_nearest_fraction):
1026         Fix fraction list fixation code. Take the fraction with the smallest
1027         difference with the target instead of the first one in the list.
1029         * tests/check/gst/gststructure.c: (GST_START_TEST),
1030         (gst_structure_suite):
1031         Added test to verify correct fraction list fixation behaviour.
1033 2007-09-02  Tim-Philipp Müller  <tim at centricular dot net>
1035         * win32/common/libgstreamer.def:
1036           Export gst_bus_add_signal_watch too.
1038 2007-08-30  Wim Taymans  <wim.taymans@gmail.com>
1040         * docs/libs/gstreamer-libs-sections.txt:
1041         Add new methods to docs.
1043         * libs/gst/base/gstbasesink.c: (gst_base_sink_class_init),
1044         (gst_base_sink_init), (gst_base_sink_set_ts_offset),
1045         (gst_base_sink_get_ts_offset), (gst_base_sink_set_property),
1046         (gst_base_sink_get_property), (gst_base_sink_wait_clock):
1047         * libs/gst/base/gstbasesink.h:
1048         Add ts-offset property to fine-tune the synchronisation.
1049         API: GstBaseSink::ts-offset property
1050         API: gst_base_sink_set_ts_offset()
1051         API: gst_base_sink_get_ts_offset()
1053 2007-08-29  Wim Taymans  <wim.taymans@gmail.com>
1055         * libs/gst/base/gstbasesink.c: (gst_base_sink_class_init),
1056         (gst_base_sink_init), (gst_base_sink_set_sync),
1057         (gst_base_sink_get_sync), (gst_base_sink_set_max_lateness),
1058         (gst_base_sink_get_max_lateness), (gst_base_sink_set_qos_enabled),
1059         (gst_base_sink_is_qos_enabled), (gst_base_sink_set_async_enabled),
1060         (gst_base_sink_is_async_enabled), (gst_base_sink_set_property),
1061         (gst_base_sink_get_property), (gst_base_sink_change_state):
1062         * libs/gst/base/gstbasesink.h:
1063         Add async property to instruct the sink never to inform the parent about
1064         ASYNC state changes, update docs.
1065         Check argument with g_return_* for the public functions.
1066         API: GstBaseSink::async property
1067         API: gst_base_sink_set_async_enabled()
1068         API: gst_base_sink_is_async_enabled()
1070 2007-08-28  Wim Taymans  <wim.taymans@gmail.com>
1072         * libs/gst/base/gstbasesink.c: (gst_base_sink_loop):
1073         Improve debugging.
1075         * libs/gst/base/gstbasesrc.c: (gst_base_src_query_latency),
1076         (gst_base_src_default_query), (gst_base_src_wait),
1077         (gst_base_src_do_sync), (gst_base_src_change_state):
1078         Rearrange some code so that we can add support for measuring the 
1079         startup latency.
1081 2007-08-27  Stefan Kost  <ensonic@users.sf.net>
1083         * docs/random/ensonic/dynlink.txt:
1084           More thoughs on this.
1086         * plugins/elements/gstcapsfilter.c:
1087           Add bugzilla ticket number to FIXME comment.
1089 2007-08-24  Wim Taymans  <wim.taymans@gmail.com>
1091         * docs/design/part-TODO.txt:
1092         * docs/design/part-block.txt:
1093         Update some docs.
1095 2007-08-24  Jan Schmidt  <thaytan@mad.scientist.com>
1097         * gst/Makefile.am:
1098           Revert patch which uses $(gst_headers) instead of $^ because it
1099           breaks make dist.
1101 2007-08-24  Jan Schmidt  <thaytan@mad.scientist.com>
1103         * tests/check/gst/gstbin.c: (GST_START_TEST):
1104           Fix leaks in the new unit test.
1106 2007-08-23  Tim-Philipp Müller  <tim at centricular dot net>
1108         * gst/gst.c:
1109           Don't use GST_INFO before the debug system is actually initialised
1110           (shouldn't do any harm, but won't print anything either, so we can
1111           just as well remove it).
1113         * gst/gstinfo.h:
1114           GST_CAT_LEVEL_LOG_valist(), which is our inline helper function for
1115           compilers that don't support variadic macros (such as MSVC), should
1116           check for debug_level <= __gst_debug_min as well, since that's the
1117           function called from all the level-specific GST_CAT_*_LOG_OBJECT()
1118           inline helper functions. Should improve performance a bit, but also
1119           makes sure uses of GST_INFO et.al are ignored if the debugging
1120           system isn't initialised yet (instead of printing an assertion
1121           failure).
1123 2007-08-23  Stefan Kost  <ensonic@users.sf.net>
1125         patch by: David Nečas <yeti@physics.muni.cz>
1127         * gst/Makefile.am:
1128           Replace some non portable makefile constructs.
1130 2007-08-21  Stefan Kost  <ensonic@users.sf.net>
1132         * common/gtk-doc-plugins.mak:
1133           Grrrrr. Don't remove the types file on make clean.
1135 2007-08-20  Wim Taymans  <wim.taymans@gmail.com>
1137         * tools/gst-launch.1.in:
1138         Add colorspace to example pipeline. Fixes #458274.
1140 2007-08-20  Tim-Philipp Müller  <tim at centricular dot net>
1142         * docs/random/release:
1143           The release manager should run 'make download-po' before making a
1144           release to make sure translations are up-to-date.
1146         * po/LINGUAS:
1147         * po/be.po:
1148         * po/pl.po:
1149         * po/rw.po:
1150           Add some new translations.
1152 2007-08-17  Wim Taymans  <wim.taymans@gmail.com>
1154         * tools/gst-launch.c: (event_loop), (main):
1155         Don´t try to do any state management when a live pipeline posts
1156         buffering messages.
1157         Also make the buffering string translatable.
1159 2007-08-16  Wim Taymans  <wim.taymans@gmail.com>
1161         * gst/gstbin.c: (is_eos), (gst_bin_add_func),
1162         (bin_handle_async_start), (gst_bin_handle_message_func):
1163         Improve debugging.
1164         When adding elements, insert messages into the bus of the newly added
1165         element and make sure the element is the source of the message. This
1166         allows the parent bin to intercept the message and do the
1167         right thing. It also avoids us posting ASYNC_START and CLOCK_PROVIDE
1168         messages to the app (which is not allowed).
1169         Update some docs.
1171         * tests/check/gst/gstghostpad.c: (GST_START_TEST):
1172         Fix testsuite so that is does not work around messages that should not
1173         have been posted in the first place.
1175 2007-08-16  Wim Taymans  <wim.taymans@gmail.com>
1177         * gst/gstbin.c: (add_to_queue), (remove_from_queue), (clear_queue),
1178         (update_degree), (gst_bin_sort_iterator_next):
1179         Fix annoying bug in the sorted iterator where a sink that is not really
1180         a sink (when it has downstream links) screwed up the iterator.
1182         * tests/check/gst/gstbin.c: (GST_START_TEST), (gst_bin_suite):
1183         Unit test to verify the fix.
1185 2007-08-16  Wim Taymans  <wim.taymans@gmail.com>
1187         * gst/gstmessage.h:
1188         Add some more docs for the messages.
1190         * libs/gst/base/gstbasesink.c: (gst_base_sink_commit_state),
1191         (gst_base_sink_query):
1192         Add some more debugging.
1194         * tools/gst-launch.c: (event_loop):
1195         When interrupting, don't try to set pipeline to PAUSED twice.
1197 2007-08-14  Wim Taymans  <wim.taymans@gmail.com>
1199         
1200         * gst/gstbin.c: (gst_bin_add_func), (gst_bin_element_set_state),
1201         (bin_handle_async_start), (gst_bin_handle_message_func):
1202         Move ASYNC_START message posting to where it belongs, similar to
1203         async_done. 
1204         Don't post ASYNC_START when we are in error. 
1205         Post ASYNC_START when we added an async element to a bin.
1207 2007-08-14  Julien MOUTTE  <julien@moutte.net>
1209         * gst/gstindex.c: (gst_index_add_association): Fix index entry
1210         generation from vargs. Fixes #466595.
1212 2007-08-14  Wim Taymans  <wim.taymans@gmail.com>
1214         * gst/gstbin.c: (gst_bin_element_set_state):
1215         Always change the state of a NO_PREROLL element even if it has ASYNC
1216         elements inside (in case of a bin).
1218         * tests/check/generic/sinks.c: (GST_START_TEST), (gst_sinks_suite):
1219         Unit test for this case.
1221 2007-08-13  Stefan Kost  <ensonic@users.sf.net>
1223         * libs/gst/check/gstbufferstraw.c:
1224         * libs/gst/check/gstcheck.h:
1225         * libs/gst/controller/gstcontroller.c:
1226         * libs/gst/controller/gstcontrolsource.h:
1227         * libs/gst/controller/gstlfocontrolsource.h:
1228         * plugins/elements/gstcapsfilter.h:
1229         * plugins/elements/gstfdsink.h:
1230         * plugins/elements/gstfdsrc.h:
1231           Add more missing docs.
1233 2007-08-12  Wim Taymans  <wim.taymans@gmail.com>
1235         * gst/gststructure.c:
1236         Add Since tag to docs.
1238 2007-08-12  Wim Taymans  <wim.taymans@gmail.com>
1240         * docs/gst/gstreamer-sections.txt:
1241         * gst/gststructure.c: (gst_structure_get_uint):
1242         * gst/gststructure.h:
1243         Add function to get uint from a structure.
1244         API: gst_structure_get_uint()
1246 2007-08-12  Wim Taymans  <wim.taymans@gmail.com>
1248         * gst/gstcaps.c: (gst_caps_set_simple_valist),
1249         (gst_caps_intersect):
1250         Fix proper check for simple caps.
1252 2007-08-10  Stefan Kost  <ensonic@users.sf.net>
1254         * docs/gst/Makefile.am:
1255         * docs/libs/Makefile.am:
1256           Remove cruft and do some cleanups.
1258         * docs/gst/gstreamer-docs.sgml:
1259         * docs/libs/gstreamer-libs-docs.sgml:
1260           Prepare for comming gtkdoc features (rebase against online docs).
1262 2007-08-10  Michael Smith <msmith@fluendo.com>
1264         * docs/gst/gstreamer-sections.txt:
1265           Add gst_registry_add_path to docs.
1267 2007-08-10  Michael Smith <msmith@fluendo.com>
1269         * gst/gstregistry.h:
1270           Add gst_registry_add_path, which was missing from this header.
1272 2007-08-10  Tim-Philipp Müller  <tim at centricular dot net>
1274         * libs/gst/controller/gstlfocontrolsource.c:
1275           Printf format fix.
1277 2007-08-09  Philippe Kalaf <philippe.kalaf@collabora.co.uk>
1279         * libs/gst/base/gstbasesink.c:
1280           Don't send an async_start message during downwards state change if 
1281           target state is less than READY
1283 2007-08-09  Thomas Vander Stichele  <thomas at apestaart dot org>
1285         translated by: Gabor Kelemen <kelemeng@gnome.hu>
1287         * po/LINGUAS:
1288         * po/hu.po:
1289           Added Hungarian translation.
1291 2007-08-09  Thomas Vander Stichele  <thomas at apestaart dot org>
1293         * po/fi.po:
1294         * po/it.po:
1295         * po/nl.po:
1296         * po/sv.po:
1297         * po/uk.po:
1298           Updated translations.
1300 2007-08-07  Jan Schmidt  <thaytan@mad.scientist.com>
1302         * libs/gst/controller/Makefile.am:
1303         Dist gstlfocontrolsourceprivate.h
1305 2007-08-07  Jan Schmidt  <thaytan@mad.scientist.com>
1307         * docs/libs/gstreamer-libs.types:
1308         Don't register the enum type gst_lfo_waveform_get_type() in the
1309         .types file - only GObject derived types belong.
1311 2007-08-07  Wim Taymans  <wim.taymans@gmail.com>
1313         Patch by: <arenevier at fdn dot fr>
1315         * gst/gstbuffer.h:
1316         Remove comma from last element in enum to avoid compile errors when
1317         using -pendantic. Fixes #464366.
1319 2007-08-07  Wim Taymans  <wim.taymans@gmail.com>
1321         * docs/design/part-TODO.txt:
1322         Add some more TODO items
1324         * gst/gstbin.c: (find_message), (gst_bin_change_state_func):
1325         Improve debugging.
1327         * gst/gstcaps.c: (gst_caps_intersect):
1328         Optimize trivial intersection case between identical caps pointers.
1330         * gst/gstelement.c: (gst_element_continue_state),
1331         (gst_element_set_state_func):
1332         * gst/gstpad.c:
1333         Fix spelling and grammar mistakes.
1335 2007-08-05  Stefan Kost  <ensonic@users.sf.net>
1337         * po/POTFILES.in:
1338         * po/POTFILES.skip:
1339           Update POTFILES. Fixes #461599.
1341 2007-08-03  Sebastian Dröge  <slomo@circular-chaos.org>
1343         * gst/gst.c:
1344         Fix confusing typo in debug output.
1346 2007-08-03  Sebastian Dröge  <slomo@circular-chaos.org>
1348         reviewed by: Stefan Kost <ensonic@users.sf.net>
1350         * libs/gst/controller/Makefile.am:
1351         * libs/gst/controller/gstlfocontrolsource.c: (_calculate_pos),
1352         (gst_lfo_waveform_get_type), (gst_lfo_control_source_reset),
1353         (gst_lfo_control_source_new),
1354         (gst_lfo_control_source_set_waveform),
1355         (gst_lfo_control_source_bind), (gst_lfo_control_source_init),
1356         (gst_lfo_control_source_finalize),
1357         (gst_lfo_control_source_dispose),
1358         (gst_lfo_control_source_set_property),
1359         (gst_lfo_control_source_get_property),
1360         (gst_lfo_control_source_class_init):
1361         * libs/gst/controller/gstlfocontrolsource.h:
1362         * libs/gst/controller/gstlfocontrolsourceprivate.h:
1363         API: Add GstLFOControlSource, a control source that gives values
1364         for specific timestamps based on several periodic waveforms.
1365         Fixes #459717.
1367         * tests/check/libs/controller.c: (GST_START_TEST),
1368         (gst_controller_suite):
1369         * docs/libs/gstreamer-libs-docs.sgml:
1370         * docs/libs/gstreamer-libs-sections.txt:
1371         * docs/libs/gstreamer-libs.types:
1372         Add documentation and unit tests for GstLFOControlSource.
1374 2007-08-03  Jan Schmidt  <thaytan@mad.scientist.com>
1376         * configure.ac:
1377         Back to CVS
1379 === release 0.10.14 ===
1381 2007-08-03  Jan Schmidt <thaytan@mad.scientist.com>
1383         * configure.ac:
1384           releasing 0.10.14, "Breathing Vacuum"
1386 2007-08-02  Tim-Philipp Müller  <tim at centricular dot net>
1388         * gst/gstelement.c: (gst_element_class_set_details_simple):
1389         * gst/gstelement.h:
1390           Make strings passed to gst_element_class_set_details_simple()
1391           constant, as they should be (#462752).
1393 2007-08-02  Wim Taymans  <wim.taymans@gmail.com>
1395         * gst/gstbin.c: (gst_bin_change_state_func),
1396         (bin_handle_async_done), (gst_bin_handle_message_func):
1397         Don't forget about the fact that some element went ASYNC even after a
1398         resync. This makes us post the ASYNC_DONE message correctly.
1399         Fixes #462558.
1401 2007-07-31  Jan Schmidt  <thaytan@mad.scientist.com>
1403         * gst/gstregistry.c: (gst_registry_add_feature):
1404         When replacing an existing feature in the registry, make sure to
1405         continue holding a reference until we've replaced the name string
1406         within our feature hash table. Make sure to use g_hash_table_replace
1407         instead of g_hash_table_insert to ensure the new name string is used
1408         as a key instead of the old one that we're about to free.
1409         Fixes: #462085
1411 2007-07-31  Jan Schmidt  <thaytan@mad.scientist.com>
1413         * gst/gstpluginfeature.c: (gst_plugin_feature_finalize),
1414         (gst_plugin_feature_set_name):
1415         Revert patch from #459466 until after the release and we can work
1416         out exactly what the problem is (if any).
1418 2007-07-26  Tim-Philipp Müller  <tim at centricular dot net>
1420         * docs/gst/gstreamer-sections.txt:
1421         * gst/gsttaglist.c:
1422         * gst/gsttaglist.h:
1423           API: add GST_TAG_LICENSE_URI and GST_TAG_COPYRIGHT_URI (#451939).
1425 2007-07-26  Jan Schmidt  <thaytan@mad.scientist.com>
1427         * docs/libs/Makefile.am:
1428         Include our build-prefix libs and includes before the generic ones to
1429         avoid linking against the installed libs when we want the build-tree
1430         ones.
1432 2007-07-26  Tim-Philipp Müller  <tim at centricular dot net>
1434         Patch by: Steve Fink  <sphink gmail com>
1436         * docs/pwg/building-testapp.xml:
1437           Mention that GST_PLUGIN_PATH or --gst-plugin-path might be needed
1438           if people try to build or install the example from the plugin
1439           template against a GStreamer from package using the configure
1440           defaults.
1442 2007-07-25  Tim-Philipp Müller  <tim at centricular dot net>
1444         Patch by: Steve Fink  <sphink gmail com>
1446         * tools/gst-inspect.1.in:
1447           Document --print-all and --print-plugin-auto-install-info command
1448           line options in man page.
1450 2007-07-25  Wim Taymans  <wim.taymans@gmail.com>
1452         * docs/gst/gstreamer-sections.txt:
1453         Add docs for new api function.
1455 2007-07-25  Wim Taymans  <wim.taymans@gmail.com>
1457         * gst/gstelementfactory.c: (gst_element_factory_has_interface):
1458         * gst/gstelementfactory.h:
1459         API: gst_element_factory_has_interface()
1460         Added method to check if an element factory implements a named
1461         interface.
1463 2007-07-25  Stefan Kost  <ensonic@users.sf.net>
1465         * configure.ac:
1466         * docs/gst/gstreamer.types.in:
1467           Another conditional doc check.
1469         * gst/gstmessage.c:
1470         * gst/gstparamspecs.h:
1471         * gst/gstregistrybinary.c: (gst_registry_binary_read_cache):
1472         * gst/gstvalue.c:
1473         * gst/gstxml.h:
1474           API-doc fixes.
1476 2007-07-24  Stefan Kost  <ensonic@users.sf.net>
1478         * gst/gstregistrybinary.c: (gst_registry_binary_check_magic),
1479         (gst_registry_binary_load_feature),
1480         (gst_registry_binary_load_plugin),
1481         (gst_registry_binary_read_cache):
1482           Print error just once and with additional info.
1484 2007-07-24  Stefan Kost  <ensonic@users.sf.net>
1486         * libs/gst/base/gsttypefindhelper.c: (helper_find_peek),
1487         (helper_find_suggest), (helper_find_get_length),
1488         (gst_type_find_helper_get_range), (buf_helper_find_suggest),
1489         (gst_type_find_helper_for_buffer):
1490           Cleanup the typefindhelper code and add private doc comments.
1492 2007-07-24  Edward Hervey  <bilboed@bilboed.com>
1494         * plugins/elements/gstcapsfilter.c: (gst_capsfilter_class_init),
1495         (gst_capsfilter_transform_size), (gst_capsfilter_prepare_buf):
1496         Fix capsfilter for cases where the caps set on capsfilter will provide
1497         additional information.
1498         Fixes #449197
1500 2007-07-24  Stefan Kost  <ensonic@users.sf.net>
1502         * gst/gsttypefindfactory.c:
1503           Fix docs that recommened wrong function to use.
1505 2007-07-23  Stefan Kost  <ensonic@users.sf.net>
1507         * tools/gst-inspect.c: (print_plugin_features):
1508           Also give media-type for typefinders in element output.
1510 2007-07-23  Stefan Kost  <ensonic@users.sf.net>
1512         * gst/gstregistry.c: (gst_registry_init), (gst_registry_finalize),
1513         (gst_registry_remove_features_for_plugin_unlocked),
1514         (gst_registry_add_feature), (gst_registry_remove_feature),
1515         (gst_registry_lookup_feature_locked):
1516         * gst/gstregistry.h:
1517           Speed up gst_registry_lookup_feature_locked() by using a hashmap.
1518           Fixes #459501.
1520 2007-07-23  Stefan Kost  <ensonic@users.sf.net>
1522         * gst/gstpluginfeature.c: (gst_plugin_feature_finalize),
1523         (gst_plugin_feature_set_name):
1524           Avoid double memory usage for pluginfeature names. Fixes #459466.
1526 2007-07-22  Tim-Philipp Müller  <tim at centricular dot net>
1528         * gst/gstpad.h:
1529           Small addition to GST_FLOW_IS_FATAL() docs: mention that elements
1530           driving the pipeline may need to explicitly check for NOT_LINKED as
1531           well, since IS_FATAL doesn't cover that.
1533 2007-07-22  Tim-Philipp Müller  <tim at centricular dot net>
1535         * docs/pwg/advanced-types.xml:
1536           Fix typo and duplicate entry in video formats list.
1538 2007-07-22  Sebastian Dröge  <slomo@circular-chaos.org>
1540         * libs/gst/controller/gstinterpolation.c:
1541         Also round to the nearest int when using cubic interpolation.
1543 2007-07-19  Jan Schmidt  <thaytan@noraisin.net>
1545         * libs/gst/controller/gstinterpolation.c:
1546         When linearly interpolating integer types, round to the nearest int
1547         by adding 0.5. Don't do it for float/double types.
1548         Fixes the failing controller test on my machine, which is somehow
1549         rounding differently than on the buildbots.
1551 2007-07-20  Stefan Kost  <ensonic@users.sf.net>
1553         * tools/gst-plot-timeline.py:
1554           Better log parsing (categories can have -). Adjust text vs. lines, so
1555           that they span the same y-range.        
1557 2007-07-20  Stefan Kost  <ensonic@users.sf.net>
1559         * docs/random/ensonic/audiobaseclasses.txt:
1560         * docs/random/ensonic/dynlink.txt:
1561         * docs/random/ensonic/profiling.txt:
1562           Save my thoughts.
1564         * docs/random/moving-plugins:
1565           Add note to use g_assert type macros.
1567 2007-07-20  Stefan Kost  <ensonic@users.sf.net>
1569         * configure.ac:
1570         * libs/gst/check/Makefile.am:
1571           Add libm check as we use in for plugins.
1573 2007-07-18  Jan Schmidt  <thaytan@noraisin.net>
1575         * gst/gstbin.c: (gst_bin_continue_func):
1576         Check that the state_cookie hasn't changed since the continue_func
1577         was scheduled. Avoids problems where the state changes back to
1578         something it shouldn't be because it was changed in the meantime.
1580 2007-07-17  Stefan Kost  <ensonic@users.sf.net>
1582         * gst/gstregistrybinary.c: (gst_registry_binary_save_const_string),
1583         (gst_registry_binary_save_string),
1584         (gst_registry_binary_save_pad_template),
1585         (gst_registry_binary_save_feature),
1586         (gst_registry_binary_save_plugin),
1587         (gst_registry_binary_load_feature),
1588         (gst_registry_binary_load_plugin),
1589         (gst_registry_binary_read_cache):
1590           Fix memory leak. Be less verbose in the log.
1592 2007-07-16  Jan Schmidt  <thaytan@mad.scientist.com>
1594         * tests/check/elements/.cvsignore:
1595         Add file to cvsignore as commanded.
1597 2007-07-16  Jan Schmidt  <thaytan@mad.scientist.com>
1599         * tests/check/elements/multiqueue.c: (mq_dummypad_chain),
1600         (mq_dummypad_event), (run_output_order_test):
1601         Use a GStaticMutex to protect all cases where libcheck
1602         fail_if/fail_unless macros might be called from multiple threads
1603         simultaneously to avoid errors like:
1604           "check_pack.c:107: :-1081725400:Bad message type arg"
1606 2007-07-16  Jan Schmidt  <thaytan@mad.scientist.com>
1608         * tests/check/pipelines/stress.c: (GST_START_TEST):
1609         Make sure we set the pipeline back to the NULL state before
1610         dropping our final reference.
1612 2007-07-16  Jan Schmidt  <thaytan@mad.scientist.com>
1614         * tests/check/elements/tee.c: (GST_START_TEST):
1615         Make the tee stress-test a little less stressful so it doesn't just
1616         time out on slow-machines, and remove a small race when it's starting 
1617         up by adding a get_state() call.
1619 2007-07-16  Stefan Kost  <ensonic@users.sf.net>
1621         * gst/gst.c:
1622           Avoid reading registry twice on startup. Fixes #457322.
1624 2007-07-13  Jan Schmidt  <thaytan@mad.scientist.com>
1626         * pkgconfig/gstreamer-check-uninstalled.pc.in:
1627         * pkgconfig/gstreamer-check.pc.in:
1628         Substitute the CFLAGS for libcheck into our .pc file too so that
1629         dependent modules will pick it up properly if libcheck is installed
1630         into some other prefix.
1632 2007-07-13  Jan Schmidt  <thaytan@mad.scientist.com>
1634         * configure.ac:
1635         Revert the pkg-config check for libcheck, since it pulls in the
1636         wrong non-PIC libcheck.a on Ubuntu and probably Fedora too. We need
1637         a proper solution, either from the check project, or something else.
1639 2007-07-12  Stefan Kost  <ensonic@users.sf.net>
1641         * configure.ac:
1642           Use pkg-config to locate check.
1644 2007-07-10  Stefan Kost  <ensonic@users.sf.net>
1646         * gst/gsttaglist.c:
1647           Fix doc syntax.
1649         * gst/gstutils.c:
1650         * gst/gstutils.h:
1651           Add deprecation guards.
1653         * libs/gst/base/gstcollectpads.h:
1654           Don't document object (this is implicitly private).
1656 2007-07-08  Tim-Philipp Müller  <tim at centricular dot net>
1658         * gst/gststructure.c: (gst_structure_parse_value):
1659           When deserialising foo=bar without a type cast, check if it's a
1660           boolean before falling back to a string type, otherwise things like
1661           audiotestsrc ! audio/x-raw-int,signed=true ! fakesink won't work,
1662           because the filtercaps end up having a signed=(string)true field,
1663           which causes problems later when intersection caps.
1665         * tests/check/gst/gststructure.c: (GST_START_TEST):
1666           Add a unit test for this.
1668 2007-07-06  Sebastian Dröge  <slomo@circular-chaos.org>
1670         Reviewed by: Stefan Kost <ensonic@users.sf.net>
1672         * libs/gst/controller/Makefile.am:
1673         * libs/gst/controller/gstcontroller.c:
1674         (gst_controlled_property_add_interpolation_control_source),
1675         (gst_controlled_property_new), (gst_controlled_property_free),
1676         (gst_controller_find_controlled_property),
1677         (gst_controller_new_valist), (gst_controller_new_list),
1678         (gst_controller_new), (gst_controller_remove_properties_valist),
1679         (gst_controller_remove_properties_list),
1680         (gst_controller_remove_properties),
1681         (gst_controller_set_property_disabled),
1682         (gst_controller_set_disabled), (gst_controller_set_control_source),
1683         (gst_controller_get_control_source), (gst_controller_get),
1684         (gst_controller_sync_values), (gst_controller_get_value_array),
1685         (_gst_controller_dispose), (gst_controller_get_type),
1686         (gst_controlled_property_set_interpolation_mode),
1687         (gst_controller_set), (gst_controller_set_from_list),
1688         (gst_controller_unset), (gst_controller_unset_all),
1689         (gst_controller_get_all), (gst_controller_set_interpolation_mode):
1690         * libs/gst/controller/gstcontroller.h:
1691         * libs/gst/controller/gstcontrollerprivate.h:
1692         * libs/gst/controller/gstcontrolsource.c:
1693         (gst_control_source_class_init), (gst_control_source_init),
1694         (gst_control_source_get_value),
1695         (gst_control_source_get_value_array), (gst_control_source_bind):
1696         * libs/gst/controller/gstcontrolsource.h:
1697         * libs/gst/controller/gsthelper.c: (gst_object_set_control_source),
1698         (gst_object_get_control_source):
1699         * libs/gst/controller/gstinterpolation.c:
1700         (gst_interpolation_control_source_find_control_point_node),
1701         (gst_interpolation_control_source_get_first_value),
1702         (_interpolate_none_get), (interpolate_none_get),
1703         (interpolate_none_get_boolean_value_array),
1704         (interpolate_none_get_enum_value_array),
1705         (interpolate_none_get_string_value_array),
1706         (_interpolate_trigger_get), (interpolate_trigger_get),
1707         (interpolate_trigger_get_boolean_value_array),
1708         (interpolate_trigger_get_enum_value_array),
1709         (interpolate_trigger_get_string_value_array):
1710         * libs/gst/controller/gstinterpolationcontrolsource.c:
1711         (gst_control_point_free), (gst_interpolation_control_source_reset),
1712         (gst_interpolation_control_source_new),
1713         (gst_interpolation_control_source_set_interpolation_mode),
1714         (gst_interpolation_control_source_bind),
1715         (gst_control_point_compare), (gst_control_point_find),
1716         (gst_interpolation_control_source_set_internal),
1717         (gst_interpolation_control_source_set),
1718         (gst_interpolation_control_source_set_from_list),
1719         (gst_interpolation_control_source_unset),
1720         (gst_interpolation_control_source_unset_all),
1721         (gst_interpolation_control_source_get_all),
1722         (gst_interpolation_control_source_get_count),
1723         (gst_interpolation_control_source_init),
1724         (gst_interpolation_control_source_finalize),
1725         (gst_interpolation_control_source_dispose),
1726         (gst_interpolation_control_source_class_init):
1727         * libs/gst/controller/gstinterpolationcontrolsource.h:
1728         * libs/gst/controller/gstinterpolationcontrolsourceprivate.h:
1729         API: Refactor GstController into the core controller which can take
1730         a GstControlSource for providing actual values for timestamps.
1731         Implement a interpolation control source and use this for backward
1732         compatibility, deprecate a bunch of functions that are now handled
1733         by GstControlSource or GstInterpolationControlSource.
1734         Make it possible to disable the controller completely or only for
1735         specific properties. Fixes #450711.
1736         * docs/libs/gstreamer-libs-docs.sgml:
1737         * docs/libs/gstreamer-libs-sections.txt:
1738         * docs/libs/gstreamer-libs.types:
1739         Add new functions and classes to the docs.
1740         * tests/check/libs/controller.c: (GST_START_TEST),
1741         (gst_controller_suite):
1742         * tests/examples/controller/audio-example.c: (main):
1743         Port unit test and example to the new API and add some new
1744         unit tests.
1746 2007-07-05  Wim Taymans  <wim.taymans@gmail.com>
1748         Patch by: Mark Nauwelaerts <manauw at skynet be>
1750         * plugins/elements/gstmultiqueue.c:
1751         (gst_multi_queue_get_internal_links), (apply_buffer),
1752         (single_queue_overrun_cb), (gst_single_queue_new):
1753         Implement non-default GstPadIntLinkFunction for multiqueue pads so that
1754         the pipeline layout can be tracked correctly. Fixes #453732.
1756 2007-07-05  Stefan Kost  <ensonic@users.sf.net>
1758         * docs/gst/Makefile.am:
1759         * docs/libs/Makefile.am:
1760         * docs/plugins/Makefile.am:
1761           Simplify --extra-dir as gtkdoc scans recursively.
1763 2007-07-03  Wim Taymans  <wim.taymans@gmail.com>
1765         * tools/gst-launch.c: (main):
1766         When we got an error, there is no point in waiting for preroll when
1767         shutting down.
1769 2007-07-03  Wim Taymans  <wim.taymans@gmail.com>
1771         * plugins/elements/gsttee.c: (gst_tee_base_init),
1772         (gst_tee_request_new_pad), (gst_tee_release_pad),
1773         (gst_tee_find_buffer_alloc), (gst_tee_buffer_alloc),
1774         (gst_tee_do_push), (clear_pads), (gst_tee_handle_buffer),
1775         (gst_tee_chain):
1776         Be a lot smarter when deciding what srcpad to use for proxying
1777         the buffer_alloc. Also handle pad added/removed when doing so.
1778         Fixes #357959.
1779         Keep track of what pads we already pushed on in case we have pads
1780         added/removed while pushing. Fixes #374639 
1782         * tests/check/Makefile.am:
1783         * tests/check/elements/tee.c: (handoff), (GST_START_TEST),
1784         (tee_suite):
1785         Added unit test for pad resync.
1787 2007-07-01  Thomas Vander Stichele  <thomas at apestaart dot org>
1789         * po/nl.po:
1790         * po/sv.po:
1791           Updated translations.
1793 2007-07-01  Thomas Vander Stichele  <thomas at apestaart dot org>
1795         translation by: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>
1797         * po/LINGUAS:
1798         * po/fi.po:
1799           Added new Finnish translation.
1801 2007-06-28  Wim Taymans  <wim@fluendo.com>
1803         * plugins/elements/gstmultiqueue.c: (apply_buffer),
1804         (single_queue_overrun_cb):
1805         When figuring out when a queue is filled, use our internal time estimate
1806         based on segments, just like check_full does.
1808 2007-06-27  Stefan Kost  <ensonic@users.sf.net>
1810         * gst/gstminiobject.c: (gst_mini_object_get_type):
1811           Remove 3 do-nothing methods.
1813 2007-06-27  Wim Taymans  <wim@fluendo.com>
1815         Patch by: Tim Angus <tim at ngus dot net>
1817         * plugins/elements/gstcapsfilter.c: (gst_capsfilter_class_init),
1818         (gst_capsfilter_set_property):
1819         Take a reference instead of a copy when setting "caps".
1820         Fix documentation to clarify this behaviour. Fixes #449414.
1822 2007-06-27  Stefan Kost  <ensonic@users.sf.net>
1824         * gst/gstindexfactory.c: (gst_index_factory_get_type):
1825         * gst/gstplugin.c: (gst_plugin_init):
1826         * gst/gstpluginfeature.c: (gst_plugin_feature_init):
1827         * gst/gstquery.c: (gst_query_get_type):
1828         * gst/gstregistry.c: (gst_registry_init):
1829         * gst/gsturi.c: (gst_uri_handler_base_init):
1830           Remove empty instance_init() functions to save relocs and lessen the
1831           noise. Remove some of the function prototypes that are doubled by
1832           G_DEFINE_TYPE.
1833           
1834 2007-06-27  Wim Taymans  <wim@fluendo.com>
1836         Patch by: Étienne Noreau-Hébert <etienne at deepunder dot org>
1838         * gst/gstghostpad.c: (gst_proxy_pad_save_thyself):
1839         Add peer and direction in the XML serialisation of ghostpads.
1840         Fixes #449226.
1842 2007-06-26  Stefan Kost  <ensonic@users.sf.net>
1844         * configure.ac:
1845           Preserve useful information, thanks Tim.
1847 2007-06-26  Jan Schmidt  <thaytan@noraisin.net>
1849         * plugins/elements/gstmultiqueue.c: (gst_multi_queue_init),
1850         (gst_single_queue_flush), (apply_segment), (apply_buffer),
1851         (gst_single_queue_push_one), (gst_multi_queue_loop),
1852         (gst_multi_queue_sink_activate_push), (gst_multi_queue_sink_event),
1853         (gst_multi_queue_src_activate_push), (wake_up_next_non_linked),
1854         (compute_high_id), (gst_single_queue_new):
1855         * plugins/elements/gstmultiqueue.h:
1856         Take the multiqueue lock when updating the fill level so we don't get
1857         confused. 
1859         After applying a buffer or event on the src pad segment, make sure to
1860         call gst_data_queue_limits_changed() to get the data queue to unblock
1861         and check the filled state again.
1862         
1863         Rework the not-linked pad handling so the logic is that not-linked 
1864         pads can push as fast as they like, but only so they never get 
1865         ahead of any linked pads.
1867         * tests/check/elements/multiqueue.c: (mq_sinkpad_to_srcpad),
1868         (mq_dummypad_getcaps), (mq_dummypad_chain), (mq_dummypad_event),
1869         (run_output_order_test), (GST_START_TEST), (multiqueue_suite):
1871         Add a test to check that not-linked pads always stay behind
1872         linked pads.
1874         Fixes: #430682
1876 2007-06-26  Jan Schmidt  <thaytan@mad.scientist.com>
1878         * docs/random/release:
1879           Some updates to the release procedure.
1881 2007-06-26  Stefan Kost  <ensonic@users.sf.net>
1883         * gst/gstelementfactory.c: (__gst_element_details_clear):
1884           Microoptimization that saves stunning 80 bytes.
1886 2007-06-25  Stefan Kost  <ensonic@users.sf.net>
1888         * docs/plugins/gstreamer-plugins.args:
1889         * docs/plugins/inspect/plugin-coreelements.xml:
1890         * docs/plugins/inspect/plugin-coreindexers.xml:
1891           Update docs with caps info.
1893 2007-06-24  Thomas Vander Stichele  <thomas at apestaart dot org>
1895         * po/it.po:
1896           Updated Italian translation.
1898 2007-06-23  Thomas Vander Stichele  <thomas at apestaart dot org>
1900         * ChangeLog:
1901         * po/vi.po:
1902           Update Vietnamese translations.
1904 2007-06-21  Tim-Philipp Müller  <tim at centricular dot net>
1906         * libs/gst/base/gstbasesink.c:
1907           Remove unused signal enum.
1909 2007-06-21  Jan Schmidt  <thaytan@mad.scientist.com>
1911         * docs/gst/gstreamer-sections.txt:
1912         * gst/gstelement.c:
1913         * gst/gstutils.c: (gst_type_register_static_full):
1914         Beef up and include the docs for gst_type_register_static_full and
1915         gst_element_class_set_details_simple and add the API keyword
1916         in the ChangeLog.
1918 2007-06-21  Jan Schmidt  <thaytan@mad.scientist.com>
1920         * plugins/elements/gstmultiqueue.c: (gst_multi_queue_set_property),
1921         (update_time_level), (gst_single_queue_push_one),
1922         (gst_multi_queue_chain), (gst_multi_queue_sink_event),
1923         (single_queue_overrun_cb), (single_queue_underrun_cb),
1924         (single_queue_check_full):
1925         Fix setting max-* properties after adding queues.
1926         Use IS_FILLED for checking visible items.
1927         Signal overrun if multiple queues overrun.
1928         Add extra debug output.
1929         Patch by: Wim Taymans <wim@fluendo.com>
1931 2007-06-21  Stefan Kost  <ensonic@users.sf.net>
1933         * gst/gstelement.c: (gst_element_class_set_details_simple):
1934         * gst/gstelement.h:
1935         * gst/gstutils.c: (gst_type_register_static_full):
1936         * gst/gstutils.h:
1937         * plugins/elements/gstcapsfilter.c: (gst_capsfilter_base_init):
1938         * plugins/elements/gstfakesink.c: (gst_fake_sink_base_init):
1939         * plugins/elements/gstfakesrc.c: (gst_fake_src_base_init):
1940         * plugins/elements/gstfdsink.c: (gst_fd_sink_base_init):
1941         * plugins/elements/gstfdsrc.c: (gst_fd_src_base_init):
1942         * plugins/elements/gstfilesink.c: (gst_file_sink_base_init):
1943         * plugins/elements/gstfilesrc.c: (gst_file_src_base_init):
1944         * plugins/elements/gstidentity.c: (gst_identity_base_init):
1945         * plugins/elements/gstmultiqueue.c: (gst_multi_queue_base_init):
1946         * plugins/elements/gstqueue.c: (gst_queue_base_init),
1947         (apply_buffer), (gst_queue_chain):
1948         * plugins/elements/gsttee.c: (gst_tee_base_init):
1949         * plugins/elements/gsttypefindelement.c:
1950         (gst_type_find_element_base_init),
1951         (gst_type_find_element_class_init):
1952           Saving relocations for GTypeInfo and GstElementDetails. Fixes #437457.
1953           API: add gst_type_register_static_full
1954           API: add gst_element_class_set_details_simple
1956 2007-06-21  Tim-Philipp Müller  <tim at centricular dot net>
1958         * docs/pwg/advanced-types.xml:
1959           Fix typo in iana.org URI.
1961 2007-06-19  Andy Wingo  <wingo@pobox.com>
1963         * tests/check/pipelines/simple-launch-lines.c
1964         (test_state_change_returns): Enable pull-mode tests now that
1965         basesink has been fixed.
1967         * libs/gst/base/gstbasesink.c (gst_base_sink_needs_preroll):
1968         Changed from gst_base_sink_is_prerolled, reversing the sense of
1969         the return value. Returns FALSE also if the sink is in pull mode,
1970         in which case it needs no preroll.
1971         (gst_base_sink_query, gst_base_sink_change_state): Update for
1972         needs_preroll change.
1973         (gst_base_sink_change_state): Add a case for READY_TO_PAUSED after
1974         chaining up, in which we return SUCCESS directly if we activated
1975         in pull mode instead of ASYNC. Involves countering an async_start
1976         message sent before chaining up; not sure if this is correct, in
1977         an ideal world we only send async-start when activating in push
1978         mode.
1980         * tests/check/pipelines/simple-launch-lines.c
1981         (test_state_change_returns): New test, partially disabled until
1982         basesink is fixed.
1984 2007-06-19  Wim Taymans  <wim@fluendo.com>
1986         * plugins/elements/gstmultiqueue.c: (apply_buffer),
1987         (gst_multi_queue_sink_event):
1988         Fix event leak.
1990 2007-06-19  Wim Taymans  <wim@fluendo.com>
1992         * gst/gstbin.c: (gst_bin_add_func), (gst_bin_remove_func),
1993         (gst_bin_change_state_func), (bin_push_state_continue),
1994         (bin_handle_async_start), (bin_handle_async_done),
1995         (gst_bin_handle_message_func):
1996         Move the common code for posting state-change messages into
1997         one function.
1998         Broadcast the state signal after we posted the messages.
1999         Mark the bin as busy when it's doing a state-change.
2000         Make sure async-start/done messages don't interfere with the bin's
2001         state when it's busy.
2002         After the state change, let the bin check which elements completed the
2003         state change while it was busy so that it can update its state.
2005 2007-06-19  Jan Schmidt  <thaytan@mad.scientist.com>
2007         * docs/random/release:
2008         Add a note about updating the doap file to the release checklist
2010 2007-06-18  Wim Taymans  <wim@fluendo.com>
2012         * plugins/elements/gstmultiqueue.c: (apply_buffer),
2013         (gst_single_queue_push_one), (gst_multi_queue_chain),
2014         (gst_multi_queue_sink_event):
2015         Make sure we don't reference the buffer/event after we have given away
2016         ownership in the queue.
2018 2007-06-18  Wim Taymans  <wim@fluendo.com>
2020         * plugins/elements/gstmultiqueue.c: (gst_single_queue_flush),
2021         (gst_multi_queue_chain), (gst_multi_queue_sink_event):
2022         Update queue state _after_ adding the item in the queue because else we
2023         could end up being full without the element added yet.
2025 2007-06-18  Wim Taymans  <wim@fluendo.com>
2027         * gst/gstbin.c: (gst_bin_init), (gst_bin_add_func),
2028         (gst_bin_remove_func), (gst_bin_get_state_func),
2029         (gst_bin_element_set_state), (gst_bin_continue_func),
2030         (bin_push_state_continue), (bin_handle_async_start),
2031         (bin_handle_async_done), (gst_bin_handle_message_func):
2032         * gst/gstbin.h:
2033         Immediatly commit the toplevel bin state when receiving an async-done
2034         message. This enables us to avoid spawning a thread to commit the state
2035         in some common cases and it also avoids some races.
2036         Avoid spawning a state thread when adding/removing async elements to a
2037         toplevel bin. Instead we immediatly update the bin state.
2038         Get rid of iterating all the children when getting the state in the bin
2039         because it is now always up-to-date.
2040         Fix bug where locked elements would always return _SUCCESS even it they
2041         returned NO_PREROLL before being locked.
2042         Fix the order of the state_change, async-start/done messages that was
2043         sometimes incorrect.
2044         Mark the state_dirty field as deprecated, we don't need it anymore as we
2045         are always up-to-date.
2047         * gst/gstelement.c: (gst_element_get_state_func),
2048         (gst_element_continue_state):
2049         Small debug inprovements.
2050         Return the previous element state return when nothing is pending instead
2051         of blindly returning SUCCESS.
2053         * tests/check/generic/sinks.c: (GST_START_TEST), (pad_blocked_cb),
2054         (gst_sinks_suite):
2055         Add a whole bunch of new testcases.
2057 2007-06-17  Thomas Vander Stichele  <thomas at apestaart dot org>
2059         * po/uk.po:
2060         * po/vi.po:
2061           Update translations.
2063 2007-06-15  Jan Schmidt  <thaytan@mad.scientist.com>
2065         * gst/gstpad.c:
2066         Fix typo in the docs.
2068 2007-06-15  Wim Taymans  <wim@fluendo.com>
2070         * docs/libs/gstreamer-libs-sections.txt:
2071         Add docs for new methods.
2073 2007-06-15  Wim Taymans  <wim@fluendo.com>
2075         * plugins/elements/gstmultiqueue.c: (gst_multi_queue_item_destroy),
2076         (gst_multi_queue_item_new):
2077         Don't use GSlice because we don't depend on >= 2.10 yet.
2079 2007-06-15  Wim Taymans  <wim@fluendo.com>
2081         * plugins/elements/gstmultiqueue.c: (gst_single_queue_flush),
2082         (update_time_level), (apply_segment), (apply_buffer),
2083         (gst_single_queue_push_one), (gst_multi_queue_item_new),
2084         (gst_multi_queue_loop), (gst_multi_queue_sink_activate_push),
2085         (gst_multi_queue_sink_event), (single_queue_overrun_cb),
2086         (single_queue_underrun_cb), (single_queue_check_full):
2087         Remove debug printf.
2089 2007-06-15  Wim Taymans  <wim@fluendo.com>
2091         * libs/gst/base/gstdataqueue.c: (gst_data_queue_cleanup),
2092         (gst_data_queue_finalize), (gst_data_queue_locked_is_empty),
2093         (gst_data_queue_set_flushing), (gst_data_queue_push),
2094         (gst_data_queue_pop), (gst_data_queue_drop_head),
2095         (gst_data_queue_limits_changed), (gst_data_queue_get_level):
2096         * libs/gst/base/gstdataqueue.h:
2097         Various cleanups.
2098         Added methods to get the current levels and to inform the queue that the
2099         'full' limits changed.
2101         * plugins/elements/gstmultiqueue.c: (gst_multi_queue_init),
2102         (gst_multi_queue_finalize), (gst_multi_queue_set_property),
2103         (gst_single_queue_flush), (update_time_level), (apply_segment),
2104         (apply_buffer), (gst_single_queue_push_one),
2105         (gst_multi_queue_item_steal_object),
2106         (gst_multi_queue_item_destroy), (gst_multi_queue_item_new),
2107         (gst_multi_queue_loop), (gst_multi_queue_chain),
2108         (gst_multi_queue_sink_activate_push), (gst_multi_queue_sink_event),
2109         (gst_multi_queue_getcaps), (gst_multi_queue_src_activate_push),
2110         (gst_multi_queue_src_query), (single_queue_overrun_cb),
2111         (single_queue_underrun_cb), (single_queue_check_full),
2112         (gst_single_queue_new):
2113         Keep track of time in the queue by measuring the difference between
2114         running_time on input and output. This gives more accurate results and
2115         can compensate for segments correctly.
2116         Make a queue by default only 5 buffers deep. We will now increase the
2117         buffer size depending on the filledness of the other queues.
2118         Factor out commong flush code.
2119         Make sure we don't add additional refcounts to buffers when we can avoid
2120         it.
2121         Propagate GstFlowReturn differently.
2122         Use GSlice for intermediate GstMultiQueueItems.
2123         Keep track of EOS.
2124         Resize queues on over and underruns based on filled level of other
2125         queues.
2126         When checking if the queue is filled, prefer to measure in time if we
2127         can and fall back to bytes when no time is known.
2129         * plugins/elements/gstqueue.c:
2130         Fix return value.
2132 2007-06-15  Wim Taymans  <wim@fluendo.com>
2134         * libs/gst/base/gstbasetransform.c:
2135         (gst_base_transform_sink_event):
2136         Work around the brokenness of the event vmethod in basetransform. Prefer
2137         to return TRUE when the subclass returned FALSE (meaning don't forward
2138         the event). 
2140         * libs/gst/base/gstbasetransform.h:
2141         Clarify the docs.
2143 2007-06-15  Wim Taymans  <wim@fluendo.com>
2145         * gst/gstpad.c: (gst_pad_push_event), (gst_pad_send_event):
2146         * libs/gst/base/gstbasesrc.c: (gst_base_src_query_latency),
2147         (gst_base_src_default_query), (gst_base_src_get_range),
2148         (gst_base_src_start):
2149         * tests/check/pipelines/parse-launch.c: (setup_pipeline):
2150         Improve debugging.
2152 2007-06-15  Stefan Kost  <ensonic@users.sf.net>
2154         * docs/pwg/advanced-types.xml:
2155           Added more formats to caps table.
2157 2007-06-15  Stefan Kost  <ensonic@users.sf.net>
2159         * tools/gst-launch.c: (main):
2160           Remove crufy code. GOption does not need this workaround.
2162 2007-06-14  Stefan Kost  <ensonic@users.sf.net>
2164         * libs/gst/controller/gstcontroller.c:
2165         (gst_controlled_property_set_interpolation_mode):
2166           Fix wrong getter for enums in controller.
2168 2007-06-14  Tim-Philipp Müller  <tim at centricular dot net>
2170         * libs/gst/check/gstcheck.c: (gst_check_init):
2171           Intercept criticals and warnings in the Gst-Phonon log domain, so
2172           ASSERT_CRITICAL() etc. can be used in gst-phonon's unit tests as
2173           well.
2174         
2175 2007-06-14  Edward Hervey  <edward@fluendo.com>
2177         * gst/gstparamspecs.c: (_gst_param_fraction_validate):
2178         Since this file doesn't include "gst.h" it will not go through the
2179         macros that disable GST_LOG if debugging was disabled.
2181 2007-06-14  Tim-Philipp Müller  <tim at centricular dot net>
2183         * libs/gst/check/Makefile.am:
2184         * libs/gst/check/gstcheck.h:
2185         * pkgconfig/gstreamer-check-uninstalled.pc.in:
2186         * pkgconfig/gstreamer-check.pc.in:
2187           Ugly 'fix' for the controller unit test on the p5 bot: in
2188           fail_unless_equals_float() check whether the values are 'almost
2189           equal' by allowing a small absolute error, which should be good
2190           enough for our use cases (normal numbers and values close to 0).
2191           Proper fixage left to floating point arithmetic aficionados.
2193 2007-06-14  Stefan Kost  <ensonic@users.sf.net>
2195         * libs/gst/base/gstbasesink.c: (gst_base_sink_reset_qos),
2196         (gst_base_sink_render_object), (gst_base_sink_get_position):
2197           Add two breaks thats where missing.
2199 2007-06-14  Tim-Philipp Müller  <tim at centricular dot net>
2201         * docs/libs/gstreamer-libs-sections.txt:
2202         * libs/gst/check/gstcheck.h:
2203           API: add fail_unless_equals_float() and assert_equals_float().
2204           Add documentation for some of the macros.
2206         * tests/check/libs/controller.c: (GST_START_TEST):
2207           Use newly-added asserts.
2209 2007-06-14  Stefan Kost  <ensonic@users.sf.net>
2211         * gst/gstpad.c: (gst_pad_alloc_buffer_full), (gst_pad_push):
2212           Show the caps change in the log to help spotting the case of not
2213           exactly matching caps.
2215 2007-06-14  Tim-Philipp Müller  <tim at centricular dot net>
2217         * docs/pwg/building-boiler.xml:
2218           Fix typos, spotted by Thijs Vermeir (#447190).
2220 2007-06-13  Jan Schmidt  <thaytan@mad.scientist.com>
2222         * docs/plugins/tmpl/.cvsignore:
2223         Ignore file to keep the buildbots happy
2225 2007-06-13  Jan Schmidt  <thaytan@mad.scientist.com>
2227         * docs/plugins/Makefile.am:
2228         * docs/plugins/gstreamer-plugins-docs.sgml:
2229         * docs/plugins/gstreamer-plugins-sections.txt:
2230         Pull fdsink into the docs too.
2232 2007-06-11  Sebastian Dröge  <slomo@circular-chaos.org>
2234         * libs/gst/controller/gstinterpolation.c:
2235         Actually use the new functions with min/max checks for the trigger and
2236         none interpolation modes for get() and get_value_array() instead of
2237         just the latter.
2239 2007-06-10  Sebastian Dröge  <slomo@circular-chaos.org>
2241         * libs/gst/controller/gstcontroller.c:
2242         (gst_controlled_property_free):
2243         Unset the minimum and maximum GValues when freeing the corresponding
2244         GstControllerProperty struct.
2246 2007-06-09  Sebastian Dröge  <slomo@circular-chaos.org>
2248         * libs/gst/controller/gstcontroller.c:
2249         (gst_controlled_property_new):
2250         * libs/gst/controller/gstcontrollerprivate.h:
2251         * libs/gst/controller/gstinterpolation.c:
2252         (gst_controlled_property_find_control_point_node),
2253         (interpolate_none_get), (interpolate_none_get_enum_value_array),
2254         (interpolate_none_get_string_value_array),
2255         (interpolate_trigger_get),
2256         (interpolate_trigger_get_enum_value_array),
2257         (interpolate_trigger_get_string_value_array):
2258         Protect against values larger or smaller than the minimum or maximum
2259         allowed value for the property when using values that can be compared.
2261         Optimize trigger interpolator a bit by taking the last requested value
2262         into account instead of always looping through the complete list.
2264         Fix coding style a bit, everywhere else we use "return foo" instead
2265         of "return (foo)".
2266         
2267         * tests/check/libs/controller.c: (GST_START_TEST),
2268         (gst_controller_suite):
2269         Add unit test for the protection against too large or too small
2270         values.
2272 2007-06-08  Sebastian Dröge  <slomo@circular-chaos.org>
2274         * docs/random/slomo/controller.txt:
2275         Add some thoughts about the future of the controller.
2277 2007-06-08  Wim Taymans  <wim@fluendo.com>
2279         * plugins/elements/gstidentity.c: (gst_identity_transform_ip):
2280         Don't overflow in retimestamping code.
2282 2007-06-07  Sebastien Moutte  <sebastien@moutte.net>
2284         * libs/gst/controller/gstinterpolation.c: (DEFINE_CUBIC_GET):
2285         Use gst_util_guint64_to_gdouble for conversions.
2286         * win32/common/libgstreamer.def:
2287         Add new exported functions.
2289 2007-06-07  Tim-Philipp Müller  <tim at centricular dot net>
2291         * gst/gstutils.c:
2292           Small docs addition.
2294 2007-06-07  Stefan Kost  <ensonic@users.sf.net>
2296         * README:
2297           Remove that test line again.
2299 2007-06-07  Stefan Kost  <ensonic@users.sf.net>
2301         * README:
2302           Test commit mail sending.
2304 2007-06-07  Stefan Kost  <ensonic@users.sf.net>
2306         * configure.ac:
2307           Fix typo and test commit mail sending.
2309 2007-06-07  Stefan Kost  <ensonic@users.sf.net>
2311         * tests/examples/controller/audio-example.c:
2312           Improve comment and test commit mail sending.
2314 2007-06-07  Wim Taymans  <wim@fluendo.com>
2316         * gst/gstbin.c: (find_message), (bin_replace_message), (is_eos),
2317         (gst_bin_remove_func), (gst_bin_element_set_state),
2318         (bin_handle_async_start), (bin_handle_async_done),
2319         (gst_bin_handle_message_func):
2320         Add helper function to find messages.
2321         Generate the async-done messages together with the state change
2322         messages.
2323         Small cleanups in handling toplevel bins.
2325 2007-06-06  Tim-Philipp Müller  <tim at centricular dot net>
2327         * libs/gst/base/gstdataqueue.c:
2328         * libs/gst/base/gstdataqueue.h:
2329         * plugins/elements/gstmultiqueue.c: (gst_single_queue_push_one),
2330         (gst_multi_queue_item_new), (gst_multi_queue_chain),
2331         (gst_multi_queue_sink_event):
2332         * tests/check/elements/multiqueue.c: (multiqueue_suite):
2333           Fix multiqueue leaking buffers and events when downstream or the
2334           queue are flushing. Make refcounting assumptions explicit and
2335           document them (shouldn't break existing code that uses it other than
2336           maybe leak miniobjects, but that already happens anyway). Add unit
2337           test for the most common flushing case. Fixes #423700.
2338           
2339 2007-06-06  Sebastian Dröge  <slomo@circular-chaos.org>
2341         * libs/gst/controller/gstcontroller.c:
2342         Clarify docs: The get_all, get_value_array(s) functions
2343         don't modify the GObject properties.
2345 2007-06-06  Sebastian Dröge  <slomo@circular-chaos.org>
2347         * libs/gst/controller/gstcontroller.c:
2348         (gst_controlled_property_set_interpolation_mode),
2349         (gst_controlled_property_prepend_default),
2350         (gst_controlled_property_new), (gst_controller_set_unlocked),
2351         (gst_controller_set), (gst_controller_set_from_list),
2352         (gst_controller_unset), (gst_controller_unset_all):
2353         * libs/gst/controller/gstcontrollerprivate.h:
2354         * libs/gst/controller/gstinterpolation.c:
2355         Factor out the 'set' logic into gst_controller_set_unlocked for the
2356         gst_controller_set and gst_controller_set_from_list functions.
2358         To make life of the interpolators easier always add a control point
2359         at timestamp zero with the default value.
2361         In the linear interpolator make things more obvious by better variable
2362         naming (slope).
2364         Implement cubic interpolation mode (by using a natural cubic spline)
2365         and map the quadratic interpolation mode to this too (as quadratic
2366         doesn't make much sense, see discussion on the list).
2368         * tests/check/libs/controller.c: (GST_START_TEST),
2369         (gst_controller_suite):
2370         Add unit test for the cubic interpolation mode and check everywhere
2371         if the interpolation mode could be set as expected.
2373 2007-06-06  Tim-Philipp Müller  <tim at centricular dot net>
2375         * gst/gstparamspecs.c: (gst_param_spec_fraction_get_type):
2376           Don't use GLib-2.10 functions, we still depend on
2377           GLib-how-old-is-it-again-2.8.
2379 2007-06-06  Tim-Philipp Müller  <tim at centricular dot net>
2381         * docs/gst/gstreamer-sections.txt:
2382         * gst/Makefile.am:
2383         * gst/gst.c:
2384         * gst/gst.h:
2385         * gst/gstparamspecs.c: (_gst_param_fraction_init),
2386         (_gst_param_fraction_set_default), (_gst_param_fraction_validate),
2387         (_gst_param_fraction_values_cmp),
2388         (gst_param_spec_fraction_get_type), (gst_param_spec_fraction):
2389         * gst/gstparamspecs.h:
2390         * gst/gstvalue.c:
2391         * tests/check/Makefile.am:
2392         * tests/check/gst/.cvsignore:
2393         * tests/check/gst/gstparamspecs.c: (gst_dummy_obj_base_init),
2394         (gst_dummy_obj_class_init), (gst_dummy_obj_init),
2395         (gst_dummy_obj_set_property), (gst_dummy_obj_get_property),
2396         (GST_START_TEST), (gst_param_spec_suite):
2397           API: add GstParamSpecFraction, so elements can have fraction
2398           properties without lots of painful string parsing (#444648).
2400 2007-06-05  Wim Taymans  <wim@fluendo.com>
2402         * gst/gstobject.c: (gst_object_class_init):
2403         Fix signal signature.
2405         * gst/gstsegment.c:
2406         Add small clarification in the api docs.
2408         * plugins/elements/gstfilesrc.c: (gst_file_src_set_location):
2409         States are protected with object lock.
2411 2007-06-05  Jan Schmidt  <thaytan@mad.scientist.com>
2413         * AUTHORS:
2414         I should probably be listed as an author by now.
2416         * docs/random/release:
2417         Update the release doc
2419 2007-06-05  Tim-Philipp Müller  <tim at centricular dot net>
2421         * gst/gstvalue.c:
2422           Make docs for gst_value_compare() mention return enums that
2423           actually exist.
2425 2007-06-05  Jan Schmidt  <thaytan@mad.scientist.com>
2427         * configure.ac:
2428           Back to CVS
2430 === release 0.10.13 ===
2432 2007-06-05  Jan Schmidt <thaytan@mad.scientist.com>
2434         * configure.ac:
2435           releasing 0.10.13, "With or without you"
2437 2007-05-25  Wim Taymans  <wim@fluendo.com>
2439         * gst/gstbin.c: (bin_handle_async_done):
2440         Make sure that the child bin stops after completing the async state
2441         change so that the parent can continue the state change to PLAYING.
2442         Fixes #441159.
2444 2007-05-25  Wim Taymans  <wim@fluendo.com>
2446         * libs/gst/base/gstcollectpads.c: (gst_collect_pads_finalize),
2447         (unref_data), (gst_collect_pads_remove_pad),
2448         (gst_collect_pads_check_pads):
2449         Use additional refcounting to avoid crashes when dynamically adding and
2450         removing pads. Fixes #420206.
2452 2007-05-24  Wim Taymans  <wim@fluendo.com>
2454         * tools/gst-launch.c: (event_loop):
2455         When buffering goes from a two digit to a single digit number, make sure
2456         to remove the old second digit by writing a blank over it.
2458 2007-05-24  Tim-Philipp Müller  <tim at centricular dot net>
2460         * libs/gst/base/gstdataqueue.c:
2461           Eliminate tabs and trailing comma in enum list; fix some typos.
2463 2007-05-24  Wim Taymans  <wim@fluendo.com>
2465         * tests/check/gst/gstbin.c: (GST_START_TEST):
2466         Allow refcount of 3 and 4 because some state thread might still be busy
2467         with it.
2469 2007-05-24  Tim-Philipp Müller  <tim at centricular dot net>
2471         * plugins/elements/Makefile.am:
2472         * plugins/elements/gstmultiqueue.h:
2473         * plugins/elements/gstqueue.h:
2474           These are not installed headers, no need for padding.
2476 2007-05-24  Wim Taymans  <wim@fluendo.com>
2478         * gst/gstbin.c: (gst_bin_class_init), (gst_bin_get_state_func),
2479         (gst_bin_continue_func):
2480         Enable latency for next release.
2481         Restore STATE_LOCK around recalc_state that was left out during the
2482         rewrite and could result in racy behaviour when _get_state and
2483         recalc_state are run concurrently. See #440463.
2485 2007-05-23  Wim Taymans  <wim@fluendo.com>
2487         * tests/check/gst/gstsystemclock.c: (store_callback),
2488         (GST_START_TEST):
2489         Improve test_async_order to also work when both timers are already
2490         expired when we get scheduled to check it.
2492 2007-05-22  Tim-Philipp Müller  <tim at centricular dot net>
2494         * gst/gstbin.c: (gst_bin_init), (gst_bin_dispose),
2495         (gst_bin_set_property), (gst_bin_get_property),
2496         (gst_bin_remove_func), (gst_bin_handle_message_func):
2497         * gst/gstbin.h:
2498           'private' is a c++ keyword, let's not use that in header files,
2499           otherwise c++ compilers will throw a tantrum.
2501 2007-05-22  Tim-Philipp Müller  <tim at centricular dot net>
2503         * plugins/elements/gstelements.c:
2504         * plugins/elements/gstfilesink.c: (gst_file_sink_do_seek),
2505         (gst_file_sink_get_current_offset):
2506         * plugins/indexers/gstindexers.c: (plugin_init):
2507           Use #ifdef for HAVE_XYZ for consistency.
2509         * tests/check/Makefile.am:
2510         * tests/check/elements/.cvsignore:
2511         * tests/check/elements/filesink.c: (setup_filesink),
2512         (cleanup_filesink), (GST_START_TEST), (filesink_suite):
2513           Add some unit tests for filesink.
2515 2007-05-22  Tim-Philipp Müller  <tim at centricular dot net>
2517         Patch by: Mark Nauwelaerts <manauw at skynet be>
2519         * plugins/elements/gstfilesink.c: (gst_file_sink_open_file),
2520         (gst_file_sink_query), (gst_file_sink_do_seek),
2521         (gst_file_sink_get_current_offset), (gst_file_sink_render):
2522         * plugins/elements/gstfilesink.h:
2523           Fix position reporting; rename data_written member to current_pos to
2524           reflect its real meaning (fixes #412648).
2526 2007-05-22  Edward Hervey  <edward@fluendo.com>
2528         * docs/gst/gstreamer-sections.txt:
2529         * gst/gstbin.c: (gst_bin_class_init), (gst_bin_init),
2530         (gst_bin_dispose), (gst_bin_set_property), (gst_bin_get_property),
2531         (gst_bin_remove_func), (gst_bin_handle_message_func):
2532         * gst/gstbin.h:
2533         Add a property for bins that handle the state change of their childs.
2534         Fixes #435880
2536 2007-05-22  Sebastian Dröge  <slomo@circular-chaos.org>
2538         * libs/gst/controller/gstinterpolation.c:
2539         Use an array of the correct type when using _get_value_array with
2540         linear interpolation.
2542 2007-05-22  Stefan Kost  <ensonic@users.sf.net>
2544         * gst/gstelement.c (gst_element_requires_clock,
2545           gst_element_provides_clock, gst_element_request_pad,
2546           gst_element_class_set_details, gst_element_class_set_details_simple,
2547           gst_element_default_send_event, gst_element_abort_state,
2548           gst_element_continue_state, gst_element_set_state,
2549           gst_element_set_state_func, iterator_activate_fold_with_resync):
2550         * gst/gstpad.c (gst_pad_activate_pull, gst_pad_set_getcaps_function,
2551           gst_pad_fixate_caps, gst_pad_configure_sink, gst_pad_configure_src,
2552           gst_pad_query, gst_pad_save_thyself, handle_pad_block, gst_pad_push,
2553           gst_pad_get_range, gst_pad_pull_range):
2554         * gst/gstpad.h (GST_PAD_LINK_SUCCESSFUL, GST_FLOW_CUSTOM_SUCCESS,
2555           GST_FLOW_NOT_SUPPORTED, GST_FLOW_IS_FATAL, GstPadActivateFunction,
2556           GstPadActivateModeFunction, GstPadChainFunction,
2557           GstPadGetCapsFunction, GstPadAcceptCapsFunction,
2558           GstPadFixateCapsFunction, GstPadTemplate):
2559         * gst/gstpipeline.c (gst_pipeline_change_state,
2560           gst_pipeline_set_new_stream_time, gst_pipeline_use_clock,
2561           gst_pipeline_set_clock, gst_pipeline_auto_clock,
2562           gst_pipeline_get_delay):
2563           Whitespace and docs fixes.
2565 2007-05-21  Sebastian Dröge  <slomo@circular-chaos.org>
2567         * libs/gst/controller/gstinterpolation.c:
2568         (interpolate_trigger_get_enum_value_array),
2569         (interpolate_trigger_get_string_value_array):
2570         Add support for retrieving value arrays when using the trigger
2571         interpolation mode. 
2573 2007-05-21  Sebastian Dröge  <slomo@circular-chaos.org>
2575         * libs/gst/controller/gstcontroller.c:
2576         (gst_controller_get_value_array):
2577         * libs/gst/controller/gstcontroller.h:
2578         Clarify the docs of gst_controller_get_value_array(): The array where
2579         the values should be written to must be allocated as there seems to be
2580         no way to get the size of a random GType. This doesn't change any
2581         behaviour. Also fix some typos all over the place and remove an unused,
2582         commented function that is not necessary as g_object_set() could be
2583         used instead.
2584         * tests/check/libs/controller.c: (GST_START_TEST),
2585         (gst_controller_suite):
2586         Add unit test for gst_controller_get_value_array().
2588 2007-05-21  Jan Schmidt  <thaytan@mad.scientist.com>
2590         * tests/check/gst/gstbuffer.c: (GST_START_TEST):
2592         Disable part of the gst_buffer_try_new_and_alloc test, because
2593         it can happily succeed on 64-bit systems where there's more address
2594         space available.
2596 2007-05-21  Sebastian Dröge  <slomo@circular-chaos.org>
2598         * tests/check/gst/gstpad.c: (GST_START_TEST), (gst_pad_suite):
2599         Add unit test for the improved caps checking from bug #421543.
2601 2007-05-21  Wim Taymans  <wim@fluendo.com>
2603         * docs/design/part-synchronisation.txt:
2604         Small addition.
2606         * gst/gstbin.c: (gst_bin_query):
2607         * plugins/elements/gstqueue.c: (apply_segment):
2608         Improve debugging.
2610         * gst/gstmessage.h:
2611         Improve docs.
2613 2007-05-21  Wim Taymans  <wim@fluendo.com>
2615         * gst/gstpad.c: (gst_pad_get_caps_unlocked),
2616         (gst_pad_acceptcaps_default), (gst_pad_configure_sink),
2617         (gst_pad_configure_src):
2618         Added simple version of improved caps checking. It was previously
2619         assumed that a setcaps function would check the validity of the caps but
2620         people prefer us to check caps against the template automatically. 
2621         Fixes #421543.
2623 2007-05-21  Wim Taymans  <wim@fluendo.com>
2625         * libs/gst/base/gstbasetransform.h:
2626         Fix macro for locking/unlocking the transform lock.
2628 2007-05-19  Tim-Philipp Müller  <tim at centricular dot net>
2630         * docs/plugins/tmpl/.cvsignore:
2631           Ignore more.
2633 2007-05-18  Edward Hervey  <edward@fluendo.com>
2635         * plugins/elements/gstqueue.c: (gst_queue_loop):
2636         Hello, I am Mr Taymans' personal debugger. Today I will introduce a fix
2637         for the subtle art of warning a potentially blocking thread that it
2638         should check the source pad return value, and relay the information
2639         upstream.
2641 2007-05-18  Edward Hervey  <edward@fluendo.com>
2643         * plugins/elements/gstqueue.c: (gst_queue_handle_sink_event):
2644         Release the queue lock !
2646 2007-05-17  Sebastian Dröge  <slomo@circular-chaos.org>
2648         * docs/libs/gstreamer-libs-sections.txt:
2649         Add the two new controller functions to the appropiate places.
2651 2007-05-17  Sebastian Dröge  <slomo@circular-chaos.org>
2653         reviewed by: Stefan Kost <ensonic@users.sf.net>
2655         * libs/gst/controller/gstcontroller.c:
2656         (gst_controller_suggest_next_sync), (gst_controller_sync_values),
2657         (_gst_controller_get_property), (_gst_controller_set_property),
2658         (_gst_controller_init), (_gst_controller_class_init):
2659         * libs/gst/controller/gstcontroller.h:
2660         * libs/gst/controller/gsthelper.c: (gst_object_suggest_next_sync),
2661         (gst_object_get_control_rate), (gst_object_set_control_rate):
2662         API: gst_controller_suggest_next_sync(), gst_object_suggest_next_sync()
2663         Add API that provides sync suggestion timestamps for elements that
2664         call gst_object_sync_values() from which those elements can subdivide
2665         their processing loop to get the best results for the controlled
2666         properties. For now it just suggests last_sync + control_rate as
2667         new timestamp but this will be improved in the future.
2669         While doing that change the control-rate property to a GstClockTime
2670         from guint and change it's meaning from samples to nanoseconds as
2671         the GstController doesn't know anything about sampling rate. Strictly
2672         speaking this breaks ABI but as the control-rate property didn't do
2673         anything in the past and as such couldn't be used this should be no
2674         problem.        
2676 2007-05-17  Sebastian Dröge  <slomo@circular-chaos.org>
2678         reviewed by: Stefan Kost <ensonic@users.sf.net>
2680         * libs/gst/controller/gstcontroller.c: (gst_controller_unset),
2681         (gst_controller_unset_all):
2682         * libs/gst/controller/gstcontrollerprivate.h:
2683         * libs/gst/controller/gstinterpolation.c:
2684         (gst_controlled_property_find_control_point_node):
2685         Save last synced value from the list to continue searching from there
2686         in future syncs. This speeds everything up a bit.
2687         
2688 2007-05-17  Sebastian Dröge  <slomo@circular-chaos.org>
2690         reviewed by: Stefan Kost <ensonic@users.sf.net>
2692         * libs/gst/controller/gstcontroller.c: (gst_control_point_compare),
2693         (gst_control_point_find), (gst_controlled_property_new),
2694         (gst_control_point_free), (gst_controlled_property_free),
2695         (gst_controller_set), (gst_controller_set_from_list),
2696         (gst_controller_unset), (gst_controller_unset_all),
2697         (gst_controller_sync_values):
2698         * libs/gst/controller/gstcontroller.h:
2699         * libs/gst/controller/gstcontrollerprivate.h:
2700         * libs/gst/controller/gstinterpolation.c:
2701         (gst_controlled_property_find_control_point_node),
2702         (interpolate_none_get), (interpolate_trigger_get):
2703         Add a new private GstControlPoint struct which "inherits" from
2704         GstTimedValue to allow different interpolators to store internal
2705         values next to each control point. From the outside everything is
2706         still a GstControlPoint so we don't loose binary compatibility.
2707         Also fixup all the GValue handling to not leak GValues or list nodes.
2708         * tests/check/libs/controller.c: (GST_START_TEST):
2709         Free the list nodes and GValues in the controller_misc test.
2711 2007-05-17  Edward Hervey  <edward@fluendo.com>
2713         * gst/gstsegment.c:
2714         Small doc fix.
2716 2007-05-16  Tim-Philipp Müller  <tim at centricular dot net>
2718         * gst/gstplugin.c: (gst_plugin_load_file):
2719           If we fail to load a plugin because of unresolved symbols or missing
2720           libraries and spew a warning to stderr, we may just as well mention
2721           which plugin it was that failed to load.
2723 2007-05-13  David Schleef  <ds@schleef.org>
2725         * docs/Makefile.am: the gtk-doc makefile snippet correctly
2726           handles the case when ENABLE_GTK_DOC is false, and installs
2727           the prebuilt documentation.  So gtk-doc subdirs are 
2728           unconditionally enabled.  Fixes: #349099.
2730 2007-05-13  David Schleef  <ds@schleef.org>
2732         * gst/gstutils.h: Reword some documentation.
2734 2007-05-12  David Schleef  <ds@schleef.org>
2736         * gst/gstplugin.c: gst_plugin_register_func() doesn't actually
2737           do anything with the passed "module" parameter, so remove it.
2738           Allows removal of additional vestigal code.
2740 2007-05-12  David Schleef  <ds@schleef.org>
2742         * gst/gstplugin.c:
2743           Using sigaction should depend on HAVE_SIGACTION, not HAVE_WIN32.
2744           Switch to using g_stat() because it's more portable.
2746 2007-05-12  David Schleef  <ds@schleef.org>
2748         * gst/gst.c:
2749           Add GST_DISABLE_OPTION_PARSING, in order to disable option
2750           parsing for embedded systems.
2751         * gst/gstelementfactory.c:
2752           Allow gst_element_register() to be called with plugin==NULL.
2753           Did nobody notice that static elements were broken?
2755 2007-05-12  Wim Taymans  <wim@fluendo.com>
2757         * tools/gst-launch.c: (event_loop):
2758         Give more interesting info when buffering starts and stops.
2759         Fix case where buffering starts but we fail to update the buffering flag
2760         because the target state is not PLAYING.
2762 2007-05-12  Wim Taymans  <wim@fluendo.com>
2764         * plugins/elements/gstqueue.c: (gst_queue_init),
2765         (gst_queue_finalize), (update_time_level), (apply_segment),
2766         (apply_buffer), (gst_queue_locked_flush),
2767         (gst_queue_locked_enqueue), (gst_queue_locked_dequeue),
2768         (gst_queue_handle_sink_event), (gst_queue_chain),
2769         (gst_queue_push_one), (gst_queue_loop):
2770         * plugins/elements/gstqueue.h:
2771         Refactor an cleanup queue a bit.
2772         Do better time level calculations that also work when the srcpad is not
2773         yet running.
2774         Remove some unneeded debug lines.
2776         * tests/check/elements/queue.c: (GST_START_TEST), (queue_suite):
2777         Added testcase for time level measurement.
2778         Try to make some stuff more racefree.
2780 2007-05-11  Tim-Philipp Müller  <tim at centricular dot net>
2782         * gst/gsturi.c: (gst_element_make_from_uri):
2783           Don't leak plugin feature.
2785         * tests/check/Makefile.am:
2786         * tests/check/gst/.cvsignore:
2787         * tests/check/gst/gsturi.c: (GST_START_TEST), (gst_uri_suite):
2788           Add brain-dead unit test.
2790 2007-05-11  Tim-Philipp Müller  <tim at centricular dot net>
2792         Patch by: Jeroen Wouters <woutersj at gmail com>
2794         * gst/gsturi.c: (gst_uri_get_protocol), (search_by_entry):
2795           Treat protocol strings in a case-insensitive way (#437563).
2797 2007-05-11  Michael Smith <msmith@fluendo.com>
2799         * gst/gstplugin.c: (gst_plugin_load_file):
2800         * gst/gstregistry.c: (gst_registry_scan_path_level):
2801           Don't print a g_warning for any failure to load a shared object.
2802           Instead, push this down into gstplugin.c, and warn _only_ if we
2803           failed to open the module (i.e. failure to link).
2804           Avoids warnings on normal, working, non-plugin .so files.
2806 2007-05-11  Stefan Kost  <ensonic@users.sf.net>
2808         * gst/gstplugin.c (gst_plugin_load_file):
2809         * gst/gstregistry.c (GST_CAT_DEFAULT,
2810           gst_registry_lookup_feature_locked, gst_registry_scan_path_level):
2811           Print a g_warning if there was an error when loading a plugins during
2812           registry scan. The shuld help beginners starting with gst-plugin
2813           template.
2815 2007-05-10  Wim Taymans  <wim@fluendo.com>
2817         * plugins/elements/gstqueue.c: (gst_queue_class_init),
2818         (update_time_level), (gst_queue_locked_flush),
2819         (gst_queue_handle_sink_event), (gst_queue_chain),
2820         (gst_queue_push_one), (gst_queue_loop):
2821         * plugins/elements/gstqueue.h:
2822         Be smarter when calculating the current amount of data in the queue by
2823         measuring the difference between start and end timestamps (in running
2824         time) inside the queue. Fixes #432876.
2825         API: GstQueue::pushing to notify elements that we are pushing data again
2826         since the running signal is rather broken for this purpose.
2828 2007-05-10  Stefan Kost  <ensonic@users.sf.net>
2830         * plugins/elements/gstqueue.c (_do_init, gst_queue_signals,
2831           gst_queue_base_init, gst_queue_init):
2832           use GST_BOILERPLATE
2834 2007-05-09  Sebastien Moutte  <sebastien@moutte.net>
2836         * win32/common/libgstreamer.def:
2837         Add new exported functions.
2838         * win32/vs6/grammar.dsp:
2839         Use grammar pre-generated files.
2841 2007-05-09  Tim-Philipp Müller  <tim at centricular dot net>
2843         Based on patch by: Peter Kjellerstedt  <pkj at axis com>
2845         * gst/Makefile.am:
2846         * gst/gstparse.c: (gst_parse_launchv), (gst_parse_launch):
2847         * gst/gstparse.h:
2848         * gst/gstutils.c: (gst_parse_bin_from_description):
2849         * gst/gstutils.h:
2850           Maintain API and ABI when --disable-parse is used. Now that
2851           we have an appropriate error code, we can just return NULL and the
2852           appropriate error when gst_parse_launch() is used despite it having
2853           been disabled (#342564).
2855         * tests/check/Makefile.am:
2856         * tests/check/pipelines/.cvsignore:
2857         * tests/check/pipelines/parse-disabled.c:
2858           Make sure these functions exist and return NULL plus a GError when
2859           --disable-parse is used.
2861 2007-05-09  Tim-Philipp Müller  <tim at centricular dot net>
2863         * tests/benchmarks/complexity.c: (main):
2864         * tests/benchmarks/mass-elements.c: (main):
2865           Set a good example and don't leak messages.
2867 2007-05-06  Stefan Kost  <ensonic@users.sf.net>
2869         * docs/gst/Makefile.am:
2870         * docs/libs/Makefile.am:
2871           Correct fixxrefs options.
2873         * docs/plugins/Makefile.am:
2874         * docs/plugins/gstreamer-plugins-docs.sgml:
2875         * docs/plugins/gstreamer-plugins-sections.txt:
2876         * plugins/elements/Makefile.am:
2877         * plugins/elements/gstcapsfilter.c (gst_capsfilter_details):
2878         * plugins/elements/gstcapsfilter.h (__GST_CAPSFILTER_H__,
2879           GST_TYPE_CAPSFILTER, GST_CAPSFILTER, GST_CAPSFILTER_CLASS,
2880           GST_IS_CAPSFILTER, GST_IS_CAPSFILTER_CLASS, GstCapsFilter,
2881           GstCapsFilterClass, _GstCapsFilter, trans, filter_caps,
2882           _GstCapsFilterClass, trans_class):
2883         * plugins/elements/gstelements.c (name, rank, type, _elements):
2884         * plugins/elements/gstidentity.c
2885           (gst_identity_check_imperfect_timestamp,
2886           gst_identity_check_imperfect_offset):
2887           Document capsfilter and add doc-blurb to identity.
2889 2007-05-04  Tim-Philipp Müller  <tim at centricular dot net>
2891         * libs/gst/controller/gstcontroller.c:
2892         (gst_controlled_property_set_interpolation_mode):
2893         * libs/gst/controller/gstinterpolation.c:
2894           Don't crash if someone tries to set an interpolation mode that
2895           is invalid or that isn't supported yet. Fixes #422295.
2897         * tests/check/libs/controller.c: (GST_START_TEST),
2898         (gst_controller_suite):
2899           Add a test case for the above.
2901 2007-05-03  Edward Hervey  <edward@fluendo.com>
2903         * libs/gst/base/gstbasetransform.c: (gst_base_transform_chain):
2904         Properly set the last_stop position on GstSegment. This will only happen
2905         if there is a buffer to push out.
2907 2007-05-03  Wim Taymans  <wim@fluendo.com>
2909         * libs/gst/base/gstbasetransform.c:
2910         (gst_base_transform_buffer_alloc):
2911         always_in_place does not mean that the sink and source caps are the
2912         same! Make sure we don't blindly proxy the buffer_alloc in this case.
2914 2007-05-03  Wim Taymans  <wim@fluendo.com>
2916         * docs/libs/gstreamer-libs-sections.txt:
2917         * libs/gst/base/gstbasesrc.c: (gst_base_src_query_latency),
2918         (gst_base_src_default_query), (gst_base_src_get_range):
2919         * libs/gst/base/gstbasesrc.h:
2920         API: gst_base_src_query_latency(). Added method so that subclasses can
2921         easily get the latency values of the base source class.
2923 2007-05-02  Zaheer Abbas Merali  <<zaheerabbas at merali dot org>>
2925         * tools/gst-inspect.c (print_implementation_info):
2926         Remove 0.8 cruft.
2928 2007-05-02  Tim-Philipp Müller  <tim at centricular dot net>
2930         * tools/Makefile.am:
2931         * tools/gst-launch.1.in:
2932           Don't create a customised man page based on the host architecture,
2933           describe the default registry path generically. That way the man
2934           page is the same for all architectures and packagers have one
2935           multilib issue less to deal with. Fixes #434926.
2937 2007-05-02  Wim Taymans  <wim@fluendo.com>
2939         * gst/gstpad.c:
2940         Fix documentation as spotted by rg on IRC. 
2942 2007-04-29  Stefan Kost  <ensonic@users.sf.net>
2944         * gst/gstutils.c:
2945           Improve docs for gst_element_{link,unlink}.
2947 2007-04-28  Tim-Philipp Müller  <tim at centricular dot net>
2949         * docs/design/part-events.txt:
2950         * docs/design/part-overview.txt:
2951         * gst/gstevent.c:
2952         * gst/gsturi.c:
2953         * gst/gsturi.h:
2954         * libs/gst/base/gstbasesink.c:
2955           Typo fixes; minor docs addition.
2957 2007-04-27  Sebastian Dröge  <slomo@circular-chaos.org>
2959         * docs/gst/gstreamer-sections.txt:
2960         * gst/gsturi.c: (get_element_factories_from_uri_protocol),
2961         (gst_uri_protocol_is_supported), (gst_element_make_from_uri):
2962         * gst/gsturi.h:
2963         API: Add gst_uri_protocol_is_supported(), which checks if a sink
2964         or src that supports a given URI protocol exists.
2966 2007-04-27  Sebastian Dröge  <slomo@circular-chaos.org>
2968         * plugins/elements/gstfilesink.c: (gst_file_sink_uri_set_uri):
2969         * plugins/elements/gstfilesrc.c: (gst_file_src_uri_set_uri):
2970         Set the location to NULL if "file://" is set as URI. Otherwise
2971         some random previous URI would still be set if "file://" is
2972         set on an already used filesink/filesrc.
2974 2007-04-27  Sebastian Dröge  <slomo@circular-chaos.org>
2976         * plugins/elements/gstfilesink.c: (gst_file_sink_uri_set_uri):
2977         * plugins/elements/gstfilesrc.c: (gst_file_src_uri_set_uri):
2978         Special case the "file://" URI as as this is used by some
2979         applications to test with gst_element_make_from_uri if there's
2980         an element that supports the URI protocol.
2981         Also move the g_path_is_absolute() check for the location part
2982         of the URI to also check this for "file://localhost/bla" URIs.
2984 2007-04-26  Tim-Philipp Müller  <tim at centricular dot net>
2986         * docs/gst/gstreamer-sections.txt:
2987         * gst/gstbuffer.c: (gst_buffer_try_new_and_alloc):
2988         * gst/gstbuffer.h:
2989         * tests/check/gst/gstbuffer.c: (GST_START_TEST),
2990         (gst_buffer_suite):
2991           API: add gst_buffer_try_new_and_alloc() plus unit test (#431940).
2993 2007-04-26  Stefan Kost  <ensonic@users.sf.net>
2995         * gst/gstregistrybinary.c: (gst_registry_binary_write_cache),
2996         (gst_registry_binary_load_pad_template),
2997         (gst_registry_binary_load_plugin),
2998         (gst_registry_binary_read_cache):
2999         * gst/gstregistrybinary.h:
3000           Implement no-mmap alternative for registry reading. Do code cleanups.
3001           Add more comments about avoiding strdups for all text data. Comments
3002           welcome.
3004 2007-04-25  Stefan Kost  <ensonic@users.sf.net>
3006         * gst/gstregistrybinary.h (GstBinaryPluginElement,
3007           GstBinaryPluginFeature, _GstBinaryElementFactory, plugin_feature,
3008           GstBinaryElementFactory, _GstBinaryTypeFindFactory, plugin_feature):
3009           Comment structs and reformat to fix the build (that stuff should go
3010           into a priv. header).
3012 2007-04-25  Stefan Kost  <ensonic@users.sf.net>
3014         * gst/gstregistrybinary.c: (gst_registry_binary_save_feature),
3015         (gst_registry_binary_load_feature):
3016         * gst/gstregistrybinary.h:
3017           Refactor so that we can implement multiple features. Add support for
3018           TypeFindFactory features.
3020 2007-04-24  Stefan Kost  <ensonic@users.sf.net>
3022         Patch by: Peter Kjellerstedt <Peter.Kjellerstedt@axis.com>
3024         * configure.ac:
3025           Fix AM_CONDITIONAL(GST_DISABLE_GST_DEBUG,...) and update comment.
3027 2007-04-23  Stefan Kost  <ensonic@users.sf.net>
3029         * gst/gstbin.c: (gst_bin_element_set_state),
3030         (iterator_activate_fold_with_resync), (gst_bin_continue_func),
3031         (bin_handle_async_done), (gst_bin_handle_message_func):
3032           Fix build with --gst-disable-gst-debug
3034 2007-04-21  Tim-Philipp Müller  <tim at centricular dot net>
3036         * libs/gst/base/gstbasetransform.c: (gst_base_transform_activate):
3037           Make sure streaming has finished before calling the ::stop() vfunc,
3038           since that vfunc might clear state which is being used in the
3039           streaming thread. This fixes a race that caused crashes in
3040           audioresample when shutting down a pipeline (#420106).
3042 2007-04-20  Stefan Kost  <ensonic@users.sf.net>
3044         * docs/gst/gstreamer-sections.txt:
3045           That was one byte missing.
3047 2007-04-20  Stefan Kost  <ensonic@users.sf.net>
3049         * configure.ac:
3050         * docs/gst/gstreamer-sections.txt:
3051         * gst/Makefile.am:
3052         * gst/gstconfig.h.in:
3053         * gst/gstobject.c: (gst_object_class_init),
3054         (gst_signal_object_class_init):
3055         * gst/gstobject.h:
3056           2nd attempt to have a xml-less build as a joined effort of #413123
3057           and #421480.
3059 2007-04-20  Stefan Kost  <ensonic@users.sf.net>
3061         * docs/design/draft-tagreading.txt:
3062           Added open issues/thoughts to draft.
3064 2007-04-19  Sebastian Dröge  <slomo@circular-chaos.org>
3066         * gst/parse/grammar.tab.pre.c:
3067         * gst/parse/grammar.tab.pre.h:
3068         * gst/parse/lex._gst_parse_yy.pre.c:
3069         Update the prebuild parser sources.
3071 2007-04-19  Sebastian Dröge  <slomo@circular-chaos.org>
3073         * gst/parse/Makefile.am:
3074         And now fix the building of the flex sources. Now everything should
3075         work as expected.
3077 2007-04-19  Sebastian Dröge  <slomo@circular-chaos.org>
3079         * gst/parse/Makefile.am:
3080         Now hopefully fix the build failures by setting proper rule
3081         dependencies and moving instead of copying.
3083 2007-04-19  Stefan Kost  <ensonic@users.sf.net>
3085         * tests/benchmarks/complexity.gnuplot:
3086         * tests/benchmarks/complexity.scm:
3087         * tests/benchmarks/mass-elements.gnuplot:
3088         * tests/benchmarks/mass-elements.scm:
3089           Total licensification.
3091 2007-04-19  Stefan Kost  <ensonic@users.sf.net>
3093         * gst/parse/Makefile.am:
3094           Fix the build by correcting the rule that gave wrong files to flex.
3096 2007-04-19  Stefan Kost  <ensonic@users.sf.net>
3098         * tests/benchmarks/complexity.c:
3099         * tests/benchmarks/mass-elements.c:
3100           Change licence to LGPL as granted by Benjamin and Andy.
3102 2007-04-19  Sebastian Dröge  <slomo@circular-chaos.org>
3104         * gst/parse/Makefile.am:
3105         Add correct grammar.tab.h dependency if compiling without new enough
3106         flex. Fixes #431150.
3108 2007-04-18  Sebastian Dröge  <slomo@circular-chaos.org>
3110         * gst/parse/Makefile.am:
3111         Fix typo and use outdated sources if the flex/bison sources are newer
3112         than the pregenerated ones but flex is too old. Print a warning in
3113         that case. This should fix the build on the build bot.
3115 2007-04-18  Sebastian Dröge  <slomo@circular-chaos.org>
3117         Patch by: Marc-Andre Lureau <marcandre dot lureau at gmail dot com>
3118         * gst/parse/Makefile.am:
3119         * gst/parse/grammar.y:
3120         * gst/parse/parse.l:
3121         Make the parser reentrant and recursively callable. This requires flex
3122         >= 2.5.31, for older versions pregenerated sources are used as we
3123         can't bump the build dependency. Finally fixes #349180.
3125         * gst/gstparse.c: (gst_parse_launch):
3126         Drop the HAVE_MT_SAVE_FLEX #ifdefs as we always use a new enough flex
3127         now anyway.
3129         * docs/gst/Makefile.am:
3130         * docs/gst/Makefile.am:
3131         * gst/parse/grammar.tab.pre.c: (__gst_parse_strdup),
3132         (__gst_parse_strfree), (__gst_parse_link_new),
3133         (__gst_parse_link_free), (__gst_parse_chain_new),
3134         (__gst_parse_chain_free), (SET_ERROR), (YYPRINTF),
3135         (gst_parse_element_set), (gst_parse_free_link),
3136         (gst_parse_found_pad), (gst_parse_perform_delayed_link),
3137         (gst_parse_perform_link), (yytnamerr), (yysyntax_error), (yyerror),
3138         (_gst_parse_launch):
3139         * gst/parse/grammar.tab.pre.h:
3140         * gst/parse/lex._gst_parse_yy.pre.c: (PRINT), (yy_get_next_buffer),
3141         (yy_get_previous_state), (yy_try_NUL_trans), (input),
3142         (_gst_parse_yyrestart), (_gst_parse_yy_switch_to_buffer),
3143         (_gst_parse_yy_load_buffer_state), (_gst_parse_yy_create_buffer),
3144         (_gst_parse_yy_delete_buffer), (_gst_parse_yy_init_buffer),
3145         (_gst_parse_yy_flush_buffer), (_gst_parse_yypush_buffer_state),
3146         (_gst_parse_yypop_buffer_state),
3147         (_gst_parse_yyensure_buffer_stack), (_gst_parse_yy_scan_buffer),
3148         (_gst_parse_yy_scan_string), (_gst_parse_yy_scan_bytes),
3149         (yy_fatal_error), (_gst_parse_yyget_extra),
3150         (_gst_parse_yyget_lineno), (_gst_parse_yyget_column),
3151         (_gst_parse_yyget_in), (_gst_parse_yyget_out),
3152         (_gst_parse_yyget_leng), (_gst_parse_yyget_text),
3153         (_gst_parse_yyset_extra), (_gst_parse_yyset_lineno),
3154         (_gst_parse_yyset_column), (_gst_parse_yyset_in),
3155         (_gst_parse_yyset_out), (_gst_parse_yyget_debug),
3156         (_gst_parse_yyset_debug), (_gst_parse_yyget_lval),
3157         (_gst_parse_yyset_lval), (_gst_parse_yylex_init),
3158         (yy_init_globals), (_gst_parse_yylex_destroy), (yy_flex_strncpy),
3159         (yy_flex_strlen), (_gst_parse_yyalloc), (_gst_parse_yyrealloc),
3160         (_gst_parse_yyfree):
3161         If the installed flex version is too old use pre-generated parser
3162         sources. These pre-generated parser sources are always updated when
3163         the actual flex/bison sources change but require everybody who wants
3164         to change something in the parser to have flex >= 2.5.31 installed.
3166 2007-04-18  Stefan Kost  <ensonic@users.sf.net>
3168         * common/m4/gst-gettext.m4:
3169         * gst/gst-i18n-lib.h:
3170           Make --disable-nls to work
3172 2007-04-17  Wim Taymans  <wim@fluendo.com>
3174         * gst/gstconfig.h.in:
3175         Revert previous change that broke the build.
3177 2007-04-17  Stefan Kost  <ensonic@users.sf.net>
3179         * configure.ac:
3180         * gst/Makefile.am:
3181         * gst/gstconfig.h.in:
3182           Drop libxml2 dependency when building with 
3183           --enable-binary-registry --disable-loadsave
3185 2007-04-16  Tim-Philipp Müller  <tim at centricular dot net>
3187         * gst/gstregistrybinary.c: (gst_registry_binary_write_cache),
3188         (gst_registry_binary_read_cache):
3189         * gst/gstregistrybinary.h:
3190           Remove unnecessary <sys/mman.h> include which broke the win32 build
3191           with MingW; move includes from header file to .c file, even if the
3192           header file isn't installed; use g_strerror() where UTF-8 strings
3193           are expected, such as in GST_DEBUG messages.
3195 2007-04-13  Jan Schmidt  <thaytan@mad.scientist.com>
3197         * docs/libs/gstreamer-libs-sections.txt:
3198         Remove bogus addition for API I didn't end up keeping.
3200         * libs/gst/base/gstbasesrc.h:
3201         Mention Since: 0.10.13 in the documentation.
3203         Add the API keyword to the previous ChangeLog entry.
3205 2007-04-13  Jan Schmidt  <thaytan@mad.scientist.com>
3207         * docs/libs/gstreamer-libs-sections.txt:
3208         * libs/gst/base/gstbasesrc.c: (gst_base_src_class_init),
3209         (gst_base_src_default_prepare_seek_segment),
3210         (gst_base_src_prepare_seek_segment), (gst_base_src_perform_seek):
3211         * libs/gst/base/gstbasesrc.h:
3212         Allow basesrc derived classes to execute seeks in other formats
3213         by providing a prepare_seek_segment vmethod. Sub-classes can choose
3214         to prepare the GstSegment in any format that their perform_seek method
3215         will be able to understand. The default implementation provides the
3216         old behaviour of attempting to convert the seek offsets to the 
3217         configured native format.
3219         API: basesrc::prepare_seek_segment vmethod.
3221 2007-04-13  Jan Schmidt  <thaytan@mad.scientist.com>
3223         * gst/gstelement.c: (gst_element_get_state_func):
3224         Don't output the same debug statement twice.
3226         * libs/gst/base/gstadapter.c: (gst_adapter_try_to_merge_up),
3227         (gst_adapter_peek), (gst_adapter_take_buffer):
3228         Optimise the case where we have buffers at the head of the queue that
3229         can be joined quickly (because they're contiguous sub-buffers) by
3230         merging them together rather than copying data out into new memory.
3232         * gst/parse/grammar.y:
3233         * tests/check/pipelines/parse-launch.c:
3234         Fix a leak in an error path for parse_launch, and add a check 
3235         for it to the testsuite.
3237 2007-04-13  Jan Schmidt  <thaytan@mad.scientist.com>
3239         * plugins/elements/gstmultiqueue.c: (gst_multi_queue_release_pad):
3240           Don't deadlock when releasing a pad - gst_pad_set_active may try
3241           and take the multiqueue lock too.
3243 2007-04-12  Tim-Philipp Müller  <tim at centricular dot net>
3245         * gst/gsterror.c: (_gst_core_errors_init):
3246         * gst/gsterror.h:
3247           API: add GST_CORE_ERROR_DISABLED (#392804).
3249 2007-04-12  Thomas Vander Stichele  <thomas at apestaart dot org>
3251         * docs/faq/gst-uninstalled:
3252           don't get empty paths on the PATH variables
3253         * gst/gstpad.c (gst_pad_is_active, gst_pad_set_blocked_async):
3254           Don't format for the uncommon terminal width of 84 characters.
3256 2007-04-06  Wim Taymans  <wim@fluendo.com>
3258         * gst/gstpipeline.c: (reset_stream_time),
3259         (gst_pipeline_change_state), (gst_pipeline_set_new_stream_time):
3260         Only try to select a different pipeline clock when we went back to
3261         PAUSED and not when we merely got flushed.
3263 2007-04-05  Michael Smith  <msmith@fluendo.com>
3265         * tools/gst-launch.1.in:
3266           fractions are better supported in gstreamer than ractions, so
3267           suggest using those.
3269 2007-04-05  Thomas Vander Stichele  <thomas at apestaart dot org>
3271         Submitted by: Mogens Jaeger <mogens@jaeger.tf>
3273         * po/LINGUAS:
3274         * po/da.po:
3275           Added Danish translation.
3277 2007-04-05  Wim Taymans  <wim@fluendo.com>
3279         * libs/gst/base/gstbasesink.c:
3280         (gst_base_sink_queue_object_unlocked), (gst_base_sink_event):
3281         Fix leak caused when refusing newsegment after EOS.
3283         * plugins/elements/gstfakesink.c: (gst_fake_sink_class_init),
3284         (gst_fake_sink_init), (gst_fake_sink_set_property),
3285         (gst_fake_sink_get_property), (gst_fake_sink_preroll),
3286         (gst_fake_sink_render), (gst_fake_sink_change_state):
3287         * plugins/elements/gstfakesink.h:
3288         Add num-buffers property to make the element generate EOS after a
3289         configurable amount of buffers.
3290         API: fakesink::num-buffers property.
3292         * tests/check/elements/fakesink.c: (GST_START_TEST),
3293         (fakesink_suite):
3294         Fix GstBus leak in test.
3295         Test for fakesink num-buffers.
3297 2007-04-05  Wim Taymans  <wim@fluendo.com>
3299         * libs/gst/base/gstbasesink.c:
3300         (gst_base_sink_queue_object_unlocked), (gst_base_sink_event),
3301         (gst_base_sink_change_state):
3302         Don't accept anything after an EOS, return UNEXPECTED instead.
3304         * tests/check/elements/fakesink.c: (GST_START_TEST),
3305         (fakesink_suite):
3306         Unit test for new EOS behaviour.
3308 2007-04-05  Wim Taymans  <wim@fluendo.com>
3310         * gst/gstelement.c: (gst_element_get_request_pad):
3311         Make padtemplates also work when they don't contain %s or %d.
3313 2007-04-05  Wim Taymans  <wim@fluendo.com>
3315         * docs/gst/gstreamer-sections.txt:
3316         * gst/gstclock.c: (gst_clock_adjust_unlocked),
3317         (gst_clock_unadjust_unlocked), (gst_clock_set_calibration):
3318         * gst/gstclock.h:
3319         Improve _adjust_unlocked() so that it overflows less.
3320         Add gst_clock_unadjust_unlocked to convert from external time to
3321         internal time based on calibration.
3322         Add some more debug.
3323         API: GstClock::gst_clock_unadjust_unlocked()
3325 2007-04-03  Wim Taymans  <wim@fluendo.com>
3327         Patch by: Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com>
3329         * plugins/elements/gstmultiqueue.c: (gst_multi_queue_release_pad):
3330         Deactivate pads and free GstSingleQueue with gst_single_queue_free()
3331         when releasing sink pad. Fixes #425400.
3333 2007-04-02  Stefan Kost  <ensonic@users.sf.net>
3335         * docs/random/ensonic/dynlink.txt:
3336           More work on proposal for new core api.
3338         * docs/libs/gstreamer-libs-sections.txt:
3339         * libs/gst/base/gstbasetransform.h:
3340           API: GST_BASE_TRANSFORM_LOCK/UNLOCK added
3341           
3342         * libs/gst/controller/gstcontroller.c:
3343         (on_object_controlled_property_changed),
3344         (gst_controller_sync_values),
3345         (gst_controller_set_interpolation_mode):
3346         * libs/gst/controller/gstcontroller.h:
3347           Less verbose logging add docs for unimplemented parts and correctly
3348           return when using unavailable parts.
3350 2007-03-29  Jan Schmidt  <thaytan@mad.scientist.com>
3352         * gst/gstclock.c: (gst_clock_set_master), (do_linear_regression):
3353         Move all the debug to the CLOCK category, and associate it with
3354         the clock object.
3356 2007-03-29  Jan Schmidt  <thaytan@mad.scientist.com>
3358         * libs/gst/base/gstadapter.c: (gst_adapter_take_buffer):
3359         Make take_buffer a bit quicker by removing redundant checks
3360         caused by calling gst_adapter_take.
3362 2007-03-28  Tim-Philipp Müller  <tim at centricular dot net>
3364         * plugins/elements/gstmultiqueue.c: (gst_single_queue_free):
3365           Don't leak GCond.
3367         * tests/check/Makefile.am:
3368         * tests/check/elements/.cvsignore:
3369         * tests/check/elements/multiqueue.c: (setup_multiqueue),
3370         (GST_START_TEST), (multiqueue_suite):
3371           Add some dead simple unit tests for the 'multiqueue' element
3372           (some bits don't work yet and are disabled for now).
3374 2007-03-28  Tim-Philipp Müller  <tim at centricular dot net>
3376         * gst/gstelement.c: (gst_element_get_request_pad),
3377         (gst_element_class_get_request_pad_template):
3378           Make gst_element_get_request_pad() create request pads only for
3379           request pad templates and not for, say, sometimes pad templates.
3381 2007-03-28  Stefan Kost  <ensonic@users.sf.net>
3383         * docs/design/draft-klass.txt:
3384           Add example that needs more thinking.
3385         
3386         * docs/design/draft-missing-plugins.txt:
3387           More thoughts about wrapper plugins.
3388         
3389         * docs/random/ensonic/embedded.txt:
3390         * docs/random/ensonic/profiling.txt:
3391           More design work.
3393 2007-03-25  Wim Taymans  <wim@fluendo.com>
3395         * libs/gst/base/gstbasesrc.c: (gst_base_src_get_range),
3396         (gst_base_src_loop):
3397         Only push the segment events in the PLAYING state for live sources.
3399 2007-03-23  Jan Schmidt  <thaytan@mad.scientist.com>
3401         * gst/gstpipeline.c: (gst_pipeline_change_state):
3402         Modify the clock distribution path in PAUSED->PLAYING so that we 
3403         never attempt to choose a new clock unless we're actually leaving
3404         the PAUSED state for the first time. This prevents choosing a
3405         different clock when the state_change gets called for a 2nd time due
3406         to some element doing an async state change.
3408 2007-03-22  Sebastian Dröge  <slomo@circular-chaos.org>
3410         * gst/gstpad.c: (gst_pad_set_caps), (gst_pad_configure_sink),
3411         (gst_pad_configure_src), (gst_pad_alloc_buffer_full),
3412         (gst_pad_chain_unchecked), (gst_pad_push):
3413         Revert last commit. This needs some more thoughts.
3415 2007-03-22  Sebastian Dröge  <slomo@circular-chaos.org>
3417         * gst/gstpad.c: (gst_pad_set_caps), (gst_pad_alloc_buffer_full),
3418         (gst_pad_chain_unchecked), (gst_pad_push):
3419         Check in set_caps if the caps are compatible with the pad and remove
3420         two functions that are redundant now. Fixes #421543.
3422 2007-03-22  Wim Taymans  <wim@fluendo.com>
3424         * tests/check/gst/gstsystemclock.c: (GST_START_TEST),
3425         (mixed_thread), (mixed_async_cb), (gst_systemclock_suite):
3426         Unref some more to make valgrind happy.
3428 2007-03-22  Wim Taymans  <wim@fluendo.com>
3430         * gst/gstsystemclock.c: (gst_system_clock_id_wait_jitter_unlocked),
3431         (gst_system_clock_id_wait_jitter),
3432         (gst_system_clock_id_wait_async), (gst_system_clock_id_unschedule):
3433         Fix anoying regression that survived a few releases. When adding an
3434         async entry while blocking on a sync entry, the sync entry will unblock
3435         but still be busy, so it should continue to wait instead of returning
3436         _BUSY to the app.
3437         Add some comments here and there.
3439         * tests/check/gst/gstsystemclock.c: (mixed_thread),
3440         (mixed_async_cb), (GST_START_TEST), (gst_systemclock_suite):
3441         Add testcase for this.
3443 2007-03-22  Wim Taymans  <wim@fluendo.com>
3445         * libs/gst/base/gstbasesrc.c: (gst_base_src_get_range):
3446         Handle errors from the clock sync better, only UNSCHEDULED indicates a
3447         WRONG_STATE and can silently pause the task. All other cases should
3448         error out.
3450 2007-03-22  Wim Taymans  <wim@fluendo.com>
3452         Patch by: Ville Syrjala <syrjala at sci dot fi>
3454         * gst/gstpad.c: (gst_pad_alloc_buffer_full), (gst_pad_send_event):
3455         Fix possible deadlock if pad eventfunc is not specified.  Fixes #421177.
3456         Improve debugging.
3458 2007-03-21  Michael Smith  <msmith@fluendo.com>
3460         * docs/pwg/advanced-types.xml:
3461           Fix some errors in the typefinding docs pointed out on irc.
3463 2007-03-21  Jan Schmidt  <thaytan@mad.scientist.com>
3465         * libs/gst/base/gstbasesrc.c:
3466         Clarify FIXME comment in the face of having added unlock_stop()
3468 2007-03-21  Wim Taymans  <wim@fluendo.com>
3470         * gst/gstbin.c: (gst_bin_get_type), (gst_bin_element_set_state):
3471         Prepare for release where we warn against possible app breakage in the
3472         case of live pipelines along with an env var to enable/disable live
3473         preroll mode (GST_COMPAT=[no-]live-preroll).
3475 2007-03-20  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
3477         * plugins/elements/gstidentity.c (gst_identity_check_imperfect_offset):
3478         So we should use correct constants for checking for None offset.
3480 2007-03-20  Wim Taymans  <wim@fluendo.com>
3482         * docs/design/part-block.txt:
3483         Mention the fact that the newly switched element should be set to at
3484         least PAUSED.
3486 2007-03-20  Wim Taymans  <wim@fluendo.com>
3488         * gst/gst.c:
3489         Fix compilation with registry disabled as spotted by Saur.
3491 2007-03-20  Wim Taymans  <wim@fluendo.com>
3493         Patch by: Olivier Crete <tester at tester dot ca>
3495         * gst/gstelement.c: (gst_element_sync_state_with_parent):
3496         Look at the pending state too when syncing the element state to the
3497         parent. Fixes #420133.
3499 2007-03-19  Jan Schmidt  <thaytan@mad.scientist.com>
3501         * libs/gst/base/gstbasesink.c: (gst_base_sink_set_flushing),
3502         (gst_base_sink_change_state):
3503         * libs/gst/base/gstbasesink.h:
3504         * libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek),
3505         (gst_base_src_default_event), (gst_base_src_unlock_stop),
3506         (gst_base_src_deactivate):
3507         * libs/gst/base/gstbasesrc.h:
3508         Add ::unlock_stop to basesrc and basesink. This allows an opportunity
3509         for sub-classes to correctly clear any state they set trying to
3510         unlock, such as clearing out unlock commands from a command fd.
3511         API: basesrc::unlock_stop
3512         API: basesink::unlock_stop
3514         * plugins/elements/gstfdsink.c: (gst_fd_sink_class_init),
3515         (gst_fd_sink_render), (gst_fd_sink_unlock),
3516         (gst_fd_sink_unlock_stop):
3517         * plugins/elements/gstfdsrc.c: (gst_fd_src_class_init),
3518         (gst_fd_src_init), (gst_fd_src_unlock), (gst_fd_src_unlock_stop),
3519         (gst_fd_src_create), (gst_fd_src_get_size), (gst_fd_src_do_seek):
3521         Implement unlock_stop in fdsrc and fdsink.
3522         Implement seeking in fdsrc when a seekable fd is passed, as in
3523         gst-launch-0.10 fdsrc ! ... ! xvimagesink < /path/to/file
3525 2007-03-19  Wim Taymans  <wim@fluendo.com>
3527         Patch by: Evan Nemerson <evan at coeus dash group dot com>