mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-14 13:21:28 +00:00
145 lines
7.7 KiB
Text
145 lines
7.7 KiB
Text
This is GStreamer RTSP Server 1.4.0
|
|
|
|
Changes since 1.2:
|
|
|
|
New API:
|
|
• 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.
|
|
• 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.
|
|
• 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.
|
|
• GstBufferPool has support for flushing now.
|
|
• playbin/playsink has support for application provided audio and video
|
|
filters.
|
|
• GstDiscoverer has new and simplified API to get details about missing
|
|
plugins and information to pass to the plugin installer.
|
|
• 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.
|
|
• 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).
|
|
|
|
|
|
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.
|
|
∘ 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.
|
|
∘ 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 10.2, 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 and tsparse, especially time and
|
|
seeking 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.
|
|
∘ dashdemux and mssdemux are now also pushing fragments downstream
|
|
while they're downloaded instead of waiting for each fragment to
|
|
finish.
|
|
∘ videoflip can automatically flip based on the orientation tag.
|
|
∘ openjpeg supports the OpenJPEG2 API.
|
|
∘ 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.
|
|
∘ gst-rtsp-server supports SRTP and MIKEY now.
|
|
∘ gst-libav encoders are now negotiating any profile/level settings
|
|
with downstream via caps.
|
|
∘ Lots of fixes for coverity warnings all over the place.
|
|
∘ Negotiation related performance improvements.
|
|
∘ 800+ fixed bug reports, and many other bug fixes and other
|
|
improvements everywhere that had no bug report.
|
|
|
|
Things to look out for:
|
|
• 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.
|
|
• On Android the namespace of the automatically generated Java class
|
|
for initialization of GStreamer has changed from com.gstreamer to
|
|
org.freedesktop.gstreamer to prevent namespace pollution.
|
|
• On iOS you have to update your gst_ios_init.h and gst_ios_init.m in
|
|
your projects from the one included in the binaries if you used the
|
|
GnuTLS GIO module before. The loading mechanism has slightly changed.
|