Sebastian Dröge | 9cd4b27 | 2014-07-19 17:20:34 +0200 | [diff] [blame] | 1 | This is GStreamer Good Plugins 1.4.0 |
Sebastian Dröge | 365962f | 2013-09-24 14:21:08 +0200 | [diff] [blame] | 2 | |
Sebastian Dröge | 1d4404d | 2014-05-03 18:02:23 +0200 | [diff] [blame] | 3 | Changes since 1.2: |
Sebastian Dröge | 365962f | 2013-09-24 14:21:08 +0200 | [diff] [blame] | 4 | |
| 5 | New API: |
Sebastian Dröge | 1d4404d | 2014-05-03 18:02:23 +0200 | [diff] [blame] | 6 | • GstMessageType has GST_MESSAGE_EXTENDED added. All types before |
| 7 | that can be used together as a flags type as before, but from |
| 8 | that message onwards the types are just counted incrementally. |
| 9 | This was necessary to be able to add more message types. |
| 10 | In 2.0 GstMessageType will just become an enum and not a flags |
| 11 | type anymore. |
| 12 | • GstDeviceMonitor for device probing, e.g. to list all available |
| 13 | audio or video capture devices. This is the replacement for |
| 14 | GstPropertyProbe from 0.10. |
| 15 | • Events accumulate the running-time offset now when travelling |
| 16 | through pads, as set by the gst_pad_set_offset() function. This |
| 17 | allows to compensate for this in the QOS event for example. |
| 18 | • GstBuffer has a new flag "tag-memory" that is set automatically |
| 19 | when memory is added or removed to a buffer. This allows buffer |
| 20 | pools to detect if they can recycle a buffer or need to reset |
| 21 | it first. |
| 22 | • GstToc has new API to mark GstTocEntries as loops. |
| 23 | • A not-authorized resource error has been defined to notify |
| 24 | applications that accessing the resource has failed because |
| 25 | of missing authorization and to distinguish this case from others. |
| 26 | This change is actually already in 1.2.4. |
| 27 | • GstPad has a new flag "accept-intersect", that will let the default |
| 28 | ACCEPT_CAPS query handler do an intersection instead of subset check. |
| 29 | This is interesting for parser elements that can handle incomplete |
| 30 | caps. |
| 31 | • GstCollectPads has support for flushing and a default handler for |
| 32 | SEEK events now. |
Sebastian Dröge | b63560e | 2014-06-22 18:08:03 +0200 | [diff] [blame] | 33 | • New GstFlowAggregator helper object that simplifies handling of |
| 34 | flow returns in elements with multiple source pads. Additionally |
| 35 | GstPad now always stores the last flow return and provides an |
| 36 | API to retrieve it. |
Sebastian Dröge | 1d4404d | 2014-05-03 18:02:23 +0200 | [diff] [blame] | 37 | • GstSegment has new API to offset the running time by a specific |
| 38 | value and this is used in GstPad to allow positive and negative |
| 39 | offsets in gst_pad_set_offset() in all situations. |
| 40 | • Support for h265/HEVC and VP8 has been added to the codec utils and codec |
| 41 | parsers library, and was integrated into various elements. |
| 42 | • API for adjusting the TLS validation of RTSP connection has been added. |
| 43 | • The RTSP and SDP library has MIKEY (RFC 3830) support now, and |
| 44 | there is API to distinguish between the different RTSP profiles. |
| 45 | • API to access RTP time information and statistics. |
| 46 | • Support for auxiliary streams was added to rtpbin. |
| 47 | • Support for tiled, raw video formats has been added. |
| 48 | • GstVideoDecoder and GstAudioDecoder have API to help aggregating tag |
| 49 | events and merge custom tags into them consistently. |
Sebastian Dröge | b63560e | 2014-06-22 18:08:03 +0200 | [diff] [blame] | 50 | • GstBufferPool has support for flushing now. |
Sebastian Dröge | 1d4404d | 2014-05-03 18:02:23 +0200 | [diff] [blame] | 51 | • playbin/playsink has support for application provided audio and video |
| 52 | filters. |
Sebastian Dröge | c5c8621 | 2014-05-21 13:06:35 +0200 | [diff] [blame] | 53 | • GstDiscoverer has new and simplified API to get details about missing |
| 54 | plugins and information to pass to the plugin installer. |
Sebastian Dröge | 1d4404d | 2014-05-03 18:02:23 +0200 | [diff] [blame] | 55 | • The GL library was merged from gst-plugins-gl to gst-plugins-bad, |
| 56 | providing a generic infrastructure for handling GL inside GStreamer |
| 57 | pipelines and a plugin with some elements using these, especially |
| 58 | a video sink. Supported platforms currently are Android, Cocoa (OS X), |
| 59 | DispManX (Raspberry Pi), EAGL (iOS), WGL (Windows) and generic X11, |
| 60 | Wayland and EGL platforms. |
| 61 | This replaces eglglessink and also is supposed to replace osxvideosink. |
Sebastian Dröge | b63560e | 2014-06-22 18:08:03 +0200 | [diff] [blame] | 62 | • New GstAggregator base class in gst-plugins-bad. This is supposed to |
| 63 | replace GstCollectPads in the future and fix long-known shortcomings |
| 64 | in its API. Together with the base class some elements are provided |
| 65 | already, like a videomixer (compositor). |
Sebastian Dröge | 1d4404d | 2014-05-03 18:02:23 +0200 | [diff] [blame] | 66 | |
Sebastian Dröge | 365962f | 2013-09-24 14:21:08 +0200 | [diff] [blame] | 67 | |
| 68 | Major changes: |
Sebastian Dröge | 1d4404d | 2014-05-03 18:02:23 +0200 | [diff] [blame] | 69 | • New plugins and elements: |
| 70 | ∘ v4l2videodec element for accessing hardware codecs on |
| 71 | platforms that make them accessible via V4L2, e.g. |
| 72 | Samsung Exynos. This comes together with major refactoring |
| 73 | of the existing V4L2 elements and the corresponding |
| 74 | infrastructure. |
| 75 | The v4l2videodec element replaces the mfcdec element. |
Sebastian Dröge | c5c8621 | 2014-05-21 13:06:35 +0200 | [diff] [blame] | 76 | ∘ New downloadbuffer element that replaces the download |
| 77 | buffering feature of queue2. Compared to queue2's code |
| 78 | it is much simpler and only for this single use case. |
| 79 | A noteworthy new feature is that it's downloading gaps |
| 80 | in the already downloaded stream parts when nothing else |
| 81 | is to be downloaded. |
| 82 | This is now used by playbin when download buffering is |
| 83 | enabled. |
Sebastian Dröge | 1d4404d | 2014-05-03 18:02:23 +0200 | [diff] [blame] | 84 | ∘ rtpstreampay and rtpstreamdepay elements for transmitting |
| 85 | RTP packets over a stream API (e.g. TCP) according to |
| 86 | RFC 4571. |
| 87 | ∘ rtprtx elements for standard compliant implementation of |
| 88 | retransmissions, integrated into the rtpmanager plugin. |
| 89 | ∘ audiomixer element that mixes multiple audio streams together |
| 90 | into a single one while keeping synchronization. This is |
| 91 | planned to become the replacement of the adder element. |
| 92 | ∘ OpenNI2 plugin for 3D cameras like the Kinect camera. |
| 93 | ∘ OpenEXR plugin for decoding high-dynamic-range EXR images. |
| 94 | ∘ curlsshsink and curlsftpsink to write files via SSH/SFTP. |
| 95 | ∘ videosignal, ivfparse and sndfile plugins ported from 0.10. |
| 96 | ∘ avfvideosrc, vtdec and other elements were ported from 0.10 and |
| 97 | are available on OS X and iOS now. |
Sebastian Dröge | 365962f | 2013-09-24 14:21:08 +0200 | [diff] [blame] | 98 | |
| 99 | • Other changes: |
Sebastian Dröge | 9cd4b27 | 2014-07-19 17:20:34 +0200 | [diff] [blame] | 100 | ∘ gst-libav now uses libav 10.2, and gained support for H265/HEVC. |
Sebastian Dröge | 1d4404d | 2014-05-03 18:02:23 +0200 | [diff] [blame] | 101 | ∘ Support for hardware codecs and special memory types has been |
| 102 | improved with bugfixes and feature additions in various plugins |
| 103 | and base classes. |
| 104 | ∘ Various bugfixes and improvements to buffering in queue2 and |
| 105 | multiqueue elements. |
| 106 | ∘ dvbsrc supports more delivery mechanisms and other features |
| 107 | now, including DVB S2 and T2 support. |
| 108 | ∘ The MPEGTS library has support for many more descriptors. |
Sebastian Dröge | b63560e | 2014-06-22 18:08:03 +0200 | [diff] [blame] | 109 | ∘ Major improvements to tsdemux and tsparse, especially time and |
| 110 | seeking related. |
Sebastian Dröge | 1d4404d | 2014-05-03 18:02:23 +0200 | [diff] [blame] | 111 | ∘ souphttpsrc now has support for keep-alive connections, |
| 112 | compression, configurable number of retries and configuration |
| 113 | for SSL certificate validation. |
| 114 | ∘ hlsdemux has undergone major refactoring and works more |
| 115 | reliable now and supports more HLS features like trick modes. |
| 116 | Also fragments are pushed downstream while they're downloaded |
| 117 | now instead of waiting for each fragment to finish. |
Sebastian Dröge | c5c8621 | 2014-05-21 13:06:35 +0200 | [diff] [blame] | 118 | ∘ dashdemux and mssdemux are now also pushing fragments downstream |
| 119 | while they're downloaded instead of waiting for each fragment to |
| 120 | finish. |
Sebastian Dröge | 1d4404d | 2014-05-03 18:02:23 +0200 | [diff] [blame] | 121 | ∘ videoflip can automatically flip based on the orientation tag. |
| 122 | ∘ openjpeg supports the OpenJPEG2 API. |
Sebastian Dröge | b63560e | 2014-06-22 18:08:03 +0200 | [diff] [blame] | 123 | ∘ waylandsink was refactored and should be more useful now. It also |
| 124 | includes a small library which most likely is going to be removed |
| 125 | in the future and will result in extensions to the GstVideoOverlay |
| 126 | interface. |
Sebastian Dröge | 1d4404d | 2014-05-03 18:02:23 +0200 | [diff] [blame] | 127 | ∘ gst-rtsp-server supports SRTP and MIKEY now. |
Sebastian Dröge | b63560e | 2014-06-22 18:08:03 +0200 | [diff] [blame] | 128 | ∘ gst-libav encoders are now negotiating any profile/level settings |
| 129 | with downstream via caps. |
Sebastian Dröge | 1d4404d | 2014-05-03 18:02:23 +0200 | [diff] [blame] | 130 | ∘ Lots of fixes for coverity warnings all over the place. |
Sebastian Dröge | b63560e | 2014-06-22 18:08:03 +0200 | [diff] [blame] | 131 | ∘ Negotiation related performance improvements. |
Sebastian Dröge | 07a3a98 | 2014-06-28 11:21:15 +0200 | [diff] [blame] | 132 | ∘ 800+ fixed bug reports, and many other bug fixes and other |
Sebastian Dröge | 1d4404d | 2014-05-03 18:02:23 +0200 | [diff] [blame] | 133 | improvements everywhere that had no bug report. |
Sebastian Dröge | 365962f | 2013-09-24 14:21:08 +0200 | [diff] [blame] | 134 | |
| 135 | Things to look out for: |
Sebastian Dröge | 1d4404d | 2014-05-03 18:02:23 +0200 | [diff] [blame] | 136 | • The eglglessink element was removed and replaced by the glimagesink |
| 137 | element. |
| 138 | • The mfcdec element was removed and replaced by v4l2videodec. |
| 139 | • osxvideosink is only available in OS X 10.6 or newer. |
Sebastian Dröge | 07a3a98 | 2014-06-28 11:21:15 +0200 | [diff] [blame] | 140 | • On Android the namespace of the automatically generated Java class |
| 141 | for initialization of GStreamer has changed from com.gstreamer to |
| 142 | org.freedesktop.gstreamer to prevent namespace pollution. |
| 143 | • On iOS you have to update your gst_ios_init.h and gst_ios_init.m in |
| 144 | your projects from the one included in the binaries if you used the |
| 145 | GnuTLS GIO module before. The loading mechanism has slightly changed. |