| This is GStreamer Bad Plugins 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 |
| |