Release notes for GStreamer 0.10.31 "Safety Pins" The GStreamer team is proud to announce a new release in the 0.10.x stable series of the core of the GStreamer streaming media framework. 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. For actual media playback, you will need other modules. gst-plugins-base contains a basic set of well-supported plug-ins gst-plugins-good contains a set of well-supported plug-ins under our preferred license gst-plugins-ugly contains a set of well-supported plug-ins, but might pose problems for distributors gst-plugins-bad contains a set of less supported plug-ins that haven't passed the rigorous quality testing we expect Features of this release * bin: add "message-forward" property to force forwarding of messages that would usually be filtered such as ASYNC_DONE or EOS * bin: improve tracking of source elements for more efficient event dispatch * bufferlist: add function to add a list of buffers * clock: fix racy shutdown clock id leak * element: add support for arbitrary element class / factory details * element: link_many should activate pads if needed * gst: add math-compat.h header * datetime: add GstDateTime API * elementfactory: add utility functions to filter features by type * plugin: load the gst-python plugin loader with G_MODULE_BIND_LAZY * query: add buffering ranges API to retrieve informations about the areas of the stream currently buffered * value: add int64 range type * info: write debugging output to file if GST_DEBUG_FILE environment variable is set * pad: use more efficient g_object_notify_by_pspec() for caps notifies if compiling against new-enough GLib * pipeline: If the currently used clock gets lost update it the next time when going from PAUSED to playing * plugin: add release datetime field to GstPluginDesc and set it if GST_PACKAGE_RELEASE_DATETIME is defined * utils: speed up pad linking utility functions by not trying pads that will never work * adapter: add function to get a list of buffers; support 0-sized buffers * adapter: optimize gst_adapter_take() and gst_adapter_peek() a little * basesink: only answer the SEGMENT query in pull mode * basesrc: return values in stream time for the POSITION query * basetransform: allow the subclass to add new fields to caps when getting new caps from downstream * basetransform: avoid useless memcpy * basetransform: upstream caps-renegotiation fixes * bitreader: add inlined and unchecked versions of the most important functions * bytewriter: add inline and unchecked variants of all important functions * bytewriter: fix possible infinite loop caused by an overflow * queue: add "silent" property to suppress signal emission (for better performance) * queue: avoid unnecessary g_cond_signal() (for better performance) * queue: push newsegment event when linking in PLAYING * queue2: extend ring buffer to support RAM mode * queue2: in download mode, prevent range corruption due to race * queue2: don't send seeks beyond the end of the file upstream in pull mode (fixes apple trailers and youtube/html5 playback in webkit) * multiqueue: flush the data queue if downstream return WRONG_STATE too * gst-inspect: print GST_PARAM_MUTABLE_* property flags Bugs fixed in this release * 396774 : Make GstElementDetails extensible * 482147 : [queue] Issue with current time level if source task is not started * 579127 : gst-launch: disable CLOCK_LOST message handling * 594504 : Need a GType of " Date AND Time AND Timezone " * 600004 : underrun signal emits when i tested queue overrun test case from file /gstreamerXXXX/tests/check/element/queue.c * 610366 : [gstcollectpads][doc] Add a reminder for 'data' doc * 611918 : leaky queue might not push newsegment event * 618919 : Registry/Plugin Loading Memory Leak * 619522 : basetransform fix for upstream caps-renegotiation * 621299 : make simple queues faster * 621332 : BaseTransform should disable proxy alloc if downstream changes caps * 622740 : GstPad: Do not call gst_pad_accept_caps() when caps change * 623040 : Add release_datetime field to GstPluginDesc * 623121 : [queue2] downloaded areas of the media are not exposed * 623491 : make *_get_type() thread safe * 623541 : [basetransform] Implement POSITION query * 623622 : [basesink/basesrc] Should return values in stream time for POSITION query * 623806 : [pipeline] Doesn't update the clock if the currently used one gets lost and the start time did not change * 623875 : gstregistrybinary.c compatibility with glib > = 2.25.0 * 624203 : gstutils: Make gst_pad_proxy_getcaps() return empty caps if it's what the other side has * 625239 : FTBFS: ./gstreamer-decl.txt:9461: warning: GstTagList has multiple definitions. * 625295 : [info] regression: doesn't flush output stream after every debug print any longer * 625368 : gstdatetime.c doesn't compile in VS 2008 * 625862 : [docs] unused symbol GST_CAT_LEVEL_LOG_valist breaks the build * 626027 : [tag] Add GST_TAG_APPLICATION_NAME * 626181 : GstElementFactory: add listing/filtering API * 626651 : [tag] Photography/capture settings tags * 626784 : element: link_many might assert elements are in paused or playing * 627438 : gst: Add a gst_is_initialized() API * 627826 : GstInt64Range type * 627910 : Warnings emitted when -Wcast-qual used * 627959 : [queue2] on-disk buffering failing for AVI container * 628014 : Deprecate GST_FLOW_IS_FATAL/GST_FLOW_IS_SUCCESS * 628174 : New gstvalue checks cause trouble in thoggen * 628176 : [basetransform] Problems with buffer handling in inplace mode * 628408 : Use GDateTime that has been released * 629241 : Build broken with introspection using gobject-introspection from master * 629410 : GstBaseTransform: position query refers to sink pad, not source pad * 629494 : Latest gst-launch.c doesn't build in Visual Studio 2008 * 629553 : GstAdapter: timestamp not updated when empty buffer is pushed * 629831 : [API] add gst_structure_take_value() and gst_structure_id_take_value() * 629946 : Enumerations have incorrect names of enum values (GEnumValue.value_name) * 630257 : GST_DEBUG_DUMP_DOT_DIR not working anymore * 630436 : basesink: renderdelay needs to be subtracted in adjust_time() * 630437 : basetransform: Make a WARNING into a DEBUG statement * 630439 : clock: fix racy shutdown clock id leak * 631755 : Fix build with glib 2.21.3 * 631853 : [queue2] deadlock when using temp-location and dispatch-properties * 632236 : [gst-inspect] unhelpful uri handler output * 632433 : [basesink] hangs/drops going to PLAYING following flushing step in PAUSED * 632977 : [queue2] qtdemux causes soup to request seeks past the end of the range * 633147 : Simple reverse negotiation pipeline is broken. * 633886 : Visual Studio emits warnings about double defined _USE_MATH_DEFINES * 635031 : [datetime] Fix unix epoch handling * 635389 : Include information on exported packages in GIRs * 635869 : GST_BOILERPLATE_FULL causes warnings in user C++ code * 633176 : recent multiqueue changes break DVD playback API changes in this release - API additions: * gst_is_initialized * gst_buffer_list_iterator_add_list * GstBin:message-forward * GST_TYPE_DATE_TIME * gst_date_time_get_day * gst_date_time_get_hour * gst_date_time_get_microsecond * gst_date_time_get_minute * gst_date_time_get_month * gst_date_time_get_second * gst_date_time_get_time_zone_offset * gst_date_time_get_type * gst_date_time_get_year * gst_date_time_new * gst_date_time_new_from_unix_epoch_local_time * gst_date_time_new_from_unix_epoch_utc * gst_date_time_new_local_time * gst_date_time_new_now_local_time * gst_date_time_new_now_utc * gst_date_time_ref * gst_date_time_unref * gst_tag_list_get_date_time * gst_tag_list_get_date_time_index * GST_TAG_GEO_LOCATION_HORIZONTAL_ERROR * GST_TAG_APPLICATION_DATA * GST_TAG_APPLICATION_NAME * GST_TAG_DATE_TIME * GST_ELEMENT_IS_SOURCE * gst_element_class_set_documentation_uri * gst_element_class_set_icon_name * gst_element_factory_get_documentation_uri * gst_element_factory_get_icon_name * gst_element_factory_list_filter * gst_element_factory_list_get_elements * gst_element_factory_list_is_type * GstElementFactoryListType * GST_ELEMENT_FACTORY_TYPE_ANY * GST_ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS * GST_ELEMENT_FACTORY_TYPE_AUDIO_ENCODER * GST_ELEMENT_FACTORY_TYPE_DECODABLE * GST_ELEMENT_FACTORY_TYPE_DECODER * GST_ELEMENT_FACTORY_TYPE_DEMUXER * GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER * GST_ELEMENT_FACTORY_TYPE_ENCODER * GST_ELEMENT_FACTORY_TYPE_FORMATTER * GST_ELEMENT_FACTORY_TYPE_MAX_ELEMENTS * GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO * GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE * GST_ELEMENT_FACTORY_TYPE_MEDIA_METADATA * GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE * GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO * GST_ELEMENT_FACTORY_TYPE_MEDIA_ANY * GST_ELEMENT_FACTORY_TYPE_MUXER * GST_ELEMENT_FACTORY_TYPE_PARSER * GST_ELEMENT_FACTORY_TYPE_PAYLOADER * GST_ELEMENT_FACTORY_TYPE_SINK * GST_ELEMENT_FACTORY_TYPE_SRC * GST_ELEMENT_FACTORY_TYPE_VIDEO_ENCODER * GST_ELEMENT_FACTORY_KLASS_DECODER * GST_ELEMENT_FACTORY_KLASS_ENCODER * GST_ELEMENT_FACTORY_KLASS_SINK * GST_ELEMENT_FACTORY_KLASS_SRC * GST_ELEMENT_FACTORY_KLASS_MUXER * GST_ELEMENT_FACTORY_KLASS_DEMUXER * GST_ELEMENT_FACTORY_KLASS_PARSER * GST_ELEMENT_FACTORY_KLASS_PAYLOADER * GST_ELEMENT_FACTORY_KLASS_DEPAYLOADER * GST_ELEMENT_FACTORY_KLASS_FORMATTER * GST_ELEMENT_FACTORY_KLASS_MEDIA_VIDEO * GST_ELEMENT_FACTORY_KLASS_MEDIA_AUDIO * GST_ELEMENT_FACTORY_KLASS_MEDIA_IMAGE * GST_ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE * GST_ELEMENT_FACTORY_KLASS_MEDIA_METADATA * gst_plugin_feature_list_debug * gst_plugin_feature_rank_compare_func * gst_query_add_buffering_range * gst_query_get_n_buffering_ranges * gst_query_parse_nth_buffering_range * gst_structure_get_date_time * gst_structure_id_take_value * gst_structure_take_value * GST_TYPE_INT64_RANGE * gst_int64_range_get_type * gst_util_fraction_compare * gst_value_get_int64_range_max * gst_value_get_int64_range_min * gst_value_set_int64_range * GST_VALUE_HOLDS_DATE_TIME * gst_adapter_take_list * gst_bit_reader_skip_unchecked * gst_bit_reader_skip_to_byte_unchecked * gst_bit_reader_get_bits_uint16_unchecked * gst_bit_reader_get_bits_uint32_unchecked * gst_bit_reader_get_bits_uint64_unchecked * gst_bit_reader_get_bits_uint8_unchecked * gst_bit_reader_peek_bits_uint16_unchecked * gst_bit_reader_peek_bits_uint32_unchecked * gst_bit_reader_peek_bits_uint64_unchecked * gst_bit_reader_peek_bits_uint8_unchecked * gst_byte_writer_put_int8_unchecked * gst_byte_writer_put_int16_be_unchecked * gst_byte_writer_put_int16_le_unchecked * gst_byte_writer_put_int24_be_unchecked * gst_byte_writer_put_int24_le_unchecked * gst_byte_writer_put_int32_be_unchecked * gst_byte_writer_put_int32_le_unchecked * gst_byte_writer_put_int64_be_unchecked * gst_byte_writer_put_int64_le_unchecked * gst_byte_writer_put_uint8_unchecked * gst_byte_writer_put_uint16_be_unchecked * gst_byte_writer_put_uint16_le_unchecked * gst_byte_writer_put_uint24_be_unchecked * gst_byte_writer_put_uint24_le_unchecked * gst_byte_writer_put_uint32_be_unchecked * gst_byte_writer_put_uint32_le_unchecked * gst_byte_writer_put_uint64_be_unchecked * gst_byte_writer_put_uint64_le_unchecked * gst_byte_writer_put_float32_be_unchecked * gst_byte_writer_put_float32_le_unchecked * gst_byte_writer_put_float64_be_unchecked * gst_byte_writer_put_float64_le_unchecked * gst_byte_writer_put_data_unchecked * gst_byte_writer_fill_unchecked - API deprecations: * GST_FLOW_IS_FATAL * GST_FLOW_IS_SUCCESS ==== Download ==== You can find source releases of gstreamer in the download directory: https://gstreamer.freedesktop.org/src/gstreamer/ The git repository and details how to clone it can be found at http://cgit.freedesktop.org/gstreamer/gstreamer/ ==== Homepage ==== The project's website is https://gstreamer.freedesktop.org/ ==== Support and Bugs ==== We use GNOME's bugzilla for bug reports and feature requests: http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer Please submit patches via bugzilla as well. For help and support, please subscribe to and send questions to the gstreamer-devel mailing list (see below for details). Find us on IRC at #gstreamer. ==== Developers ==== GStreamer is stored in Git, hosted at git.freedesktop.org, and can be cloned from there (see link above). Interested developers of the core library, plugins, and applications should subscribe to the gstreamer-devel list. 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 * Alessandro Decina * Arun Raghavan * Colin Walters * David Hoyt * David Schleef * Edward Hervey * Evan Nemerson * Havard Graff * Jan Schmidt * Jeffrey S. Smith * Jonas Holmberg * Jonathan Matthew * Mark Nauwelaerts * Michael Bunk * Ognyan Tonchev * Olivier Crête * Philippe Normand * Rob Clark * Robert Swain * Sebastian Dröge * Shixin Zeng * Stefan Kost * Thiago Santos * Thijs Vermeir * Tim-Philipp Müller * Trond Andersen * Vincent Penquerc'h * Vladimir Eremeev * Wim Taymans * reynaldo