-- playbin3, playbin and playsink have gained a new "text-offset"
- property to adjust the positioning of the selected subtitle stream
- vis-a-vis the audio and video streams. This uses subtitleoverlay’s
- new "subtitle-ts-offset" property. GstPlayer has gained matching API
- for this, namely gst_player_get_text_video_offset().
-
-- playbin3 buffering improvements: in network playback scenarios there
- may be multiple inputs to decodebin3, and buffering will be done
- before decodebin3 using queue2 or downloadbuffer elements inside
- urisourcebin. Since this is before any parsers or demuxers there may
- not be any bitrate information available for the various streams, so
- it was difficult to configure the buffering there smartly within
- global constraints. This was improved now: The queue2 elements
- inside urisourcebin will now use the new bitrate query to figure out
- a bitrate estimate for the stream if no bitrate was provided by
- upstream, and urisourcebin will use the bitrates of the individual
- queues to distribute the globally-set "buffer-size" budget in bytes
- to the various queues. urisourcebin also gained "low-watermark" and
- "high-watermark" properties which will be proxied to the internal
- queues, as well as a read-only "statistics" property which allows
- querying of the minimum/maximum/average byte and time levels of the
- queues inside the urisourcebin in question.
-
-- splitmuxsink has gained a couple of new features:
-
- - new "async-finalize" mode: This mode is useful for muxers or
- outputs that can take a long time to finalize a file. Instead of
- blocking the whole upstream pipeline while the muxer is doing
- its stuff, we can unlink it and spawn a new muxer + sink
- combination to continue running normally. This requires us to
- receive the muxer and sink (if needed) as factories via the new
- "muxer-factory" and "sink-factory" properties, optionally
- accompanied by their respective properties structures (set via
- the new "muxer-properties" and "sink-properties" properties).
- There are also new "muxer-added" and "sink-added" signals in
- case custom code has to be called for them to configure them.
-
- - "split-at-running-time" action signal: When called by the user,
- this action signal ends the current file (and starts a new one)
- as soon as the given running time is reached. If called multiple
- times, running times are queued up and processed in the order
- they were given.
-
- - "split-after" action signal to finish outputting the current GOP
- to the current file and then start a new file as soon as the GOP
- is finished and a new GOP is opened (unlike the existing
- "split-now" which immediately finishes the current file and
- writes the current GOP into the next newly-started file).
-
- - "reset-muxer" property: when unset, the muxer is reset using
- flush events instead of setting its state to NULL and back. This
- means the muxer can keep state across resets, e.g. mpegtsmux
- will keep the continuity counter continuous across segments as
- required by hlssink2.
-
-- qtdemux gained PIFF track encryption box support in addition to the
- already-existing PIFF sample encryption support, and also allows
- applications to select which encryption system to use via a
- "drm-preferred-decryption-system-id" context in case there are
- multiple options.
-
-- qtmux: the "start-gap-threshold" property determines now whether an
- edit list will be created to account for small gaps or offsets at
- the beginning of a stream in case the start timestamps of tracks
- don’t line up perfectly. Previously the threshold was hard-coded to
- 1% of the (video) frame duration, now it is 0 by default (so edit
- list will be created even for small differences), but fully
- configurable.
-
-- rtpjitterbuffer has improved end-of-stream handling
-
-- rtpmp4vpay will be prefered over rtpmp4gpay for MPEG-4 video in
- autoplugging scenarios now
-
-- rtspsrc now allows applications to send RTSP SET_PARAMETER and
- GET_PARAMETER requests using action signals.
-
-- rtspsrc has a small (100ms) configurable teardown delay by default
- to try and make sure an RTSP TEARDOWN request gets sent out when the
- source element shuts down. This will block the downward PAUSED to
- READY state change for a short time, but can be disabled where it’s
- a problem. Some servers only allow a limited number of concurrent
- clients, so if no proper TEARDOWN is sent new clients may have
- problems connecting to the server for a while.
-
-- souphttpsrc behaves better with low bitrate streams now. Before it
- would increase the read block size too quickly which could lead to
- it not reading any data from the socket for a very long time with
- low bitrate streams that are output live downstream. This could lead
- to servers kicking off the client.
-
-- filesink: do internal buffering to avoid performance regression with
- small writes since we bypass libc buffering by using writev()
- instead of fwrite()
-
-- identity: add "eos-after" property and fix "error-after" property
- when the element is reused
-
-- input-selector: lets context queries pass through, so that
- e.g. upstream OpenGL elements can use contexts and displays
- advertised by downstream elements
-
-- queue2: avoid ping-pong between 0% and 100% buffering messages if
- upstream is pushing buffers larger than one of its limits, plus
- performance optimisations
-
-- opusdec: new "phase-inversion" property to control phase inversion.
- When enabled, this will slightly increase stereo quality, but
- produces a stream that when downmixed to mono will suffer audio
- distortions.
-
-- The x265enc HEVC encoder also exposes a "key-int-max" property to
- configure the maximum allowed GOP size now.
-
-- decklinkvideosink has seen stability improvements for long-running
- pipelines (potential crash due to overflow of leaked clock refcount)
- and clock-slaving improvements when performing flushing seeks
- (causing stalls in the output timeline), pausing and/or buffering.
-
-- srtpdec, srtpenc: add support for MKIs which allow multiple keys to
- be used with a single SRTP stream
-
-- The srt Secure Reliable Transport plugin has integrated server and
- client elements srt{client,server}{src,sink} into one (srtsrc and
- srtsink), since SRT connection mode can be changed by uri
- parameters.
-
-- h264parse and h265parse will handle SEI recovery point messages and
- mark recovery points as keyframes as well (in addition to IDR
- frames)
-
-- webrtcbin: "add-turn-server" action signal to pass multiple ICE
- relays (TURN servers).
-
-- The removesilence element has received various new features and
- properties, such as a "threshold" property, detecting silence only
- after minimum silence time/buffers, a "silent" property to control
- bus message notifications as well as a "squash" property.
-
-- AOMedia AV1 decoder gained support for 10/12bit decoding whilst the
- AV1 encoder supports more image formats and subsamplings now and
- acquired support for rate control and profile related configuration.
-
-- The Fraunhofer fdkaac plugin can now be built against the 2.0.0
- version API and has improved multichannel support
-
-- kmssink now supports unpadded 24-bit RGB and can configure mode
- setting from video info, which enables display of multi-planar
- formats such as I420 or NV12 with modesetting. It has also gained a
- number of new properties: The "restore-crtc" property does what it
- says on the tin and is enabled by default. "plane-properties" and
- "connector-properties" can be used to pass custom properties to the
- DRM.
-
-- waylandsink has a "fullscreen" property now.