GStreamer
open source multimedia framework
Home
Features
News
Annual Conference
Planet (Blogs)
Download
Applications
Security Center
GitLab
Developers
Documentation
Mailing Lists
Forum
File a Bug
Artwork
@gstreamer on Twitter
@gstreamer on Mastodon
#gstreamer on Matrix

Release notes for GStreamer 0.10.30 "Safety First"

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

  • GLib requirement was bumped to 2.20, automake requirement to 1.10
  • bin: unlock gst_element_get_state() on error, instead of hanging forever if no timeout is given
  • clock: fix refcounting bug in gst_clock_set_master
  • caps: make sure _normalize() is applied on all structures
  • info: add new TRACE log level and move refcounting there from LOG level
  • pad: don't check twice for changed caps per push
  • pad: fix iterator aggregation of all pads in the internal links fallback
  • tagsetter: protect tagsetter operations with a lock
  • value: support short fourccs (esp. serialisation/deserialisation)
  • adapter: fix _try_to_merge_up(); optimize progressive masked scans
  • basesink: implement percentage position and duration queries
  • basesink: fix segment query return value
  • basetransform: add accept_caps vmethod
  • basetransform: re-evaluate proxy_alloc when reconfigured
  • basetransform: assume in_size equals out_size if there's no transform_size/get_unit_size vfunc
  • fdsink, filesink: make sync property work correctly
  • typefind: make sure buffers' metadata is writable before setting caps on them
  • queue2: fix merging of ranges
  • queue2: don't wait for data when EOS
  • queue2: don't ignore failure to open the temporary file location
  • tools: make gst-launch print things correctly to stderr/stdout and make --quiet work correctly
  • introspection: add many more gobject-introspection annotations
  • xml: serialisation/deserialisation to/from XML has been deprecated, since it's always been broken for all but the most trivial pipelines, and will likely never be fixed

Bugs fixed in this release

  • 623586 : gst/tagsetter check fails
  • 463435 : Skip #include < libxml/parser.h > in gstconfig.h.in when not needed
  • 505770 : gst_element_get_state() should unblock if element posts an error
  • 615820 : implement percentage position and duration queries
  • 615941 : [tags] Add GST_TAG_DEVICE_MANUFACTURER and GST_TAG_DEVICE_MODEL
  • 616586 : Use GObject's boxed type for GError
  • 617223 : [tags] Add tags for direction of capture and movement
  • 617625 : Commandline utility wrappers (gst-run) don't work on Windows
  • 618644 : gst_pad_get_caps() Return pad template if parent element is in GST_STATE_NULL
  • 619508 : [tag] Add image orientation tag
  • 619815 : GST_PLUGIN_LOADING_WHITELIST env var for unit tests
  • 619828 : [API] adapter: add masked_scan_uint32_peek
  • 620460 : info: add new TRACE log level and move refcounting there from LOG level
  • 620490 : [basesink] segment query unconditionally returns FALSE
  • 621006 : Deprecate unused gst_object_{get|set}_name_prefix()
  • 621282 : Display of short fourccs is in hex instead of text
  • 621332 : BaseTransform should disable proxy alloc if downstream changes caps
  • 621334 : GstBaseTransform should not require a transform_size function
  • 621505 : Disable memory poisoning by default for releases
  • 621527 : gstcaps: New gst_caps_steal_structure() method
  • 621530 : filesink ignores sync=true
  • 621595 : --quiet doesnt make gst-launch be completely quiet, also messages should not go to stdout
  • 621773 : Add introspection annotations
  • 621867 : gst-launch: rename new --no-play command line option
  • 621896 : [API][taglist] Add gst_tag_list_peek_string_index
  • 622504 : [GstPad] Provide more fine-grained linking methods
  • 622546 : distcheck fails in docs/plugins/
  • 622685 : [GstXml] Deprecate GstXml
  • 622967 : [queue2] Problems with progressive downloading
  • 623301 : gst_caps_normalize : doesn't normalize completely
  • 623589 : Fix races/refcounting bugs with slave clocks
  • 624113 : [tags] wrong behaviour in merge function for strings
  • 622025 : Can't build gstreamer due to Gst-0.10.gir: error: Can't resolve type 'PadIntLinkFunction' for field Gst.Pad.intlinkfunc

API changes

  • API additions
    • gst_caps_steal_structure()
    • gst_clock_id_wait_async_full()
    • gst_element_link_pads_full()
    • GstPadLinkCheck
    • gst_pad_link_check_get_type()
    • gst_pad_link_full()
    • gst_structure_fixate_field_string()
    • GST_TAG_DEVICE_MANUFACTURER
    • GST_TAG_DEVICE_MODEL
    • GST_TAG_IMAGE_ORIENTATION
    • GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION
    • GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION
    • GST_TAG_GEO_LOCATION_MOVEMENT_SPEED
    • gst_tag_list_peek_string_index()
    • GST_TRACE
    • GST_TRACE_OBJECT
    • GST_CAT_TRACE
    • GST_CAT_TRACE_OBJECT
    • GST_LEVEL_TRACE
    • gst_adapter_masked_scan_uint32_peek
    • GstBaseSink::enable-last-buffer
    • gst_base_sink_is_last_buffer_enabled()
    • gst_base_sink_set_last_buffer_enabled()
    • GstBaseTransform::accept_caps()
  • API deprecations
    • gst_object_get_name_prefix()
    • gst_object_set_name_prefix()
    • gst_caps_load_thyself()
    • gst_caps_save_thyself()
    • gst_class_signal_emit_by_name()
    • gst_object_save_thyself()
    • gst_object_restore_thyself()
    • gst_pad_load_and_link()
    • gst_xml_get_element()
    • gst_xml_get_topelements()
    • gst_xml_get_type()
    • gst_xml_make_element()
    • gst_xml_new()
    • gst_xml_parse_doc()
    • gst_xml_parse_file()
    • gst_xml_parse_memory()
    • gst_xml_write()
    • gst_xml_write_file()

Download

You can find source releases of gstreamer in the gstreamer download directory.

The git repository and details how to clone it can be found at git.freedesktop.org .

Homepage

The project's website is https://gstreamer.freedesktop.org.

Support and Bugs

We use GNOME's bugzilla for bug reports and feature requests.

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

Git is hosted on git.freedesktop.org. You can browse the gstreamer repository.

All code is in Git and can be checked out from there.

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
  • Alexander Saprykin
  • Benjamin Gaignard
  • Benjamin Otte
  • David Schleef
  • Eduardo Dobay
  • Edward Hervey
  • Johan Dahlin
  • Mark Nauwelaerts
  • Martin Bisson
  • Olivier Crête
  • Philippe Normand
  • Sebastian Dröge
  • Stefan Kost
  • Thiago Santos
  • Tim-Philipp Müller
  • Tristan Matthews
  • Wim Taymans
  • Zaheer Abbas Merali
  • Руслан Ижбулатов

Report a problem on this page.