blob: 96e2b980d0d1d82a555a6d3cfc75b9bb85c2eb0d [file] [log] [blame]
Sebastian Dröge9cd4b272014-07-19 17:20:34 +02001This is GStreamer Good Plugins 1.4.0
Sebastian Dröge365962f2013-09-24 14:21:08 +02002
Sebastian Dröge1d4404d2014-05-03 18:02:23 +02003Changes since 1.2:
Sebastian Dröge365962f2013-09-24 14:21:08 +02004
5New API:
Sebastian Dröge1d4404d2014-05-03 18:02:23 +02006 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ögeb63560e2014-06-22 18:08:03 +020033 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öge1d4404d2014-05-03 18:02:23 +020037 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ögeb63560e2014-06-22 18:08:03 +020050 GstBufferPool has support for flushing now.
Sebastian Dröge1d4404d2014-05-03 18:02:23 +020051 playbin/playsink has support for application provided audio and video
52 filters.
Sebastian Drögec5c86212014-05-21 13:06:35 +020053 GstDiscoverer has new and simplified API to get details about missing
54 plugins and information to pass to the plugin installer.
Sebastian Dröge1d4404d2014-05-03 18:02:23 +020055 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ögeb63560e2014-06-22 18:08:03 +020062 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öge1d4404d2014-05-03 18:02:23 +020066
Sebastian Dröge365962f2013-09-24 14:21:08 +020067
68Major changes:
Sebastian Dröge1d4404d2014-05-03 18:02:23 +020069 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ögec5c86212014-05-21 13:06:35 +020076 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öge1d4404d2014-05-03 18:02:23 +020084 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öge365962f2013-09-24 14:21:08 +020098
99 Other changes:
Sebastian Dröge9cd4b272014-07-19 17:20:34 +0200100 gst-libav now uses libav 10.2, and gained support for H265/HEVC.
Sebastian Dröge1d4404d2014-05-03 18:02:23 +0200101 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ögeb63560e2014-06-22 18:08:03 +0200109 Major improvements to tsdemux and tsparse, especially time and
110 seeking related.
Sebastian Dröge1d4404d2014-05-03 18:02:23 +0200111 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ögec5c86212014-05-21 13:06:35 +0200118 ∘ 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öge1d4404d2014-05-03 18:02:23 +0200121 videoflip can automatically flip based on the orientation tag.
122 openjpeg supports the OpenJPEG2 API.
Sebastian Drögeb63560e2014-06-22 18:08:03 +0200123 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öge1d4404d2014-05-03 18:02:23 +0200127 gst-rtsp-server supports SRTP and MIKEY now.
Sebastian Drögeb63560e2014-06-22 18:08:03 +0200128 gst-libav encoders are now negotiating any profile/level settings
129 with downstream via caps.
Sebastian Dröge1d4404d2014-05-03 18:02:23 +0200130 Lots of fixes for coverity warnings all over the place.
Sebastian Drögeb63560e2014-06-22 18:08:03 +0200131 Negotiation related performance improvements.
Sebastian Dröge07a3a982014-06-28 11:21:15 +0200132 800+ fixed bug reports, and many other bug fixes and other
Sebastian Dröge1d4404d2014-05-03 18:02:23 +0200133 improvements everywhere that had no bug report.
Sebastian Dröge365962f2013-09-24 14:21:08 +0200134
135Things to look out for:
Sebastian Dröge1d4404d2014-05-03 18:02:23 +0200136 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öge07a3a982014-06-28 11:21:15 +0200140 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.