Release 0.10.33
[platform/upstream/gstreamer.git] / RELEASE
1
2 Release notes for GStreamer 0.10.33 "Prior Spaceflight Experience is an Advantage"
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       * atomicqueue: add an atomic/lock-free queue structure based
41       * bufferlist: improve _add*() performance
42       * bus: in _add_watch() honour any per-thread default main context set via g_main_thread_push_thread_default()
43       * caps: new gst_caps_intersect_full() to intersect in different modes
44       * clock: add functions to re-init existing periodic GstClockIDs
45       * event: add QoS type (overflow, underflow, throttle) for QoS events
46       * ghostpad: The internally linked pad of the proxypad is the ghostpad
47       * gstpoll: retry reading the control socket to release properly all wakeups
48       * message: new progress message API for asynchronous operations
49       * pad: unlock before freeing the pad cache to avoid deadlock
50       * pad: better handling for when parent goes away during data/query/event flow
51       * parse-launch: allow element names to begin with digits
52       * pluginloader: call gst-plugin-scanner with the right arch on OSX, fixing hangs with firefox
53       * registry: fixes elements (features) disappearing if a plugin or plugin file is renamed
54       * structure: Add "(date)" as a type abbreviation of GDate
55       * structure: Don't allow invalid GDates in all structures and don't allow NULL GDates in taglists
56       * taglist: add a new "encoded-by" tag
57       * uri: add gst_filename_to_uri() that takes relative filenames
58       * utils: add gst_element_factory_can_{src|sink}_{any|all}_caps() to replace can_{sink,src}_caps()
59       * baseparse: new GstBaseParse class for parsers
60       * basesink: improve rate, duration, and average duration calculation
61       * basesink: use new QoS types and add add "throttle-time" property
62       * basesrc: Handle tag and custom downstream events the same
63       * basesrc: keep downstream caps order when fixating, to honour downstream preferences when negotiating
64       * basesrc: Return FALSE if we don't handle an event
65       * basesrc: Send synchronized custom downstream/both events downstream from the streaming thread
66       * basetransform: Be smarter with pad allocs
67       * basetransform: Check for pad alloc caps when suggestion is not fixed
68       * basetransform: Retain caps order when getting caps, to honour downstream preferences when negotiating
69       * funnel: new N-to-1 pipe fitting element imported from farsight
70       * fakesink: print buffer flags
71       * filesink: Fix escaping of URIs
72       * file{sink,src}: Check if non-URI characters are escaped, but only for the URI not the location property
73       * filesrc, filesink: fix URI creation regression for non-absolute locations
74       * filesrc: Fix escaping of file uris
75       * inputselector: Hold the selector lock while reading properties of the active pad
76       * inputselector: Make sure that EOS is always sent downstream for the active pad
77       * inputselector: Return GST_FLOW_OK until the selected pad pushed something downstream
78       * inputselector: Stop waiting for a pad switch when the pad is flushing
79       * multiqueue: fix some potential corner-case deadlocks and some leaks
80       * multiqueue: handle arbitrary sink + source pad naming
81       * queue2: don't read beyond the end of file upstream in pull mode; leak fixes
82       * plugins: make query and event functions more thread-safe, protect against parent-pad disappearing
83       * gst-launch: add GstIndex support
84
85 Bugs fixed in this release
86      
87       * 642356 : [Index] review api and add an example
88       * 402141 : gst_element_factory_can_{sink,src}_caps seems to be broken
89       * 518857 : [API] GstBaseParse: new base class for parsers
90       * 604094 : registry: do not remove features when removing a cached plugin that no longer is present
91       * 615357 : [macosx] Handle multi-arch plugin-scanner
92       * 617045 : [caps] New method for intersecting caps while retaining order
93       * 639674 : parse-launch: improve parsing resilience (for escapes at end of string)
94       * 639962 : design docs: Fix a few typos and a think
95       * 640071 : pluginloader: do not leak the description string of blacklisted plugin
96       * 640437 : design docs: fix 2 typos in part-MT-refcounting
97       * 640502 : fix a few typos
98       * 640622 : gst_element_link_pads_full function return wrong error information
99       * 640675 : high cpu-load with 0.10.32 release
100       * 640850 : GstElement: Fix warning with GCC 4.6
101       * 641212 : gst-uninstalled: use $GST_PREFIX variable
102       * 641928 : gst_pad_push fast path races with pad deactivation
103       * 642071 : Incorrect comparing of number of source and sink links when parsing a launch string
104       * 642130 : [basetransform] Check for pad alloc caps when suggestion is not fixed
105       * 642271 : crash in gst_caps_structure_intersect, encoder_match_media_type
106       * 642373 : [basetransform] Avoid too may pad allocs
107       * 642393 : [filesrc] Fails setting the same uri it's setting in the uri queries.
108       * 642504 : [mingw/cygwin build] correctly export plugin description
109       * 642522 : gstvalue.c does not include a deserialize function for uchar
110       * 642869 : gst_index_new: documentation typo
111       * 643301 : Adding a buffer to a buffer list iterates the list
112       * 643455 : [regression] Lots of dropouts in Empathy voip calls
113       * 644935 : [inputselector] During switching of streams it can happen that all pads returned not-linked last
114       * 645022 : GstTask: typo in GST_TASK_BROADCAST - g_cond_breadcast should probably be g_cond_broadcast
115       * 645267 : build: fix build with -Werror with GCC 4.6.0
116       * 645595 : bytereader, bytewriter: fix warnings when using inline functions with g++
117       * 645746 : [gstpoll] Regression causes 100% cpu usage in multifdsink
118       * 645877 : commit 14d7db1 causes cpu spinning and other bus weirdness
119       * 645931 : [gstmultiqueue] fix arbitrary sink + source pad naming
120       * 646118 : [gstmultiqueue] if arbitrary sink number is specified by caller, use this as single queue id
121       * 646341 : [baseparse] Add a queued flow return so parsers can keep frames in a queue
122       * 646531 : GST_BOILERPLATE: don't use " type " as both a variable name and a macro argument
123       * 646566 : Protect against Pad-Parent disappearing
124       * 646569 : poll: don't call WSAWaitForMultipleEvents with no events
125       * 646624 : GstBin: regression: creating too many bins fails, exhausting allowed file descriptor limit
126       * 646811 : baseparse: deadlock in gst_base_parse_set_index
127       * 646971 : iterator: resync to avoid infinite loop
128       * 647005 : GstBus: Only create the socketpair for async message delivery if required
129       * 647131 : recent multiqueue changes break DVD playback (again)
130       * 647293 : Fix pad callbacks so they handle when parent goes away
131       * 647763 : [bus] Bus is leaked if a watch is installed in the default main context
132       * 647844 : baseparse: Remove unused but set variable
133       * 647922 : [introspection] Needs to call gst_init() before anything else
134       * 648199 : pad: potential deadlock / crash when freeing cache
135       * 648215 : basetransform: unref in wrong place
136       * 648220 : Regression: videoscale fails to negotiate for PAR transformation
137       * 648297 : [bus] regression: critical assertion failure
138       * 649195 : [miniobject] Fix dup_mini_object function to handle NULL gvalues
139       * 635718 : [basesrc] custom, non-OOB events aren't pushed downstream
140       * 625396 : gst_debug_remove_log_function doesn't remove default log handler
141       * 640771 : amarok doesn't start with new phonon gstreamer
142       * 646972 : queue2: Fixes memory leak on out_flushing error in gst_queue2_create_read
143       * 640665 : basesink: drops too many buffers when there's no duration
144
145 API changed in this release
146      
147 - API additions:
148     
149       * gst_atomic_queue_length()
150       * gst_atomic_queue_new()
151       * gst_atomic_queue_peek()
152       * gst_atomic_queue_pop()
153       * gst_atomic_queue_push()
154       * gst_atomic_queue_ref()
155       * gst_atomic_queue_unref()
156       * gst_buffer_list_iterator_get_type()
157       * gst_caps_intersect_full()
158       * gst_caps_intersect_mode_get_type()
159       * gst_clock_periodic_id_reinit()
160       * gst_element_factory_can_sink_all_caps()
161       * gst_element_factory_can_sink_any_caps()
162       * gst_element_factory_can_src_all_caps()
163       * gst_element_factory_can_src_any_caps()
164       * gst_event_new_qos_full()
165       * gst_event_parse_qos_full()
166       * gst_filename_to_uri()
167       * gst_message_new_progress()
168       * gst_message_parse_progress()
169       * gst_parse_context_get_type()
170       * gst_progress_type_get_type()
171       * gst_qos_type_get_type()
172       * GST_TAG_ENCODED_BY
173       * gst_base_parse_add_index_entry()
174       * gst_base_parse_convert_default()
175       * gst_base_parse_frame_free()
176       * gst_base_parse_frame_get_type()
177       * gst_base_parse_frame_init()
178       * gst_base_parse_frame_new()
179       * gst_base_parse_get_type()
180       * gst_base_parse_push_frame()
181       * gst_base_parse_set_average_bitrate()
182       * gst_base_parse_set_duration()
183       * gst_base_parse_set_frame_rate()
184       * gst_base_parse_set_has_timing_info()
185       * gst_base_parse_set_min_frame_size()
186       * gst_base_parse_set_passthrough()
187       * gst_base_parse_set_syncable()
188       * gst_base_sink_get_throttle_time()
189       * gst_base_sink_set_throttle_time()
190 - API deprecations:
191     
192       * gst_element_factory_can_src_caps()
193       * gst_element_factory_can_sink_caps()
194
195 Download
196
197 You can find source releases of gstreamer in the download directory:
198 http://gstreamer.freedesktop.org/src/gstreamer/
199
200 GStreamer Homepage
201
202 More details can be found on the project's website:
203 http://gstreamer.freedesktop.org/
204
205 Support and Bugs
206
207 We use GNOME's bugzilla for bug reports and feature requests:
208 http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer
209
210 Developers
211
212 GStreamer is stored in Git, hosted at git.freedesktop.org, and can be cloned from there.
213 Interested developers of the core library, plug-ins, and applications should
214 subscribe to the gstreamer-devel list. If there is sufficient interest we
215 will create more lists as necessary.
216
217         
218 Applications
219
220 Applications ported to GStreamer 0.10 include Totem, RhythmBox, Sound-Juicer,
221 Gnome Media, Flumotion, Amarok, Jamboree, Pitivi, Istanbul, AnnoAmp, Elisa, and others.
222 Let us know if you want to be added to this list.
223
224   
225 Contributors to this release
226     
227       * Alessandro Decina
228       * Andoni Morales Alastruey
229       * Andreas Frisch
230       * Arun Raghavan
231       * Bastien Nocera
232       * Cai Yuanqing
233       * Chen Rui
234       * Daniel Macks
235       * David Schleef
236       * Edward Hervey
237       * Fraxinas
238       * Havard Graff
239       * Idar Tollefsen
240       * Jan Schmidt
241       * Janne Grunau
242       * Jason D. Clinton
243       * Jonas Holmberg
244       * Jonathan Matthew
245       * Josep Torra
246       * Joshua M. Doe
247       * Julien Moutte
248       * Luis de Bethencourt
249       * Mark Nauwelaerts
250       * Mart Raudsepp
251       * Michael Smith
252       * Miguel Angel Cabrera Moya
253       * Ole André Vadla Ravnås
254       * Olivier Crête
255       * Peter Collingbourne
256       * Philip Jägenstedt
257       * René Stadler
258       * Robert Swain
259       * Sebastian Dröge
260       * Sreerenj Balachandran
261       * Stefan Kost
262       * Stian Selnes
263       * Thiago Santos
264       * Thijs Vermeir
265       * Thomas Kristensen
266       * Tim-Philipp Müller
267       * Vincent Penquerc'h
268       * Wim Taymans
269       * Yang Xichuan
270       * Zaheer Abbas Merali
271       * Zhang Wanming
272