RELEASE: GStreamer Core and Plugins 1.2.0

Sebastian Dröge slomo at
Tue Sep 24 05:53:51 PDT 2013

The GStreamer team is pleased to announce the first release of the stable
1.2 release series. The 1.2 release series is adding new features on top
of the 1.0 series and is part of the API and ABI-stable 1.x release
series of the GStreamer multimedia framework that contains new features.

Binaries for Windows, Mac OS X and Android will be provided in the next
days and will be announced separately.

The 1.x series is a stable series targeted at end users. It is not API
or ABI compatible with the 0.10.x series. It can, however, be installed
in parallel with the 0.10.x series and will not affect an existing
0.10.x installation.

The stable 1.2.x release series is API and ABI compatible with 1.0.x and
any other 1.x release series in the future. Compared to 1.0.x it
contains some new features and more intrusive changes that were
considered too risky as a bugfix. Distributions are encouraged to
upgrade to 1.2.x now. Soon after this release the new 1.3.x development
release series will be opened, which will later lead to the next stable
1.4.x release series.

The versioning scheme that is used in general is that 1.x.y is API and
ABI backwards compatible with previous 1.x.y releases. If x is an even
number it is a stable release series and all releases in this series
will only contain important bugfixes, e.g. the 1.0 series with 1.0.7. If
x is odd it is a development release series that will lead to the next
stable release series 1.x+1 and contains new features and bigger
changes. During the development release series, new API can still

Changes since 1.0:

New API:
 • GstContext negotiation / sharing / announcing for sharing a
   generic context between elements, e.g. a display handle
 • GL texture upload conversion meta for allowing different
   buffer types to be converted to an OpenGL texture
 • GstCapsFeatures as extension to GstCaps for allowing the
   negotiation of specific memory or meta requirements between
 • GstMemory flags for contiguous and non-mappable memory
 • The stream-start event has optional flags now, e.g. for signalling
   sparse streams
 • The stream-start even has an optional group-id field now to signal
   all streams that should be played together
 • Allocators library in gst-plugins-base, currently only with generic
   dmabuf memory support
 • insertbin library for easier handling of dynamically linked
   pipelines (in -bad for now)
 • EGL helper library (in -bad for now)
 • MPEG-TS data structure library (in -bad for now)
 • New GstVideoRegionOfInterestMeta to describe a region of interest on
   video frames.
 • GstVideoDecoder/Encoder has new ::flush() vfunc to replace the
   ill-defined ::reset() vfunc.
 • The URI query allows to query the redirected URI now.

