mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 16:50:47 +00:00
123 lines
5.9 KiB
Text
123 lines
5.9 KiB
Text
This is GStreamer 1.2.0
|
|
|
|
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
|
|
elements
|
|
• 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
|
|
-UG_DISABLE_ASSERT in CFLAGS
|
|
• 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
|
|
|