NEWS 7.33 KB
Newer Older
Sebastian Dröge's avatar
Sebastian Dröge committed
1
This is GStreamer Good Plugins 1.3.3
Sebastian Dröge's avatar
Sebastian Dröge committed
2

Sebastian Dröge's avatar
Sebastian Dröge committed
3
Changes since 1.2:
Sebastian Dröge's avatar
Sebastian Dröge committed
4 5

New API:
Sebastian Dröge's avatar
Sebastian Dröge committed
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
 • GstMessageType has GST_MESSAGE_EXTENDED added. All types before
   that can be used together as a flags type as before, but from
   that message onwards the types are just counted incrementally.
   This was necessary to be able to add more message types.
   In 2.0 GstMessageType will just become an enum and not a flags
   type anymore.
 • GstDeviceMonitor for device probing, e.g. to list all available
   audio or video capture devices. This is the replacement for
   GstPropertyProbe from 0.10.
 • Events accumulate the running-time offset now when travelling
   through pads, as set by the gst_pad_set_offset() function. This
   allows to compensate for this in the QOS event for example.
 • GstBuffer has a new flag "tag-memory" that is set automatically
   when memory is added or removed to a buffer. This allows buffer
   pools to detect if they can recycle a buffer or need to reset
   it first.
 • GstToc has new API to mark GstTocEntries as loops.
 • A not-authorized resource error has been defined to notify
   applications that accessing the resource has failed because
   of missing authorization and to distinguish this case from others.
   This change is actually already in 1.2.4.
 • GstPad has a new flag "accept-intersect", that will let the default
   ACCEPT_CAPS query handler do an intersection instead of subset check.
   This is interesting for parser elements that can handle incomplete
   caps.
 • GstCollectPads has support for flushing and a default handler for
   SEEK events now.
Sebastian Dröge's avatar
Sebastian Dröge committed
33 34 35 36
 • New GstFlowAggregator helper object that simplifies handling of
   flow returns in elements with multiple source pads. Additionally
   GstPad now always stores the last flow return and provides an
   API to retrieve it.
Sebastian Dröge's avatar
Sebastian Dröge committed
37 38 39 40 41 42 43 44 45 46 47 48 49
 • GstSegment has new API to offset the running time by a specific
   value and this is used in GstPad to allow positive and negative
   offsets in gst_pad_set_offset() in all situations.
 • Support for h265/HEVC and VP8 has been added to the codec utils and codec
   parsers library, and was integrated into various elements.
 • API for adjusting the TLS validation of RTSP connection has been added.
 • The RTSP and SDP library has MIKEY (RFC 3830) support now, and
   there is API to distinguish between the different RTSP profiles.
 • API to access RTP time information and statistics.
 • Support for auxiliary streams was added to rtpbin.
 • Support for tiled, raw video formats has been added.
 • GstVideoDecoder and GstAudioDecoder have API to help aggregating tag
   events and merge custom tags into them consistently.
Sebastian Dröge's avatar
Sebastian Dröge committed
50
 • GstBufferPool has support for flushing now.
Sebastian Dröge's avatar
Sebastian Dröge committed
51 52
 • playbin/playsink has support for application provided audio and video
   filters.
Sebastian Dröge's avatar
Sebastian Dröge committed
53 54
 • GstDiscoverer has new and simplified API to get details about missing
   plugins and information to pass to the plugin installer.
Sebastian Dröge's avatar
Sebastian Dröge committed
55 56 57 58 59 60 61
 • The GL library was merged from gst-plugins-gl to gst-plugins-bad,
   providing a generic infrastructure for handling GL inside GStreamer
   pipelines and a plugin with some elements using these, especially
   a video sink. Supported platforms currently are Android, Cocoa (OS X),
   DispManX (Raspberry Pi), EAGL (iOS), WGL (Windows) and generic X11,
   Wayland and EGL platforms.
   This replaces eglglessink and also is supposed to replace osxvideosink.
Sebastian Dröge's avatar
Sebastian Dröge committed
62 63 64 65
 • New GstAggregator base class in gst-plugins-bad. This is supposed to
   replace GstCollectPads in the future and fix long-known shortcomings
   in its API. Together with the base class some elements are provided
   already, like a videomixer (compositor).
Sebastian Dröge's avatar
Sebastian Dröge committed
66 67


Sebastian Dröge's avatar
Sebastian Dröge committed
68 69 70 71 72 73 74 75
Major changes:
 • New plugins and elements:
   ∘ v4l2videodec element for accessing hardware codecs on
     platforms that make them accessible via V4L2, e.g.
     Samsung Exynos. This comes together with major refactoring
     of the existing V4L2 elements and the corresponding
     infrastructure.
     The v4l2videodec element replaces the mfcdec element.