Major changes:
 • New tool: gst-play-1.0 in gst-plugins-base for basic playback
   testing on the command line.
 • New plugins:
   ∘ mssdemux for Microsoft Smooth Streaming
   ∘ dashdemux for DASH adaptive streaming protocol
   ∘ bluez for interaction with Bluetooth devices
   ∘ openjpeg for JPEG2000 decoding and encoding
   ∘ daala for experimental Daala decoding and encoding
   ∘ vpx plugin has experimental VP9 decoding and encoding support
   ∘ webp plugin for WebP decoding (encoding to be added later)
   ∘ Various others: yadif, srtp, sbc, fluidsynth, midiparse,
     mfc, ivtv, accuraterip and audiofxbad

 • Moved plugins:
   ∘ dtmf, vp8rtp, scaletempo and rtpmux plugins are in
     gst-plugins-good now

 • Video:
   ∘ Fix handling of interlaced video in converters such as videoscale
     and videoconvert (e.g. scale both fields independently)
   ∘ videoconvert will try harder to minimise quality losses when
     conversion is necessary
   ∘ The experimental GstSurfaceConverter, GstSurfaceMeta and
     GstVideoContext APIs from the (confusingly-named) 
     libgstbasevideo-1.0 library in gst-plugins-bad have now been
     removed and been replaced by new APIs in GStreamer Core and
     gst-plugins-base (see above). Since that was all that was left in
     this library, the entire experimental libgstbasevideo-1.0 library
     has been removed from gst-plugins-bad
   ∘ Chroma subsampling and chroma siting conversion is better handled
     in videoconvert and the support for interlaced video was improved.
   ∘ New pinwheel and spoke patterns in videotestsrc
   ∘ videomixer can now accept different video formats on its sinkpads
     and converts to a common format during mixing

 • Audio:
   ∘ audioconvert will try harder to minimise quality losses when
     conversion is necessary
   ∘ adder now allows muting/unmuting of its input streams, and also
     per-input stream volume 
   ∘ pulseaudio elements can switch between devices during playback now
   ∘ aacparse can convert between ADTS←→RAW

 • Platform specific changes:
   ∘ Caps, events, etc. are now printed in the GStreamer debug logs
     with their content instead of just the pointer address even on
     non-glibc platforms (e.g. Windows, OSX, Android).
   ∘ Network elements (UDP/TCP) now work better with platforms,
     where IPv6 sockets can't handle IPv4 (e.g. Windows)
   ∘ Linux/BSD: v4l2 had many improvements and cleanups

 • Other changes:
   ∘ gst-libav now uses libav 9
   ∘ Static linking of plugins is supported now (also in 1.0.7)
   ∘ rtspsrc: add support for NetClientClock: when the server suggests a
     GstNetTimeProvider in the SDP, set up a GstNetClientClock that
     slaves to the remote clock and suggest this clock in provide_clock.
     Simplifies synchronized playback of a resource from an RTSP server.
     gst-rtsp-server now supports adding this to the SDP and can provide
     a network clock
   ∘ RTP retransmission / NACK support and big RTP jitterbuffer improvements
   ∘ SRTP and DTLS support
   ∘ Changes to many elements and core to use the correct sticky event
     order and also not lose any important sticky events during flushing
   ∘ >1000 fixed bug reports, and many other bug fixes and other
     improvements everywhere that had no bug report

Things to look out for:
 • Single header includes for all libraries, e.g. #include
   <gst/video/video.h> - this was needed for some bindings.
 • Stricter (correct) caps subset checking in some cases where this was
   not correct before. Caps will now always fail to be a compatible
   subset of another set of caps if the subset caps are missing some
   fields that the superset caps have. This might lead to not-negotiated
   errors if caps are incomplete now. However, it also prevents possible
   data corruption caused by piping data formatted in an
   incompatible/unexpected way into some elements. Check your h264 caps
   for stream-format and alignment fields and AAC caps for the
   stream-format field. This change will also be included in the next
   stable 1.0.8 release.
 • Stricter checking for missing events and correct sticky event order
   (stream-start, caps, segment) in some places; this is not enabled in
   stable releases by default, but you may get warnings when using git
   builds, development releases or when compiling with
 • x264enc now outputs data in byte-stream by default if downstream has
   ANY caps (e.g. appsink without caps set, filesink, udpsink,
   tcpserversink etc.)
 • The MPEG TS demuxer posts messages contain the PMT, PAT, etc. in a
   different format now. This new format uses the data structures from
   the new MPEGTS library
 • The GstContext API has changed between 1.1.4 and 1.1.90

Release tarballs can be downloaded directly from:
94af5274299f845adf41cc504e0209b269acab7721293f49850fea27b4099463  gstreamer-1.2.0.tar.xz
8656e20bf4b675e5696fb4af193793351926d428ca02826c5667a6384729a45d  gst-plugins-base-1.2.0.tar.xz
2256a6b2744ea18d8810642cf9061a2f12f4b7eba87d3fbc98004262b4f0fdfa  gst-plugins-good-1.2.0.tar.xz
a12fac6c106a7e4ae8bb2c7da508688d7db532b818319df2202f497cbd930afa  gst-plugins-bad-1.2.0.tar.xz
e4760af4b12bf97ba0a8001cfe733d9d52160a0ad81f6c6f0d0d3a9e798626de  gst-plugins-ugly-1.2.0.tar.xz
48721eb318ffffdd134edea754d0b65d76b08c8209a8d2c8a42bca1f799f9099  gst-libav-1.2.0.tar.xz

As always, please let us know of any issues you run into by filing a bug
in Bugzilla:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
URL: <>

More information about the gstreamer-devel mailing list