win32: add new TOC API to libgstreamer.def
[platform/upstream/gstreamer.git] / RELEASE
1
2 Release notes for GStreamer 0.10.36 "Harder"
3         
4
5
6 The GStreamer team is proud to announce a new release
7 in the 0.10.x stable series of the
8 core of the GStreamer streaming media framework.
9
10
11 The 0.10.x series is a stable series targeted at end users.
12 It is not API or ABI compatible with the stable 0.8.x series.
13 It is, however, parallel installable with the 0.8.x series.
14
15
16 The 0.10.x series has been reworked for threadsafety.  It also features
17 various feature additions and enhancements.
18
19
20 This module, gstreamer, only contains core functionality.
21 For actual media playback, you will need other modules.
22
23 gst-plugins-base
24 contains a basic set of well-supported plug-ins
25 gst-plugins-good
26 contains a set of well-supported plug-ins under our preferred license
27 gst-plugins-ugly
28 contains a set of well-supported plug-ins, but might pose problems for
29     distributors
30 gst-plugins-bad
31 contains a set of less supported plug-ins that haven't passed the
32     rigorous quality testing we expect
33
34
35
36   
37
38 Features of this release
39     
40       * bin: Don't interpret pipelines without sink elements as always being in EOS state
41       * bin: Only post EOS messages after reaching the PLAYING state
42       * buffer: add set/get_qdata() to attach arbitrary metadata to buffers
43       * caps, structure, gstvalue: some optimisations and improvements
44       * miniobject: add weak referencing functionality
45       * gstobject: make gst_object_replace() atomic
46       * pad: Only do the subset check in gst_pad_accept_caps() if the pad claims to accept the caps
47       * pad: make public some ghostpad/proxypad API
48       * preset: allow applications to specify an extra preset directory with application-specific presets
49       * collectpads: add GstCollectPads2 API
50       * basebarse: new detect vfunc so subclassed can do some format detection first
51       * baseparse: new get_sink_caps vfunc so downstream caps restrictions can be propagated upstream
52       * baseparse: answer position query in stream time and try upstream first
53       * baseparse: send duration message when updating internal duration
54       * baseparse: make baseparse-based elements is reusable
55       * baseparse: provide latency query support
56       * basesink: don't compensate for render-delay twice
57       * basesink: try harder to arrange increasing position reporting
58       * basesrc: allow for the size to change dynamically
59       * basetransform: add query vfunc
60       * basetransform: caps negotiation improvements
61       * basetransform: delay serialized events when src caps are not set yet
62       * filesrc: do not mistake short reads for EOS
63       * filesrc/fdsrc: indicate dynamic size handling to basesrc
64       * inputselector: add sync mode that syncs inactive pads to the running time of the active pad
65       * queue2: add bufferlist support
66       * queue2: adjust input data rate estimation
67       * multiqueue: add mode to synchronize deactivated/not-linked streams by the running time
68       * multiqueue: check filled state of queues even if another one is empty
69       * outputselector: don't send last segment/buffer when no segment was configured yet
70       * tools: teach gst-launch about missing-plugin messages
71       * tools: make unversioned wrapper look for -0.10 tools only
72
73 Bugs fixed in this release
74      
75       * 647940 : [basesrc] - fails to send updated segment event when duration changes
76       * 662777 : Caps negotiation got a lot slow since the last release
77       * 647493 : Regression: gstbus: Not getting all messages posted on the bus
78       * 415754 : [API] GstCollectPads2; muxing sparse/subtitle streams
79       * 459466 : double memory usage for pluginfeature names
80       * 546570 : gst_caps_append/merge should not require caps2 to be writable
81       * 609473 : [miniobject] Add support for weak references
82       * 619844 : [basetransform] transform_caps can ignore pass-through
83       * 628021 : [baseaudiosink] position reporting not increasing
84       * 629300 : gstructure: New API for comparing structures
85       * 643269 : dot file flow direction
86       * 645017 : [inputselector] Add mode to drop buffers only after the active sinkpad's running time is after the current buffer
87       * 645107 : [multiqueue] Implement throttling based on stream's running time
88       * 647756 : [bin] Posting EOS message although not reached PLAYING yet
89       * 648025 : parse-launch: don't unescape inside quotes
90       * 650002 : 'No space left on device' message logged continuously, filling /home slice
91       * 650973 : check: add fail_unless_equals_int64
92       * 652037 : basesrc: less persistent caching of size
93       * 652577 : basesink: s/if/is/
94       * 653137 : Warnings in Gstreamer (core) with Clang compiler
95       * 653172 : Compilation fails when PR_SET_NAME is not defined in prctl.h
96       * 655155 : Build failure for gstcontroller.c -- (-Wall)  assignment discards qualifiers from pointer target type
97       * 655204 : bad interaction between queue and adder
98       * 655381 : GstBitReader and GstByteReader functions missing out argument annotations
99       * 656193 : don't revalidate utf8 elementfactory metadata all the time
100       * 656265 : Fix compiler warnings reported by ICC
101       * 656557 : Add Farsight and Nice support to gst-uninstalled
102       * 657316 : capsfilter is racy when changing the caps during initial pipeline startup
103       * 657318 : basetranform dosn't allow query handlers to be overridden
104       * 657421 : Fix compiler warnings reported by ICC
105       * 658076 : setcaps function for ghost pads never called
106       * 658449 : Fix typos in docs and code comments
107       * 658517 : [ghostpad] Peer query does not work with empty GstPlaySinkVideoConvert
108       * 658518 : basesink: Backport query override support
109       * 658541 : [API change] caps negotiation failures
110       * 658918 : [pad] set caps on pad before checking for peer
111       * 659139 : gstpad: make some debug traces more useful
112       * 659571 : basetransform: delay events we cannot send right away
113       * 659606 : Remaining non-subset caps warnings
114       * 660083 : Fix mingw compiler warnings
115       * 660144 : [GstBaseParse] make start/stop methods optional
116       * 660165 : basetransform: send delayed events earlier
117       * 660760 : .prs presets needs to have a per-application option
118       * 660778 : multiqueue: check filled state of queues even if another one is empty
119       * 660955 : gst_type_register_static_full: guard against large instance sizes that don't fit into a guint16
120       * 662091 : plugin loader: spawn new plugin loader helper after loading N plugins
121       * 662199 : [capsfilter] behavior has changed
122       * 662291 : basetransform: cache transformed caps where appropriate
123       * 662664 : API: add gst_element_class_add_static_pad_template() and fix template pad ref leaks
124       * 663333 : basetransfrom cache should be invalidated whenever there is any change in the peer caps
125       * 663643 : gstvalue: consider lists and ranges equal if they hold the same set
126       * 664221 : [baseparse] ::sink_get_caps() vfunc breaks API/ABI
127       * 664720 : API: add gst_buffer_{set,get}_qdata()
128       * 665921 : filesrc: Incorrect EOF detection in create_read
129       * 666174 : [basetransform] causes segfaults because gst_pad_alloc_buffer_and_set_caps return a buffer with a size of 0
130       * 667284 : registry: add missing #ifndef guard
131       * 667286 : gstpoll: Include correct poll.h based on autoconf  test
132       * 667288 : plugins: Explicitly cast initialization values to the correct type.
133       * 667290 : tools: Include locale.h before any i18n headers.
134       * 667298 : basesink: don't compensate for render-delay twice
135       * 667444 : baseparse: clear adapter in reset so no old data is read when re-using elements
136       * 668289 : regression: playbin2: repeat mode only repeats twice in totem
137       * 668764 : collectpads2: move private stuff into private struct
138       * 669036 : Missing include in gstpreset.h causes build error
139       * 669502 : [baseparse] duration msg spam when upstream knows avg bitrate
140
141 API changed in this release
142      
143 - API additions:
144     
145       * gst_base_parse_set_latency()
146       * GstBaseParse::detect
147       * GstBaseParse::get_sink_caps
148       * gst_base_src_set_dynamic_size()
149       * GstBaseTransform::query
150       * gst_collect_pads2_add_pad()
151       * gst_collect_pads2_add_pad_full()
152       * gst_collect_pads2_available()
153       * gst_collect_pads2()_collect
154       * gst_collect_pads2_collect_range()
155       * gst_collect_pads2_flush()
156       * gst_collect_pads2_get_type()
157       * gst_collect_pads2_is_active()
158       * gst_collect_pads2_new()
159       * gst_collect_pads2_peek()
160       * gst_collect_pads2_pop()
161       * gst_collect_pads2_read()
162       * gst_collect_pads2_read_buffer()
163       * gst_collect_pads2_remove_pad()
164       * gst_collect_pads2_set_buffer_function()
165       * gst_collect_pads2_set_clip_function()
166       * gst_collect_pads2_set_compare_function()
167       * gst_collect_pads2_set_event_function()
168       * gst_collect_pads2_set_flushing()
169       * gst_collect_pads2_set_function()
170       * gst_collect_pads2_set_waiting()
171       * gst_collect_pads2_start()
172       * gst_collect_pads2_stop()
173       * gst_collect_pads2_take_buffer()
174       * gst_buffer_get_qdata()
175       * gst_buffer_set_qdata()
176       * gst_caps_is_strictly_equal()
177       * gst_caps_is_subset_structure
178       * gst_element_class_add_static_pad_template()
179       * GstElement::state_changed
180       * gst_ghost_pad_activate_pull_default()
181       * gst_ghost_pad_activate_push_default()
182       * gst_ghost_pad_internal_activate_pull_default()
183       * gst_ghost_pad_internal_activate_push_default()
184       * gst_ghost_pad_link_default()
185       * gst_ghost_pad_setcaps_default()
186       * gst_ghost_pad_unlink_default()
187       * gst_mini_object_weak_ref()
188       * gst_mini_object_weak_unref()
189       * gst_preset_get_app_dir()
190       * gst_preset_set_app_dir()
191       * gst_proxy_pad_acceptcaps_default()
192       * gst_proxy_pad_bufferalloc_default()
193       * gst_proxy_pad_chain_default()
194       * gst_proxy_pad_chain_list_default()
195       * gst_proxy_pad_checkgetrange_default()
196       * gst_proxy_pad_event_default()
197       * gst_proxy_pad_fixatecaps_default()
198       * gst_proxy_pad_get_internal()
199       * gst_proxy_pad_getcaps_default()
200       * gst_proxy_pad_getrange_default()
201       * gst_proxy_pad_iterate_internal_links_default()
202       * gst_proxy_pad_query_default()
203       * gst_proxy_pad_query_type_default()
204       * gst_proxy_pad_setcaps_default()
205       * gst_proxy_pad_unlink_default()
206       * gst_structure_can_intersect()
207       * gst_structure_intersect()
208       * gst_structure_is_equal()
209       * gst_structure_is_subset()
210       * gst_tag_list_is_equal()
211       * gst_tag_list_new_from_string()
212       * gst_tag_list_to_string()
213       * fail_unless_equals_int64()
214 - API deprecations:
215     
216       * gst_plugin_feature_type_name_filter()
217       * GstTypeNameData
218       * gst_filter_run()
219       * GstFilterFunc
220
221 Download
222
223 You can find source releases of gstreamer in the download directory:
224 http://gstreamer.freedesktop.org/src/gstreamer/
225
226 GStreamer Homepage
227
228 More details can be found on the project's website:
229 http://gstreamer.freedesktop.org/
230
231 Support and Bugs
232
233 We use GNOME's bugzilla for bug reports and feature requests:
234 http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer
235
236 Developers
237
238 GStreamer is stored in Git, hosted at git.freedesktop.org, and can be cloned from there.
239 Interested developers of the core library, plug-ins, and applications should
240 subscribe to the gstreamer-devel list. If there is sufficient interest we
241 will create more lists as necessary.
242
243         
244 Applications
245
246 Applications ported to GStreamer 0.10 include Totem, RhythmBox, Sound-Juicer,
247 Gnome Media, Flumotion, Amarok, Jamboree, Pitivi, Istanbul, AnnoAmp, Elisa, and others.
248 Let us know if you want to be added to this list.
249
250   
251 Contributors to this release
252     
253       * Antoine Tremblay
254       * David Schleef
255       * Edward Hervey
256       * Emmanuel Pacaud
257       * Evan Nemerson
258       * Fabrizio (Misto) Milo
259       * Guillaume Desmottes
260       * Havard Graff
261       * Idar Tollefsen
262       * Jan Schmidt
263       * Josep Torra
264       * João Paulo Pizani Flor
265       * Mark Nauwelaerts
266       * Nicolas Dufresne
267       * Peteris Krisjanis
268       * Philip Jägenstedt
269       * Piotr Fusik
270       * Raimo Järvi
271       * Raluca Elena Podiuc
272       * René Stadler
273       * Reynaldo H. Verdejo Pinochet
274       * Robert Swain
275       * Sebastian Dröge
276       * Shaun Hoopes
277       * Sjoerd Simons
278       * Stas Sergeev
279       * Stefan Kost
280       * Stefan Sauer
281       * Thiago Santos
282       * Tim-Philipp Müller
283       * Vincent Penquerc'h
284       * Wim Taymans
285