-Release notes for GStreamer 0.10.26 "Think Twice"
+Release notes for GStreamer 0.10.32 "Take Me to the Bonus Level"
The 0.10.x series is a stable series targeted at end users.
-It is not API or ABI compatible with the stable 0.8.x series.
-It is, however, parallel installable with the 0.8.x series.
-
-
-The 0.10.x series has been reworked for threadsafety. It also features
-various feature additions and enhancements.
This module, gstreamer, only contains core functionality.
Features of this release
- * Threadsafe design and API
- * registry: do plugin scanning (on *nix) using an external helper binary
- * lots of performance improvements all over the place (ghostpads,
- multiqueue, pad construction, superfluous type checks, registry loading)
- * add GstByteWriter, a simple generic byte writer
- * filesink: Use _wfopen on win32 to open files with non-ascii filenames correctly.
- * queue2: add option to remove the temp-file (enabled by default)
- * it is now allowed to use gst_caps_set_simple() on non-simple caps
- * queue2: move from gst-plugins-base into the coreelements plugin in core
- (this means you may need to remove libgstqueue2.so manually if you
- installed from source and don't do make uninstall before upgrading, or
- combine an older -base with a newer core)
- * multiqueue: add support for buffering mode where we post BUFFERING
- messages based on the level of the queues
- * typefind: speed up typefinding a lot by first trying the typefinder for
- the file's extension
- * buffer: remove private/internal subbuffer subclass and keep track of
- the parent buffer directly in the GstBuffer structure (this removes
- quite a bit of special-casing and will allow for future improvements/
- extensions that are harder to do if there's a separate subbuffer class.
- * collectpads: add ability to install clipping functions
- * new tags for TV/Radio shows/episodes, lyrics, composer sortname and
- grouping
- * miniobject: avoid race when recycling buffers
- * basesrc: fix race in PLAYING->PAUSED->PLAYING
+ * GLib requirement is now >= 2.22
+ * New core element: valve (moved from -bad)
+ * New core element: input-selector (N.B. without "select-all" property, use fsfunnel instead) (moved from -bad)
+ * New core element: output-selector (with different negotiation behaviour by default, set pad-negotiation-mode=active for previous behaviour) (moved from -bad)
+ * Performance improvements for many heavily-used code paths: GstPad, GstPoll, GstClock, GstTask, basesink, basesrc, queue2, multiqueue (use atomic ops make many code-paths
+ * gobject-introspection: add annotations for most core API
+ * clock: make sync clock wait lockfree
+ * fdsrc/fdsink: reenable on MSVC
+ * registry: fix GStatBuf definition for win32 when building against older glib (fixes unnecessary rescanning of plugins at start-up)
+ * element: add a more flexible way to get request pads from elements
+ * multiqueue: return upon input when already eos
+ * object: fix creation of default name (when creating more than 100000 elements)
+ * pluginloader: fix hangs on OSX
+ * poll: fixes for (p)select backend (used e.g. on OSX)
+ * poll: refactor and make more lockfree; fixes for win32 and OSX (pselect backend)
+ * registry: don't replace valid existing plugins by blacklisted ones
+ * tags: don't produce duplicated entries when merging same value twice
+ * basesink: preroll fixes for async=false case
+ * basesink: rework position reporting code
+ * basetransform: handle downstream giving a buffer with new caps but invalid size
Bugs fixed in this release
- * 476514 : [multiqueue] Doesn't forward EOS event in all cases
- * 590941 : API: add gst_pad_get_caps() variant that avoids unneeded caps copies
- * 595602 : g_child_proxy_get_valist doesn't initialize GValue correctly
- * 535069 : basesrc no longer support non-flushing seeks on itself
- * 560442 : GNOME Goal: Remove deprecated GLib symbols
- * 595511 : Annotations for gst_element_query_{position,duration}
- * 595886 : gst_pad_fixate_caps() does not return fixed caps in case of multiple structures
- * 595964 : [multiqueue] can hang pipeline during startup
- * 596366 : proxy_getcaps reverses direction of getcaps
- * 597407 : GstPipeline calculates base_time incorrectly when a new clock appears during PAUSED state
- * 597550 : basesrc: sometimes no buffers produced after PLAYING - PAUSED - PLAYING
- * 597690 : Improve caps setters API
- * 598297 : make check fails when any --disable option which changes the API has been used
- * 598526 : bytewriter: fails to compile with gcc 4.2.4 on Ubuntu Hardy 64 bits
- * 598700 : scripts: Parallelise git-update.sh build script
- * 598895 : [GstRegistry] Use hash table for feature lookups
- * 598896 : [GstRegistry] Cache lists of ElementFactory and TypeFindFactory
- * 599147 : typefind : Avoid having to re-sort the typefind factory list
- * 599759 : [qtdemux] Add support for more tags
- * 600313 : Visualisations stop updating after seek
- * 600922 : gst-launch: wake up less often to check for Ctrl-C
- * 601587 : MiniObject race condition
- * 601668 : [gstregistry] gstregistry.c uses a variable from gst.c
- * 601669 : [tests] tests/examples/manual depends on libgstcheck
- * 602093 : libgstcheck fails to export some symbols when built under et_EE locale
- * 602275 : [API] Add new sink-message event
- * 602419 : [basesink] Regression with position reporting
- * 603059 : Totem crashes when DVD is encrypted but libdvdcss isn't available
- * 603787 : [registry] Doesn't use GMappedFile
- * 604091 : tee: cleanup requestpads in dispose
- * 604093 : gst-inspect/launch: move gst_tools_print_version to avoid glib warning
- * 605251 : tee causes segfault if there is no source pad
- * 605930 : [shave] common/shave not existing yet when configure checks need it
- * 606435 : gsttee not threadsafe
- * 607283 : segfaults and/or miniobject warnings with GLib > = 2.23.2
- * 607317 : [PATCH] fix unaligned detection for x86-64 when cross compiling
- * 607431 : update common modules before freeze
- * 607481 : Should define G_THREADS_MANDATORY everywhere
- * 607739 : [queue2] Temporary file is removed although code claims the opposite
- * 607842 : Audio comes out with short breaks after resume pipeline (paused- > playing)
- * 608136 : multiqueue handles UNEXPECTED flowreturn wrongly
- * 608398 : Initializing the glib thread system seems not to work
- * 608442 : [filesrc] typo in warning message
- * 608726 : bytewriter: mistake in .h/.c function naming
- * 609166 : Buffer list docs ascii art
- * 590669 : [API] need GstByteWriter or GstChunkWriter
- * 601698 : Rename new plugin-scanner helper executable before release
- * 604565 : [gstcheck] Update check to 0.9.8
- * 596877 : New internal libcheck breaks the Solaris build
+ * 635785 : basesrc: fix deadlock
+ * 638599 : GST_PTR_FORMAT causes crashes if GLib-internal printf is used but system provides register_printf_specifier
+ * 503592 : gstpad.c does many ref/unref of peer pad in dataflow
+ * 564056 : Protect against umask(0177)
+ * 607513 : input-selector segfaults in g_object_notify()
+ * 632168 : [gsttask] MSVC thread names for task debugging
+ * 632447 : reduce static memory allocated by the registry
+ * 632557 : [macros] Define restrict keyword if not available
+ * 632778 : Optimisations to GstBaseSink
+ * 632779 : gstdataqueue: Only emit g_cond_signal when needed
+ * 632780 : queue: Remove useless checks from e406f7
+ * 633918 : [fakesink] [PATCH] print sink-message events like a message and its structure
+ * 634965 : sinks render buffers in state PAUSED when async is FALSE
+ * 635001 : basesink: fix position reporting in PAUSED
+ * 636268 : configure test fails on FreeBSD
+ * 636455 : basesrc: Avoid taking object locks for just checking tag presence
+ * 637057 : [plugin-scanner] gstpoll fails with select backend
+ * 637300 : [API] request pad based on caps
+ * 637549 : build fails: ./.libs/libgstbase-0.10.so: undefined reference to `gst_clock_single_shot_id_reinit'
+ * 637776 : merging the same tag values again produces lists containing duplicates
+ * 638381 : {input,output}-selector: double-check API before release
+ * 638399 : a few typos in GStreamer
+ * 638900 : [GstPoll] Doesn't compile with MinGW
+ * 638941 : registry scan/loading race and inconsistency
API changed in this release
- API additions:
-* GST_DEBUG_REGISTER_FUNCPTR()
-* gst_base_src_new_seamless_segment()
-* gst_event_new_sink_message()
-* gst_event_parse_sink_message()
-* gst_util_fraction_add()
-* gst_util_fraction_multiply()
-* gst_util_greatest_common_divisor()
-* gst_util_double_to_fraction()
-* gst_util_fraction_to_double()
-* gst_registry_get_feature_list_cookie()
-* gst_default_registry_get_feature_list_cookie()
-* gst_pad_get_caps_reffed()
-* gst_pad_peer_get_caps_reffed()
-* gst_structure_id_has_field()
-* gst_structure_id_has_field_typed()
-* gst_plugin_feature_list_copy()
-* gst_caps_set_value()
-* gst_byte_writer_ensure_free_space()
-* gst_byte_writer_free()
-* gst_byte_writer_free_and_get_buffer()
-* gst_byte_writer_free_and_get_data()
-* gst_byte_writer_get_remaining()
-* gst_byte_writer_init()
-* gst_byte_writer_init_with_buffer()
-* gst_byte_writer_init_with_data()
-* gst_byte_writer_init_with_size()
-* gst_byte_writer_new()
-* gst_byte_writer_new_with_buffer()
-* gst_byte_writer_new_with_data()
-* gst_byte_writer_new_with_size()
-* gst_byte_writer_put_data()
-* gst_byte_writer_put_float32_be()
-* gst_byte_writer_put_float32_le()
-* gst_byte_writer_put_float64_be()
-* gst_byte_writer_put_float64_le()
-* gst_byte_writer_put_int16_be()
-* gst_byte_writer_put_int16_le()
-* gst_byte_writer_put_int24_be()
-* gst_byte_writer_put_int24_le()
-* gst_byte_writer_put_int32_be()
-* gst_byte_writer_put_int32_le()
-* gst_byte_writer_put_int64_be()
-* gst_byte_writer_put_int64_le()
-* gst_byte_writer_put_int8()
-* gst_byte_writer_put_string_utf16()
-* gst_byte_writer_put_string_utf32()
-* gst_byte_writer_put_string_utf8()
-* gst_byte_writer_put_uint16_be()
-* gst_byte_writer_put_uint16_le()
-* gst_byte_writer_put_uint24_be()
-* gst_byte_writer_put_uint24_le()
-* gst_byte_writer_put_uint32_be()
-* gst_byte_writer_put_uint32_le()
-* gst_byte_writer_put_uint64_be()
-* gst_byte_writer_put_uint64_le()
-* gst_byte_writer_put_uint8()
-* gst_byte_writer_reset()
-* gst_byte_writer_reset_and_get_buffer()
-* gst_byte_writer_reset_and_get_data()
-* gst_bit_reader_get_size()
-* gst_byte_reader_get_size()
-* gst_data_queue_new_full()
-* gst_collect_pads_set_clip_function()
-* gst_type_find_helper_get_range_ext()
-- API deprecations:
-
-* gst_registry_xml_read_cache()
-* gst_registry_xml_write_cache()
+ * gst_clock_single_shot_id_reinit()
+ * gst_element_request_pad()
+ * GstElementClass::request_new_pad_full()
+ * gst_poll_get_read_gpollfd()
+ * gst_value_list_merge()
+ * GST_CLOCK_DONE
Download
will create more lists as necessary.
-Applications
-
-Applications ported to GStreamer 0.10 include Totem, RhythmBox, Sound-Juicer,
-Gnome Media, Flumotion, Amarok, Jamboree, Pitivi, Istanbul, AnnoAmp, Elisa, and others.
-Let us know if you want to be added to this list.
-
-
Contributors to this release
* Andoni Morales Alastruey
- * Bastien Nocera
+ * Benjamin Gaignard
* Benjamin Otte
- * Christian Schaller
+ * David Hoyt
* David Schleef
* Edward Hervey
- * Frederic Crozat
* Havard Graff
- * Håvard Graff
* Jan Schmidt
- * Javier Jardón
- * Johan Bilien
- * LRN
+ * Kipp Cannon
+ * Koop Mast
+ * Lasse Laukkanen
* Mark Nauwelaerts
* Michael Smith
- * Ole André Vadla Ravnås
+ * Olivier Crete
* Olivier Crête
- * Peter Kjellerstedt
- * Peter van Hardenberg
- * Priit Laes
- * Rob Clark
- * Robert Swain
+ * Raimo Järvi
* Sebastian Dröge
* Stefan Kost
* Thiago Santos
- * Thiago Sousa Santos
- * Thijs Vermeir
* Tim-Philipp Müller
* Tommi Myöhänen
* Wim Taymans
- * Руслан Ижбулатов
+ * Zhang Wanming
+ * Christian Schaller
+ * Sjoerd Simons
\ No newline at end of file