tizen 2.3 release
[framework/multimedia/gst-plugins-base0.10.git] / RELEASE
1
2 Release notes for GStreamer Base Plug-ins 0.10.36 "Better"
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 GStreamer Base Plug-ins.
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
17 This module contains a set of reference plugins, base classes for other
18 plugins, and helper libraries.
19
20 This module is kept up-to-date together with the core developments.  Element
21 writers should look at the elements in this module as a reference for
22 their development.
23
24 This module contains elements for, among others:
25
26   device plugins: x(v)imagesink, alsa, v4lsrc, cdparanoia
27   containers: ogg
28   codecs: vorbis, theora
29   text: textoverlay, subparse
30   sources: audiotestsrc, videotestsrc, gnomevfssrc, giosrc
31   network: tcp
32   typefind functions
33   audio processing: audioconvert, adder, audiorate, audioresample, volume
34   visualisation: libvisual
35   video processing: ffmpegcolorspace
36   aggregate elements: uridecodebin, playbin2, decodebin2, decodebin, playbin, encodebin
37   libraries: app, audio, cdda, fft, interfaces, netbuffer, pbutils, riff, rtp, rtsp, sdp, tag, video
38
39
40 Other modules containing plug-ins are:
41
42
43 gst-plugins-good
44 contains a set of well-supported plug-ins under our preferred license
45 gst-plugins-ugly
46 contains a set of well-supported plug-ins, but might pose problems for
47     distributors
48 gst-plugins-bad
49 contains a set of less supported plug-ins that haven't passed the
50     rigorous quality testing we expect
51
52
53
54   
55
56 Features of this release
57     
58       * audio: new IEC 61937 payloading library
59       * audio: new GstAudioFormat, GstAudioFormatInfo and GstAudioInfo API
60       * audio: new GstAudioDecoder and GstAudioEncoder base classes
61       * audio: baseaudiosink: allow subclasses to provide payloaders
62       * audio: baseaudiosink: fix latency calculation for live elements
63       * audio: baseaudiosink: make discont-wait configurable
64       * audio: baseaudiosink: split "drift-tolerance" into "alignment-threshold"
65       * codec-utils: Add method to convert H.264 text level in a level_idc
66       * discoverer: add support for subtitles; try harder to extract language and duration
67       * encoding-profile: add function to create a profile from a discoverer info
68       * ringbuffer: add support for AAC, DTS, E-AC3 and MPEG audio buffers
69       * rtcpbuffer: Add feedback message types from RFC 510
70       * rtcpbuffer: prevent overflow of 16bit header length
71       * rtspconnection: make hostname lookup thread-safe; OSX portability fixes
72       * rtspconnection: only send new data immediately if there are no queued messages
73       * tags: add new GstTagMux base class
74       * tags: add convenience API to handle creative commons licenses
75       * tags: add API to parse ID3v2 tags
76       * tags: various exif and xmp tag writing fixes
77       * tags: xmp: add Iptc4xmpExt schema support
78       * tags: gstvorbistag: map ENCODER Vorbis comment to application-name
79       * video: add video overlay composition API for subtitles
80       * video: fix a RGB ordering mixup in colorspace conversion code
81       * alsasink: fix high sample rates being rejected, and negotiation to "nearest" rate
82       * audioresample: don't emit DISCONT buffers if no discontinuity happened
83       * audioresample: fix quality setting being ignored; use SSE/SSE2 when possible
84       * audiotestsrc: add red (brownian) and blue/violet noise generator
85       * cdparanoiasrc: fix build issue on OSX (caused by broken cdparanoia port and broken system headers)
86       * decodebin2: improve handling of multi-stream chains (e.g. mpeg-ts)
87       * decodebin2: Cache the upstream seekability for demuxer decode chains and use it for the non-preroll multiqueue limits
88       * decodebin2: add support for autoplugging parsers and parser-converters, and negotiate stream-format conversions properly as needed
89       * decodebin2: link elements before testing if they can reach the READY state, so allow hw-accelerated elements can query the video context
90       * decodebin2: use a TIME limit for pre-rolling in live streams and not in non-live streams
91       * decodebin2: fix preroll for HLS streams at low bitrates
92       * decodebin2: add source pads to stream-topology element messages
93       * decodebin, decodebin2: don't plug the same parser multiple times in a row, so we can make parsers accept parsed input as well (and use them to convert to different stream formats)
94       * encodebin: add flags to disable conversion elements
95       * encodebin: autoplug formatters; re-enable parsers
96       * gnomevfssrc: add support for cancelling read operations
97       * oggdemux, oggmux: add support for new Opus audio codec
98       * oggdemux: implement push mode seeking (e.g. for http)
99       * oggdemux: assume input is live stream if byte size cannot be determined
100       * oggdemux: fix hang on small truncated files
101       * oggmux: add skeleton write support
102       * oggmux: sync  input streams and select input buffers based on running time
103       * oggmux: headers should always have granpos 0
104       * oggmux: refactor how EOS is determined
105       * oggmux: support sparse streams as input (e.g. kate subtitle streams)
106       * playbin2: fix decoder-sink compatibility check for raw audio/video formats
107       * playbin2: make sure that the decoders we plug are compatible with the fixed sink
108       * playsink: Add audio and video converter convenience bins
109       * playbin2: improve stream switching
110       * playbin2/playsink: Decide if A/V caps are raw only inside playsink
111       * playbin2/playsink: better support for raw + compressed streams (audio passthrough)
112       * playbin2/playsink: improve handling of "non-raw" formats (for hw-accelerated video decoding)
113       * playsinkconvertbin: Reconfigure if we switch from raw to incompatible raw caps
114       * subparse: subtitle format typefinding improvements
115       * subtitleoverlay: handle non raw video streams (add suport for hardware accelerated videos)
116       * textoverlay: support more video formats
117       * textoverlay: add "outline-color" and "shadow" properties
118       * textoverlay: attach GstVideoOverlayComposition to buffers if input is not raw video
119       * theoraenc: do not automatically override quality when using target bitrate
120       * theoraenc: proxy downstream caps restrictions upstream 
121       * typefinding: extract SOF marker in jpeg typefinder (to distinguish lossless JPEG)
122       * typefinding: add typefinder for WAP WBMP bitmaps (mostly to avoid false positives)
123       * typefinding: typefind UTF-16 and UTF-32 with BOMs (to avoid false positives)
124       * typefinding: recognize Asylum modules
125       * videorate: add a "max-rate" property; optionally ensure maximum average output frame rate
126       * videorate: add "force-fps" property to force an output framerate or change it on the fly
127       * videorate: optionally only drop frames to ensure maximum frame rate
128       * videoscale: add modified Lanczos scaling method
129       * volume: Fix handling of volume>=4.0 for 8 and 16 bit integer formats
130       * vorbisenc: relax overly tight jitter tolerances (make it work better with non-perfect input streams)
131       * xvimagesink, ximagesink: fall back to non-XShm mode if allocating the XShm image failed
132
133 Bugs fixed in this release
134      
135       * 643202 : [encodebin] streamcombiner not completely implemented
136       * 654270 : oggmux unit test fails after latest changes
137       * 658984 : Fix typos in gst-plugins-base
138       * 555437 : [tag] add GstTagMux base class
139       * 556648 : [typefind] detect lossless jpeg
140       * 563251 : oggmux should have option to create Ogg Skeleton stream
141       * 584811 : playbin2's get-text-tags sometimes fails in text stream 0
142       * 607619 : [typefind] utf-16 text file mistakenly identified as layer 1 mpeg audio
143       * 607742 : API: add gst_event_new_{upstream,downstream}_force_key_unit() etc.
144       * 609918 : [OS X] configure: cdda_interface.h: present but cannot be compiled (if VERSION is defined)
145       * 610443 : baseaudiosink: clock can jump on setcaps
146       * 612443 : oggdemux: only use information from skeleton if we have nothing better
147       * 615131 : playing an ogg over http does not report duration correctly
148       * 615342 : [gstalsamixer] leaks
149       * 621897 : [oggdemux] reports wrong duration, and push mode seeking support
150       * 628337 : [gnomevfssrc] Add support for cancelling read operations
151       * 628764 : [videorate] add new option for max frame rate
152       * 629212 : [oggdemux] Improve support for push mode (seeking, duration)
153       * 630322 : make seek example work with windows
154       * 630442 : xvimagesink, ximagesink: fallback to X*CreateImage() if X*ShmCreateImage() fails
155       * 630497 : [seek] sprinkle GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS to dump pipeline to dot file
156       * 632788 : [playbin2] Doesn't support files with a streams that are supported compressed by a sink and streams that need decoding
157       * 635556 : [oggdemux] bad duration estimate in streaming mode with vertical-overview.ogg
158       * 637812 : vorbisenc: choppy sound due to input timestamp jitter
159       * 638897 : [textrender] allow setting the canvas size using peer caps + bugfixes
160       * 639055 : discoverer: add support for subtitle streams
161       * 640041 : textoverlay: Added parameters to control text outline color and whether shadowing is enabled
162       * 640564 : Remuxing a Theora stream generates a stream that oggz-validate complains about
163       * 640859 : basesink incorrectly categorizes timestamp jitter as drift
164       * 642690 : [baseaudio] GstBaseAudioEncoder and GstBaseAudioDecoder class
165       * 642878 : encoding-profile: add a function to create a profile from a discoverer info
166       * 643578 : [encodebin] - broken remuxing
167       * 644284 : Suspicious max_latency computation in gstbaseaudiosink.c
168       * 647648 : videorate: support for caps modifications in a running pipeline
169       * 647769 : [decodebin2] Fix preroll for streams at low bitrate
170       * 649319 : Add boiler plate code to xvimagesink
171       * 649642 : [volume] Overflows with volume > =4.0 and 8/16 bit integer formats
172       * 649969 : [audiotestsrc] Add more noise variants
173       * 650406 : vorbisdec does not handle headers in caps
174       * 651089 : [xvimagesink/ximagesink] Remove g_assert from Interface query
175       * 651294 : WBMP images are not supported by typefind
176       * 651496 : encodebin seems to fail to pick up container variant
177       * 651615 : [vorbisenc] Too small jitter tolerance
178       * 651788 : [theoraenc] separate encode and push block in theora_enc_chain
179       * 651855 : elements/volume unit test fails
180       * 652342 : encoding-target: set name on audio and video profiles when reading from keyfile
181       * 652642 : typefind: NULL check in degas_type_find
182       * 652838 : gst_discoverer_discover_uri Allow NULL GError* argument
183       * 653461 : [theoraenc] element causes encoder to drop frames?
184       * 654295 : [typefind] audio/x-sap detection doesn't work
185       * 654434 : [basertppayload] RTP timestamps not longer reproducible
186       * 654959 : textoverlay would flicker if it receives not timestampes text on input
187       * 655244 : encodebin has to provide the downstream possible caps to h264parse
188       * 655268 : decodebin2: deadlock after multi-stream chains change
189       * 655279 : [playbin2] Don't reset sinks when not needed
190       * 655347 : theoradec: segfault on 0-byte ogg_packet in _chain_reverse
191       * 655503 : pbutils: Add MPEG-4 SP levels 4a, 5 and 6
192       * 655574 : ogg: crash determining duration of empty vorbis packet
193       * 656022 : volume: fix sample depth typo
194       * 656034 : gstvorbistag: map ENCODER Vorbis comment to application-name
195       * 656392 : audioresample: add FFT based checks
196       * 656715 : playbin2, playsink: reference count ts_offset to avoid crashes
197       * 656775 : oggmux: various cleanups
198       * 656781 : resample.c has warnings treated as errors that prevent compilation
199       * 657049 : textoverlay: buffer leaks
200       * 657062 : oggdemux: do not skip sparse streams when determining start times
201       * 657151 : ogg: another cleanup round
202       * 657257 : discoverer: retrieve audio track language from tags too
203       * 657261 : resindvd: regression in git: no more button highlights in menus
204       * 657319 : videorate should use basetransform
205       * 657333 : theoraenc: fix caps leak
206       * 657504 : gtk-doc distcheck failure: files left in build directory after distclean:
207       * 657872 : [subparse] Doesn't detect some SRT subtitle files
208       * 658294 : gst-inspect videorate hangs
209       * 658416 : decodebin2: refcounting bugs causing criticals
210       * 658443 : theoraenc: do not automatically override quality when using target bitrate
211       * 658514 : typefinding: recognize .amf (Asylum Music File) files for modplug
212       * 658609 : Handle subtitles with non raw caps video streams in subtitle overlay
213       * 658846 : Playbin2 pipeline stuck while prerolling if decoder is missing
214       * 658901 : textoverlay: crash when the video sink pad has no parent
215       * 659562 : videorate: gst_mini_object_unref: assertion `GST_IS_MINI_OBJECT (mini_object)' failed
216       * 660150 : baseaudio: compiler warnings if debugging system is disabled
217       * 660170 : alsasrc: broken timestamps lead to alsasrc ! audiorate endless loop
218       * 660301 : playbin2: Fix mingw compiler warnings
219       * 660304 : videotestsrc: Fix mingw compiler warning
220       * 660598 : playbin2: Make sure that elements that are plugged are compatible with the fixed sink
221       * 660604 : textoverlay: add YV12 support
222       * 660816 : dvd menus got broken
223       * 661105 : audiotestsrc: add missing break
224       * 661106 : tests: actually test what we said we would
225       * 661122 : videotestsrc does not build on Solaris
226       * 661202 : decodebin2: fire drained signal where appropriate
227       * 661738 : Deadlock between threads in gstaudiosink and gstringbuffer
228       * 661897 : oggdemux: do not retry seeking indefinitely
229       * 661983 : Regression: Reverse playback does not work for vorbis
230       * 662049 : oggdemux/oggmux in push mode cause preroll to wedge
231       * 662108 : Assertion in base audio decoder when decoding vorbis
232       * 662330 : [decodebin2] Should link and add elements to the bin before checking if they can reach READY state
233       * 662475 : oggdemux: Improvements on the push mode seeking algorithm.
234       * 662829 : [textoverlay] - silent property looks not well implemented
235       * 663174 : oggmux: set collectpads2 not to wait on sparse streams
236       * 663312 : decodebin2: Post all source pads in stream-topology messages as " element-srcpad " values
237       * 663390 : theoraenc: fix speed level failure test
238       * 663391 : theoraenc: misc small tweaks
239       * 663465 : baseaudiosink: fix late buffers leaking
240       * 663766 : [0.11] oggmux: split request pad templates into audio/video/subtitle
241       * 663892 : [playbin2] visualisation leads to not-negotiated error
242       * 663893 : playbin2: g_object_set_valist: construct property " use-volume " for object `GstPlaySinkAudioConvert' can't be set after construction
243       * 664818 : Autoplugger sink bin receives strange caps while it gets the correct ones in 0.10.35 and earlier
244       * 665004 : audioresample emits spurious disconts
245       * 665074 : [gstfft] headers are not bracketed
246       * 665080 : API: subtitle overlays for raw and non-raw video buffers
247       * 665120 : playbin2: decoder not selected for audio-sink=autoaudiosink
248       * 666395 : playbin2: set uri to a non-existed file in " about-to-finish " causes a CRITICAL warning
249       * 667210 : videotestsrc/generate_sine_table needs to link against glib
250       * 667306 : discoverer: don't use unportable vararg macro
251       * 667311 : fix various unlikely, but still potential memoryleaks
252       * 667312 : appsrc: implement get_caps
253       * 667313 : rtcpbuffer: prevent overflow of 16bit header length.
254       * 667315 : videotestsrc: keep the calculation fixed-point
255       * 667316 : pango: Changes includes from brackets to quotes for local files
256       * 667917 : alsasink: Rate doesn't match (requested 88200Hz, get 0Hz)
257       * 668097 : [subtitleoverlay] fix state change stall on PAUSED- > READY- > PAUSED (patch)
258       * 669039 : gstrtspconnection: new data may get sent even-though there is a queued message in the GstRTSPWatch
259       * 669164 : oggdemux generates invalid granpos which causes asserts in theoraparse
260       * 669167 : vorbisparse drops certain data buffers on the floor mistakenly thinking they're headers
261       * 669203 : playbin2: totem segfaults in gst_stream_get_other_pad_from_pad()
262       * 646868 : tag: Provide Creative Commons helper functions
263       * 654388 : [tags] API: move id3 parsing from id3demux to tag lib
264       * 311486 : [oggmux] theora bos must come before any audio bos pages
265
266 API changed in this release
267      
268 - API additions:
269     
270       * gst_audio_decoder_finish_frame()
271       * gst_audio_decoder_get_audio_info()
272       * gst_audio_decoder_get_byte_time()
273       * gst_audio_decoder_get_delay()
274       * gst_audio_decoder_get_drainable()
275       * gst_audio_decoder_get_latency()
276       * gst_audio_decoder_get_max_errors()
277       * gst_audio_decoder_get_min_latency()
278       * gst_audio_decoder_get_needs_format()
279       * gst_audio_decoder_get_parse_state()
280       * gst_audio_decoder_get_plc()
281       * gst_audio_decoder_get_plc_aware()
282       * gst_audio_decoder_get_tolerance()
283       * gst_audio_decoder_get_type()
284       * gst_audio_decoder_set_byte_time()
285       * gst_audio_decoder_set_drainable()
286       * gst_audio_decoder_set_latency()
287       * gst_audio_decoder_set_max_errors()
288       * gst_audio_decoder_set_min_latency()
289       * gst_audio_decoder_set_needs_format()
290       * gst_audio_decoder_set_plc()
291       * gst_audio_decoder_set_plc_aware()
292       * gst_audio_decoder_set_tolerance()
293       * gst_audio_encoder_finish_frame()
294       * gst_audio_encoder_get_audio_info()
295       * gst_audio_encoder_get_drainable()
296       * gst_audio_encoder_get_frame_max()
297       * gst_audio_encoder_get_frame_samples_max()
298       * gst_audio_encoder_get_frame_samples_min()
299       * gst_audio_encoder_get_hard_min()
300       * gst_audio_encoder_get_hard_resync()
301       * gst_audio_encoder_get_latency()
302       * gst_audio_encoder_get_lookahead()
303       * gst_audio_encoder_get_mark_granule()
304       * gst_audio_encoder_get_perfect_timestamp()
305       * gst_audio_encoder_get_tolerance()
306       * gst_audio_encoder_get_type()
307       * gst_audio_encoder_merge_tags()
308       * gst_audio_encoder_proxy_getcaps()
309       * gst_audio_encoder_set_drainable()
310       * gst_audio_encoder_set_frame_max()
311       * gst_audio_encoder_set_frame_samples_max()
312       * gst_audio_encoder_set_frame_samples_min()
313       * gst_audio_encoder_set_hard_min()
314       * gst_audio_encoder_set_hard_resync()
315       * gst_audio_encoder_set_latency()
316       * gst_audio_encoder_set_lookahead()
317       * gst_audio_encoder_set_mark_granule()
318       * gst_audio_encoder_set_perfect_timestamp()
319       * gst_audio_encoder_set_tolerance()
320       * gst_audio_iec61937_frame_size()
321       * gst_audio_iec61937_payload()
322       * gst_audio_info_clear()
323       * gst_audio_info_convert()
324       * gst_audio_info_copy()
325       * gst_audio_info_free()
326       * gst_audio_info_from_caps()
327       * gst_audio_info_init()
328       * gst_audio_info_to_caps()
329       * gst_base_audio_sink_get_alignment_threshold()
330       * gst_base_audio_sink_get_discont_wait()
331       * gst_base_audio_sink_set_alignment_threshold()
332       * gst_base_audio_sink_set_discont_wait()
333       * gst_codec_utils_h264_get_level_idc()
334       * gst_discoverer_audio_info_get_language()
335       * gst_discoverer_info_get_subtitle_streams()
336       * gst_discoverer_subtitle_info_get_language()
337       * gst_discoverer_subtitle_info_get_type()
338       * gst_encoding_profile_from_discoverer()
339       * gst_tag_get_license_description()
340       * gst_tag_get_license_flags()
341       * gst_tag_get_license_jurisdiction()
342       * gst_tag_get_license_nick()
343       * gst_tag_get_license_title()
344       * gst_tag_get_license_version()
345       * gst_tag_get_licenses()
346       * gst_tag_license_flags_get_type()
347       * gst_tag_get_id3v2_tag_size()
348       * gst_tag_list_from_id3v2_tag()
349       * gst_tag_mux_get_type()
350       * gst_video_buffer_get_overlay_composition()
351       * gst_video_buffer_set_overlay_composition()
352       * gst_video_event_is_force_key_unit()
353       * gst_video_event_new_downstream_force_key_unit()
354       * gst_video_event_new_upstream_force_key_unit()
355       * gst_video_event_parse_downstream_force_key_unit()
356       * gst_video_event_parse_upstream_force_key_unit()
357       * gst_video_get_size_from_caps()
358       * gst_video_overlay_composition_add_rectangle()
359       * gst_video_overlay_composition_blend()
360       * gst_video_overlay_composition_copy()
361       * gst_video_overlay_composition_get_rectangle()
362       * gst_video_overlay_composition_get_seqnum()
363       * gst_video_overlay_composition_get_type()
364       * gst_video_overlay_composition_make_writable()
365       * gst_video_overlay_composition_n_rectangles()
366       * gst_video_overlay_composition_new()
367       * gst_video_overlay_rectangle_copy()
368       * gst_video_overlay_rectangle_get_pixels_argb()
369       * gst_video_overlay_rectangle_get_pixels_unscaled_argb()
370       * gst_video_overlay_rectangle_get_render_rectangle()
371       * gst_video_overlay_rectangle_get_seqnum()
372       * gst_video_overlay_rectangle_get_type()
373       * gst_video_overlay_rectangle_new_argb()
374       * gst_video_overlay_rectangle_set_render_rectangle()
375
376 Download
377
378 You can find source releases of gst-plugins-base in the download directory:
379 http://gstreamer.freedesktop.org/src/gst-plugins-base/
380
381 GStreamer Homepage
382
383 More details can be found on the project's website:
384 http://gstreamer.freedesktop.org/
385
386 Support and Bugs
387
388 We use GNOME's bugzilla for bug reports and feature requests:
389 http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer
390
391 Developers
392
393 GStreamer is stored in Git, hosted at git.freedesktop.org, and can be cloned from there.
394 Interested developers of the core library, plug-ins, and applications should
395 subscribe to the gstreamer-devel list. If there is sufficient interest we
396 will create more lists as necessary.
397
398         
399 Applications
400   
401 Contributors to this release
402     
403       * Age Bosma
404       * Alessandro Decina
405       * Alex Lancaster
406       * Alexey Fisher
407       * Andoni Morales Alastruey
408       * Anssi Hannula
409       * Benjamin Otte
410       * Brian Cameron
411       * Christian Fredrik Kalager Schaller
412       * Christophe Fergeau
413       * Colin Walters
414       * David Schleef
415       * Edward Hervey
416       * Erich Schubert
417       * Felipe Contreras
418       * Havard Graff
419       * Iago Toral
420       * Idar Tollefsen
421       * James "Doc" Livingston
422       * James Doc Livingston
423       * Jan Schmidt
424       * Jason Kivlighn
425       * Jens Georg
426       * Jonathan Liu
427       * Jonathan Matthew
428       * Josep Torra
429       * Julien Moutte
430       * Kipp Cannon
431       * LoneStar
432       * Luis de Bethencourt
433       * Mark Nauwelaerts
434       * Mart Raudsepp
435       * Mersad Jelacic
436       * Michael Smith
437       * Monty Montgomery
438       * Nicolas Dufresne
439       * Ognyan Tonchev
440       * Olivier Crête
441       * Pascal Buhler
442       * Philip Jägenstedt
443       * Philippe Normand
444       * Piotr Fusik
445       * Raimo Järvi
446       * René Stadler
447       * Reynaldo H. Verdejo Pinochet
448       * Robert Swain
449       * Sebastian Dröge
450       * Sergey Scobich
451       * Sergey Scobich)
452       * Sjoerd Simons
453       * Stefan Kost
454       * Stefan Sauer
455       * Sébastien Moutte
456       * Thiago Santos
457       * Thibault Saunier
458       * Thomas Vander Stichele
459       * Tim-Philipp Müller
460       * Tommi Myöhänen
461       * Vincent Penquerc'h
462       * Wim Taymans
463       * Youness Alaoui
464