Sebastian Dröge's avatar
Sebastian Dröge committed
76 77 78 79 80 81 82 83
   ∘ New downloadbuffer element that replaces the download
     buffering feature of queue2. Compared to queue2's code
     it is much simpler and only for this single use case.
     A noteworthy new feature is that it's downloading gaps
     in the already downloaded stream parts when nothing else
     is to be downloaded.
     This is now used by playbin when download buffering is
     enabled.
Sebastian Dröge's avatar
Sebastian Dröge committed
84 85 86 87 88 89 90 91 92 93 94 95 96 97
   ∘ rtpstreampay and rtpstreamdepay elements for transmitting
     RTP packets over a stream API (e.g. TCP) according to
     RFC 4571.
   ∘ rtprtx elements for standard compliant implementation of
     retransmissions, integrated into the rtpmanager plugin.
   ∘ audiomixer element that mixes multiple audio streams together
     into a single one while keeping synchronization. This is
     planned to become the replacement of the adder element.
   ∘ OpenNI2 plugin for 3D cameras like the Kinect camera.
   ∘ OpenEXR plugin for decoding high-dynamic-range EXR images.
   ∘ curlsshsink and curlsftpsink to write files via SSH/SFTP.
   ∘ videosignal, ivfparse and sndfile plugins ported from 0.10.
   ∘ avfvideosrc, vtdec and other elements were ported from 0.10 and
     are available on OS X and iOS now.
Sebastian Dröge's avatar
Sebastian Dröge committed
98 99

 • Other changes:
Sebastian Dröge's avatar
Sebastian Dröge committed
100
   ∘ gst-libav now uses libav 10.1, and gained support for H265/HEVC.
Sebastian Dröge's avatar
Sebastian Dröge committed
101 102 103 104 105 106 107 108
   ∘ Support for hardware codecs and special memory types has been
     improved with bugfixes and feature additions in various plugins
     and base classes.
   ∘ Various bugfixes and improvements to buffering in queue2 and
     multiqueue elements.
   ∘ dvbsrc supports more delivery mechanisms and other features
     now, including DVB S2 and T2 support.
   ∘ The MPEGTS library has support for many more descriptors.
Sebastian Dröge's avatar
Sebastian Dröge committed
109 110
   ∘ Major improvements to tsdemux and tsparse, especially time and
     seeking related.
Sebastian Dröge's avatar
Sebastian Dröge committed
111 112 113 114 115 116 117
   ∘ souphttpsrc now has support for keep-alive connections,
     compression, configurable number of retries and configuration
     for SSL certificate validation.
   ∘ hlsdemux has undergone major refactoring and works more
     reliable now and supports more HLS features like trick modes.
     Also fragments are pushed downstream while they're downloaded
     now instead of waiting for each fragment to finish.
Sebastian Dröge's avatar
Sebastian Dröge committed
118 119 120
   ∘ dashdemux and mssdemux are now also pushing fragments downstream
     while they're downloaded instead of waiting for each fragment to
     finish.
Sebastian Dröge's avatar
Sebastian Dröge committed
121 122
   ∘ videoflip can automatically flip based on the orientation tag.
   ∘ openjpeg supports the OpenJPEG2 API.
Sebastian Dröge's avatar
Sebastian Dröge committed
123 124 125 126
   ∘ waylandsink was refactored and should be more useful now. It also
     includes a small library which most likely is going to be removed
     in the future and will result in extensions to the GstVideoOverlay
     interface.
Sebastian Dröge's avatar
Sebastian Dröge committed
127
   ∘ gst-rtsp-server supports SRTP and MIKEY now.
Sebastian Dröge's avatar
Sebastian Dröge committed
128 129
   ∘ gst-libav encoders are now negotiating any profile/level settings
     with downstream via caps.
Sebastian Dröge's avatar
Sebastian Dröge committed
130
   ∘ Lots of fixes for coverity warnings all over the place.
Sebastian Dröge's avatar
Sebastian Dröge committed
131 132
   ∘ Negotiation related performance improvements.
   ∘ 500+ fixed bug reports, and many other bug fixes and other
Sebastian Dröge's avatar
Sebastian Dröge committed
133
     improvements everywhere that had no bug report.
Sebastian Dröge's avatar
Sebastian Dröge committed
134 135

Things to look out for:
Sebastian Dröge's avatar
Sebastian Dröge committed
136 137 138 139
 • The eglglessink element was removed and replaced by the glimagesink
   element.
 • The mfcdec element was removed and replaced by v4l2videodec.
 • osxvideosink is only available in OS X 10.6 or newer.
Sebastian Dröge's avatar
Sebastian Dröge committed
140 141 142
 • The GstDeviceMonitor API will likely change slightly before the
   1.4.0 release.