Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
47 changed files
with
3,869 additions
and
229 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,123 +1,110 @@ | ||
This is GStreamer Base Plugins 1.2.0 | ||
This is GStreamer Base Plugins 1.3.1 | ||
|
||
Changes since 1.0: | ||
Changes since 1.2: | ||
|
||
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. | ||
• 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. | ||
• 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. | ||
• playbin/playsink has support for application provided audio and video | ||
filters. | ||
• 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. | ||
|
||
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 | ||
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. | ||
∘ 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. | ||
|
||
• 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 | ||
∘ gst-libav now uses libav 10, and gained support for H265/HEVC. | ||
∘ 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. | ||
∘ Major improvements to tsdemux, especially time related. | ||
∘ 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. | ||
∘ videoflip can automatically flip based on the orientation tag. | ||
∘ openjpeg supports the OpenJPEG2 API. | ||
∘ gst-rtsp-server supports SRTP and MIKEY now. | ||
∘ Lots of fixes for coverity warnings all over the place. | ||
∘ 400+ 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 | ||
• 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. | ||
|
Oops, something went wrong.