Release 0.10.33
[platform/upstream/gstreamer.git] / NEWS
1 This is GStreamer 0.10.33 "Prior Spaceflight Experience is an Advantage"
2
3 Changes since 0.10.32:
4
5       * atomicqueue: add an atomic/lock-free queue structure based
6       * bufferlist: improve _add*() performance
7       * bus: in _add_watch() honour any per-thread default main context set via g_main_thread_push_thread_default()
8       * caps: new gst_caps_intersect_full() to intersect in different modes
9       * clock: add functions to re-init existing periodic GstClockIDs
10       * event: add QoS type (overflow, underflow, throttle) for QoS events
11       * ghostpad: The internally linked pad of the proxypad is the ghostpad
12       * gstpoll: retry reading the control socket to release properly all wakeups
13       * message: new progress message API for asynchronous operations
14       * pad: unlock before freeing the pad cache to avoid deadlock
15       * pad: better handling for when parent goes away during data/query/event flow
16       * parse-launch: allow element names to begin with digits
17       * pluginloader: call gst-plugin-scanner with the right arch on OSX, fixing hangs with firefox
18       * registry: fixes elements (features) disappearing if a plugin or plugin file is renamed
19       * structure: Add "(date)" as a type abbreviation of GDate
20       * structure: Don't allow invalid GDates in all structures and don't allow NULL GDates in taglists
21       * taglist: add a new "encoded-by" tag
22       * uri: add gst_filename_to_uri() that takes relative filenames
23       * utils: add gst_element_factory_can_{src|sink}_{any|all}_caps() to replace can_{sink,src}_caps()
24       * baseparse: new GstBaseParse class for parsers
25       * basesink: improve rate, duration, and average duration calculation
26       * basesink: use new QoS types and add add "throttle-time" property
27       * basesrc: Handle tag and custom downstream events the same
28       * basesrc: keep downstream caps order when fixating, to honour downstream preferences when negotiating
29       * basesrc: Return FALSE if we don't handle an event
30       * basesrc: Send synchronized custom downstream/both events downstream from the streaming thread
31       * basetransform: Be smarter with pad allocs
32       * basetransform: Check for pad alloc caps when suggestion is not fixed
33       * basetransform: Retain caps order when getting caps, to honour downstream preferences when negotiating
34       * funnel: new N-to-1 pipe fitting element imported from farsight
35       * fakesink: print buffer flags
36       * filesink: Fix escaping of URIs
37       * file{sink,src}: Check if non-URI characters are escaped, but only for the URI not the location property
38       * filesrc, filesink: fix URI creation regression for non-absolute locations
39       * filesrc: Fix escaping of file uris
40       * inputselector: Hold the selector lock while reading properties of the active pad
41       * inputselector: Make sure that EOS is always sent downstream for the active pad
42       * inputselector: Return GST_FLOW_OK until the selected pad pushed something downstream
43       * inputselector: Stop waiting for a pad switch when the pad is flushing
44       * multiqueue: fix some potential corner-case deadlocks and some leaks
45       * multiqueue: handle arbitrary sink + source pad naming
46       * queue2: don't read beyond the end of file upstream in pull mode; leak fixes
47       * plugins: make query and event functions more thread-safe, protect against parent-pad disappearing
48       * gst-launch: add GstIndex support
49
50 Bugs fixed since 0.10.32:
51
52      * 642356 : [Index] review api and add an example
53       * 402141 : gst_element_factory_can_{sink,src}_caps seems to be broken
54       * 518857 : [API] GstBaseParse: new base class for parsers
55       * 604094 : registry: do not remove features when removing a cached plugin that no longer is present
56       * 615357 : [macosx] Handle multi-arch plugin-scanner
57       * 617045 : [caps] New method for intersecting caps while retaining order
58       * 639674 : parse-launch: improve parsing resilience (for escapes at end of string)
59       * 639962 : design docs: Fix a few typos and a think
60       * 640071 : pluginloader: do not leak the description string of blacklisted plugin
61       * 640437 : design docs: fix 2 typos in part-MT-refcounting
62       * 640502 : fix a few typos
63       * 640622 : gst_element_link_pads_full function return wrong error information
64       * 640675 : high cpu-load with 0.10.32 release
65       * 640850 : GstElement: Fix warning with GCC 4.6
66       * 641212 : gst-uninstalled: use $GST_PREFIX variable
67       * 641928 : gst_pad_push fast path races with pad deactivation
68       * 642071 : Incorrect comparing of number of source and sink links when parsing a launch string
69       * 642130 : [basetransform] Check for pad alloc caps when suggestion is not fixed
70       * 642271 : crash in gst_caps_structure_intersect, encoder_match_media_type
71       * 642373 : [basetransform] Avoid too may pad allocs
72       * 642393 : [filesrc] Fails setting the same uri it's setting in the uri queries.
73       * 642504 : [mingw/cygwin build] correctly export plugin description
74       * 642522 : gstvalue.c does not include a deserialize function for uchar
75       * 642869 : gst_index_new: documentation typo
76       * 643301 : Adding a buffer to a buffer list iterates the list
77       * 643455 : [regression] Lots of dropouts in Empathy voip calls
78       * 644935 : [inputselector] During switching of streams it can happen that all pads returned not-linked last
79       * 645022 : GstTask: typo in GST_TASK_BROADCAST - g_cond_breadcast should probably be g_cond_broadcast
80       * 645267 : build: fix build with -Werror with GCC 4.6.0
81       * 645595 : bytereader, bytewriter: fix warnings when using inline functions with g++
82       * 645746 : [gstpoll] Regression causes 100% cpu usage in multifdsink
83       * 645877 : commit 14d7db1 causes cpu spinning and other bus weirdness
84       * 645931 : [gstmultiqueue] fix arbitrary sink + source pad naming
85       * 646118 : [gstmultiqueue] if arbitrary sink number is specified by caller, use this as single queue id
86       * 646341 : [baseparse] Add a queued flow return so parsers can keep frames in a queue
87       * 646531 : GST_BOILERPLATE: don't use " type " as both a variable name and a macro argument
88       * 646566 : Protect against Pad-Parent disappearing
89       * 646569 : poll: don't call WSAWaitForMultipleEvents with no events
90       * 646624 : GstBin: regression: creating too many bins fails, exhausting allowed file descriptor limit
91       * 646811 : baseparse: deadlock in gst_base_parse_set_index
92       * 646971 : iterator: resync to avoid infinite loop
93       * 647005 : GstBus: Only create the socketpair for async message delivery if required
94       * 647131 : recent multiqueue changes break DVD playback (again)
95       * 647293 : Fix pad callbacks so they handle when parent goes away
96       * 647763 : [bus] Bus is leaked if a watch is installed in the default main context
97       * 647844 : baseparse: Remove unused but set variable
98       * 647922 : [introspection] Needs to call gst_init() before anything else
99       * 648199 : pad: potential deadlock / crash when freeing cache
100       * 648215 : basetransform: unref in wrong place
101       * 648220 : Regression: videoscale fails to negotiate for PAR transformation
102       * 648297 : [bus] regression: critical assertion failure
103       * 649195 : [miniobject] Fix dup_mini_object function to handle NULL gvalues
104       * 635718 : [basesrc] custom, non-OOB events aren't pushed downstream
105       * 625396 : gst_debug_remove_log_function doesn't remove default log handler
106       * 640771 : amarok doesn't start with new phonon gstreamer
107       * 646972 : queue2: Fixes memory leak on out_flushing error in gst_queue2_create_read
108       * 640665 : basesink: drops too many buffers when there's no duration
109
110 API additions since 0.10.32:
111
112       * gst_atomic_queue_length()
113       * gst_atomic_queue_new()
114       * gst_atomic_queue_peek()
115       * gst_atomic_queue_pop()
116       * gst_atomic_queue_push()
117       * gst_atomic_queue_ref()
118       * gst_atomic_queue_unref()
119       * gst_buffer_list_iterator_get_type()
120       * gst_caps_intersect_full()
121       * gst_caps_intersect_mode_get_type()
122       * gst_clock_periodic_id_reinit()
123       * gst_element_factory_can_sink_all_caps()
124       * gst_element_factory_can_sink_any_caps()
125       * gst_element_factory_can_src_all_caps()
126       * gst_element_factory_can_src_any_caps()
127       * gst_event_new_qos_full()
128       * gst_event_parse_qos_full()
129       * gst_filename_to_uri()
130       * gst_message_new_progress()
131       * gst_message_parse_progress()
132       * gst_parse_context_get_type()
133       * gst_progress_type_get_type()
134       * gst_qos_type_get_type()
135       * GST_TAG_ENCODED_BY
136       * gst_base_parse_add_index_entry()
137       * gst_base_parse_convert_default()
138       * gst_base_parse_frame_free()
139       * gst_base_parse_frame_get_type()
140       * gst_base_parse_frame_init()
141       * gst_base_parse_frame_new()
142       * gst_base_parse_get_type()
143       * gst_base_parse_push_frame()
144       * gst_base_parse_set_average_bitrate()
145       * gst_base_parse_set_duration()
146       * gst_base_parse_set_frame_rate()
147       * gst_base_parse_set_has_timing_info()
148       * gst_base_parse_set_min_frame_size()
149       * gst_base_parse_set_passthrough()
150       * gst_base_parse_set_syncable()
151       * gst_base_sink_get_throttle_time()
152       * gst_base_sink_set_throttle_time()
153
154 API deprecated since 0.10.32:
155
156       * gst_element_factory_can_src_caps()
157       * gst_element_factory_can_sink_caps()
158
159 Changes since 0.10.31:
160
161       * GLib requirement is now >= 2.22
162       * New core element: valve (moved from -bad)
163       * New core element: input-selector (N.B. without "select-all" property,
164         use fsfunnel instead) (moved from -bad)
165       * New core element: output-selector (N.B. with different negotiation
166         behaviour by default, set pad-negotiation-mode=active for previous
167         behaviour) (moved from -bad)
168       * Performance improvements for many heavily-used code paths: GstPad,
169         GstPoll, GstClock, GstTask, basesink, basesrc, queue2, multiqueue
170       * gobject-introspection: add annotations for most core API
171       * clock: make sync clock wait lockfree
172       * fdsrc/fdsink: reenable on MSVC
173       * registry: fix GStatBuf definition for win32 when building against older
174         glib (fixes unnecessary rescanning of plugins at start-up)
175       * element: add a more flexible way to get request pads from elements
176       * multiqueue: return upon input when already eos
177       * object: fix creation of default name (when creating more than 100000 elements)
178       * pluginloader: fix hangs on OSX
179       * poll: fixes for (p)select backend (used e.g. on OSX)
180       * poll: refactor and make more lockfree; fixes for win32 and OSX (pselect backend)
181       * registry: don't replace valid existing plugins by blacklisted ones
182       * tags: don't produce duplicated entries when merging same value twice
183       * basesink: preroll fixes for async=false case
184       * basesink: rework position reporting code
185       * basetransform: handle downstream giving a buffer with new caps but invalid size
186
187 Bugs fixed since 0.10.31:
188
189       * 635785 : basesrc: fix deadlock
190       * 638599 : GST_PTR_FORMAT causes crashes if GLib-internal printf is used but system provides register_printf_specifier
191       * 503592 : gstpad.c does many ref/unref of peer pad in dataflow
192       * 564056 : Protect against umask(0177)
193       * 607513 : input-selector segfaults in g_object_notify()
194       * 632168 : [gsttask] MSVC thread names for task debugging
195       * 632447 : reduce static memory allocated by the registry
196       * 632557 : [macros] Define restrict keyword if not available
197       * 632778 : Optimisations to GstBaseSink
198       * 632779 : gstdataqueue: Only emit g_cond_signal when needed
199       * 632780 : queue: Remove useless checks from e406f7
200       * 633918 : [fakesink] [PATCH] print sink-message events like a  message and its structure
201       * 634965 : sinks render buffers in state PAUSED when async is FALSE
202       * 635001 : basesink: fix position reporting in PAUSED
203       * 636268 : configure test fails on FreeBSD
204       * 636455 : basesrc: Avoid taking object locks for just checking tag presence
205       * 637057 : [plugin-scanner] gstpoll fails with select backend
206       * 637300 : [API] request pad based on caps
207       * 637549 : build fails: ./.libs/libgstbase-0.10.so: undefined reference to `gst_clock_single_shot_id_reinit'
208       * 637776 : merging the same tag values again produces lists containing duplicates
209       * 638381 : {input,output}-selector: double-check API before release
210       * 638399 : a few typos in GStreamer
211       * 638900 : [GstPoll] Doesn't compile with MinGW
212       * 638941 : registry scan/loading race and inconsistency
213
214 API additions since 0.10.31:
215
216       * gst_clock_single_shot_id_reinit()
217       * gst_element_request_pad()
218       * GstElementClass::request_new_pad_full()
219       * gst_poll_get_read_gpollfd()
220       * gst_value_list_merge()
221       * GST_CLOCK_DONE
222
223 Changes since 0.10.30:
224
225       * bin: add "message-forward" property to force forwarding of messages that would usually be filtered such as ASYNC_DONE or EOS
226       * bin: improve tracking of source elements for more efficient event dispatch
227       * bufferlist: add function to add a list of buffers
228       * clock: fix racy shutdown clock id leak
229       * element: add support for arbitrary element class / factory details
230       * element: link_many should activate pads if needed
231       * gst: add math-compat.h header
232       * datetime: add GstDateTime API
233       * elementfactory: add utility functions to filter features by type
234       * plugin: load the gst-python plugin loader with G_MODULE_BIND_LAZY
235       * query: add buffering ranges API to retrieve informations about the areas of the stream currently buffered
236       * value: add int64 range type
237       * info: write debugging output to file if GST_DEBUG_FILE environment variable is set
238       * pad: use more efficient g_object_notify_by_pspec() for caps notifies if compiling against new-enough GLib
239       * pipeline: If the currently used clock gets lost update it the next time when going from PAUSED to playing
240       * plugin: add release datetime field to GstPluginDesc and set it if GST_PACKAGE_RELEASE_DATETIME is defined
241       * utils: speed up pad linking utility functions by not trying pads that will never work
242       * adapter: add function to get a list of buffers; support 0-sized buffers
243       * adapter: optimize gst_adapter_take() and gst_adapter_peek() a little
244       * basesink: only answer the SEGMENT query in pull mode
245       * basesrc: return values in stream time for the POSITION query
246       * basetransform: allow the subclass to add new fields to caps when getting new caps from downstream
247       * basetransform: avoid useless memcpy
248       * basetransform: upstream caps-renegotiation fixes
249       * bitreader: add inlined and unchecked versions of the most important functions
250       * bytewriter: add inline and unchecked variants of all important functions
251       * bytewriter: fix possible infinite loop caused by an overflow
252       * queue: add "silent" property to suppress signal emission (for better performance)
253       * queue: avoid unnecessary g_cond_signal() (for better performance)
254       * queue: push newsegment event when linking in PLAYING
255       * queue2: extend ring buffer to support RAM mode
256       * queue2: in download mode, prevent range corruption due to race
257       * queue2: don't send seeks beyond the end of the file upstream in pull mode (fixes apple trailers and youtube/html5 playback in webkit)
258       * multiqueue: flush the data queue if downstream return WRONG_STATE too
259       * gst-inspect: print GST_PARAM_MUTABLE_* property flags
260
261 Bugs fixed since 0.10.30:
262
263       * 396774 : Make GstElementDetails extensible
264       * 482147 : [queue] Issue with current time level if source task is not started
265       * 579127 : gst-launch: disable CLOCK_LOST message handling
266       * 594504 : Need a GType of " Date AND Time AND Timezone "
267       * 600004 : underrun signal emits when i tested queue overrun test case from file /gstreamerXXXX/tests/check/element/queue.c
268       * 610366 : [gstcollectpads][doc] Add a reminder for 'data' doc
269       * 611918 : leaky queue might not push newsegment event
270       * 618919 : Registry/Plugin Loading Memory Leak
271       * 619522 : basetransform fix for upstream caps-renegotiation
272       * 621299 : make simple queues faster
273       * 621332 : BaseTransform should disable proxy alloc if downstream changes caps
274       * 622740 : GstPad: Do not call gst_pad_accept_caps() when caps change
275       * 623040 : Add release_datetime field to GstPluginDesc
276       * 623121 : [queue2] downloaded areas of the media are not exposed
277       * 623491 : make *_get_type() thread safe
278       * 623541 : [basetransform] Implement POSITION query
279       * 623622 : [basesink/basesrc] Should return values in stream time for POSITION query
280       * 623806 : [pipeline] Doesn't update the clock if the currently used one gets lost and the start time did not change
281       * 623875 : gstregistrybinary.c compatibility with glib > = 2.25.0
282       * 624203 : gstutils: Make gst_pad_proxy_getcaps() return empty caps if it's what the other side has
283       * 625239 : FTBFS: ./gstreamer-decl.txt:9461: warning: GstTagList has multiple definitions.
284       * 625295 : [info] regression: doesn't flush output stream after every debug print any longer
285       * 625368 : gstdatetime.c doesn't compile in VS 2008
286       * 625862 : [docs] unused symbol GST_CAT_LEVEL_LOG_valist breaks the build
287       * 626027 : [tag] Add GST_TAG_APPLICATION_NAME
288       * 626181 : GstElementFactory: add listing/filtering API
289       * 626651 : [tag] Photography/capture settings tags
290       * 626784 : element: link_many might assert elements are in paused or playing
291       * 627438 : gst: Add a gst_is_initialized() API
292       * 627826 : GstInt64Range type
293       * 627910 : Warnings emitted when -Wcast-qual used
294       * 627959 : [queue2] on-disk buffering failing for AVI container
295       * 628014 : Deprecate GST_FLOW_IS_FATAL/GST_FLOW_IS_SUCCESS
296       * 628174 : New gstvalue checks cause trouble in thoggen
297       * 628176 : [basetransform] Problems with buffer handling in inplace mode
298       * 628408 : Use GDateTime that has been released
299       * 629241 : Build broken with introspection using gobject-introspection from master
300       * 629410 : GstBaseTransform: position query refers to sink pad, not source pad
301       * 629494 : Latest gst-launch.c doesn't build in Visual Studio 2008
302       * 629553 : GstAdapter: timestamp not updated when empty buffer is pushed
303       * 629831 : [API] add gst_structure_take_value() and gst_structure_id_take_value()
304       * 629946 : Enumerations have incorrect names of enum values (GEnumValue.value_name)
305       * 630257 : GST_DEBUG_DUMP_DOT_DIR not working anymore
306       * 630436 : basesink: renderdelay needs to be subtracted in adjust_time()
307       * 630437 : basetransform: Make a WARNING into a DEBUG statement
308       * 630439 : clock: fix racy shutdown clock id leak
309       * 631755 : Fix build with glib 2.21.3
310       * 631853 : [queue2] deadlock when using temp-location and dispatch-properties
311       * 632236 : [gst-inspect] unhelpful uri handler output
312       * 632433 : [basesink] hangs/drops going to PLAYING following flushing step in PAUSED
313       * 632977 : [queue2] qtdemux causes soup to request seeks past the end of the range
314       * 633147 : Simple reverse negotiation pipeline is broken.
315       * 633886 : Visual Studio emits warnings about double defined _USE_MATH_DEFINES
316       * 635031 : [datetime] Fix unix epoch handling
317       * 635389 : Include information on exported packages in GIRs
318       * 635869 : GST_BOILERPLATE_FULL causes warnings in user C++ code
319       * 633176 : recent multiqueue changes break DVD playback
320
321 API additions since 0.10.30:
322
323       * gst_is_initialized
324       * gst_buffer_list_iterator_add_list
325       * GstBin:message-forward
326       * GST_TYPE_DATE_TIME
327       * gst_date_time_get_day
328       * gst_date_time_get_hour
329       * gst_date_time_get_microsecond
330       * gst_date_time_get_minute
331       * gst_date_time_get_month
332       * gst_date_time_get_second
333       * gst_date_time_get_time_zone_offset
334       * gst_date_time_get_type
335       * gst_date_time_get_year
336       * gst_date_time_new
337       * gst_date_time_new_from_unix_epoch_local_time
338       * gst_date_time_new_from_unix_epoch_utc
339       * gst_date_time_new_local_time
340       * gst_date_time_new_now_local_time
341       * gst_date_time_new_now_utc
342       * gst_date_time_ref
343       * gst_date_time_unref
344       * gst_tag_list_get_date_time
345       * gst_tag_list_get_date_time_index
346       * GST_TAG_GEO_LOCATION_HORIZONTAL_ERROR
347       * GST_TAG_APPLICATION_DATA
348       * GST_TAG_APPLICATION_NAME
349       * GST_TAG_DATE_TIME
350       * GST_ELEMENT_IS_SOURCE
351       * gst_element_class_set_documentation_uri
352       * gst_element_class_set_icon_name
353       * gst_element_factory_get_documentation_uri
354       * gst_element_factory_get_icon_name
355       * gst_element_factory_list_filter
356       * gst_element_factory_list_get_elements
357       * gst_element_factory_list_is_type
358       * GstElementFactoryListType
359       * GST_ELEMENT_FACTORY_TYPE_ANY
360       * GST_ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS
361       * GST_ELEMENT_FACTORY_TYPE_AUDIO_ENCODER
362       * GST_ELEMENT_FACTORY_TYPE_DECODABLE
363       * GST_ELEMENT_FACTORY_TYPE_DECODER
364       * GST_ELEMENT_FACTORY_TYPE_DEMUXER
365       * GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER
366       * GST_ELEMENT_FACTORY_TYPE_ENCODER
367       * GST_ELEMENT_FACTORY_TYPE_FORMATTER
368       * GST_ELEMENT_FACTORY_TYPE_MAX_ELEMENTS
369       * GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO
370       * GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE
371       * GST_ELEMENT_FACTORY_TYPE_MEDIA_METADATA
372       * GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE
373       * GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO
374       * GST_ELEMENT_FACTORY_TYPE_MEDIA_ANY
375       * GST_ELEMENT_FACTORY_TYPE_MUXER
376       * GST_ELEMENT_FACTORY_TYPE_PARSER
377       * GST_ELEMENT_FACTORY_TYPE_PAYLOADER
378       * GST_ELEMENT_FACTORY_TYPE_SINK
379       * GST_ELEMENT_FACTORY_TYPE_SRC
380       * GST_ELEMENT_FACTORY_TYPE_VIDEO_ENCODER
381       * GST_ELEMENT_FACTORY_KLASS_DECODER
382       * GST_ELEMENT_FACTORY_KLASS_ENCODER
383       * GST_ELEMENT_FACTORY_KLASS_SINK
384       * GST_ELEMENT_FACTORY_KLASS_SRC
385       * GST_ELEMENT_FACTORY_KLASS_MUXER
386       * GST_ELEMENT_FACTORY_KLASS_DEMUXER
387       * GST_ELEMENT_FACTORY_KLASS_PARSER
388       * GST_ELEMENT_FACTORY_KLASS_PAYLOADER
389       * GST_ELEMENT_FACTORY_KLASS_DEPAYLOADER
390       * GST_ELEMENT_FACTORY_KLASS_FORMATTER
391       * GST_ELEMENT_FACTORY_KLASS_MEDIA_VIDEO
392       * GST_ELEMENT_FACTORY_KLASS_MEDIA_AUDIO
393       * GST_ELEMENT_FACTORY_KLASS_MEDIA_IMAGE
394       * GST_ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE
395       * GST_ELEMENT_FACTORY_KLASS_MEDIA_METADATA
396       * gst_plugin_feature_list_debug
397       * gst_plugin_feature_rank_compare_func
398       * gst_query_add_buffering_range
399       * gst_query_get_n_buffering_ranges
400       * gst_query_parse_nth_buffering_range
401       * gst_structure_get_date_time
402       * gst_structure_id_take_value
403       * gst_structure_take_value
404       * GST_TYPE_INT64_RANGE
405       * gst_int64_range_get_type
406       * gst_util_fraction_compare
407       * gst_value_get_int64_range_max
408       * gst_value_get_int64_range_min
409       * gst_value_set_int64_range
410       * GST_VALUE_HOLDS_DATE_TIME
411       * gst_adapter_take_list
412       * gst_bit_reader_skip_unchecked
413       * gst_bit_reader_skip_to_byte_unchecked
414       * gst_bit_reader_get_bits_uint16_unchecked
415       * gst_bit_reader_get_bits_uint32_unchecked
416       * gst_bit_reader_get_bits_uint64_unchecked
417       * gst_bit_reader_get_bits_uint8_unchecked
418       * gst_bit_reader_peek_bits_uint16_unchecked
419       * gst_bit_reader_peek_bits_uint32_unchecked
420       * gst_bit_reader_peek_bits_uint64_unchecked
421       * gst_bit_reader_peek_bits_uint8_unchecked
422       * gst_byte_writer_put_int8_unchecked
423       * gst_byte_writer_put_int16_be_unchecked
424       * gst_byte_writer_put_int16_le_unchecked
425       * gst_byte_writer_put_int24_be_unchecked
426       * gst_byte_writer_put_int32_be_unchecked
427       * gst_byte_writer_put_int32_le_unchecked
428       * gst_byte_writer_put_int64_be_unchecked
429       * gst_byte_writer_put_int64_le_unchecked
430       * gst_byte_writer_put_uint8_unchecked
431       * gst_byte_writer_put_uint16_be_unchecked
432       * gst_byte_writer_put_uint16_le_unchecked
433       * gst_byte_writer_put_uint24_be_unchecked
434       * gst_byte_writer_put_uint24_le_unchecked
435       * gst_byte_writer_put_uint32_be_unchecked
436       * gst_byte_writer_put_uint32_le_unchecked
437       * gst_byte_writer_put_uint64_be_unchecked
438       * gst_byte_writer_put_uint64_le_unchecked
439       * gst_byte_writer_put_float32_be_unchecked
440       * gst_byte_writer_put_float32_le_unchecked
441       * gst_byte_writer_put_float64_be_unchecked
442       * gst_byte_writer_put_float64_le_unchecked
443       * gst_byte_writer_put_data_unchecked
444       * gst_byte_writer_fill_unchecked
445
446 API deprecated since 0.10.30:
447
448       * GST_FLOW_IS_FATAL
449       * GST_FLOW_IS_SUCCESS
450
451 Changes since 0.10.29:
452
453       * GLib requirement was bumped to 2.20, automake requirement to 1.10
454       * bin: unlock gst_element_get_state() on error, instead of hanging forever if no timeout is given
455       * clock: fix refcounting bug in gst_clock_set_master
456       * caps: make sure _normalize() is applied on all structures
457       * info: add new TRACE log level and move refcounting there from LOG level
458       * pad: don't check twice for changed caps per push
459       * pad: fix iterator aggregation of all pads in the internal links fallback
460       * tagsetter: protect tagsetter operations with a lock
461       * value: support short fourccs (esp. serialisation/deserialisation)
462       * adapter: fix _try_to_merge_up(); optimize progressive masked scans
463       * basesink: implement percentage position and duration queries
464       * basesink: fix segment query return value
465       * basetransform: add accept_caps vmethod
466       * basetransform: re-evaluate proxy_alloc when reconfigured
467       * basetransform: assume in_size equals out_size if there's no transform_size/get_unit_size vfunc
468       * fdsink, filesink: make sync property work correctly
469       * typefind: make sure buffers' metadata is writable before setting caps on them
470       * queue2: fix merging of ranges
471       * queue2: don't wait for data when EOS
472       * queue2: don't ignore failure to open the temporary file location
473       * tools: make gst-launch print things correctly to stderr/stdout and make --quiet work correctly
474       * introspection: add many more gobject-introspection annotations
475       * xml: serialisation/deserialisation to/from XML has been deprecated, since it's always been broken
476         for all but the most trivial pipelines, and will likely never be fixed
477
478 Bugs fixed since 0.10.29:
479
480       * 623586 : gst/tagsetter check fails
481       * 463435 : Skip #include < libxml/parser.h > in gstconfig.h.in when  not needed
482       * 505770 : gst_element_get_state() should unblock if element posts an error
483       * 615820 : implement percentage position and duration queries
484       * 615941 : [tags] Add GST_TAG_DEVICE_MANUFACTURER and GST_TAG_DEVICE_MODEL
485       * 616586 : Use GObject's boxed type for GError
486       * 617223 : [tags] Add tags for direction of capture and movement
487       * 617625 : Commandline utility wrappers (gst-run) don't work on Windows
488       * 618644 : gst_pad_get_caps() Return pad template if parent element is in GST_STATE_NULL
489       * 619508 : [tag] Add image orientation tag
490       * 619815 : GST_PLUGIN_LOADING_WHITELIST env var for unit tests
491       * 619828 : [API] adapter: add masked_scan_uint32_peek
492       * 620460 : info: add new TRACE log level and move refcounting there from LOG level
493       * 620490 : [basesink] segment query unconditionally returns FALSE
494       * 621006 : Deprecate unused gst_object_{get|set}_name_prefix()
495       * 621282 : Display of short fourccs is in hex instead of text
496       * 621332 : BaseTransform should disable proxy alloc if downstream changes caps
497       * 621334 : GstBaseTransform should not require a transform_size function
498       * 621505 : Disable memory poisoning by default for releases
499       * 621527 : gstcaps: New gst_caps_steal_structure() method
500       * 621530 : filesink ignores sync=true
501       * 621595 : --quiet doesnt make gst-launch be completely quiet, also messages should not go to stdout
502       * 621773 : Add introspection annotations
503       * 621867 : gst-launch: rename new --no-play command line option
504       * 621896 : [API][taglist] Add gst_tag_list_peek_string_index
505       * 622504 : [GstPad] Provide more fine-grained linking methods
506       * 622546 : distcheck fails in docs/plugins/
507       * 622685 : [GstXml] Deprecate GstXml
508       * 622967 : [queue2] Problems with progressive downloading
509       * 623301 : gst_caps_normalize : doesn't normalize completely
510       * 623589 : Fix races/refcounting bugs with slave clocks
511       * 624113 : [tags] wrong behaviour in merge function for strings
512       * 622025 : Can't build gstreamer due to Gst-0.10.gir: error: Can't resolve type 'PadIntLinkFunction' for field Gst.Pad.intlinkfunc
513
514 API additions since 0.10.29:
515
516       * gst_caps_steal_structure()
517       * gst_clock_id_wait_async_full()
518       * gst_element_link_pads_full()
519       * GstPadLinkCheck
520       * gst_pad_link_check_get_type()
521       * gst_pad_link_full()
522       * gst_structure_fixate_field_string()
523       * GST_TAG_DEVICE_MANUFACTURER
524       * GST_TAG_DEVICE_MODEL
525       * GST_TAG_IMAGE_ORIENTATION
526       * GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION
527       * GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION
528       * GST_TAG_GEO_LOCATION_MOVEMENT_SPEED
529       * gst_tag_list_peek_string_index()
530       * GST_TRACE
531       * GST_TRACE_OBJECT
532       * GST_CAT_TRACE
533       * GST_CAT_TRACE_OBJECT
534       * GST_LEVEL_TRACE
535       * gst_adapter_masked_scan_uint32_peek
536       * GstBaseSink::enable-last-buffer
537       * gst_base_sink_is_last_buffer_enabled()
538       * gst_base_sink_set_last_buffer_enabled()
539       * GstBaseTransform::accept_caps()
540
541 API deprecated since 0.10.29:
542
543       * gst_object_get_name_prefix()
544       * gst_object_set_name_prefix()
545       * gst_caps_load_thyself()
546       * gst_caps_save_thyself()
547       * gst_class_signal_emit_by_name()
548       * gst_object_save_thyself()
549       * gst_object_restore_thyself()
550       * gst_pad_load_and_link()
551       * gst_xml_get_element()
552       * gst_xml_get_topelements()
553       * gst_xml_get_type()
554       * gst_xml_make_element()
555       * gst_xml_new()
556       * gst_xml_parse_doc()
557       * gst_xml_parse_file()
558       * gst_xml_parse_memory()
559       * gst_xml_write()
560       * gst_xml_write_file()
561
562 Changes since 0.10.28:
563
564       * improve plugin loading robustness: do not ever unload a plugin after
565         calling into it: should fix mystery crashers during registry loading
566         when a plugin init function returns FALSE (e.g. when some supporting
567         library fails to initialise or a wrapper plugin found no features to
568         wrap and wrongly returned FALSE)
569       * configurable memory alignment for GstBuffers
570       * add QoS message to inform apps of lost data, dropped frames etc.
571       * basesink, basetransform: add support for new QoS message
572       * basetransform: accept non-fixed caps suggestions
573       * basesrc: fix gst_base_src_new_seamless_segment()
574       * GstController fixes and optimisations
575       * set thread name for pad tasks on Linux
576       * pipeline, bin: fix refcount issue when removing elements during a state change
577       * queue2: implement seeking in download mode
578       * queue2: implement flushing in download buffering
579       * queue2: improve buffer level measurement in download mode
580       * fdsrc: allow specifying the size in bytes on the uri
581       * build fixes: better checks for uint128_t, inline assembly on OSX, compilation
582         if HAVE_REGISTER_PRINTF_SPECIFIER is undefined, gobject-introspection
583       * two symbols were removed that had been exported but never been used or been
584         declared in any header file: gst_element_default_error and gst_element_request_compatible_pad
585
586 Bugs fixed since 0.10.28:
587
588       * 576234 : [basetransform] Suggesting non-fixed caps or no size doesn't work for upstream negotiation
589       * 520697 : [API] Add GST_TAG_USER_RATING
590       * 590718 : docs build failures with -jN: cp: cannot create regular file `build/image.entities': File exists
591       * 595958 : Position not updated after a backwards gst_event_new_step()
592       * 596832 : configurable buffer alignment
593       * 600718 : autoconf fails with gobject-introspection
594       * 600877 : [uridecodebin] Needs to disable download buffering for non-fast-start files
595       * 603710 : Can't compile with introspection support
596       * 603831 : build with libtool 1.x.y only works if --disable-shave is used
597       * 609046 : basetransform now ignores suggestions from capsfilter
598       * 609170 : basesrc pushes two newsegment
599       * 610256 : Use G_VALUE_COLLECT_INIT if available
600       * 611075 : Typo in debug_dump_pad function
601       * 611911 : Set thread names on pipeline threads
602       * 612370 : gstutils.c inline asm typo, compilation fails
603       * 612410 : [API][tags] add new geo tags
604       * 612733 : Build fails because HAVE_REGISTER_PRINTF_SPECIFIER is undefined
605       * 612881 : [utils] gst_pad_proxy_setcaps() doesn't handler iterator resyncs
606       * 613215 : delayed set in gst-launch are not recursive
607       * 613593 : git-update.sh script does not work on fresh git repository clones
608       * 614167 : gstinfo: no previous prototype for 'xxx' when buildign with --disable-gst-debug
609       * 614629 : utils: Use G_GNUC_CONST instead of G_GNUC_PURE for conversion functions
610       * 614767 : libgstreamer build failure on OS X x86_64
611       * 614833 : out of srcdir build fails for libs/gst/check
612       * 615698 :  " warning: cast increases required alignment of target type " with gcc 4.2.1 on arm
613       * 615756 : [bin] refcount issue when removing element in error
614       * 615880 : Add some more custom flow returns
615       * 615881 : [LFOControlSource] Use correct setter for double GValues
616       * 616846 : Crash in gst_interpolation_control_source_find_control_point_iter
617
618 API additions since 0.10.28:
619
620       * GST_MESSAGE_QOS
621       * gst_message_new_qos()
622       * gst_message_parse_qos()
623       * gst_message_parse_qos_stats()
624       * gst_message_parse_qos_values()
625       * gst_message_set_qos_stats()
626       * gst_message_set_qos_values()
627       * GST_FLOW_CUSTOM_SUCCESS_1
628       * GST_FLOW_CUSTOM_SUCCESS_2
629       * GST_FLOW_CUSTOM_ERROR_1
630       * GST_FLOW_CUSTOM_ERROR_2
631       * GST_TAG_USER_RATING
632       * GST_TAG_GEO_LOCATION_COUNTRY
633       * GST_TAG_GEO_LOCATION_CITY
634       * GST_TAG_GEO_LOCATION_SUBLOCATION
635
636 API deprecated since 0.10.28:
637
638       * gst_element_class_set_details()
639
640 Changes since 0.10.27:
641
642      * parse "1/MAX" fraction strings
643      * no material changes compared to 0.10.27, this release is mostly to
644        keep core/base version numbers in sync
645
646 Changes since 0.10.26:
647
648       * basesrc: protect segment values from concurrent access from different threads
649       * typefind: protect internal fields from concurrent changes from different threads
650       * typefind: fix pad activation corner-case with have-type already having been emitted
651       * typefind: reset the working mode when going to READY/NULL, fixes re-use from
652         READY state as with decodebin2
653       * gstpoll: fix crash when logging is enabled for GST_POLL
654       * bytewriter: expose gst_byte_writer_put_{float32|float64}_*() properly in header
655       * basesink: fix emergency rendering timestamp tracking
656       * fdsink, fdsrc: fix compilation with MSVC
657       * memindex: avoid busy loop when doing EXACT lookup
658
659 Bugs fixed since 0.10.26:
660
661       * 610366 : [gstcollectpads][doc] Add a reminder for 'data' doc
662       * 605189 : gst_element_get_state has wrong introspection
663       * 607771 : [API] Add gst_byte_writer_fill
664       * 608036 : [typefind] deadlock when upstream puts caps on buffers on pull mode
665       * 608877 : [typefind] Access to internal fields not threadsafe
666       * 609941 : GStreamer-WARNING **: External plugin loader failed.
667       * 610210 : [PATCH] Fix compilation of fdsink and fdsrc with MSVC
668       * 610246 : [optimization] Speed up _get_range()
669       * 610367 : [memindex] might busy loop upon EXACT lookup
670       * 610444 : [controller] Interpolation control source passes NULL pointers to GSequence API
671       * 611087 : [basesink] emergency rendering of late buffers fails after resuming from PAUSE
672       * 611719 : GST_DEBUG_OBJECT macros not fed with GObject* in gstpoll.c
673
674 API additions since 0.10.26:
675
676       * gst_byte_writer_fill()
677
678 Changes since 0.10.25:
679
680       * registry: do plugin scanning (on *nix) using an external helper binary
681       * lots of performance improvements all over the place (ghostpads,
682         multiqueue, pad construction, superfluous type checks, registry loading)
683       * add GstByteWriter, a simple generic byte writer
684       * filesink: Use _wfopen on win32 to open files with non-ascii filenames correctly.
685       * queue2: add option to remove the temp-file (enabled by default)
686       * it is now allowed to use gst_caps_set_simple() on non-simple caps
687       * queue2: move from gst-plugins-base into the coreelements plugin in core
688         (this means you may need to remove libgstqueue2.so manually if you
689         installed from source and don't do make uninstall before upgrading, or
690         combine an older -base with a newer core)
691       * multiqueue: add support for buffering mode where we post BUFFERING
692         messages based on the level of the queues
693       * typefind: speed up typefinding a lot by first trying the typefinder for
694         the file's extension
695       * buffer: remove private/internal subbuffer subclass and keep track of
696         the parent buffer directly in the GstBuffer structure (this removes
697         quite a bit of special-casing and will allow for future improvements/
698         extensions that are harder to do if there's a separate subbuffer class.
699       * collectpads: add ability to install clipping functions
700       * new tags for TV/Radio shows/episodes, lyrics, composer sortname and
701         grouping
702       * miniobject: avoid race when recycling buffers
703       * basesrc: fix race in PLAYING->PAUSED->PLAYING
704
705 Bugs fixed since 0.10.25:
706
707       * 476514 : [multiqueue] Doesn't forward EOS event in all cases
708       * 590941 : API: add gst_pad_get_caps() variant that avoids unneeded caps copies
709       * 595602 : g_child_proxy_get_valist doesn't initialize GValue correctly
710       * 535069 : basesrc no longer support non-flushing seeks on itself
711       * 560442 : GNOME Goal: Remove deprecated GLib symbols
712       * 595511 : Annotations for gst_element_query_{position,duration}
713       * 595886 : gst_pad_fixate_caps() does not return fixed caps in case of multiple structures
714       * 595964 : [multiqueue] can hang pipeline during startup
715       * 596366 : proxy_getcaps reverses direction of getcaps
716       * 597407 : GstPipeline calculates base_time incorrectly when a new clock appears during PAUSED state
717       * 597550 : basesrc: sometimes no buffers produced after PLAYING - PAUSED - PLAYING
718       * 597690 : Improve caps setters API
719       * 598297 : make check fails when any --disable option which changes the API has been used
720       * 598526 : bytewriter: fails to compile with gcc 4.2.4 on Ubuntu Hardy 64 bits
721       * 598700 : scripts: Parallelise git-update.sh build script
722       * 598895 : [GstRegistry] Use hash table for feature lookups
723       * 598896 : [GstRegistry] Cache lists of ElementFactory and TypeFindFactory
724       * 599147 : typefind : Avoid having to re-sort the typefind factory list
725       * 599759 : [qtdemux] Add support for more tags
726       * 600313 : Visualisations stop updating after seek
727       * 600922 : gst-launch: wake up less often to check for Ctrl-C
728       * 601587 : MiniObject race condition
729       * 601668 : [gstregistry] gstregistry.c uses a variable from gst.c
730       * 601669 : [tests] tests/examples/manual depends on libgstcheck
731       * 602093 : libgstcheck fails to export some symbols when built under et_EE locale
732       * 602275 : [API] Add new sink-message event
733       * 602419 : [basesink] Regression with position reporting
734       * 603059 : Totem crashes when DVD is encrypted but libdvdcss isn't available
735       * 603787 : [registry] Doesn't use GMappedFile
736       * 604091 : tee: cleanup requestpads in dispose
737       * 604093 : gst-inspect/launch: move gst_tools_print_version to avoid glib warning
738       * 605251 : tee causes segfault if there is no source pad
739       * 605930 : [shave] common/shave not existing yet when configure checks need it
740       * 606435 : gsttee not threadsafe
741       * 607283 : segfaults and/or miniobject warnings with GLib > = 2.23.2
742       * 607317 : [PATCH] fix unaligned detection for x86-64 when cross compiling
743       * 607431 : update common modules before freeze
744       * 607481 : Should define G_THREADS_MANDATORY everywhere
745       * 607739 : [queue2] Temporary file is removed although code claims the opposite
746       * 607842 : Audio comes out with short breaks after resume pipeline (paused- > playing)
747       * 608136 : multiqueue handles UNEXPECTED flowreturn wrongly
748       * 608398 : Initializing the glib thread system seems not to work
749       * 608442 : [filesrc] typo in warning message
750       * 608726 : bytewriter: mistake in .h/.c function naming
751       * 609166 : Buffer list docs ascii art
752       * 590669 : [API] need GstByteWriter or GstChunkWriter
753       * 601698 : Rename new plugin-scanner helper executable before release
754       * 604565 : [gstcheck] Update check to 0.9.8
755       * 596877 : New internal libcheck breaks the Solaris build
756
757 API additions since 0.10.25:
758
759       * GST_DEBUG_REGISTER_FUNCPTR()
760       * gst_base_src_new_seamless_segment()
761       * gst_event_new_sink_message()
762       * gst_event_parse_sink_message()
763       * gst_util_fraction_add()
764       * gst_util_fraction_multiply()
765       * gst_util_greatest_common_divisor()
766       * gst_util_double_to_fraction()
767       * gst_util_fraction_to_double()
768       * gst_registry_get_feature_list_cookie()
769       * gst_default_registry_get_feature_list_cookie()
770       * gst_pad_get_caps_reffed()
771       * gst_pad_peer_get_caps_reffed()
772       * gst_structure_id_has_field()
773       * gst_structure_id_has_field_typed()
774       * gst_plugin_feature_list_copy()
775       * gst_caps_set_value()
776       * gst_byte_writer_ensure_free_space()
777       * gst_byte_writer_free()
778       * gst_byte_writer_free_and_get_buffer()
779       * gst_byte_writer_free_and_get_data()
780       * gst_byte_writer_get_remaining()
781       * gst_byte_writer_init()
782       * gst_byte_writer_init_with_buffer()
783       * gst_byte_writer_init_with_data()
784       * gst_byte_writer_init_with_size()
785       * gst_byte_writer_new()
786       * gst_byte_writer_new_with_buffer()
787       * gst_byte_writer_new_with_data()
788       * gst_byte_writer_new_with_size()
789       * gst_byte_writer_put_data()
790       * gst_byte_writer_put_float32_be()
791       * gst_byte_writer_put_float32_le()
792       * gst_byte_writer_put_float64_be()
793       * gst_byte_writer_put_float64_le()
794       * gst_byte_writer_put_int16_be()
795       * gst_byte_writer_put_int16_le()
796       * gst_byte_writer_put_int24_be()
797       * gst_byte_writer_put_int24_le()
798       * gst_byte_writer_put_int32_be()
799       * gst_byte_writer_put_int32_le()
800       * gst_byte_writer_put_int64_be()
801       * gst_byte_writer_put_int64_le()
802       * gst_byte_writer_put_int8()
803       * gst_byte_writer_put_string_utf16()
804       * gst_byte_writer_put_string_utf32()
805       * gst_byte_writer_put_string_utf8()
806       * gst_byte_writer_put_uint16_be()
807       * gst_byte_writer_put_uint16_le()
808       * gst_byte_writer_put_uint24_be()
809       * gst_byte_writer_put_uint24_le()
810       * gst_byte_writer_put_uint32_be()
811       * gst_byte_writer_put_uint32_le()
812       * gst_byte_writer_put_uint64_be()
813       * gst_byte_writer_put_uint64_le()
814       * gst_byte_writer_put_uint8()
815       * gst_byte_writer_reset()
816       * gst_byte_writer_reset_and_get_buffer()
817       * gst_byte_writer_reset_and_get_data()
818       * gst_bit_reader_get_size()
819       * gst_byte_reader_get_size()
820       * gst_data_queue_new_full()
821       * gst_collect_pads_set_clip_function()
822       * gst_type_find_helper_get_range_ext()
823
824 Changes since 0.10.24:
825     
826       * Improve the byte-reader API
827       * GObject introspection support
828       * Improve clock accuracy on win32
829       * Optimisations in capabilities checking
830       * Optimisations and fixes in the basetransform base class
831       * new 64-bit scaling utility function variants
832       * Various bug-fixes and improvements (see ChangeLog and bugs list below)
833
834 Bugs fixed since 0.10.24:
835      
836       * 583999 : [basetransform] caps refcounting problem causing GST_IS_CAPS assertion failures
837       * 566881 : [GstIndex] support/caching in GstBin
838       * 588472 : [basetransform] problems in reverse-negotiating
839       * 589173 : macros cause spurious semicolon warnings
840       * 589314 : [basetransform] clears GAP flag in passthrough mode
841       * 589524 : gst_base_transform_acceptcaps() could provide more verbose debugging output
842       * 589849 : [segment] Clipping fails to handle start=stop < segment_start correctly
843       * 589991 : [queue] limited error handling might cause pipeline appearing to hang
844       * 590045 : Query position fails when pipeline is paused and format is not time
845       * 590430 : Add support for " album artist " tags
846       * 590841 : configure script check for libxml2 is incorrect
847       * 590919 : gst_util_uint64_scale_int() and friends don't round
848       * 591045 : [basesrc] Leaking GstTask instances
849       * 591318 : ghostpad : core dump : on_src_target_notify called with an invalid ghostpad
850       * 591441 : append mode for filesink
851       * 592209 : [GstPad] Deprecated markers missing in the header for internal links function related things
852       * 592314 : core/tests/examples/streams/ does not link to pthread
853       * 593460 : Broken win32-specific systemclock code
854       * 593719 : regression: segfault when using gstrtpbin and certain video codecs
855       * 594107 : [gstbin] : use of freed message : valgrind Invalid read
856       * 594225 : [API] [bytereader] add _unchecked() variants and inline most common functions
857       * 594990 : [introspection] pkg-config file madness and another bug
858       * 595130 : checks fail
859       * 595133 : gst/gstutils check fails
860       * 595209 : Fix out-of-tree build
861       * 368536 : bin_change_state makes children go through unnecessary state changes
862
863 API additions since 0.10.24:
864     
865       * gst_caps_can_intersect()
866       * gst_util_uint64_scale_int_round()
867       * gst_util_uint64_scale_int_ceil()
868       * gst_util_uint64_scale_round()
869       * gst_util_uint64_scale_ceil()
870       * gst_iterator_new_single()
871       * gst_byte_reader_skip_unchecked()
872       * gst_byte_reader_peek_*_unchecked()
873       * gst_byte_reader_get_*_unchecked()
874       * gst_byte_reader_{peek,get,dup}_data_unchecked()
875       * gst_byte_reader_get_float*_unchecked()
876
877 Changes since 0.10.23:
878     
879       * Fully support nested structures in caps
880       * Support frame-by-frame stepping in sinks
881       * Add support for buffer-lists to pass around groups of buffers
882       * Use TaskPools for managing worker threads
883       * New stream-status API for finer thread control
884       * Code optimisations
885       * Many other bug-fixes and enhancements
886
887 Bugs fixed since 0.10.23:
888      
889       * 580579 : crash in Volume Control: aucunes idées désolé.
890       * 527488 : [GstXML] can't load elements with request pads from XML
891       * 570233 : allow plugins caching data in the registry
892       * 584389 : don't recreate plugin feature and element factories on fi...
893       * 534208 : [API] add gst_structure_get()
894       * 545787 : [API] add gst_plugin_register_static_full() for bindings
895       * 554460 : thumbnailer crash in gst_fake_sink_event() on FLUSH_START...
896       * 559643 : Don't allow empty or NULL strings in taglists
897       * 560345 : gst_tag_list_get_string() may return NULL or empty string
898       * 560442 : GNOME Goal: Remove deprecated GLib symbols
899       * 572285 : Buffer Lists
900       * 577926 : Remove old xml registry
901       * 578908 : [fdsink] implement seeking on seekable fds
902       * 580177 : glibc 2.10 deprecates register_printf_function
903       * 580716 : race condition in gst_element_lost_state
904       * 581198 : [tags] Add gst_tag_setter_add_tag_value() and gst_tag_lis...
905       * 581281 : [GstURIHandler] Doesn't use get_type_full() at all
906       * 582010 : audiotestsrc is-live=1 ! pulsesink unreliable
907       * 582564 : [controller] Use ordered GSequence instead of GList in th...
908       * 582588 : [API] Add a way to get the pad corresponding to a taglist
909       * 582878 : [GstClock] ABI breakage in GIT on x86
910       * 583187 : [API] add gst_adapter_masked_scan_uint32() and gst_adapte...
911       * 583419 : Bad translatable string in gst-launch.c
912       * 583456 : framestep functionality
913       * 583554 : Slow down or lock if date time is changed to the past
914       * 584835 : MSVC compiler fails with 'static inline' function
915       * 584838 : basesrc: confusing QUERY_SEEKING handling
916       * 585039 : rtpool-test can't find pthreads
917       * 585075 : Compilation with MSVC fails for files including config.h ...
918       * 585137 : gst_xml_write_file() fails serialising GstStructure property
919       * 585592 : [API] add gst_byte_reader_masked_scan_uint32()
920       * 585733 : Wrong #include order in gstsegment.c
921       * 585748 : [API] add gst_tag_list_new_full() to create taglist with ...
922       * 586566 : Add GAP Flag support to gstcapsfilter
923       * 586568 : [bytereader] add misc. string functions and gst_byte_read...
924       * 587973 : use G_DIR_SEPARATOR_S instead of " /' " 
925       * 587976 : Fix for gst-inspect and gst-launch when option parsing is...
926       * 588744 : [check] Stream consistency checker utility
927       * 588745 : [basesrc] Serialize tags in the dataflow
928       * 589127 : gsttask leaks the pool
929       * 590056 : [collectpads] race resulting in double flush-stop being o...
930       * 590622 : [bytereader] buffer size checks subject to wrap-around ov...
931       * 579177 : GstInfo: maintain ABI compatibility
932       * 581321 : typefind element leaks force-caps property
933       * 584118 : [gstadapter][doc] Improve documentation of gst_adapter_ma...
934       * 585433 : [queue] Can lock down if min-threshold conflicts with max...
935       * 585569 : rtsp/rtp streaming fails when skipping explicit PAUSED st...
936       * 585834 : Support for GstBufferList in ghostpads
937       * 585960 : Support for GstBufferList in gstbasesink
938       * 587052 : [filesink.c] Support for files > 4GB on windows makes file...
939
940 API added since 0.10.23:
941      
942       * GST_DEBUG_CATEGORY_GET() macro
943       * gst_byte_reader_dup_data
944       * gst_byte_reader_dup_string
945       * gst_byte_reader_dup_string_utf8
946       * gst_byte_reader_dup_string_utf16
947       * gst_byte_reader_dup_string_utf32
948       * gst_byte_reader_skip_string
949       * gst_byte_reader_skip_string_utf8
950       * gst_byte_reader_skip_string_utf16
951       * gst_byte_reader_skip_string_utf32
952       * gst_byte_reader_peek_string
953       * gst_byte_reader_peek_string_utf8
954       * gst_byte_reader_get_string
955       * gst_byte_reader_get_string_utf8
956       * add gst_tag_list_new_full()
957       * add gst_tag_list_new_full_valist()
958       * add gst_byte_reader_masked_scan_uint32()
959       * add gst_plugin_get_cache_data, gst_plugin_set_cache_data
960       * gst_structure_get()
961       * gst_structure_id_get()
962       * gst_structure_get_valist()
963       * gst_structure_id_get_valist()
964       * GstSegment::gst_segment_set_running_time()
965       * Add GST_MESSAGE_SRC_NAME() macro
966       * GstSegment::gst_segment_to_position()
967       * GstEvent::gst_event_new_step()
968       * GstEvent::gst_event_parse_step()
969       * GstMessage::gst_message_new_step_done()
970       * GstMessage::gst_message_parse_step_done()
971       * gst_structure_id_new()
972       * Add gst_message_{new,parse}_tag_full() to get/set the source pad
973       * GstAdapter::gst_adapter_masked_scan_uint32()
974       * GstElement::gst_element_lost_state_full()
975       * GstAdapter::gst_adapter_prev_timestamp()
976       * gst_plugin_register_static_full()
977       * gst_tag_list_add_value()
978       * gst_tag_setter_add_tag_value()
979       * add GST_TAG_CONTAINER_FORMAT tag
980       * GstTask::gst_task_set_state()
981       * GstObject::gst_object_ref_sink()
982
983 Changes since 0.10.22:
984       * Support files > 4GB on Windows
985       * Controller interpolation fixes
986       * Add timer support to GstPoll and use it for clocking
987       * Attempt to typefind contents from the file extension if all else fails
988       * GStreamer revision control switched to Git
989       * Many other bug fixes and improvements
990
991 Bugs fixed since 0.10.22:
992      
993       * 579177 : GstInfo: maintain ABI compatibility
994       * 163577 : [RFC] Interlaced/progressive media support in GStreamer.
995       * 574160 : collectpads does not reliably eos when last pad is removed
996       * 575598 : hierarchical pipelines accumulate segment-done wrongly
997       * 575922 : disabling subsystems cause API break
998       * 576842 : loading a broken registry file can crash
999       * 555978 : [ladspa] no elements exposed/found on Cygwin
1000       * 565607 : Broken macros in gsturi.h and gstinterface.h
1001       * 566936 : [ghostpads] unlink function wrongly called on target
1002       * 567692 : gstinfo.h header not compatible with C++
1003       * 567725 : [qtdemux] stopping at a time sometimes shows a different ...
1004       * 568289 : gst_pad_template_new() leaks caps it's supposed to take o...
1005       * 568438 : gst_poll_wait calling read() on control socket
1006       * 568481 : GStreamer linking failures.
1007       * 568632 : __MSVCRT_VERSION__ not defined with mingw, causing " stora...
1008       * 568678 : filesrc doesn't logs offsets
1009       * 570910 : Removing the target of a ghostpad does not re-target the ...
1010       * 571227 : Add home page tag
1011       * 571559 : [API] add GST_PARAM_MUTABLE_PLAYING etc. to indicate vali...
1012       * 572480 : unref and copy functions should not be macros
1013       * 573623 : [API] Array binary search utility function
1014       * 574024 : [GstAdapter] gst_adapter_push should not accept empty buf...
1015       * 574211 : gst_poll_*_control always returns FALSE on Windows
1016       * 574213 : [gstcheck] fix for libcheck > 0.9.6
1017       * 574241 : gst_tag_list_add and gst_tag_list_add_values behave incon...
1018       * 574484 : [patch] Make caps in DOT debug graphs more readable
1019       * 574623 : [dot_file_with_ts] ':' not a valid character for a filename
1020       * 574805 : [capsfilter] Doesn't reset the internal suggestion with A...
1021       * 575695 : build fails on OpenSolaris due to incorrect header file i...
1022       * 575814 : flag for EOS on gst-launch when exiting with ctrl-c
1023       * 576381 : [basesink] QoS: emergency rendering not always done
1024       * 576563 : pidgin crashes on exit in gst_plugin_ext_dep_free()
1025       * 576582 : A patch to enable the use of 'name' in Enum parameters
1026       * 577887 : Missing GST_DISABLE_GST_DEBUG in gstregistrybinary.c
1027       * 577891 : add alloc-pad property on tee
1028       * 578114 : API: add two new log levels: FIXME and MEMDUMP
1029       * 578201 : _gst_plugin_fault_handler_is_setup undefined under HAVE_W...
1030       * 579127 : gst-launch: disable CLOCK_LOST message handling
1031       * 580121 : race condition in GStreamer state changes causes problems...
1032       * 361155 : Add monotonic clock
1033       * 517231 : threadsafe/colored windows logging
1034       * 572591 : Another batch of " differs in signedness " warnings
1035       * 573823 : pad block callback if it is re-blocked while the previous...
1036       * 574163 : Fix gst_pad_activate_pull deactivation with unlinked element
1037       * 575682 : Add gst_pad_is_compatible()
1038       * 575988 : On Windows filesink can't write files longer than 2-4 GiB...
1039
1040 API additions since 0.10.22:
1041     
1042       * New FIXME and MEMDUMP debug levels
1043       * gst_tag_list_get_buffer() and gst_tag_list_get_buffer_index()
1044       * New tags: GST_TAG_SUBTITLE_CODEC, GST_TAG_HOMEPAGE
1045       * gst_util_array_binary_search()
1046       * gst_message_new_request_state(), gst_message_parse_request_state(), GST_MESSAGE_REQUEST_STATE
1047       * GstPoll::gst_poll_new_timer()
1048       * GstPoll::gst_poll_write_control()
1049       * GstPoll::gst_poll_read_control()
1050
1051 Changes since 0.10.21:
1052
1053       * GstController improvements
1054       * Extensions to the latency setting behaviours
1055       * Ability for plugins to register dependencies to trigger re-scanning
1056       * Optimisations in some common operations on caps and values and elsewhere
1057       * Add sequence numbers to events so dependent events can be associated with
1058         the event that caused them
1059       * New macros for reading and writing float values
1060       * Many improvements in the basesink base class
1061       * Support non-default main contexts for GstBus watches
1062       * Improvements in pull-mode scheduling of sinks
1063       * Fixes for alignment issues on sparc
1064       * Ghost pad fixes
1065       * New bit-reader assistance API
1066       * Many other bug fixes and improvements
1067       
1068 Bugs fixed since 0.10.21:
1069
1070       * 567002 : --gst-disable-registry-update also skips registry creation
1071       * 350477 : [Registry] Provide a way for plugins to delegate the 'cha...
1072       * 510354 : post GST_MESSAGE_STRUCTURE_CHANGE when linking and unlink...
1073       * 526044 : Crash if there is more than one watcher for a GstBus
1074       * 539108 : gst_ghost_pad_new() does more than call g_object_new()
1075       * 544003 : [parse] Links to wrong pad if no padtemplate name is given
1076       * 544293 : rtspsrc / gstpoll regression
1077       * 545714 : GST_READ_UINT_* and GST_WRITE_UINT_* are not always safe ...
1078       * 548786 : [win32] search for plugins based on location of DLL
1079       * 551676 : Small Memleak fix in gst_pad_link_check_compatible_unlocked
1080       * 552778 : add free_func in gstbuffer instances
1081       * 553554 : [base] Add a generic bit reader
1082       * 553874 : query_position broken during seek
1083       * 555196 : Move floating point endian conversion macros into core
1084       * 555307 : Need to push latency event into the pipeline
1085       * 555631 : Banshee crashes; gstreamer GST_CAPS GST_IS_CAPS warnings
1086       * 556091 : libtool-2.2 and old gettext don't mix
1087       * 556900 : a copy & paste bug in helloworld example
1088       * 557154 : Allow totem to run without write-access to home directory
1089       * 557300 : libgstnet needs to link against $(WIN32_LIBS)
1090       * 557438 : Gstreamer crashes when Banshee supposed to change track
1091       * 557649 : GstBaseTransform can cause ivalid memory references
1092       * 559250 : segments need identifiers.
1093       * 560301 : Add --plugin to gst-inspect
1094       * 560360 : Excessive statting when reading binary cache
1095       * 560399 : Unnecessary CRC checksum for binary registry cache
1096       * 560442 : GNOME Goal: Remove deprecated GLib symbols
1097       * 561501 : g_type_class_ref without unref
1098       * 562170 : GstBus watch doesn't work with non-default main context
1099       * 562949 : [API] Add an URI query type for querying the source/sink URI
1100       * 564863 : Caps are not propagated from a ghostpad's target to the g...
1101       * 567225 : volatile gonce_data in BOILERPLATE not initialized to 0
1102       * 566393 : [deadlock] Setting index on a pipeline
1103
1104 API added since 0.10.21:
1105
1106       * Add bit reader and byte reader classes.
1107       * gst_message_new_structure_change()
1108       * gst_message_parse_structure_change()
1109       * GST_BUFFER_FREE_FUNC()
1110       * Add GST_READ_UINT24_(LE|BE) and GST_WRITE_UINT24_(LE|BE).
1111       * GstBaseSrc::gst_base_src_set_blocksize()
1112       * GstBaseSrc::gst_base_src_get_blocksize()
1113       * GstBaseSink::gst_base_sink_set_blocksize()
1114       * GstBaseSink::gst_base_sink_get_blocksize()
1115       * GstBaseSink::blocksize
1116       * GstBaseSink::gst_base_sink_do_preroll()
1117       * Add gst_byte_reader_get_data and gst_byte_reader_peek_data 
1118       * Move float endianness conversion macros from libgstfloatcast to core
1119       * gst_util_seqnum_next, gst_util_seqnum_compare
1120       * gst_event_get_seqnum, gst_event_set_seqnum
1121       * gst_message_get_seqnum, gst_message_set_seqnum
1122       * GstSeekFlags::GST_SEEK_FLAG_SKIP 
1123       * gst_bin_recalculate_latency()
1124       * GstBin::do-latency
1125       * gst_tag_setter_reset_tags()
1126       * gst_query_new_uri, gst_query_set_uri, gst_query_parse_uri
1127       * add gst_plugin_add_dependency()
1128       * add gst_plugin_add_dependency_simple()
1129
1130
1131 Changes since 0.10.20:
1132
1133       * Basetransform rework
1134       * Basesink synchronisation extensions
1135       * New documentation
1136       * Many bug fixes, enhancements and optimisations
1137
1138 Bugs fixed since 0.10.20:
1139
1140       * 481169 : [tag] add support for geo tags (gps location etc.)
1141       * 520694 : adding GST_TAG_KEYWORDS
1142       * 538201 : deleting the control point at ts=0 does not lower the con...
1143       * 544855 : fakesrc and fakesink should call super::event()
1144       * 339795 : [GstBaseTransform] Reverse negotiation issues in passthro...
1145       * 348114 : [PPC64?] [gcc-4.1.2?] GST_BUFFER_IN_CAPS flag should have...
1146       * 361718 : [basetransform] needs API to force renegotiation
1147       * 533856 : gst_buffer_join() documentation is unclear
1148       * 536978 : GTKDOC_CFLAGS should include CFLAGS
1149       * 537804 : [multiqueue] wrongly reporting that the queue is full.
1150       * 537812 : [check] add api to setup a pad by name
1151       * 538568 : Add GST_TAG_ATTACHMENT
1152       * 539772 : gst_pad_template_new() does more than call g_object_new()
1153       * 542175 : gst-inspect --gst-plugins-path fails with multiple direct...
1154       * 543444 : gst_base_sink_get_position can return 0 unexpectedly
1155       * 543853 : Bison version check failure on OSX 10.4 Tiger
1156       * 544174 : [basesrc] allow dynamic value of the seekable value.
1157       * 544776 : [win32] binary registry may fail if glib is using a diffe...
1158       * 545352 : gsturi is too restrictive
1159       * 545603 : gst-inspect: don't print uri handler when compiled withou...
1160       * 545605 : gstelementfactory: don't use uri handler code without uri...
1161       * 545607 : gst: include gstconfig when using macros defined therein
1162       * 545853 : [basetransform] rewrite
1163       * 546328 : fractions with G_MAXINT cause failure for fixation
1164       * 546822 : gstreamer doesn't tell gettext to output its translations...
1165       * 547277 : filesrc detect if a file is seekable using SEEK_SET and n...
1166       * 547728 : [basetransform] fail on buffer_alloc 
1167       * 548394 : basesink should ignore EOS during flushing
1168       * 548652 : [Inconsistency] GST_TAG_LOCATION is used for different me...
1169       * 549504 : Thread-safe version of gst_pad_get_internal_links()
1170       * 551952 : Need 'check' package when compile
1171       * 551978 : Memleak in gst_element_sync_state_with_paren
1172       * 547835 : tee release_request_pad while buffer_alloc racyness
1173       * 538628 : Patch: added a timeout property to fdsrc used in gst_poll...
1174       * 546883 : [basetransform] ximagesink fails when resizing video window
1175       * 551509 : gst_base_transform_prepare_output_buffer: assertion faile...
1176
1177 API added since 0.10.20:
1178
1179       * Add GST_TAG_ATTACHMENT for generic file attachments to streams.
1180       * Add gst_base_sink_set_render_delay()
1181       * Add gst_base_sink_get_render_delay()
1182       * Add gst_check_setup_src_pad_by_name
1183       * Add gst_check_setup_sink_pad_by_name
1184       * Add gst_check_teardown_pad_by_name
1185       * Add GstBaseTransform::gst_base_transform_suggest()
1186       * GstBaseTransform::gst_base_transform_reconfigure()
1187       * GstPad::gst_pad_set_iterate_internal_links_function()
1188       * GstPad::GstPadIterIntLinkFunction
1189       * GstPad::gst_pad_iterate_internal_links()
1190       * GstPad::gst_pad_iterate_internal_links_default()
1191
1192 API deprecated since 0.10.20:
1193
1194       * gst_pad_get_internal_links()
1195       * gst_pad_set_internal_link_function()
1196       * gst_pad_get_internal_links_default()
1197
1198 Changes since 0.10.19:
1199
1200       * Add the Presets interface
1201       * Use the binary registry by default
1202       * Deprecate gst_element_get_pad and don't use it anywhere any more.
1203       * Reverse playback fixes
1204       * API to get missing element messages from parse_launch parsing.
1205       * Fixes in latency calculations
1206       * BaseTransform negotiation fixes
1207       * New Buffering query and messages
1208       * Fix multiqueue deadlocks when changing limits
1209       * Remove pre-generated parser hacks and require newer flex/bison
1210       * Use GSlice in more places
1211       * Use static strings in property declarations everywhere to save memory
1212         allocations
1213       * Fix unaligned memory accesses with the binary registry and add CRC
1214         checks
1215       * Lots of other bug fixes
1216
1217 Bugs fixed since 0.10.19:
1218
1219       * 535069 : basesrc no longer support non-flushing seeks on itself
1220       * 522882 : Add a configure option to enable/disable OPTION_PARSING i...
1221       * 396779 : Preset interface for elements
1222       * 359653 : GStreamer Binary Registry patch
1223       * 401456 : [API] Rename gst_bin_find_unconnected_pad to gst_bin_find...
1224       * 446763 : [identity] leaks events in single segment mode
1225       * 459862 : typefinding coud be more efficient
1226       * 461253 : Crash when gst_base_transform_prepare_output_buffer is se...
1227       * 489269 : valgrind option parameter invalid for valgrind 2.2 
1228       * 508070 : gstreamer crashes whilst trying to read .so files in .deb...
1229       * 512577 : GstTagMergeMode doc has slightly incorrect explanation
1230       * 512578 : gst_tag_setter_merge_tags can mess up with KEEP_ALL merge...
1231       * 514507 : gst-xmlinspect outputs text instead of xml for plugins
1232       * 518022 : [libgstnet] MSVC 6.0 compile error due to socklen_t
1233       * 518932 : Expose gst_segment_copy() to facilitate wrapping of GstSe...
1234       * 520468 : Add a Env to enable/disable scan_and_update_registry for ...
1235       * 522326 : use of 'char*' instead of 'const char*' in gst_caps_set_s...
1236       * 523798 : [API] Some GstMiniObject enhancements
1237       * 523806 : Should use G_PARAM_STATIC_(NAME|NICK|BLURB) when possible
1238       * 523978 : Documentation fixes. 
1239       * 523985 : [PATCH] [identity] meta-writes buffers without meta-writa...
1240       * 524659 : Add specific error code for encrypted streams (e.g. WMA/A...
1241       * 525532 : [fakesink/fakesrc/identity] Uses GObject marshallers for ...
1242       * 526042 : [identity] check-imperfect-timestamp doesn't handle new s...
1243       * 526236 : mingw32 gstpoll compilation fix
1244       * 526247 : Actually build dlls when cross-compiling with mingw32
1245       * 526705 : GstIndexResolver uses nickname field as description field
1246       * 526768 : Basetransform bufferalloc passing through too easily
1247       * 526814 : [API] add gst_pad_add_{data,event,buffer}_probe_full() wi...
1248       * 527967 : gst_gerror_get_type is not thread safe
1249       * 528187 : Get missing elements from gst_parse_launch()
1250       * 528868 : URI schemes/protocols should be handled case insensitive
1251       * 529148 : Make gstqueue give the right min latency
1252       * 530317 : GType registration error - race condition when parallel c...
1253       * 530637 : queue leak on capacity change
1254       * 531538 : Race between gst_bus_set_flushing and async bus watches
1255       * 533490 : gst_message_new_warning() should take const gchar*
1256       * 533635 : gst_event_new_tag() documentation should say it takes own...
1257       * 533740 : [API] add gst_typefind_suggest_simple()
1258       * 533865 : gst_element_get_pad() should really be deprecated
1259       * 534258 : basesink not accumulated time in some cases.
1260       * 535218 : gst_base_src_send_event will block if basesrc is blocking...
1261       * 536723 : Misspelled word in error string
1262       * 536744 : Must link to libdl if dladdr() is used
1263       * 536780 : gcc 4.3.0 compile warnings
1264       * 536857 : DATADIR definition conflicts with windows headers
1265       * 525961 : Build fails on darwin
1266       * 535285 : Correct reference to GST_URI_UNKNOWN in gst_element_facto...
1267
1268 API added since 0.10.19:
1269
1270       * Add GST_IS_PARAM_SPEC_MINI_OBJECT, GST_PARAM_SPEC_MINI_OBJECT
1271         GST_TYPE_PARAM_MINI_OBJECT and gst_value_dup_mini_object
1272       * typefind::force-caps
1273       * gst_message_set_buffering_stats()
1274       * gst_message_parse_buffering_stats()
1275       * GST_QUERY_BUFFERING
1276       * GstBufferingMode
1277       * gst_query_new_buffering()
1278       * gst_query_set_buffering_percent()
1279       * gst_query_parse_buffering_percent()
1280       * gst_query_set_buffering_stats()
1281       * gst_query_parse_buffering_stats()
1282       * gst_query_set_buffering_range()
1283       * gst_query_parse_buffering_range()
1284       * GST_STREAM_ERROR_DECRYPT
1285       * GST_STREAM_ERROR_DECRYPT_NOKEY
1286       * gst_segment_copy()
1287       * gst_pad_add_data_probe_full()
1288       * gst_pad_add_buffer_probe_full()
1289       * gst_pad_add_event_probe_full()
1290       * GstEvent::gst_event_has_name()
1291       * GstFakeSrc:format
1292       * gst_type_find_suggest_simple()
1293       * GstBaseSink::gst_base_sink_wait_clock()
1294       * gst_parse_launch_full()
1295       * gst_parse_launchv_full()
1296       * gst_parse_bin_from_description_full()
1297       * gst_parse_context_new()
1298       * gst_parse_context_free()
1299       * gst_parse_context_get_missing_elements()
1300       * gst_bin_find_unlinked_pad()
1301       * GstPreset interface
1302
1303 API deprecated since 0.10.19:
1304
1305       * gst_element_get_pad -
1306         use gst_element_get_static_pad or gst_element_get_request_pad
1307       * gst_atomic_int_set() - g_atomic_int_set from GLib
1308       * gst_bin_find_unconnected_pad()
1309
1310 Changes since 0.10.18:
1311
1312       * Fix a regression in raw fd handling
1313
1314 Bugs fixed since 0.10.18:
1315      
1316       * 524041 : gstfdsrc broken in 0.10.18
1317
1318 Changes since 0.10.17:
1319         
1320       * New GstPoll abstraction simplifies operations on multiple fd's/sockets
1321       * Various bug fixes and corrections
1322       
1323 Bugs fixed since 0.10.17:
1324       
1325       * 516187 : adding gst_collect_pads_read_buffer () collectpads
1326       * 516395 : gst_buffer_create_sub does not copy flags
1327       * 520756 : different registry backend configurations cause build errors
1328       * 498222 : configure improvements
1329       * 499127 : [multiqueue] has no documentation
1330       * 505417 : Add GstPoll to core
1331       * 509559 : [gstinfo]_gst_debug_init() memory leak
1332       * 510194 : segmentation fault when trying to link elements.
1333       * 511783 : [API] [check] add gst_check_element_push_buffer_list() etc.
1334       * 513964 : [GstPad] gst_pad_get_caps don't return a copy of the caps
1335       * 515469 : patch to add gst_index_set_resolver_full
1336       * 519584 : gst_element_implements_interface() segfaults with 'filesr...
1337       * 519698 : g_free/xmlFree mismatches in gstregistryxml
1338       * 520152 : Core uses non-portable size_t and ssize_t
1339       * 520671 : GstPoll needs to be ported to Windows
1340       * 520808 : GstPoll's API could need some changes for Windows
1341       * 520877 : registrybinary.c doesn't build cleanly on Windows/MSVC
1342       * 521740 : libgstreamer.def exports not up to date
1343       * 522741 : regression: gst_index_entry_free() frees string it does n...
1344
1345 Changes since 0.10.16:
1346
1347       * Fix compilation on environments that have POSIX timers but not
1348         monotonic clocks
1349
1350 Bugs fixed since 0.10.16:
1351       
1352       * 512715 : gst/gstutils.c and HAVE_MONOTONIC_CLOCK
1353
1354 Changes since 0.10.15:
1355
1356       * Monotonic/Posix clock support
1357       * Dumping of dot-file graph descriptions for debugging
1358       * Clean-up of exported symbols
1359       * Many bug-fixes and enhancements
1360
1361 Bugs fixed since 0.10.15:
1362
1363       * 497859 : --disable-gst-debug option fails compilation
1364       * 339279 : [gst.URIHandler] interfaces with class-global virtual met...
1365       * 498694 : Patches to avoid g_signal_emit(SIGNAL_HANDOFF) on identit...
1366       * 498746 : basesink is forwarding downstream events
1367       * 498767 : Hangs after end of tracks since 0.10.15
1368       * 498924 : deprecate GST_PLUGIN_DEFINE_STATIC because it's not portable
1369       * 499007 : [gst-plot-timeline] more options
1370       * 499140 : Add check to ensure .def files are kept up-to-date
1371       * 500143 : Some small improvements (limiting realloc and CPU usage )
1372       * 500150 : [filesink] add property to enable buffering via setvbuf()
1373       * 501560 : gst_(caps|structure)_from_string() crash if structure nam...
1374       * 503131 : g_intern_string SUSE 10.2
1375       * 503231 : Change to GST_BUFFER_FLAG_GAP meaning can break with base...
1376       * 503417 : Build failure due uninitialized variable in function 'gst...
1377       * 503590 : gstreamer-0.10.15 fails tests on ppc64
1378       * 503675 : broken registry files written to disk
1379       * 504499 : Messages from check no longer contain the test case name
1380       * 505799 : iSight camera does not work in gstreamer
1381       * 506643 : crash in fixate_value/gst_value_init_and_copy on empty li...
1382       * 507957 : clean-up incomplete function declarations
1383       * 508175 : GST_TIMEVAL_TO_TIME() and GST_TIMESPEC_TO_TIME() need to ...
1384       * 510187 : gst_plugin_register_static() API review and GST_PLUGIN_DE...
1385       * 510747 : Use $(MAKE) instead of make to fix the build if GNU make ...
1386       * 511750 : Configure of prereleases 15.2-15.4 fail in OpenEmbedded M...
1387
1388 API additions since 0.10.15:
1389
1390 * GstIdentity::signal-handoffs
1391 * gst_util_get_timestamp()
1392 * gst_base_transform_set_gap_aware()
1393 * GstFileSink::buffer-mode
1394 * GstFileSink::buffer-size
1395 * gst_plugin_register_static()
1396
1397 API deprecated since 0.10.15:
1398
1399 * GST_PLUGIN_DEFINE_STATIC()
1400
1401 Changes since 0.10.14:
1402
1403       * Changes for asynchronous sink management
1404       * New ts-offset property on basesink for adjusting clock synchronisation
1405       * New GstController LFO feature
1406       * Fixes and improvements in latency measurement for live pipelines
1407       * Additional documentation and docs fixes
1408       * Faster typefinding
1409       * More tag types added
1410       * Improvements in various core elements and parent classes
1411       * New unit tests
1412       * Allow dumping pipelines as dot graphs
1413       * GstStructures now support nesting
1414       * URIHandler interface can now be implemented in bindings
1415       * Many other bug-fixes and improvements
1416
1417 Bugs fixed since 0.10.14:
1418
1419       * 496722 : DSP/DSW files in win32/vs6 directory are in unix format
1420       * 476514 : [queue] Doesn't forward EOS event in all cases
1421       * 456573 : allow dumping pipelines as dot graphs
1422       * 475723 : cleanup static caps correctly
1423       * 480341 : Memory leak at fakesink (regression in cvs)
1424       * 349410 : Problems with type handling
1425       * 414539 : [API] Support more GST_TAG*_SORTNAME and remove MusicBrai...
1426       * 459717 : [Controller] Add GstLFOControlSource that provides values...
1427       * 459809 : [API] add GST_TAG_COMPOSER
1428       * 461598 : Commit Hungarian translations from TP
1429       * 461599 : Some files missing from POTFILES.in
1430       * 464366 : program including gst/gstbuffer.h does not compile with -...
1431       * 466595 : gst_index_add_association generates corrupted entries
1432       * 469402 : File uri handling on windows broken
1433       * 473846 : Deadlock if sink is unable to send first buffer
1434       * 474371 : Can't build libsgtcontroller with VS6
1435       * 474823 : tee unit test failure
1436       * 478347 : GST_STATIC_PAD_TEMPLATE macro causes warnings with g++-4.2
1437       * 478401 : gstbasesrc.c ref count bug
1438       * 479784 : GST_PLUGIN_DEFINE() doesn't accept BSD and MIT/X11 licences
1439       * 485343 : Implement a wait_eos function in basesink
1440       * 487969 : allow nested GstStructures
1441       * 492077 : Build issues on Windows/MSVC
1442       * 493134 : Wrong GstObject signals registration
1443       * 493983 : Build issues on Windows
1444       * 494343 : pre-release vs6 patch
1445       * 480858 : gstqueue code cleaning
1446       * 486758 : queue element fails to re-negotiate caps upstream when si...
1447       * 488201 : gst_segment_set_newsegment does not accumulate correctly
1448       * 492729 : PAUSED- > PLAYING returns ASYNC when triggered from bus han...
1449       * 494245 : [basesink] doesn't sync correctly if segment is in BYTES ...
1450
1451 API added since 0.10.14:
1452
1453       * gst_base_sink_get_last_buffer()
1454       * GstBaseSink::last-buffer
1455       * GstURIHandlerInterface::get_type_full
1456       * GstURIHandlerInterface::get_protocols_full
1457       * New tag: GST_TAG_ARTIST_SORTNAME
1458       * New tag: GST_TAG_ALBUM_SORTNAME
1459       * New tag: GST_TAG_TITLE_SORTNAME
1460       * New tag: GST_TAG_COMPOSER
1461       * gst_value_set_structure()
1462       * gst_value_get_structure()
1463       * GST_VALUE_HOLDS_STRUCTURE macro
1464       * gst_bus_pop_filtered()
1465       * gst_bus_timed_pop_filtered()
1466       * gst_base_sink_wait_eos()
1467       * gst_pad_peer_query()
1468       * GstBaseSrc::do-timestamp
1469       * gst_base_src_set_do_timestamp()
1470       * gst_base_src_get_do_timestamp()
1471       * GstBaseSink::ts-offset property
1472       * gst_base_sink_set_ts_offset()
1473       * gst_base_sink_get_ts_offset()
1474       * GstBaseSink::async property
1475       * gst_base_sink_set_async_enabled()
1476       * gst_base_sink_is_async_enabled()
1477       * gst_structure_get_uint()
1478       * GstLFOControlSource and functions
1479
1480 Changes since 0.10.13:
1481
1482       * State change handling improvements
1483       * New improved GstController API
1484       * Multi-queue fixes and enhancements
1485       * Fewer dynamic library relocations
1486       * Various other fixes and improvements
1487       * Parallel installability with 0.8.x series
1488       * Threadsafe design and API
1489
1490 Bugs fixed since 0.10.13:
1491
1492       * 457322 : registry is read twice on startup
1493       * 406632 : pkgconfigify the check for Check in configure.ac
1494       * 423700 : [multiqueue] leaks memory when flushing
1495       * 437457 : saving relocations for GstElementDetails
1496       * 444648 : [API] add GstParamSpecFraction
1497       * 444820 : build error with grammar.tab.c
1498       * 448794 : state changes are racy with decodebin after rewrite for 0...
1499       * 449197 : [capsfilter] Should set src pad caps on buffer
1500       * 449226 : Incomplete ghostpads in xml session save
1501       * 449493 : minor quoting fix in gst-feature.m4 macro
1502       * 450711 : [GstController] Improve extensibility by providing a GstC...
1503       * 451939 : [API] add GST_TAG_LICENSE_URI and GST_TAG_COPYRIGHT_URI
1504       * 459501 : gst_registry_lookup_feature_locked is slow
1505       * 462558 : Regression in async state change handling
1506       * 462752 : make gst_element_class_set_details_simple args const
1507       * 430682 : multiqueue doesn't output data on unlinked pads properly
1508       * 462085 : registry feature hash can access invalid memory
1509       * 357959 : buffer_alloc is not proxied through tee
1510       * 374639 : GstTee doesn't handle pad list resyncs properly
1511       * 449414 : [capsfilter] Copy of passed GstCaps taken instead of refe...
1512       * 453732 : [PATCH] multiqueue returns wrong internally linked pads
1513
1514 API added since 0.10.13:
1515
1516       * Add GstParamSpecFraction, so elements can have fraction
1517         properties without lots of painful string parsing (#444648).
1518       * Add fail_unless_equals_float() and assert_equals_float()
1519       * Add gst_type_register_static_full
1520       * Add gst_element_class_set_details_simple
1521       * Refactor GstController into the core controller which can take
1522         a GstControlSource for providing actual values for timestamps.
1523       * add GST_TAG_LICENSE_URI and GST_TAG_COPYRIGHT_URI (#451939)
1524       * gst_element_factory_has_interface()
1525
1526 Changes since 0.10.12:
1527
1528       * Latency handling infrastructure for live playback scenarios
1529       * State change handling changes
1530       * GstController property handling improved
1531       * Various bug fixes and improvements
1532       * Parallel installability with 0.8.x series
1533       * Threadsafe design and API
1534
1535 Bugs fixed since 0.10.12: 
1536
1537       * 440682 : gst/gstsystemclock unit test occasionally fails
1538       * 342564 : Configure options causing compilation to fail
1539       * 378255 : Swedish translation updated
1540       * 392804 : [API] add GST_CORE_ERROR_DISABLED
1541       * 412648 : [filesink] reports wrong (byte) position after seeking
1542       * 413123 : No XML dependency patch
1543       * 415394 : [identity] post message for imperfect streams if check-pe...
1544       * 417992 : Quickly playing/pausing messes up synchronization
1545       * 420106 : [basetransform] race on shutdown: setcaps func called aft...
1546       * 420206 : Collectpads causes a segv. when stopping after a pad remove
1547       * 421480 : Make it possible to build without libxml2 with --disable-...
1548       * 421543 : [GstPad] Doesn't check if pad accepts caps after caps change
1549       * 422295 : GstController crashes with quadratic and cubic interpolat...
1550       * 425400 : Multiqueue leaks memory when releasing sink pads
1551       * 431150 : compilation fails with flex 2.5.4
1552       * 431940 : [API] add gst_buffer_try_new_and_alloc()
1553       * 432876 : current time level in queue
1554       * 434926 : Multilib conflicts with gst-launch-0.10 man page
1555       * 435880 : [GstBin] Property to allow bins to handle child async cha...
1556       * 437563 : URIs with upper-case protocol don't play
1557       * 440463 : gstbin unit test sometimes hangs waiting for ASYNC_DONE m...
1558       * 441159 : Regression in state change handling
1559       * 349180 : gst_parse_launch is not reentrant (or recursively callable)
1560       * 414986 : Don't start the async thread for the system clock until n...
1561       * 393099 : GstBuffer copy vfunc broken?
1562       * 419851 : pad-added and pad-removed signals parameter type incorrect
1563       * 420133 : gst_element_sync_state_with_parent should look at pending...
1564       * 421177 : Possible deadlock if pad eventfunc is not specified
1565
1566 API additions since 0.10.12:
1567
1568       * gst_element_change_state()
1569       * GST_STATE_TARGET
1570       * GST_BASE_TRANSFORM_LOCK/UNLOCK
1571       * GstClock::gst_clock_unadjust_unlocked()
1572       * fakesink::num-buffers property
1573       * GST_CORE_ERROR_DISABLED
1574       * basesrc::prepare_seek_segment vmethod
1575       * gst_buffer_try_new_and_alloc()
1576       * gst_buffer_copy_metadata()
1577       * GstBufferCopyFlags enum
1578       * GST_BUFFER_COPY_ALL flag
1579       * gst_uri_protocol_is_supported()
1580       * gst_base_src_query_latency()
1581       * GstQueue::pushing
1582       * gst_controller_suggest_next_sync()
1583       * gst_object_suggest_next_sync()
1584       * basesrc::unlock_stop
1585       * basesink::unlock_stop
1586       * GstBin::async-handling property
1587       * gst_message_new_async_start()
1588       * gst_message_parse_async_start()
1589       * gst_message_new_async_done()
1590       * GST_MESSAGE_ASYNC_START
1591       * GST_MESSAGE_ASYNC_DONE
1592
1593 Changes since 0.10.11:
1594
1595       * Add a warning if GLib threading support is not properly initialised
1596       * Add support for binary registry serialisation
1597       * Preliminary support for pull-mode scheduling of entire chains
1598       * Add support for HPPA 
1599       * Collectpads fixes
1600       * Lots of bug fixes
1601
1602 Bugs fixed since 0.10.11:
1603      
1604       * 378931 : Bison version check doesn't work on Solaris 9
1605       * 399875 : [multiqueue] dynamic growth not implemented.
1606       * 339326 : pads not set to FLUSHING when created
1607       * 380129 : gst_plugin_feature_load doesn't consistently ref a return...
1608       * 381301 : [patch] Make GstBus watch work with any GMainContext
1609       * 383382 : Removing pads from collectpads not threadsafe
1610       * 383506 : Disallow CLOCK_TIME_NONE as periodic clock id interval
1611       * 387073 : gst-launch videotestsrc ! ffmpegcolorspace ! ximagesink d...
1612       * 387866 : [docs] Small fix for GstCollectPads docs
1613       * 391278 : g_thread_init() called too late, possibly causing memory ...
1614       * 391296 : [API] add gst_update_registry() to rescan registry at run...
1615       * 391777 : GStreamer does not reset SEGV trap handler
1616       * 391909 : Fix compilation with MinGW
1617       * 399094 : gst_pad_start_task: small doc typo
1618       * 401381 : GstRegistry signals documentation is missing
1619       * 401781 : [API] add GST_ROUND_DOWN_* macros
1620       * 402393 : [API][GstCollectPads] Allow elements to specify destroy n...
1621       * 405284 : Changing state of pipeline can lock up with preroll queue...
1622       * 400656 : [PATCH] filesrc seekability detection fix (NFS and 2GB+ f...
1623       * 403172 : [filesrc] doesn't handle localhost file locations
1624       * 404569 : [filesrc] Unexpected end of file
1625       * 161922 : script to provide plugin installation info
1626       * 391915 : adapter test doesn't compile with mingw
1627       * 395554 : gst_tag_setter_merge_tags works at most once
1628       * 403597 : [API] Add ReplayGain reference level tag
1629       * 405288 : Configure checks use pkg-config directly
1630       * 381492 : [SystemClock] ClockID wait_async notification broken
1631       * 382592 : Multiple wait()ers break periodic clock ids
1632       * 385084 : endless ghost pad pull/push activate recursion until crash
1633       * 388201 : [API] add gst_adapter_copy()
1634
1635 API additions since 0.10.11:
1636
1637       * gst_update_registry()
1638       * gst_adapter_copy()
1639       * GST_ROUND_DOWN_* macros
1640       * GstCollectDataDestroyNotify
1641       * gst_query_new_latency()
1642       * gst_query_set_latency()
1643       * gst_query_parse_latency()
1644       * gst_message_new_lost_preroll()
1645       * gst_message_parse_lost_preroll()
1646       * gst_message_new_prerolled()
1647       * gst_message_new_latency()
1648       * gst_event_new_latency()
1649       * gst_event_parse_latency()
1650       * GST_TAG_REFERENCE_LEVEL
1651       * gst_base_sink_query_latency()
1652       * gst_base_sink_get_latency()
1653       * gst_bus_timed_pop()
1654       * gst_message_new_info()
1655       * gst_message_parse_info()
1656
1657 Bugs fixed since 0.10.10:
1658
1659       * 363095 : [BaseTransform] Outputs empty buffers
1660       * 353301 : aborts in _get_element_by_uri(), probably due to buggy el...
1661       * 344639 : Separate threadsafe queuing functionnality in a separate ...
1662       * 347785 : [multiqueue] New multiple input-output queue
1663       * 352827 : re-negotiation issues with dynamic pipelines and level or...
1664       * 357180 : [libs] gst_controller_new* functions don't increase refco...
1665       * 318031 : gstreamer should use gmodule-no-export in its .pc file
1666       * 340878 : Registry doesn't discard removed plugin features
1667       * 345496 : No GstPadDirection in files created by GstXml
1668       * 356910 : Basesrc gst_base_src_activate_push not calling base_src_s...
1669       * 357593 : Generated gst-element-check.m4 installed from $(srcdir)
1670       * 358436 : #include is missing in gstghostpad.c and gstquery.c
1671       * 358999 : [PATCH] [GstPad] Flushing on blocked pads not handled cor...
1672       * 359850 : Compiling issues on sparc with Forte
1673       * 360151 : Fixes compiling with forte: disable warning as error for ...
1674       * 360173 : Fixes compiling with forte: warning clean up (part 1)
1675       * 360467 : [API] add gst_tag_list_is_empty ()
1676       * 360860 : Fixes compiling with forte: warning clean up (part 2)
1677       * 361675 : Allow applications to use libxml2 and GStreamer even if  ...
1678       * 361720 : grammar project: error generating gstmarshal.c and gstmar...
1679       * 361730 : wrong source file list in VC8 project
1680       * 361732 : " win32\common\libgstreamer.def " lacks 'gst_caps_merge' entry
1681       * 361769 : Deadlock in gstpad.c 
1682       * 364388 : size variable is not always initialized in gst_base_src_s...
1683       * 366321 : GST_SEGMENT_FORMAT not defined on windows
1684       * 370865 : [basesrc] update segment duration in gst_base_src_update_...
1685       * 371493 : Incomplete change of printf conversion specifiers in gstr...
1686       * 374475 : [PATCH] minor doc typo
1687       * 377332 : [PATCH] Warning with check > = 0.9.4
1688       * 357617 : [libs] gst_controller_set_from_list can return without un...
1689       * 358737 : _gst_event_copy sets the wrong parent_refcount on the chi...
1690       * 366212 : Fix some misspellings in gstreamer core
1691       * 369366 : MacOSX printf fixes for CVS
1692       * 371894 : tests/examples/typefind is broken  
1693       * 355499 : ensure_current_registry_forking()  fails if zombie alread...
1694       * 352345 : Small race condition in the queue element
1695       * 357432 : [libs] GstController needs to keep controlled objects alive
1696       * 358613 : sink- > file is never reset for filesink elements, even tho...
1697       * 366286 : [PATCH] fix compilation on Windows
1698       * 366572 : Bad declaration in headerfile
1699       * 367677 : [fdsrc] skips the first byte
1700       * 369942 : [PATCH] unblocking blocked pad does not release all block...
1701
1702 API added since 0.10.10:
1703
1704       * gst_element_state_change_return_get_name
1705       * gst_tag_list_is_empty
1706       * gst_pad_is_blocking()
1707       * GST_PAD_IS_BLOCKING() macro
1708       * GST_PAD_BLOCKING GstPadFlag
1709       * gst_base_src_wait_playing
1710       * gst_base_sink_wait_preroll
1711       * gst_message_new_buffering
1712       * gst_message_parse_buffering
1713
1714 Bugs fixed since 0.10.9:
1715      
1716       * 349180 : gst_parse_launch is not reentrant (or recursively callable)
1717       * 348455 : [filesrc] should not use mmap() by default, since it migh...
1718       * 340674 : marry gst-debugs & plot-timeline.py
1719       * 350449 : [GstBaseTransform] buffer_alloc should alway try downstream
1720       * 352580 : implement proper caps merging
1721       * 345444 : Linking to an audioconvert (pad-added callback) multiple ...
1722       * 347293 : GstValueList comparison is flawed
1723       * 347311 : element_unlink leaks its iterator wich will leak the src ...
1724       * 348179 : gst_parse_lauch is not reentrant
1725       * 348354 : failure in bison version detection breaks build
1726       * 350419 : API: GST_SEGMENT_FORMAT printf extension for GstSegments
1727       * 350879 : [init] Mark gstreamer as being initialized during registr...
1728       * 350935 : API: add GST_TAG_EXTENDED_COMMENT
1729       * 353976 : asssertion about element sanity in gst_registry_xml_write...
1730       * 350432 : micro-optimising quarks
1731       * 341029 : Ghostpads internal and target should be linked from the b...
1732       * 345295 : [PATCH] gstreamer/libs/gst/net for Windows
1733       * 347756 : Allow --disable-trace without --disable-parse
1734       * 347794 : Do not reset SIGSEGV handler when --gst-disable-segtrap i...
1735       * 348918 : application should decide whether or not to use fork() to...
1736       * 349943 : [QOS] documentation/code mismatch
1737       * 351768 : Unwanted concurent buffer modifications
1738       * 352958 : pad_alloc_buffer and stream lock
1739       * 353121 : gst_query_new_segment should initialize all structure fields
1740       * 353122 : gst_element_get_bus refs the bus unconditionally
1741       * 347385 : [ghostpad] gst_ghost_pad_new_from_template() method
1742       * 348677 : Upgrade to 0.10.9 breaks existing applications (failed se...
1743
1744 API added since 0.10.9:
1745      
1746       * gst_segtrap_is_enabled
1747       * gst_segtrap_set_enabled
1748       * gst_registry_fork_is_enabled
1749       * gst_registry_fork_set_enabled
1750       * gst_ghost_pad_new_from_template
1751       * gst_ghost_pad_new_no_target_from_template
1752       * gst_caps_merge
1753       * GST_TAG_EXTENDED_COMMENT
1754       * GstClockCLass:wait_jitter
1755       * GST_SEGMENT_FORMAT
1756       * gst_structure_id_set
1757       * gst_structure_id_set_valist
1758
1759 Changes since 0.10.8:
1760
1761       * The testsuite can now generate coverage information
1762       * Better support for non-linear editing
1763       * Removed Glib 2.6 compatibility
1764       * Performance improvements on cpus that support branch hints
1765       * Bug fixes
1766
1767 Bugs fixed since 0.10.8:
1768
1769       * 346730 : some warnings about enums and macros
1770       * 341029 : Ghostpads internal and target should be linked from the b...
1771       * 346192 : [PATCH] Pad blocking on events
1772       * 347384 : [ghostpad] padtemplates shouldn't be set automatically
1773       * 344115 : [patch] make more internal data const
1774       * 324176 : gst-element-check-0.x.m4 should use versioned gst-inspect
1775       * 330379 : Bogus commits to basesink, basetransform, collectpads
1776       * 341667 : restore_from_xml breaks pad links again after creating them
1777       * 344642 : tools/gst-inspect.c does not compile if --disable-nls is ...
1778       * 344748 : Fails with non-writable registry
1779       * 344849 : GstController doesn't handle float properties correct
1780       * 345086 : [gst-feedback] calls un-versioned tools
1781       * 346097 : SIGSEGV when using --gst-plugin-load
1782       * 347337 : GDP does not correctly deserialize events without a struc...
1783       * 347408 : basesrc causes regressions in pull with 0 bytes
1784       * 345720 : Bad performance playing files off CD
1785       * 331727 : make probes and Ghostpads more elegant
1786       * 343196 : basetransform not handles ro/rw buffer flagging for trans...
1787       * 346663 : Segmentation error with fakesrc, fakesink and a filter
1788
1789 Changes since 0.10.7:
1790     
1791       * Important fix for registry update causing applets not to load
1792
1793 Bugs fixed since 0.10.7:
1794     
1795       * 344474 : Gnome Mixer Applet doesn't want to load
1796
1797 Changes since 0.10.6:
1798     
1799       * Registry cache updating is now done in a fork, so no plugins are left
1800         opened
1801       * New version of data protocol now serializes events
1802       * queue fixes
1803       * win32 fixes
1804
1805 Bugs fixed since 0.10.6:
1806     
1807       * 338335 : [patch] memleak in gst-utils.c (leak pads from iterator)
1808       * 343598 : undefined symbol in coreindexers when using --disable-loa...
1809       * 336929 : GstCollectPads does not clear/reset segment info after fl...
1810       * 337100 : [fakesink] add " preroll-handoff " signal
1811       * 339918 : GstTagSetter merge-mode description unclear, and implemen...
1812       * 340501 : [filesrc] give primary rank
1813       * 341662 : gst-launch print_tags() fix
1814       * 342238 : API: gst_element_seek_simple
1815       * 342321 : GST_QUERY_POSITION fails if GstBaseSrc in get_range mode
1816       * 342777 : rebuilding the registry leaves all plugins in memory
1817       * 342820 : gstnetclientclock.c(453): servaddr used before set
1818       * 343057 : gst-launch-0.10 segfaults when passed gst-plugin-path and...
1819       * 343341 : [API] add GST_TAG_PREVIEW_IMAGE
1820       * 343827 : leak in gst_index_gtype_resolver
1821       * 343929 : Use of // in public header
1822       * 343988 : data protocol needs extending to handle events better
1823       * 341479 : Too many plugins loaded even for up-to-date registry
1824       * 343334 : GstCollectPads testsuite and fixes
1825       * 343538 : GstCollectPads doesn't reset EOS fields when stopped
1826
1827 API added since 0.10.6:
1828
1829       * gst_element_seek_simple()
1830       * GST_FLOW_CUSTOM_SUCCESS
1831       * GST_FLOW_CUSTOM_ERROR
1832       * GST_FLOW_IS_SUCCESS
1833       * gst_collect_pads_set_flushing()
1834       * GST_TAG_PREVIEW_IMAGE
1835       * gst_dp_crc()
1836       * GstDPPacketizer
1837       * GstDPVersion
1838       * GstFakeSink::preroll-handoff
1839       * GstFakeSink::use-mmap
1840
1841 Changes since 0.10.5:
1842
1843       * Fixes for the collectpads helper
1844       * Support for proper time recording on server-trickmode streams
1845         via the applied_rate parameter of the NewSegment event
1846       * Many bug fixes
1847
1848 Bugs fixed since 0.10.5:
1849
1850       * 339808 : [patch] mem-leak of bin in gstbin.c
1851       * 338339 : [patch] registry cache is always written
1852       * 339843 : [patch] fdsink should not handle short writes and non fat...
1853       * 340016 : does not build on opensolaris, must always include config...
1854       * 340079 : gst-launch wrapper fails with 'No version of tool gst-lau...
1855       * 340174 : locking problem in gstbasesink
1856       * 340460 : gst-launch no longer supports --version
1857       * 340508 : remove glib pre 2.8 hacks and compat stuff
1858       * 340604 : gst_mini_object_ref () docs make no mention of writeability
1859       * 340608 : leaking caps in padtemplate
1860       * 340697 : gstsystemclock hangs when outputting to stdout via fdsink 
1861       * 340721 : API: add GST_TAG_IMAGE
1862       * 340772 : [qtdemux] bails out on Meet The Robinsons trailer
1863       * 341556 : gst-launch: print image tags in a human readable form
1864       * 339821 : [patch] serializing a GValue with a NULL buffer crashes
1865
1866 API added since 0.10.5:
1867
1868       * gst_adapter_take_buffer()
1869       * GST_TAG_IMAGE tag added.
1870       * gst_event_new_new_segment_full()
1871       * gst_event_parse_new_segment_full()
1872       * GstSegment::applied_rate field
1873       * gst_segment_set_newsegment_full()
1874
1875 Changes since 0.10.4:
1876
1877       * QoS in BaseTransform
1878       * gcc 4.1 fixes
1879       * BaseTransform reworked
1880       * Bus reworked; signal API added
1881
1882 Bugs fixed since 0.10.4:
1883     
1884       * 131079 : [PATCH] [api] loading a class leaves elementfactory blank
1885       * 317048 : gstreamer Cygwin build fixes
1886       * 325599 : Build fails with GCC 4.1
1887       * 327315 : GStreamer CVS head files to build with GCC 4.1
1888       * 331248 : [basesink] filesink spews warnings when used with flacenc
1889       * 332151 : xml registry loader should use mmap() where possible
1890       * 332390 : [GstQueue/GstPad] queue pauses immediately when linked, p...
1891       * 332986 : Something wrong in caps checking...
1892       * 334109 : pkg-config files must link with the same check library th...
1893       * 334303 : Stale libgnomeui check in configure
1894       * 334434 : Missing functions in def files for dlls
1895       * 335195 : GST_BOILERPLATE_FULL etc isn' optimised
1896       * 335480 : start with debugging disabled
1897       * 335513 : totem goes (and stays) out of sync when running bittorrent
1898       * 336336 : [queue] Queue might block in EOS
1899       * 336945 : [filesink] throws error when writing 0 bytes
1900       * 337103 : small cleanup in gstplugin.c
1901       * 337386 : Pipeline bus is not initially flushing
1902       * 338711 : Internal data flow error with latest updates for FC5 with...
1903       * 326311 : basesink does not call the PAUSED- > PLAYING change_state f...
1904       * 326998 : GstBaseSrc's send_event handler ignores seek requests aft...
1905
1906 API added since 0.10.4:
1907
1908       * gst_controller_unset_all()
1909       * gst_pad_query_peer_position()
1910       * gst_pad_query_peer_duration()
1911       * gst_pad_query_peer_convert()
1912       * GstBaseSink::async_play()
1913       * GstBaseSrc::qos
1914       * gst_base_sink_set_qos_enabled()
1915       * gst_base_sink_is_qos_enabled()
1916       * gst_base_transform_update_qos()
1917       * gst_base_transform_set_qos_enabled()
1918       * gst_base_transform_is_qos_enabled()
1919       * gst_pipeline_get_delay()
1920       * gst_pipeline_set_delay()
1921
1922 Changes since 0.10.3:
1923     
1924       * Parallel installability with 0.8.x series
1925       * Threadsafe design and API
1926       * 33% of library size removed by parse change
1927       * (Experimental) QoS features (use max-lateness on BaseSink subclasses to enable)
1928
1929 Bugs fixed since 0.10.3:
1930     
1931       * 323542 : GStreamer 0.10 hangs at EOS for all songs
1932       * 320340 : triggering a gst_task_join from the streaming task can de...
1933       * 322628 : document thread-unsafety of gst_value_foo() + gst_value_r...
1934       * 324186 : Smarter (deterministic!) typefind decisions
1935       * 324398 : varargs/valist functions aren't bindable
1936       * 328873 : only one gst_bin_recalc_state allowed at a time
1937       * 330899 : CVS directory in make dist tarball
1938       * 330906 : API: add GST_QUERY_TYPE_NAME and GST_MESSAGE_TYPE_NAME
1939       * 330996 : basesrc emits EOS unconditionally when going to READY
1940       * 331255 : Shrinking gst_parse_launch bloat
1941       * 331898 : Basetranform is not reusable
1942       * 332045 : API: GstPipeline needs API to disable  flushing of its bu...
1943       * 332277 : [filesrc] seek does not correct read position in non-mmap...
1944       * 332611 : [basesrc] needs way to prevent expensive start/stop in ch...
1945       * 332723 : New API: gst_type_find_helper_for_buffer
1946       * 333042 : New API: gst_type_find_helper_get_range
1947       * 333266 : Registry file writing rewrite
1948       * 333272 : tests should set G_SLICE=always-malloc now
1949       * 333417 : GST_BOILERPLATE_WITH_INTERFACE can't be used in C++ code
1950       * 333669 : Add pad accessor defines for GstBaseTransform
1951       * 333779 : New API: add gst_uri_has_protocol
1952       * 324818 : gst_registry_get_default doesn't sink newly created registry
1953       * 330125 : _pad_send_event does not check flushing correctly
1954       * 330684 : Add ability to emit sync-message without messing with the...
1955  
1956 API added since 0.10.3:
1957     
1958       * gst_pipeline_set_auto_flush_bus()
1959       * gst_pipeline_get_auto_flush_bus()
1960       * gst_uri_has_protocol()
1961       * gst_pipeline_set_max_lateness()
1962       * gst_pipeline_get_max_lateness()
1963       * gst_pipeline_get_sync()
1964       * gst_pipeline_do_sync()
1965       * GST_BASE_TRANSFORM_SRC_PAD()
1966       * GST_BASE_TRANSFORM_SINK_PAD()
1967       * GstBaseSrc::check_get_range()
1968       * GstBaseSink::max-lateness
1969       * gst_type_find_helper_get_range()
1970       * gst_type_find_helper_for_buffer()
1971       * GST_MESSAGE_TYPE_NAME()
1972       * GST_QUERY_TYPE_NAME()
1973       * gst_bus_enable_sync_message_emission()
1974       * gst_bus_disable_sync_message_emission()
1975
1976 Changes since 0.10.2:
1977
1978       * Documentation updates
1979       * Bug fixes
1980       * Base class improvements
1981       * Extra utility API
1982       * More elements ported from 0.8
1983       * Fixes for win32 build.
1984
1985 Changes since 0.10.1:
1986     
1987       * documentation updates
1988       * bug fixes
1989
1990 Bugs fixed since 0.10.1:
1991     
1992       * 325429 : GST_BOILERPLATE_FULL can't be used when compiling with -W...
1993       * 316086 : MinGW compilation: fileindexer depends on mmap
1994
1995 Changes since 0.10.0:
1996     
1997       * element factory leak fixes
1998       * tests cleanup
1999       * BaseSrc seeking in other format than BYTES
2000       * collectpad fixes
2001
2002 Bugs fixed since 0.10.0:
2003     
2004       * 322441 : getcontext() in common/m4/gst-mcsc.m4 uses incorrect stac...
2005       * 323041 : [BASESRC] basesrc does not handle a seek to non-bytes for...
2006       * 323870 : [tools] gst-feedback needs updating for 0.9/0.10
2007       * 323882 : gst-launch manpage needs updates
2008       * 323905 : use return val of g_list_append
2009
2010 API added since 0.10.0:
2011      
2012       * GST_TYPE_STATIC_CAPS
2013       * GST_TYPE_STATIC_PAD_TEMPLATE
2014       * GstNetTimeProvider::active
2015       * gst_base_src_set_format
2016
2017 Changes from the 0.8 series to 0.10 series:
2018
2019       * Refcounting and API revised for thread safety, see rules in
2020         docs/design/part-MT-refcounting.txt
2021
2022       * Scheduling is now done by the elements, they start/stop
2023         processing threads themselves. This removes the need for 
2024         a separate scheduler.
2025
2026       * State changes now happen from sink to source. This makes sure
2027         that downstream elements are ready to process data when upstream
2028         starts producing.
2029
2030       * EOS/ERROR/... does not change the state of elements anymore. This
2031         means that when the application sets the state on an element, it
2032         remains in this state.
2033
2034       * GMainLoop integration. Information on the state of the pipeline
2035         is now received in the mainloop via the GstBus.
2036
2037       * Events move separate from the datastream, this allows for both
2038         in and out of sync delivery of events.
2039
2040       * Generic _pull() replaced by _pull_region() so that random access
2041         can be made faster.
2042
2043       * data passing happens from PAUSED, called the preroll phase. In this
2044         state no data is rendered but it is queued in the sinks.
2045
2046       * negotiation simplified. Caps are now attached to buffers and travel
2047         along with the datastream. 
2048
2049       * GstBuffer is now subclassable.
2050
2051       * Ghostpads now look and feel like real pads.
2052
2053       * New Seeking/flushing policy.
2054
2055       * Addition of base classes and helper functions in the core to abstract
2056         away the harder parts of plugin development.
2057
2058 Changes since 0.9.7:
2059
2060       * added Traditional Chinese translation
2061
2062 Bugs fixed since 0.9.7:
2063     
2064       * 322874 : [PAD] pad_alloc_buffer should not call set_caps
2065       * 323222 : GStreamer 0.9.7 still checks in dirs containing 0.9
2066       * 323250 : [collectpads] debug category should be called 'collectpad...
2067
2068 Changes since 0.9.6:
2069     
2070       * bumped major/minor to 0.10
2071       * API cleanup
2072       * PluginFeature and TypeFind leak fixes
2073       * cleaned up source tree
2074       * added plugin documentation for core elements
2075       * fixes for stripped core
2076
2077 Bugs fixed since 0.9.6:
2078     
2079       * 320529 : [API] gst_event_new_segment mentions " stream_time " as an ...
2080       * 321917 : quicktime with two video tracks and extra foo, makes tote...
2081       * 322257 : Fix gstnet library name
2082       * 322427 : gst-compprep aborts with 'double free or corruption'
2083       * 322429 : Filesink seeking problem
2084       * 322626 : Strings in gst-launch.c adn gstdebug.c are horrid
2085       * 322708 : gst_plugin_load_file leaks a reference to a GstPlugin
2086       * 322751 : gst_ghost_pad_get_target borks on pads without target
2087       * 322842 : GStreamer-CRITICAL in GstBaseSink and GstBaseTransform
2088
2089 Changes since 0.9.5:
2090     
2091       * API changes and clean-up
2092       * Extensive documentation updates
2093       * remove GLib 2.4 compatibility
2094       * added clock selection
2095       * added network clocking
2096       * added fd:// URI handler
2097       * added more fraction functionality
2098
2099 Bugs fixed since 0.9.5:
2100     
2101       * 143472 : [api] gst_tag_list_foreach() takes a non-const GstTagList*
2102       * 156633 : [API] don't use same API for arrays as for normal lists
2103       * 164168 : circular pipeline fails to negotiate
2104       * 165650 : [API] gst_value_deserialize doesn't work correctly for NU...
2105       * 168438 : [API] GstIndexFilter doesn't receive user_data
2106       * 168494 : [API] gst_index_add_object() does nothing
2107       * 305291 : Obnoxious bug-filing request
2108       * 311489 : Possible gstghostpad locking problems
2109       * 319178 : [API] finish filler events and support them in GstCollect...
2110       * 319388 : 0.9 API changes tracker
2111       * 319389 : state change updates obsolete some functions
2112       * 319392 : GstEventType is not bindings-friendly
2113       * 319395 : Macro name/visibility API bugs
2114       * 319940 : Use GLIB macros for GCC extensions
2115       * 320060 : add a CORE error category for missing ELEMENTS/PLUGINS
2116       * 320097 : GST_BUFFER_FLAG_ORIGINAL should die
2117       * 320113 : [API] duration message changes
2118       * 320299 : gst_pad_send_event should take stream lock for serialized...
2119       * 320324 : [API] GST_FOURCC_FORMAT should drop leading '%'
2120       * 320423 : [API] padding for GstCollectData
2121       * 320766 : [API] collect pads API changes
2122       * 321061 : GstURI not used
2123       * 321235 : [API] GST_PAD_IS_USABLE should be removed
2124       * 321386 : [SEGFAULT] basetransform when doing reverse caps negotiation
2125       * 321452 : GstPad's " template " property is b0rked
2126       * 321528 : capsfilter: assertion `caps != NULL' failed
2127       * 321595 : GstBin doesn't clean the message queue when changing stat...
2128       * 321638 : Don't use // style comments in headers
2129       * 321648 : Wrong type check in gst_message_parse_clock_lost
2130       * 321710 : GstClock resolution functions should take a GstClockTime
2131       * 321712 : GstClock adjust function changes
2132       * 321875 : gst_plugin_check_file disappeared
2133       * 321950 : gst_registry_scan_paths lacks implementation
2134       * 321962 : [easyfix] gst_value_is_fixed uses gst_value_list_* on GST...
2135       * 322027 : [API] Rename gst_caps_structure_fixate_* to gst_structure...
2136       * 322034 : Elements should be updated not to take the stream lock in...
2137       * 322069 : Names of GstTagSetter methods should be more descriptive
2138       * 322134 : API master/slave clocks
2139       * 322139 : our elements are confused about GEnumValue and which is t...
2140   
2141 Changes since 0.9.4:
2142     
2143       * gst_bus_poll and signal watch now see the same messages
2144       * clock sync in BaseSrc class
2145       * API documentation updates
2146       * Bus reworked; signal API added
2147
2148 Bugs fixed since 0.9.4:
2149     
2150       * 317341 : after linking ghost pads, one target pad does not have a ...
2151       * 320774 : basesrc commit broke typefinding
2152
2153 Changes since 0.9.3:
2154
2155       * state lock redefined
2156       * Extensive documentation updates
2157       * BaseTransform reworked
2158       * Bus reworked; signal API added
2159
2160 Bugs fixed since 0.9.3:
2161
2162       * 111146 : new GstThread fails on pipeline with errors
2163       * 169772 : [PATCH] GOption command-line parsing
2164       * 170777 : use GST_TYPE_DATE for GST_TAG_DATE
2165       * 315050 : [API] consider using GstClockTime instead of GTimeVal in ...
2166       * 315126 : filesrc + forced caps should be possible
2167       * 315383 : gst-launch shouldn't run broken pipelines
2168       * 317041 : GstObject flags should be made real flags
2169       * 318447 : gst_bin_iterate_sorted: Invalid call to gst_iterator_new
2170
2171 Changes since 0.9.2:
2172
2173       * gst-register has been removed
2174       * Extensive documentation updates
2175       * BaseTransform reworked
2176       * Bus reworked; signal API added
2177
2178 Bugs fixed since 0.9.2:
2179
2180       * 102980 : support incremental gst-register/compprep updates
2181       * 313897 : [0.9] registry rewrite
2182       * 314710 : gst_buffer_create_sub doesn't copy the GST_BUFFER_FLAGS
2183       * 315895 : gst_pad_query_convert src_val check
2184       * 316155 : MinGW compilation: glib-mkenums root path subtitution pro...
2185       * 316157 : MinGW compilation: Plugin exports
2186
2187 This is GStreamer 0.9.2, "South".
2188
2189 Bugs fixed since 0.9.1:
2190
2191       * 121015 : [api] gst_clock_entry_new() seems broken
2192       * 134227 : [api] gst_clock_id_wait_async, wrong return code for defa...
2193       * 142209 : [build] Large file support broken
2194       * 154785 : Clock does not run if audio stream lacks data for a short...
2195       * 305256 : [API] Change gst_element_seek to not mix enum/flags types
2196       * 309253 : GST_DEBUG_FUNCPTR macro does illegal casting from functio...
2197       * 311004 : ghostpad bugginess
2198       * 311009 : valgrind shows undesired messages
2199       * 311848 : Renegotiation broken
2200       * 314708 : filesrc doesn't set GST_BUFFER_FLAG_READONLY on mmaped bu...