Blame NEWS

Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
GSTREAMER 1.16 RELEASE NOTES
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
GStreamer 1.16.0 was originally released on 19 April 2019.
Packit Service 4387a0
Packit Service 4387a0
The latest bug-fix release in the 1.16 series is 1.16.1 and was released
Packit Service 4387a0
on 23 September 2019.
Packit Service 4387a0
Packit Service 4387a0
See https://gstreamer.freedesktop.org/releases/1.16/ for the latest
Packit Service 4387a0
version of this document.
Packit Service 4387a0
Packit Service 4387a0
_Last updated: Sunday 22 September 2019, 21:00 UTC (log)_
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
Introduction
Packit Service 4387a0
Packit Service 4387a0
The GStreamer team is proud to announce a new major feature release in
Packit Service 4387a0
the stable 1.x API series of your favourite cross-platform multimedia
Packit Service 4387a0
framework!
Packit Service 4387a0
Packit Service 4387a0
As always, this release is again packed with many new features, bug
Packit Service 4387a0
fixes and other improvements.
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
Highlights
Packit Service 4387a0
Packit Service 4387a0
-   GStreamer WebRTC stack gained support for data channels for
Packit Service 4387a0
    peer-to-peer communication based on SCTP, BUNDLE support, as well as
Packit Service 4387a0
    support for multiple TURN servers.
Packit Service 4387a0
Packit Service 4387a0
-   AV1 video codec support for Matroska and QuickTime/MP4 containers
Packit Service 4387a0
    and more configuration options and supported input formats for the
Packit Service 4387a0
    AOMedia AV1 encoder
Packit Service 4387a0
Packit Service 4387a0
-   Support for Closed Captions and other Ancillary Data in video
Packit Service 4387a0
Packit Service 4387a0
-   Support for planar (non-interleaved) raw audio
Packit Service 4387a0
Packit Service 4387a0
-   GstVideoAggregator, compositor and OpenGL mixer elements are now in
Packit Service 4387a0
    -base
Packit Service 4387a0
Packit Service 4387a0
-   New alternate fields interlace mode where each buffer carries a
Packit Service 4387a0
    single field
Packit Service 4387a0
Packit Service 4387a0
-   WebM and Matroska ContentEncryption support in the Matroska demuxer
Packit Service 4387a0
Packit Service 4387a0
-   new WebKit WPE-based web browser source element
Packit Service 4387a0
Packit Service 4387a0
-   Video4Linux: HEVC encoding and decoding, JPEG encoding, and improved
Packit Service 4387a0
    dmabuf import/export
Packit Service 4387a0
Packit Service 4387a0
-   Hardware-accelerated Nvidia video decoder gained support for VP8/VP9
Packit Service 4387a0
    decoding, whilst the encoder gained support for H.265/HEVC encoding.
Packit Service 4387a0
Packit Service 4387a0
-   Many improvements to the Intel Media SDK based hardware-accelerated
Packit Service 4387a0
    video decoder and encoder plugin (msdk): dmabuf import/export for
Packit Service 4387a0
    zero-copy integration with other components; VP9 decoding; 10-bit
Packit Service 4387a0
    HEVC encoding; video post-processing (vpp) support including
Packit Service 4387a0
    deinterlacing; and the video decoder now handles dynamic resolution
Packit Service 4387a0
    changes.
Packit Service 4387a0
Packit Service 4387a0
-   The ASS/SSA subtitle overlay renderer can now handle multiple
Packit Service 4387a0
    subtitles that overlap in time and will show them on screen
Packit Service 4387a0
    simultaneously
Packit Service 4387a0
Packit Service 4387a0
-   The Meson build is now feature-complete (*) and it is now the
Packit Service 4387a0
    recommended build system on all platforms. The Autotools build is
Packit Service 4387a0
    scheduled to be removed in the next cycle.
Packit Service 4387a0
Packit Service 4387a0
-   The GStreamer Rust bindings and Rust plugins module are now
Packit Service 4387a0
    officially part of upstream GStreamer.
Packit Service 4387a0
Packit Service 4387a0
-   The GStreamer Editing Services gained a gesdemux element that allows
Packit Service 4387a0
    directly playing back serialized edit list with playbin or
Packit Service 4387a0
    (uri)decodebin
Packit Service 4387a0
Packit Service 4387a0
-   Many performance improvements
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
Major new features and changes
Packit Service 4387a0
Packit Service 4387a0
Noteworthy new API
Packit Service 4387a0
Packit Service 4387a0
-   GstAggregator has a new "min-upstream-latency" property that forces
Packit Service 4387a0
    a minimum aggregate latency for the input branches of an aggregator.
Packit Service 4387a0
    This is useful for dynamic pipelines where branches with a higher
Packit Service 4387a0
    latency might be added later after the pipeline is already up and
Packit Service 4387a0
    running and where a change in the latency would be disruptive. This
Packit Service 4387a0
    only applies to the case where at least one of the input branches is
Packit Service 4387a0
    live though, it won’t force the aggregator into live mode in the
Packit Service 4387a0
    absence of any live inputs.
Packit Service 4387a0
Packit Service 4387a0
-   GstBaseSink gained a "processing-deadline" property and
Packit Service 4387a0
    setter/getter API to configure a processing deadline for live
Packit Service 4387a0
    pipelines. The processing deadline is the acceptable amount of time
Packit Service 4387a0
    to process the media in a live pipeline before it reaches the sink.
Packit Service 4387a0
    This is on top of the systemic latency that is normally reported by
Packit Service 4387a0
    the latency query. This defaults to 20ms and should make pipelines
Packit Service 4387a0
    such as v4l2src ! xvimagesink not claim that all frames are late in
Packit Service 4387a0
    the QoS events. Ideally, this should replace the "max-lateness"
Packit Service 4387a0
    property for most applications.
Packit Service 4387a0
Packit Service 4387a0
-   RTCP Extended Reports (XR) parsing according to RFC 3611:
Packit Service 4387a0
    Loss/Duplicate RLE, Packet Receipt Times, Receiver Reference Time,
Packit Service 4387a0
    Delay since the last Receiver (DLRR), Statistics Summary, and VoIP
Packit Service 4387a0
    Metrics reports. This only provides the ability to parse such
Packit Service 4387a0
    packets, generation of XR packets is not supported yet and XR
Packit Service 4387a0
    packets are not automatically parsed by rtpbin / rtpsession but must
Packit Service 4387a0
    be actively handled by the application.
Packit Service 4387a0
Packit Service 4387a0
-   a new mode for interlaced video was added where each buffer carries
Packit Service 4387a0
    a single field of interlaced video, with buffer flags indicating
Packit Service 4387a0
    whether the field is the top field or bottom field. Top and bottom
Packit Service 4387a0
    fields are expected to alternate in this mode. Caps for this
Packit Service 4387a0
    interlace mode must also carry a format:Interlaced caps feature to
Packit Service 4387a0
    ensure backwards compatibility.
Packit Service 4387a0
Packit Service 4387a0
-   The video library has gained support for three new raw pixel
Packit Service 4387a0
    formats:
Packit Service 4387a0
Packit Service 4387a0
    -   Y410: packed 4:4:4 YUV, 10 bits per channel
Packit Service 4387a0
    -   Y210: packed 4:2:2 YUV, 10 bits per channel
Packit Service 4387a0
    -   NV12_10LE40: fully-packed 10-bit variant of NV12_10LE32,
Packit Service 4387a0
        i.e. without the padding bits
Packit Service 4387a0
Packit Service 4387a0
-   GstRTPSourceMeta is a new meta that can be used to transport
Packit Service 4387a0
    information about the origin of depayloaded or decoded RTP buffers,
Packit Service 4387a0
    e.g. when mixing audio from multiple sources into a single stream. A
Packit Service 4387a0
    new "source-info" property on the RTP depayloader base class
Packit Service 4387a0
    determines whether depayloaders should put this meta on outgoing
Packit Service 4387a0
    buffers. Similarly, the same property on RTP payloaders determines
Packit Service 4387a0
    whether they should use the information from this meta to construct
Packit Service 4387a0
    the CSRCs list on outgoing RTP buffers.
Packit Service 4387a0
Packit Service 4387a0
-   gst_sdp_message_from_text() is a convenience constructor to parse
Packit Service 4387a0
    SDPs from a string which is particularly useful for language
Packit Service 4387a0
    bindings.
Packit Service 4387a0
Packit Service 4387a0
Support for Planar (Non-Interleaved) Raw Audio
Packit Service 4387a0
Packit Service 4387a0
Raw audio samples are usually passed around in interleaved form in
Packit Service 4387a0
GStreamer, which means that if there are multiple audio channels the
Packit Service 4387a0
samples for each channel are interleaved in memory, e.g.
Packit Service 4387a0
|LEFT|RIGHT|LEFT|RIGHT|LEFT|RIGHT| for stereo audio. A non-interleaved
Packit Service 4387a0
or planar arrangement in memory would look like
Packit Service 4387a0
|LEFT|LEFT|LEFT|RIGHT|RIGHT|RIGHT| instead, possibly with
Packit Service 4387a0
|LEFT|LEFT|LEFT| and |RIGHT|RIGHT|RIGHT| residing in separate memory
Packit Service 4387a0
chunks or separated by some padding.
Packit Service 4387a0
Packit Service 4387a0
GStreamer has always had signalling for non-interleaved audio since
Packit Service 4387a0
version 1.0, but it was never actually properly implemented in any
Packit Service 4387a0
elements. audioconvert would advertise support for it, but wasn’t
Packit Service 4387a0
actually able to handle it correctly.
Packit Service 4387a0
Packit Service 4387a0
With this release we now have full support for non-interleaved audio as
Packit Service 4387a0
well, which means more efficient integration with external APIs that
Packit Service 4387a0
handle audio this way, but also more efficient processing of certain
Packit Service 4387a0
operations like interleaving multiple 1-channel streams into a
Packit Service 4387a0
multi-channel stream which can be done without memory copies now.
Packit Service 4387a0
Packit Service 4387a0
New API to support this has been added to the GStreamer Audio support
Packit Service 4387a0
library: There is now a new GstAudioMeta which describes how data is
Packit Service 4387a0
laid out inside the buffer, and buffers with non-interleaved audio must
Packit Service 4387a0
always carry this meta. To access the non-interleaved audio samples you
Packit Service 4387a0
must map such buffers with gst_audio_buffer_map() which works much like
Packit Service 4387a0
gst_buffer_map() or gst_video_frame_map() in that it will populate a
Packit Service 4387a0
little GstAudioBuffer helper structure passed to it with the number of
Packit Service 4387a0
samples, the number of planes and pointers to the start of each plane in
Packit Service 4387a0
memory. This function can also be used to map interleaved audio buffers
Packit Service 4387a0
in which case there will be only one plane of interleaved samples.
Packit Service 4387a0
Packit Service 4387a0
Of course support for this has also been implemented in the various
Packit Service 4387a0
audio helper and conversion APIs, base classes, and in elements such as
Packit Service 4387a0
audioconvert, audioresample, audiotestsrc, audiorate.
Packit Service 4387a0
Packit Service 4387a0
Support for Closed Captions and Other Ancillary Data in Video
Packit Service 4387a0
Packit Service 4387a0
The video support library has gained support for detecting and
Packit Service 4387a0
extracting Ancillary Data from videos as per the SMPTE S291M
Packit Service 4387a0
specification, including:
Packit Service 4387a0
Packit Service 4387a0
-   a VBI (Vertical Blanking Interval) parser that can detect and
Packit Service 4387a0
    extract Ancillary Data from Vertical Blanking Interval lines of
Packit Service 4387a0
    component signals. This is currently supported for videos in v210
Packit Service 4387a0
    and UYVY format.
Packit Service 4387a0
Packit Service 4387a0
-   a new GstMeta for closed captions: GstVideoCaptionMeta. This
Packit Service 4387a0
    supports the two types of closed captions, CEA-608 and CEA-708,
Packit Service 4387a0
    along with the four different ways they can be transported (other
Packit Service 4387a0
    systems are a superset of those).
Packit Service 4387a0
Packit Service 4387a0
-   a VBI (Vertical Blanking Interval) encoder for writing ancillary
Packit Service 4387a0
    data to the Vertical Blanking Interval lines of component signals.
Packit Service 4387a0
Packit Service 4387a0
The new closedcaption plugin in gst-plugins-bad then makes use of all
Packit Service 4387a0
this new infrastructure and provides the following elements:
Packit Service 4387a0
Packit Service 4387a0
-   cccombiner: a closed caption combiner that takes a closed captions
Packit Service 4387a0
    stream and another stream and adds the closed captions as
Packit Service 4387a0
    GstVideoCaptionMeta to the buffers of the other stream.
Packit Service 4387a0
Packit Service 4387a0
-   ccextractor: a closed caption extractor which will take
Packit Service 4387a0
    GstVideoCaptionMeta from input buffers and output them as a separate
Packit Service 4387a0
    closed captions stream.
Packit Service 4387a0
Packit Service 4387a0
-   ccconverter: a closed caption converter that can convert between
Packit Service 4387a0
    different formats
Packit Service 4387a0
Packit Service 4387a0
-   line21encoder, line21decoder: inject/extract line21 closed captions
Packit Service 4387a0
    to/from SD video streams
Packit Service 4387a0
Packit Service 4387a0
-   cc708overlay: decodes CEA 608/708 captions and overlays them on
Packit Service 4387a0
    video
Packit Service 4387a0
Packit Service 4387a0
Additionally, the following elements have also gained Closed Caption
Packit Service 4387a0
support:
Packit Service 4387a0
Packit Service 4387a0
-   qtdemux and qtmux support CEA 608/708 Closed Caption tracks
Packit Service 4387a0
Packit Service 4387a0
-   mpegvideoparse, h264parse extracts Closed Captions from MPEG-2/H.264
Packit Service 4387a0
    video streams
Packit Service 4387a0
Packit Service 4387a0
-   avviddec, avvidenc, x264enc got support for extracting/injecting
Packit Service 4387a0
    Closed Captions
Packit Service 4387a0
Packit Service 4387a0
-   decklinkvideosink can output closed captions and decklinkvideosrc
Packit Service 4387a0
    can extract closed captions
Packit Service 4387a0
Packit Service 4387a0
-   playbin and playbin3 learned how to autoplug CEA 608/708 CC overlay
Packit Service 4387a0
    elements
Packit Service 4387a0
Packit Service 4387a0
-   the externally maintained ajavideosrc element for AJA capture cards
Packit Service 4387a0
    has support for extracting closed captions
Packit Service 4387a0
Packit Service 4387a0
The rsclosedcaption plugin in the Rust plugins collection includes a
Packit Service 4387a0
MacCaption (MCC) file parser and encoder.
Packit Service 4387a0
Packit Service 4387a0
New Elements
Packit Service 4387a0
Packit Service 4387a0
-   overlaycomposition: New element that allows applications to draw
Packit Service 4387a0
    GstVideoOverlayCompositions on a stream. The element will emit the
Packit Service 4387a0
    "draw" signal for each video buffer, and the application then
Packit Service 4387a0
    generates an overlay for that frame (or not). This is much more
Packit Service 4387a0
    performant than e.g. cairooverlay for many use cases, e.g. because
Packit Service 4387a0
    pixel format conversions can be avoided or the blitting of the
Packit Service 4387a0
    overlay can be delegated to downstream elements (such as
Packit Service 4387a0
    gloverlaycompositor). It’s particularly useful for cases where only
Packit Service 4387a0
    a small section of the video frame should be drawn on.
Packit Service 4387a0
Packit Service 4387a0
-   gloverlaycompositor: New OpenGL-based compositor element that
Packit Service 4387a0
    flattens any overlays from GstVideoOverlayCompositionMetas into the
Packit Service 4387a0
    video stream. This element is also always part of glimagesink.
Packit Service 4387a0
Packit Service 4387a0
-   glalpha: New element that adds an alpha channel to a video stream.
Packit Service 4387a0
    The values of the alpha channel can either be set to a constant or
Packit Service 4387a0
    can be dynamically calculated via chroma keying. It is similar to
Packit Service 4387a0
    the existing alpha element but based on OpenGL. Calculations are
Packit Service 4387a0
    done in floating point so results may not be identical to the output
Packit Service 4387a0
    of the existing alpha element.
Packit Service 4387a0
Packit Service 4387a0
-   rtpfunnel funnels together RTP streams into a single session. Use
Packit Service 4387a0
    cases include multiplexing and bundle. webrtcbin uses it to
Packit Service 4387a0
    implement BUNDLE support.
Packit Service 4387a0
Packit Service 4387a0
-   testsrcbin is a source element that provides an audio and/or video
Packit Service 4387a0
    stream and also announces them using the recently-introduced
Packit Service 4387a0
    GstStream API. This is useful for testing elements such as playbin3
Packit Service 4387a0
    or uridecodebin3 etc.
Packit Service 4387a0
Packit Service 4387a0
-   New closed caption elements: cccombiner, ccextractor, ccconverter,
Packit Service 4387a0
    line21encoder, line21decoder and cc708overlay (see above)
Packit Service 4387a0
Packit Service 4387a0
-   wpesrc: new source element acting as a Web Browser based on WebKit
Packit Service 4387a0
    WPE
Packit Service 4387a0
Packit Service 4387a0
-   Two new OpenCV-based elements: cameracalibrate and cameraundistort
Packit Service 4387a0
    that can communicate to figure out distortion correction parameters
Packit Service 4387a0
    for a camera and correct for the distortion.
Packit Service 4387a0
Packit Service 4387a0
-   New sctp plugin based on usrsctp with sctpenc and sctpdec elements.
Packit Service 4387a0
    These elements are used inside webrtcbin for implementing data
Packit Service 4387a0
    channels.
Packit Service 4387a0
Packit Service 4387a0
New element features and additions
Packit Service 4387a0
Packit Service 4387a0
-   playbin3, playbin and playsink have gained a new "text-offset"
Packit Service 4387a0
    property to adjust the positioning of the selected subtitle stream
Packit Service 4387a0
    vis-a-vis the audio and video streams. This uses subtitleoverlay’s
Packit Service 4387a0
    new "subtitle-ts-offset" property. GstPlayer has gained matching API
Packit Service 4387a0
    for this, namely gst_player_get_text_video_offset().
Packit Service 4387a0
Packit Service 4387a0
-   playbin3 buffering improvements: in network playback scenarios there
Packit Service 4387a0
    may be multiple inputs to decodebin3, and buffering will be done
Packit Service 4387a0
    before decodebin3 using queue2 or downloadbuffer elements inside
Packit Service 4387a0
    urisourcebin. Since this is before any parsers or demuxers there may
Packit Service 4387a0
    not be any bitrate information available for the various streams, so
Packit Service 4387a0
    it was difficult to configure the buffering there smartly within
Packit Service 4387a0
    global constraints. This was improved now: The queue2 elements
Packit Service 4387a0
    inside urisourcebin will now use the new bitrate query to figure out
Packit Service 4387a0
    a bitrate estimate for the stream if no bitrate was provided by
Packit Service 4387a0
    upstream, and urisourcebin will use the bitrates of the individual
Packit Service 4387a0
    queues to distribute the globally-set "buffer-size" budget in bytes
Packit Service 4387a0
    to the various queues. urisourcebin also gained "low-watermark" and
Packit Service 4387a0
    "high-watermark" properties which will be proxied to the internal
Packit Service 4387a0
    queues, as well as a read-only "statistics" property which allows
Packit Service 4387a0
    querying of the minimum/maximum/average byte and time levels of the
Packit Service 4387a0
    queues inside the urisourcebin in question.
Packit Service 4387a0
Packit Service 4387a0
-   splitmuxsink has gained a couple of new features:
Packit Service 4387a0
Packit Service 4387a0
    -   new "async-finalize" mode: This mode is useful for muxers or
Packit Service 4387a0
        outputs that can take a long time to finalize a file. Instead of
Packit Service 4387a0
        blocking the whole upstream pipeline while the muxer is doing
Packit Service 4387a0
        its stuff, we can unlink it and spawn a new muxer + sink
Packit Service 4387a0
        combination to continue running normally. This requires us to
Packit Service 4387a0
        receive the muxer and sink (if needed) as factories via the new
Packit Service 4387a0
        "muxer-factory" and "sink-factory" properties, optionally
Packit Service 4387a0
        accompanied by their respective properties structures (set via
Packit Service 4387a0
        the new "muxer-properties" and "sink-properties" properties).
Packit Service 4387a0
        There are also new "muxer-added" and "sink-added" signals in
Packit Service 4387a0
        case custom code has to be called for them to configure them.
Packit Service 4387a0
Packit Service 4387a0
    -   "split-at-running-time" action signal: When called by the user,
Packit Service 4387a0
        this action signal ends the current file (and starts a new one)
Packit Service 4387a0
        as soon as the given running time is reached. If called multiple
Packit Service 4387a0
        times, running times are queued up and processed in the order
Packit Service 4387a0
        they were given.
Packit Service 4387a0
Packit Service 4387a0
    -   "split-after" action signal to finish outputting the current GOP
Packit Service 4387a0
        to the current file and then start a new file as soon as the GOP
Packit Service 4387a0
        is finished and a new GOP is opened (unlike the existing
Packit Service 4387a0
        "split-now" which immediately finishes the current file and
Packit Service 4387a0
        writes the current GOP into the next newly-started file).
Packit Service 4387a0
Packit Service 4387a0
    -   "reset-muxer" property: when unset, the muxer is reset using
Packit Service 4387a0
        flush events instead of setting its state to NULL and back. This
Packit Service 4387a0
        means the muxer can keep state across resets, e.g. mpegtsmux
Packit Service 4387a0
        will keep the continuity counter continuous across segments as
Packit Service 4387a0
        required by hlssink2.
Packit Service 4387a0
Packit Service 4387a0
-   qtdemux gained PIFF track encryption box support in addition to the
Packit Service 4387a0
    already-existing PIFF sample encryption support, and also allows
Packit Service 4387a0
    applications to select which encryption system to use via a
Packit Service 4387a0
    "drm-preferred-decryption-system-id" context in case there are
Packit Service 4387a0
    multiple options.
Packit Service 4387a0
Packit Service 4387a0
-   qtmux: the "start-gap-threshold" property determines now whether an
Packit Service 4387a0
    edit list will be created to account for small gaps or offsets at
Packit Service 4387a0
    the beginning of a stream in case the start timestamps of tracks
Packit Service 4387a0
    don’t line up perfectly. Previously the threshold was hard-coded to
Packit Service 4387a0
    1% of the (video) frame duration, now it is 0 by default (so edit
Packit Service 4387a0
    list will be created even for small differences), but fully
Packit Service 4387a0
    configurable.
Packit Service 4387a0
Packit Service 4387a0
-   rtpjitterbuffer has improved end-of-stream handling
Packit Service 4387a0
Packit Service 4387a0
-   rtpmp4vpay will be preferred over rtpmp4gpay for MPEG-4 video in
Packit Service 4387a0
    autoplugging scenarios now
Packit Service 4387a0
Packit Service 4387a0
-   rtspsrc now allows applications to send RTSP SET_PARAMETER and
Packit Service 4387a0
    GET_PARAMETER requests using action signals.
Packit Service 4387a0
Packit Service 4387a0
-   rtspsrc has a small (100ms) configurable teardown delay by default
Packit Service 4387a0
    to try and make sure an RTSP TEARDOWN request gets sent out when the
Packit Service 4387a0
    source element shuts down. This will block the downward PAUSED to
Packit Service 4387a0
    READY state change for a short time, but can be disabled where it’s
Packit Service 4387a0
    a problem. Some servers only allow a limited number of concurrent
Packit Service 4387a0
    clients, so if no proper TEARDOWN is sent new clients may have
Packit Service 4387a0
    problems connecting to the server for a while.
Packit Service 4387a0
Packit Service 4387a0
-   souphttpsrc behaves better with low bitrate streams now. Before it
Packit Service 4387a0
    would increase the read block size too quickly which could lead to
Packit Service 4387a0
    it not reading any data from the socket for a very long time with
Packit Service 4387a0
    low bitrate streams that are output live downstream. This could lead
Packit Service 4387a0
    to servers kicking off the client.
Packit Service 4387a0
Packit Service 4387a0
-   filesink: do internal buffering to avoid performance regression with
Packit Service 4387a0
    small writes since we bypass libc buffering by using writev()
Packit Service 4387a0
    instead of fwrite()
Packit Service 4387a0
Packit Service 4387a0
-   identity: add "eos-after" property and fix "error-after" property
Packit Service 4387a0
    when the element is reused
Packit Service 4387a0
Packit Service 4387a0
-   input-selector: lets context queries pass through, so that
Packit Service 4387a0
    e.g. upstream OpenGL elements can use contexts and displays
Packit Service 4387a0
    advertised by downstream elements
Packit Service 4387a0
Packit Service 4387a0
-   queue2: avoid ping-pong between 0% and 100% buffering messages if
Packit Service 4387a0
    upstream is pushing buffers larger than one of its limits, plus
Packit Service 4387a0
    performance optimisations
Packit Service 4387a0
Packit Service 4387a0
-   opusdec: new "phase-inversion" property to control phase inversion.
Packit Service 4387a0
    When enabled, this will slightly increase stereo quality, but
Packit Service 4387a0
    produces a stream that when downmixed to mono will suffer audio
Packit Service 4387a0
    distortions.
Packit Service 4387a0
Packit Service 4387a0
-   The x265enc HEVC encoder also exposes a "key-int-max" property to
Packit Service 4387a0
    configure the maximum allowed GOP size now.
Packit Service 4387a0
Packit Service 4387a0
-   decklinkvideosink has seen stability improvements for long-running
Packit Service 4387a0
    pipelines (potential crash due to overflow of leaked clock refcount)
Packit Service 4387a0
    and clock-slaving improvements when performing flushing seeks
Packit Service 4387a0
    (causing stalls in the output timeline), pausing and/or buffering.
Packit Service 4387a0
Packit Service 4387a0
-   srtpdec, srtpenc: add support for MKIs which allow multiple keys to
Packit Service 4387a0
    be used with a single SRTP stream
Packit Service 4387a0
Packit Service 4387a0
-   srtpdec, srtpenc: add support for AES-GCM and also add support for
Packit Service 4387a0
    it in gst-rtsp-server and rtspsrc.
Packit Service 4387a0
Packit Service 4387a0
-   The srt Secure Reliable Transport plugin has integrated server and
Packit Service 4387a0
    client elements srt{client,server}{src,sink} into one (srtsrc and
Packit Service 4387a0
    srtsink), since SRT connection mode can be changed by uri
Packit Service 4387a0
    parameters.
Packit Service 4387a0
Packit Service 4387a0
-   h264parse and h265parse will handle SEI recovery point messages and
Packit Service 4387a0
    mark recovery points as keyframes as well (in addition to IDR
Packit Service 4387a0
    frames)
Packit Service 4387a0
Packit Service 4387a0
-   webrtcbin: "add-turn-server" action signal to pass multiple ICE
Packit Service 4387a0
    relays (TURN servers).
Packit Service 4387a0
Packit Service 4387a0
-   The removesilence element has received various new features and
Packit Service 4387a0
    properties, such as a "threshold" property, detecting silence only
Packit Service 4387a0
    after minimum silence time/buffers, a "silent" property to control
Packit Service 4387a0
    bus message notifications as well as a "squash" property.
Packit Service 4387a0
Packit Service 4387a0
-   AOMedia AV1 decoder gained support for 10/12bit decoding whilst the
Packit Service 4387a0
    AV1 encoder supports more image formats and subsamplings now and
Packit Service 4387a0
    acquired support for rate control and profile related configuration.
Packit Service 4387a0
Packit Service 4387a0
-   The Fraunhofer fdkaac plugin can now be built against the 2.0.0
Packit Service 4387a0
    version API and has improved multichannel support
Packit Service 4387a0
Packit Service 4387a0
-   kmssink now supports unpadded 24-bit RGB and can configure mode
Packit Service 4387a0
    setting from video info, which enables display of multi-planar
Packit Service 4387a0
    formats such as I420 or NV12 with modesetting. It has also gained a
Packit Service 4387a0
    number of new properties: The "restore-crtc" property does what it
Packit Service 4387a0
    says on the tin and is enabled by default. "plane-properties" and
Packit Service 4387a0
    "connector-properties" can be used to pass custom properties to the
Packit Service 4387a0
    DRM.
Packit Service 4387a0
Packit Service 4387a0
-   waylandsink has a "fullscreen" property now and supports the
Packit Service 4387a0
    XDG-Shell protocol.
Packit Service 4387a0
Packit Service 4387a0
-   decklinkvideosink, decklinkvideosrc support selecting between
Packit Service 4387a0
    half/full duplex
Packit Service 4387a0
Packit Service 4387a0
-   The vulkan plugin gained support for macOS and iOS via MoltenVK in
Packit Service 4387a0
    addition to the existing support for X11 and Wayland
Packit Service 4387a0
Packit Service 4387a0
-   imagefreeze has a new num-buffers property to limit the number of
Packit Service 4387a0
    buffers that are produced and to send an EOS event afterwards
Packit Service 4387a0
Packit Service 4387a0
-   webrtcbin has a new, introspectable get-transceiver signal in
Packit Service 4387a0
    addition to the old get-transceivers signal that couldn’t be used
Packit Service 4387a0
    from bindings
Packit Service 4387a0
Packit Service 4387a0
-   Support for per-element latency information was added to the latency
Packit Service 4387a0
    tracer
Packit Service 4387a0
Packit Service 4387a0
Plugin and library moves
Packit Service 4387a0
Packit Service 4387a0
-   The stereo element was moved from -bad into the existing audiofx
Packit Service 4387a0
    plugin in -good. If you get duplicate type registration warnings
Packit Service 4387a0
    when upgrading, check that you don’t have a stale stereoplugin lying
Packit Service 4387a0
    about somewhere.
Packit Service 4387a0
Packit Service 4387a0
GstVideoAggregator, compositor, and OpenGL mixer elements moved from -bad to -base
Packit Service 4387a0
Packit Service 4387a0
GstVideoAggregator is a new base class for raw video mixers and muxers
Packit Service 4387a0
and is based on GstAggregator. It provides defined-latency mixing of raw
Packit Service 4387a0
video inputs and ensures that the pipeline won’t stall even if one of
Packit Service 4387a0
the input streams stops producing data.
Packit Service 4387a0
Packit Service 4387a0
As part of the move to stabilise the API there were some last-minute API
Packit Service 4387a0
changes and clean-ups, but those should mostly affect internal elements.
Packit Service 4387a0
Most notably, the "ignore-eos" pad property was renamed to
Packit Service 4387a0
"repeat-after-eos" and the conversion code was moved to a
Packit Service 4387a0
GstVideoAggregatorConvertPad subclass to avoid code duplication, make
Packit Service 4387a0
things less awkward for subclasses like the OpenGL-based video mixer,
Packit Service 4387a0
and make the API more consistent with the audio aggregator API.
Packit Service 4387a0
Packit Service 4387a0
It is used by the compositor element, which is a replacement for
Packit Service 4387a0
‘videomixer’ which did not handle live inputs very well. compositor
Packit Service 4387a0
should behave much better in that respect and generally behave as one
Packit Service 4387a0
would expected in most scenarios.
Packit Service 4387a0
Packit Service 4387a0
The compositor element has gained support for per-pad blending mode
Packit Service 4387a0
operators (SOURCE, OVER, ADD) which determines what operator to use for
Packit Service 4387a0
blending this pad over the previous ones. This can be used to implement
Packit Service 4387a0
crossfading and the available operators can be extended in the future as
Packit Service 4387a0
needed.
Packit Service 4387a0
Packit Service 4387a0
A number of OpenGL-based video mixer elements (glvideomixer, glmixerbin,
Packit Service 4387a0
glvideomixerelement, glstereomix, glmosaic) which are built on top of
Packit Service 4387a0
GstVideoAggregator have also been moved from -bad to -base now. These
Packit Service 4387a0
elements have been merged into the existing OpenGL plugin, so if you get
Packit Service 4387a0
duplicate type registration warnings when upgrading, check that you
Packit Service 4387a0
don’t have a stale openglmixers plugin lying about somewhere.
Packit Service 4387a0
Packit Service 4387a0
Plugin removals
Packit Service 4387a0
Packit Service 4387a0
The following plugins have been removed from gst-plugins-bad:
Packit Service 4387a0
Packit Service 4387a0
-   The experimental daala plugin has been removed, since it’s not so
Packit Service 4387a0
    useful now that all effort is focused on AV1 instead, and it had to
Packit Service 4387a0
    be enabled explicitly with --enable-experimental anyway.
Packit Service 4387a0
Packit Service 4387a0
-   The spc plugin has been removed. It has been replaced by the gme
Packit Service 4387a0
    plugin.
Packit Service 4387a0
Packit Service 4387a0
-   The acmmp3dec and acmenc plugins for Windows have been removed. ACM
Packit Service 4387a0
    is an ancient legacy API and there was no point in keeping the
Packit Service 4387a0
    plugins around for a licensed MP3 decoder now that the MP3 patents
Packit Service 4387a0
    have expired and we have a decoder in -good. We also didn’t ship
Packit Service 4387a0
    these in our cerbero-built Windows packages, so it’s unlikely that
Packit Service 4387a0
    they’ll be missed.
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
Miscellaneous API additions
Packit Service 4387a0
Packit Service 4387a0
-   GstBitwriter: new generic bit writer API to complement the existing
Packit Service 4387a0
    bit reader
Packit Service 4387a0
Packit Service 4387a0
-   gst_buffer_new_wrapped_bytes() creates a wrap buffer from a GBytes
Packit Service 4387a0
Packit Service 4387a0
-   gst_caps_set_features_simple() sets a caps feature on all the
Packit Service 4387a0
    structures of a GstCaps
Packit Service 4387a0
Packit Service 4387a0
-   New GST_QUERY_BITRATE query: This allows determining from downstream
Packit Service 4387a0
    what the expected bitrate of a stream may be which is useful in
Packit Service 4387a0
    queue2 for setting time based limits when upstream does not provide
Packit Service 4387a0
    timing information. tsdemux, qtdemux and matroskademux have basic
Packit Service 4387a0
    support for this query on their sink pads.
Packit Service 4387a0
Packit Service 4387a0
-   elements: there is a new “Hardware” class specifier. Elements
Packit Service 4387a0
    interacting with hardware devices should specify this classifier in
Packit Service 4387a0
    their element factory class metadata. This is useful to advertise as
Packit Service 4387a0
    one might need to put such elements into READY state to test if the
Packit Service 4387a0
    hardware is present in the system for example.
Packit Service 4387a0
Packit Service 4387a0
-   protection: Add a new definition for unspecified system protection,
Packit Service 4387a0
    GST_PROTECTION_UNSPECIFIED_SYSTEM_ID
Packit Service 4387a0
Packit Service 4387a0
-   take functions for various mini objects that didn’t have them yet:
Packit Service 4387a0
    gst_query_take(), gst_message_take(), gst_tag_list_take(),
Packit Service 4387a0
    gst_buffer_list_take(). Unlike the various _replace() functions
Packit Service 4387a0
    _take() does not increase the reference count but takes ownership of
Packit Service 4387a0
    the mini object passed.
Packit Service 4387a0
Packit Service 4387a0
-   clear functions for various mini object types and GstObject which
Packit Service 4387a0
    unrefs the object or mini object (if non-NULL) and sets the variable
Packit Service 4387a0
    pointed to to NULL: gst_clear_structure(), gst_clear_tag_list(),
Packit Service 4387a0
    gst_clear_query(), gst_clear_message(), gst_clear_event(),
Packit Service 4387a0
    gst_clear_caps(), gst_clear_buffer_list(), gst_clear_buffer(),
Packit Service 4387a0
    gst_clear_mini_object(), gst_clear_object()
Packit Service 4387a0
Packit Service 4387a0
-   miniobject: new API gst_mini_object_add_parent() and
Packit Service 4387a0
    gst_mini_object_remove_parent() to set parent pointers on mini
Packit Service 4387a0
    objects to ensure correct writability: Every container of
Packit Service 4387a0
    miniobjects now needs to store itself as parent in the child object,
Packit Service 4387a0
    and remove itself again later. A mini object is then only writable
Packit Service 4387a0
    if there is at most one parent, that parent is writable itself, and
Packit Service 4387a0
    the reference count of the mini object is 1. GstBuffer (for
Packit Service 4387a0
    memories), GstBufferList (for buffers), GstSample (for caps, buffer,
Packit Service 4387a0
    bufferlist), and GstVideoOverlayComposition were updated
Packit Service 4387a0
    accordingly. Without this it was possible to have e.g. a buffer list
Packit Service 4387a0
    with a refcount of 2 used in two places at once that both modify the
Packit Service 4387a0
    same buffer with refcount 1 at the same time wrongly thinking it is
Packit Service 4387a0
    writable even though it’s really not.
Packit Service 4387a0
Packit Service 4387a0
-   poll: add API to watch for POLLPRI and stop treating POLLPRI as a
Packit Service 4387a0
    read. This is useful to wait for video4linux events which are
Packit Service 4387a0
    signalled via POLLPRI.
Packit Service 4387a0
Packit Service 4387a0
-   sample: new API to update the contents of a GstSample and make it
Packit Service 4387a0
    writable: gst_sample_set_buffer(), gst_sample_set_caps(),
Packit Service 4387a0
    gst_sample_set_segment(), gst_sample_set_info(), plus
Packit Service 4387a0
    gst_sample_is_writable() and gst_sample_make_writable(). This makes
Packit Service 4387a0
    it possible to reuse a sample object and avoid unnecessary memory
Packit Service 4387a0
    allocations, for example in appsink.
Packit Service 4387a0
Packit Service 4387a0
-   ClockIDs now keep a weak reference to underlying clock to avoid
Packit Service 4387a0
    crashes in basesink in corner cases where a clock goes away while
Packit Service 4387a0
    the ClockID is still in use, plus some new API
Packit Service 4387a0
    (gst_clock_id_get_clock(), gst_clock_id_uses_clock()) to check the
Packit Service 4387a0
    clock a ClockID is linked to.
Packit Service 4387a0
Packit Service 4387a0
-   The GstCheck unit test library gained a
Packit Service 4387a0
    fail_unless_equals_clocktime() convenience macro as well as some new
Packit Service 4387a0
    GstHarness API for for proposing meta APIs from the allocation
Packit Service 4387a0
    query: gst_harness_add_propose_allocation_meta(). ASSERT_CRITICAL()
Packit Service 4387a0
    checks in unit tests are now skipped if GStreamer was compiled with
Packit Service 4387a0
    GST_DISABLE_GLIB_CHECKS.
Packit Service 4387a0
Packit Service 4387a0
-   gst_audio_buffer_truncate() convenience function to truncate a raw
Packit Service 4387a0
    audio buffer
Packit Service 4387a0
Packit Service 4387a0
-   GstDiscoverer has support for caching the results of discovery in
Packit Service 4387a0
    the default cache directory. This can be enabled with the use-cache
Packit Service 4387a0
    property and is disabled by default.
Packit Service 4387a0
Packit Service 4387a0
-   GstMeta that are attached to GstBuffers are now always stored in the
Packit Service 4387a0
    order in which they were added.
Packit Service 4387a0
Packit Service 4387a0
-   Additional support for signalling ONVIF specific features were
Packit Service 4387a0
    added: the SEEK event can store a trickmode-interval now and support
Packit Service 4387a0
    for the Rate-Control and Frames RTSP headers was added to the RTSP
Packit Service 4387a0
    library.
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
Miscellaneous performance and memory optimisations
Packit Service 4387a0
Packit Service 4387a0
As always there have been many performance and memory usage improvements
Packit Service 4387a0
across all components and modules. Some of them (such as dmabuf
Packit Service 4387a0
import/export) have already been mentioned elsewhere so won’t be
Packit Service 4387a0
repeated here.
Packit Service 4387a0
Packit Service 4387a0
The following list is only a small snapshot of some of the more
Packit Service 4387a0
interesting optimisations that haven’t been mentioned in other contexts
Packit Service 4387a0
yet:
Packit Service 4387a0
Packit Service 4387a0
-   The GstVideoEncoder and GstVideoDecoder base classes now release the
Packit Service 4387a0
    STREAM_LOCK when pushing out buffers, which means (multi-threaded)
Packit Service 4387a0
    encoders and decoders can now receive and continue to process input
Packit Service 4387a0
    buffers whilst waiting for downstream elements in the pipeline to
Packit Service 4387a0
    process the buffer that was pushed out. This increases throughput
Packit Service 4387a0
    and reduces processing latency, also and especially for
Packit Service 4387a0
    hardware-accelerated encoder/decoder elements.
Packit Service 4387a0
Packit Service 4387a0
-   GstQueueArray has seen a few API additions
Packit Service 4387a0
    (gst_queue_array_peek_nth(), gst_queue_array_set_clear_func(),
Packit Service 4387a0
    gst_queue_array_clear()) so that it can be used in other places like
Packit Service 4387a0
    GstAdapter instead of a GList, which reduces allocations and
Packit Service 4387a0
    improves performance.
Packit Service 4387a0
Packit Service 4387a0
-   appsink now reuses the sample object in pull_sample() if possible
Packit Service 4387a0
Packit Service 4387a0
-   rtpsession only starts the RTCP thread when it’s actually needed now
Packit Service 4387a0
Packit Service 4387a0
-   udpsrc uses a buffer pool now and the GstUdpSrc object structure was
Packit Service 4387a0
    optimised for better cache performance
Packit Service 4387a0
Packit Service 4387a0
GstPlayer
Packit Service 4387a0
Packit Service 4387a0
-   API was added to fine-tune the synchronisation offset between
Packit Service 4387a0
    subtitles and video
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
Miscellaneous changes
Packit Service 4387a0
Packit Service 4387a0
-   As a result of moving to newer FFmpeg APIs, encoder and decoder
Packit Service 4387a0
    elements exposed by the GStreamer FFmpeg wrapper plugin (gst-libav)
Packit Service 4387a0
    may have seen possibly incompatible changes to property names and/or
Packit Service 4387a0
    types, and not all properties exposed might be functional. We are
Packit Service 4387a0
    still reviewing the new properties and aim to minimise breaking
Packit Service 4387a0
    changes at least for the most commonly-used properties, so please
Packit Service 4387a0
    report any issues you run into!
Packit Service 4387a0
Packit Service 4387a0
OpenGL integration
Packit Service 4387a0
Packit Service 4387a0
-   The OpenGL mixer elements have been moved from -bad to
Packit Service 4387a0
    gst-plugins-base (see above)
Packit Service 4387a0
Packit Service 4387a0
-   The Mesa GBM backend now supports headless mode
Packit Service 4387a0
Packit Service 4387a0
-   gloverlaycompositor: New OpenGL-based compositor element that
Packit Service 4387a0
    flattens any overlays from GstVideoOverlayCompositionMetas into the
Packit Service 4387a0
    video stream.
Packit Service 4387a0
Packit Service 4387a0
-   glalpha: New element that adds an alpha channel to a video stream.
Packit Service 4387a0
    The values of the alpha channel can either be set to a constant or
Packit Service 4387a0
    can be dynamically calculated via chroma keying. It is similar to
Packit Service 4387a0
    the existing alpha element but based on OpenGL. Calculations are
Packit Service 4387a0
    done in floating point so results may not be identical to the output
Packit Service 4387a0
    of the existing alpha element.
Packit Service 4387a0
Packit Service 4387a0
-   glupload: Implement direct dmabuf uploader, the idea being that some
Packit Service 4387a0
    GPUs (like the Vivante series) can actually perform the YUV->RGB
Packit Service 4387a0
    conversion internally, so no custom conversion shaders are needed.
Packit Service 4387a0
    To make use of this feature, we need an additional uploader that can
Packit Service 4387a0
    import DMABUF FDs and also directly pass the pixel format, relying
Packit Service 4387a0
    on the GPU to do the conversion.
Packit Service 4387a0
Packit Service 4387a0
-   The OpenGL library no longer restores the OpenGL viewport. This is a
Packit Service 4387a0
    performance optimization to not require performing multiple
Packit Service 4387a0
    expensive glGet*() function calls per frame. This affects any
Packit Service 4387a0
    application or plugin use of the following functions and objects:
Packit Service 4387a0
    -   glcolorconvert library object (not the element)
Packit Service 4387a0
    -   glviewconvert library object (not the element)
Packit Service 4387a0
    -   gst_gl_framebuffer_draw_to_texture()
Packit Service 4387a0
    -   custom GstGLWindow implementations
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
Tracing framework and debugging improvements
Packit Service 4387a0
Packit Service 4387a0
-   There is now a GDB PRETTY PRINTER FOR VARIOUS GSTREAMER TYPES: For
Packit Service 4387a0
    GstObject pointers the type and name is added, e.g.
Packit Service 4387a0
    0x5555557e4110 [GstDecodeBin|decodebin0]. For GstMiniObject pointers
Packit Service 4387a0
    the object type is added, e.g. 0x7fffe001fc50 [GstBuffer]. For
Packit Service 4387a0
    GstClockTime and GstClockTimeDiff the time is also printed in human
Packit Service 4387a0
    readable form, e.g. 150116219955 [+0:02:30.116219955].
Packit Service 4387a0
Packit Service 4387a0
-   GDB EXTENSION WITH TWO CUSTOM GDB COMMANDS gst-dot AND gst-print:
Packit Service 4387a0
Packit Service 4387a0
    -   gst-dot creates dot files that a very close to what
Packit Service 4387a0
        GST_DEBUG_BIN_TO_DOT_FILE() produces, but object properties and
Packit Service 4387a0
        buffer contents such as codec-data in caps are not available.
Packit Service 4387a0
Packit Service 4387a0
    -   gst-print produces high-level information about a GStreamer
Packit Service 4387a0
        object. This is currently limited to pads for GstElements and
Packit Service 4387a0
        events for the pads. The output may look like this:
Packit Service 4387a0
Packit Service 4387a0
-   gst_structure_to_string() now serialises the actual value of
Packit Service 4387a0
    pointers when serialising GstStructures instead of claiming they’re
Packit Service 4387a0
    NULL. This makes debug logging in various places less confusing,
Packit Service 4387a0
    because it’s clear now that structure fields actually hold valid
Packit Service 4387a0
    objects. Such object pointer values will never be deserialised
Packit Service 4387a0
    however.
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
Tools
Packit Service 4387a0
Packit Service 4387a0
-   gst-inspect-1.0 has coloured output now and will automatically use a
Packit Service 4387a0
    pager if the output does not fit on a page. This only works in a
Packit Service 4387a0
    UNIX environment and if the output is not piped, and on Windows 10
Packit Service 4387a0
    build 16257 or newer. If you don’t like the colours you can disable
Packit Service 4387a0
    them by setting the GST_INSPECT_NO_COLORS=1 environment variable or
Packit Service 4387a0
    passing the --no-color command line option.
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
GStreamer RTSP server
Packit Service 4387a0
Packit Service 4387a0
-   Improved backlog handling when using TCP interleaved for data
Packit Service 4387a0
    transport. Before there was a fixed maximum size for backlog
Packit Service 4387a0
    messages, which was prone to deadlocks and made it difficult to
Packit Service 4387a0
    control memory usage with the watch backlog. The RTSP server now
Packit Service 4387a0
    limits queued TCP data messages to one per stream, moving queuing of
Packit Service 4387a0
    the data into the pipeline and leaving the RTSP connection
Packit Service 4387a0
    responsive to RTSP messages in both directions, preventing all those
Packit Service 4387a0
    problems.
Packit Service 4387a0
Packit Service 4387a0
-   Initial ULP Forward Error Correction support in rtspclientsink and
Packit Service 4387a0
    for RECORD mode in the server.
Packit Service 4387a0
Packit Service 4387a0
-   API to explicitly enable retransmission requests (RTX)
Packit Service 4387a0
Packit Service 4387a0
-   Lots of multicast-related fixes
Packit Service 4387a0
Packit Service 4387a0
-   rtsp-auth: Add support for parsing .htdigest files
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
GStreamer VAAPI
Packit Service 4387a0
Packit Service 4387a0
-   Support Wayland’s display for context sharing, so the application
Packit Service 4387a0
    can pass its own wl_display in order to be used for the VAAPI
Packit Service 4387a0
    display creation.
Packit Service 4387a0
Packit Service 4387a0
-   A lot of work to support new Intel hardware using media-driver as VA
Packit Service 4387a0
    backend.
Packit Service 4387a0
Packit Service 4387a0
-   For non-x86 devices, VAAPI display can instantiate, through DRM,
Packit Service 4387a0
    with no PCI bus. This enables the usage of libva-v4l2-request
Packit Service 4387a0
    driver.
Packit Service 4387a0
Packit Service 4387a0
-   Added support for XDG-shell protocol as wl_shell replacement which
Packit Service 4387a0
    is currently deprecated. This change add as dependency
Packit Service 4387a0
    wayland-protocol.
Packit Service 4387a0
Packit Service 4387a0
-   GstVaapiFilter, GstVaapiWindow, and GstVaapiDecoder classes now
Packit Service 4387a0
    inherit from GstObject, gaining all the GStreamer’s instrumentation
Packit Service 4387a0
    support.
Packit Service 4387a0
Packit Service 4387a0
-   The metadata now specifies the plugin as Hardware class.
Packit Service 4387a0
Packit Service 4387a0
-   H264 decoder is more stable with problematic streams.
Packit Service 4387a0
Packit Service 4387a0
-   In H265 decoder added support for profiles main-422-10 (P010_10LE),
Packit Service 4387a0
    main-444 (AYUV) and main-444-10 (Y410)
Packit Service 4387a0
Packit Service 4387a0
-   JPEG decoder handles dynamic resolution changes.
Packit Service 4387a0
Packit Service 4387a0
-   More specification adherence in H264 and H265 encoders.
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
GStreamer OMX
Packit Service 4387a0
Packit Service 4387a0
-   Add support of NV16 format to video encoders input.
Packit Service 4387a0
Packit Service 4387a0
-   Video decoders now handle the ALLOCATION query to tell upstream
Packit Service 4387a0
    about the number of buffers they require. Video encoders will also
Packit Service 4387a0
    use this query to adjust their number of allocated buffers
Packit Service 4387a0
    preventing starvation when using dynamic buffer mode.
Packit Service 4387a0
Packit Service 4387a0
-   The OMX_PERFORMANCE debug category has been renamed to OMX_API_TRACE
Packit Service 4387a0
    and can now be used to track a widder variety of interactions
Packit Service 4387a0
    between OMX and GStreamer.
Packit Service 4387a0
Packit Service 4387a0
-   Video encoders will now detect frame rate only changes and will
Packit Service 4387a0
    inform OMX about it rather than doing a full format reset.
Packit Service 4387a0
Packit Service 4387a0
-   Various Zynq UltraScale+ specific improvements:
Packit Service 4387a0
    -   Video encoders are now able to import dmabuf from upstream.
Packit Service 4387a0
    -   Support for HEVC range extension profiles and more AVC profiles.
Packit Service 4387a0
    -   We can now request video encoders to generate an IDR using the
Packit Service 4387a0
        force key unit event.
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
GStreamer Editing Services and NLE
Packit Service 4387a0
Packit Service 4387a0
-   Added a gesdemux element, it is an auto pluggable element that
Packit Service 4387a0
    allows decoding edit list like files supported by GES
Packit Service 4387a0
Packit Service 4387a0
-   Added gessrc which wraps a GESTimeline as a standard source element
Packit Service 4387a0
    (implementing the ges protocol handler)
Packit Service 4387a0
Packit Service 4387a0
-   Added basic support for videorate::rate property potentially
Packit Service 4387a0
    allowing changing playback speed
Packit Service 4387a0
Packit Service 4387a0
-   Layer priority is now fully automatic and they should be moved with
Packit Service 4387a0
    the new ges_timeline_move_layer method, ges_layer_set_priority is
Packit Service 4387a0
    now deprecated.
Packit Service 4387a0
Packit Service 4387a0
-   Added a ges_timeline_element_get_layer_priority so we can simply get
Packit Service 4387a0
    all information about GESTimelineElement position in the timeline
Packit Service 4387a0
Packit Service 4387a0
-   GESVideoSource now auto orientates the images if it is defined in a
Packit Service 4387a0
    meta (overridable).
Packit Service 4387a0
Packit Service 4387a0
-   Added some PyGObject overrides to make the API more pythonic
Packit Service 4387a0
Packit Service 4387a0
-   The threading model has been made more explicit with safe guard to
Packit Service 4387a0
    make sure not thread safe APIs are not used from the wrong threads.
Packit Service 4387a0
    It is also now possible to properly handle in what thread the API
Packit Service 4387a0
    should be used.
Packit Service 4387a0
Packit Service 4387a0
-   Optimized GESClip and GESTrackElement creation
Packit Service 4387a0
Packit Service 4387a0
-   Added a way to compile out the old, unused and deprecated
Packit Service 4387a0
    GESPitiviFormatter
Packit Service 4387a0
Packit Service 4387a0
-   Re implemented the timeline editing API making it faster and making
Packit Service 4387a0
    the code much more maintainable
Packit Service 4387a0
Packit Service 4387a0
-   Simplified usage of nlecomposition outside GES by removing quirks in
Packit Service 4387a0
    it API usage and removing the need to treat it specially from an
Packit Service 4387a0
    application perspective.
Packit Service 4387a0
Packit Service 4387a0
-   ges-launch-1.0:
Packit Service 4387a0
Packit Service 4387a0
    -   Added support to add titles to the timeline
Packit Service 4387a0
    -   Enhance the help auto generating it from the code
Packit Service 4387a0
Packit Service 4387a0
-   Deprecate ges_timeline_load_from_uri as loading the timeline should
Packit Service 4387a0
    be done through a project now
Packit Service 4387a0
Packit Service 4387a0
-   MANY leaks have been plugged and the unit testsuite is now “leak
Packit Service 4387a0
    free”
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
GStreamer validate
Packit Service 4387a0
Packit Service 4387a0
-   Added an action type to verify the checksum of the sink last-sample
Packit Service 4387a0
Packit Service 4387a0
-   Added an include keyword to validate scenarios
Packit Service 4387a0
Packit Service 4387a0
-   Added the notion of variable in scenarios, with the set-vars keyword
Packit Service 4387a0
Packit Service 4387a0
-   Started adding support for “performance” like tests by allowing to
Packit Service 4387a0
    define the number of dropped buffers or the minimum buffer frequency
Packit Service 4387a0
    on a specific pad
Packit Service 4387a0
Packit Service 4387a0
-   Added a validateflow plugin which allows defining the data flow to
Packit Service 4387a0
    be seen on a particular pad and verifying that following runs match
Packit Service 4387a0
    the expectations
Packit Service 4387a0
Packit Service 4387a0
-   Added support for appsrc based test definition so we can instrument
Packit Service 4387a0
    the data pushed into the pipeline from scenarios
Packit Service 4387a0
Packit Service 4387a0
-   Added a mockdecryptor allowing adding tests with on encrypted files,
Packit Service 4387a0
    the element will potentially be instrumented with a validate
Packit Service 4387a0
    scenario
Packit Service 4387a0
Packit Service 4387a0
-   gst-validate-launcher:
Packit Service 4387a0
Packit Service 4387a0
    -   Cleaned up output
Packit Service 4387a0
Packit Service 4387a0
    -   Changed the default for “muting” tests as user doesn’t expect
Packit Service 4387a0
        hundreds of windows to show up when running the testsuite
Packit Service 4387a0
Packit Service 4387a0
    -   Fixed the outputted xunit files to be compatible with GitLab
Packit Service 4387a0
Packit Service 4387a0
    -   Added support to run tests on media files in push mode (using
Packit Service 4387a0
        pushfile://)
Packit Service 4387a0
Packit Service 4387a0
    -   Added support for running inside gst-build
Packit Service 4387a0
Packit Service 4387a0
    -   Added support for running ssim tests on rendered files
Packit Service 4387a0
Packit Service 4387a0
    -   Added a way to simply define tests on pipelines through a simple
Packit Service 4387a0
        .json file
Packit Service 4387a0
Packit Service 4387a0
    -   Added a python app to easily run python testsuite reusing all
Packit Service 4387a0
        the launcher features
Packit Service 4387a0
Packit Service 4387a0
    -   Added flatpak knowledge so we can print backtrace even when
Packit Service 4387a0
        running from within flatpak
Packit Service 4387a0
Packit Service 4387a0
    -   Added a way to automatically generated “known issues”
Packit Service 4387a0
        suppressions lines
Packit Service 4387a0
Packit Service 4387a0
    -   Added a way to rerun tests to check if they are flaky and added
Packit Service 4387a0
        a way to tolerate tests known to be flaky
Packit Service 4387a0
Packit Service 4387a0
    -   Add a way to output html log files
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
GStreamer Python Bindings
Packit Service 4387a0
Packit Service 4387a0
-   add binding for gst_pad_set_caps()
Packit Service 4387a0
Packit Service 4387a0
-   pygobject dependency requirement was bumped to >= 3.8
Packit Service 4387a0
Packit Service 4387a0
-   new audiotestsrc, audioplot, and mixer plugin examples, and a
Packit Service 4387a0
    dynamic pipeline example
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
GStreamer C# Bindings
Packit Service 4387a0
Packit Service 4387a0
-   bindings for the GstWebRTC library
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
GStreamer Rust Bindings
Packit Service 4387a0
Packit Service 4387a0
The GStreamer Rust bindings are now officially part of the GStreamer
Packit Service 4387a0
project and are also maintained in the GStreamer GitLab.
Packit Service 4387a0
Packit Service 4387a0
The releases will generally not be synchronized with the releases of
Packit Service 4387a0
other GStreamer parts due to dependencies on other projects.
Packit Service 4387a0
Packit Service 4387a0
Also unlike the other GStreamer libraries, the bindings will not commit
Packit Service 4387a0
to full API stability but instead will follow the approach that is
Packit Service 4387a0
generally taken by Rust projects, e.g.:
Packit Service 4387a0
Packit Service 4387a0
1)  0.12.X will be completely API compatible with all other 0.12.Y
Packit Service 4387a0
    versions.
Packit Service 4387a0
2)  0.12.X+1 will contain bugfixes and compatible new feature additions.
Packit Service 4387a0
3)  0.13.0 will _not_ be backwards compatible with 0.12.X but projects
Packit Service 4387a0
    will be able to stay at 0.12.X without any problems as long as they
Packit Service 4387a0
    don’t need newer features.
Packit Service 4387a0
Packit Service 4387a0
The current stable release is 0.12.2 and the next release series will be
Packit Service 4387a0
0.13, probably around March 2019.
Packit Service 4387a0
Packit Service 4387a0
At this point the bindings cover most of GStreamer core (except for most
Packit Service 4387a0
notably GstAllocator and GstMemory), and most parts of the app, audio,
Packit Service 4387a0
base, check, editing-services, gl, net. pbutils, player, rtsp,
Packit Service 4387a0
rtsp-server, sdp, video and webrtc libraries.
Packit Service 4387a0
Packit Service 4387a0
Also included is support for creating subclasses of the following types
Packit Service 4387a0
and writing GStreamer plugins:
Packit Service 4387a0
Packit Service 4387a0
-   gst::Element
Packit Service 4387a0
-   gst::Bin and gst::Pipeline
Packit Service 4387a0
-   gst::URIHandler and gst::ChildProxy
Packit Service 4387a0
-   gst::Pad, gst::GhostPad
Packit Service 4387a0
-   gst_base::Aggregator and gst_base::AggregatorPad
Packit Service 4387a0
-   gst_base::BaseSrc and gst_base::BaseSink
Packit Service 4387a0
-   gst_base::BaseTransform
Packit Service 4387a0
Packit Service 4387a0
Changes to 0.12.X since 0.12.0
Packit Service 4387a0
Packit Service 4387a0
Fixed
Packit Service 4387a0
Packit Service 4387a0
-   PTP clock constructor actually creates a PTP instead of NTP clock
Packit Service 4387a0
Packit Service 4387a0
Added
Packit Service 4387a0
Packit Service 4387a0
-   Bindings for GStreamer Editing Services
Packit Service 4387a0
-   Bindings for GStreamer Check testing library
Packit Service 4387a0
-   Bindings for the encoding profile API (encodebin)
Packit Service 4387a0
Packit Service 4387a0
-   VideoFrame, VideoInfo, AudioInfo, StructureRef implements Send and
Packit Service 4387a0
    Sync now
Packit Service 4387a0
-   VideoFrame has a function to get the raw FFI pointer
Packit Service 4387a0
-   From impls from the Error/Success enums to the combined enums like
Packit Service 4387a0
    FlowReturn
Packit Service 4387a0
-   Bin-to-dot file functions were added to the Bin trait
Packit Service 4387a0
-   gst_base::Adapter implements SendUnique now
Packit Service 4387a0
-   More complete bindings for the gst_video::VideoOverlay interface,
Packit Service 4387a0
    especially
Packit Service 4387a0
    gst_video::is_video_overlay_prepare_window_handle_message()
Packit Service 4387a0
Packit Service 4387a0
Changed
Packit Service 4387a0
Packit Service 4387a0
-   All references were updated from GitHub to freedesktop.org GitLab
Packit Service 4387a0
-   Fix various links in the README.md
Packit Service 4387a0
-   Link to the correct location for the documentation
Packit Service 4387a0
-   Remove GitLab badge as that only works with gitlab.com currently
Packit Service 4387a0
Packit Service 4387a0
Changes in git master for 0.13
Packit Service 4387a0
Packit Service 4387a0
Fixed
Packit Service 4387a0
Packit Service 4387a0
-   gst::tag::Album is the album tag now instead of artist sortname
Packit Service 4387a0
Packit Service 4387a0
Added
Packit Service 4387a0
Packit Service 4387a0
-   Subclassing infrastructure was moved directly into the bindings,
Packit Service 4387a0
    making the gst-plugin crate deprecated. This involves many API
Packit Service 4387a0
    changes but generally cleans up code and makes it more flexible.
Packit Service 4387a0
    Take a look at the gst-plugins-rs crate for various examples.
Packit Service 4387a0
Packit Service 4387a0
-   Bindings for CapsFeatures and Meta
Packit Service 4387a0
-   Bindings for
Packit Service 4387a0
    ParentBufferMeta,VideoMetaandVideoOverlayCompositionMeta`
Packit Service 4387a0
-   Bindings for VideoOverlayComposition and VideoOverlayRectangle
Packit Service 4387a0
-   Bindings for VideoTimeCode
Packit Service 4387a0
Packit Service 4387a0
-   UniqueFlowCombiner and UniqueAdapter wrappers that make use of the
Packit Service 4387a0
    Rust compile-time mutability checks and expose more API in a safe
Packit Service 4387a0
    way, and as a side-effect implement Sync and Send now
Packit Service 4387a0
Packit Service 4387a0
-   More complete bindings for Allocation Query
Packit Service 4387a0
-   pbutils functions for codec descriptions
Packit Service 4387a0
-   TagList::iter() for iterating over all tags while getting a single
Packit Service 4387a0
    value per tag. The old ::iter_tag_list() function was renamed to
Packit Service 4387a0
    ::iter_generic() and still provides access to each value for a tag
Packit Service 4387a0
-   Bus::iter() and Bus::iter_timed() iterators around the corresponding
Packit Service 4387a0
    ::pop\*() functions
Packit Service 4387a0
Packit Service 4387a0
-   serde serialization of Value can also handle Buffer now
Packit Service 4387a0
Packit Service 4387a0
-   Extensive comments to all examples with explanations
Packit Service 4387a0
-   Transmuxing example showing how to use typefind, multiqueue and
Packit Service 4387a0
    dynamic pads
Packit Service 4387a0
-   basic-tutorial-12 was ported and added
Packit Service 4387a0
Packit Service 4387a0
Changed
Packit Service 4387a0
Packit Service 4387a0
-   Rust 1.31 is the minimum supported Rust version now
Packit Service 4387a0
-   Update to latest gir code generator and glib bindings
Packit Service 4387a0
Packit Service 4387a0
-   Functions returning e.g. gst::FlowReturn or other “combined” enums
Packit Service 4387a0
    were changed to return split enums like
Packit Service 4387a0
    Result<gst::FlowSuccess, gst::FlowError> to allow usage of the
Packit Service 4387a0
    standard Rust error handling.
Packit Service 4387a0
Packit Service 4387a0
-   MiniObject subclasses are now newtype wrappers around the underlying
Packit Service 4387a0
    GstRc<FooRef> wrapper. This does not change the API in any breaking
Packit Service 4387a0
    way for the current usages, but allows MiniObjects to also be
Packit Service 4387a0
    implemented in other crates and makes sure rustdoc places the
Packit Service 4387a0
    documentation in the right places.
Packit Service 4387a0
Packit Service 4387a0
-   BinExt extension trait was renamed to GstBinExt to prevent conflicts
Packit Service 4387a0
    with gtk::Bin if both are imported
Packit Service 4387a0
Packit Service 4387a0
-   Buffer::from_slice() can’t possible return None
Packit Service 4387a0
Packit Service 4387a0
-   Various clippy warnings
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
GStreamer Rust Plugins
Packit Service 4387a0
Packit Service 4387a0
Like the GStreamer Rust bindings, the Rust plugins are now officially
Packit Service 4387a0
part of the GStreamer project and are also maintained in the GStreamer
Packit Service 4387a0
GitLab.
Packit Service 4387a0
Packit Service 4387a0
In the 0.3.x versions this contained infrastructure for writing
Packit Service 4387a0
GStreamer plugins in Rust, and a set of plugins.
Packit Service 4387a0
Packit Service 4387a0
In git master that infrastructure was moved to the GLib and GStreamer
Packit Service 4387a0
bindings directly, together with many other improvements that were made
Packit Service 4387a0
possible by this, so the gst-plugins-rs repository only contains
Packit Service 4387a0
GStreamer elements now.
Packit Service 4387a0
Packit Service 4387a0
Elements included are:
Packit Service 4387a0
Packit Service 4387a0
-   Tutorials plugin: identity, rgb2gray and sinesrc with extensive
Packit Service 4387a0
    comments
Packit Service 4387a0
Packit Service 4387a0
-   rsaudioecho, a port of the audiofx element
Packit Service 4387a0
Packit Service 4387a0
-   rsfilesrc, rsfilesink
Packit Service 4387a0
Packit Service 4387a0
-   rsflvdemux, a FLV demuxer. Not feature-equivalent with flvdemux yet
Packit Service 4387a0
Packit Service 4387a0
-   threadshare plugin: ts-appsrc, ts-proxysrc/sink, ts-queue, ts-udpsrc
Packit Service 4387a0
    and ts-tcpclientsrc elements that use a fixed number of threads and
Packit Service 4387a0
    share them between instances. For more background about these
Packit Service 4387a0
    elements see Sebastian’s talk “When adding more threads adds more
Packit Service 4387a0
    problems - Thread-sharing between elements in GStreamer” at the
Packit Service 4387a0
    GStreamer Conference 2017.
Packit Service 4387a0
Packit Service 4387a0
-   rshttpsrc, a HTTP source around the hyper/reqwest Rust libraries.
Packit Service 4387a0
    Not feature-equivalent with souphttpsrc yet.
Packit Service 4387a0
Packit Service 4387a0
-   togglerecord, an element that allows to start/stop recording at any
Packit Service 4387a0
    time and keeps all audio/video streams in sync.
Packit Service 4387a0
Packit Service 4387a0
-   mccparse and mccenc, parsers and encoders for the MCC closed caption
Packit Service 4387a0
    file format.
Packit Service 4387a0
Packit Service 4387a0
Changes to 0.3.X since 0.3.0
Packit Service 4387a0
Packit Service 4387a0
-   All references were updated from GitHub to freedesktop.org GitLab
Packit Service 4387a0
-   Fix various links in the README.md
Packit Service 4387a0
-   Link to the correct location for the documentation
Packit Service 4387a0
Packit Service 4387a0
Changes in git master for 0.4
Packit Service 4387a0
Packit Service 4387a0
-   togglerecord: Switch to parking_lot crate for mutexes/condition
Packit Service 4387a0
    variables for lower overhead
Packit Service 4387a0
-   Merge threadshare plugin here
Packit Service 4387a0
-   New closedcaption plugin with mccparse and mccenc elements
Packit Service 4387a0
-   New identity element for the tutorials plugin
Packit Service 4387a0
Packit Service 4387a0
-   Register plugins statically in tests instead of relying on the
Packit Service 4387a0
    plugin loader to find the shared library in a specific place
Packit Service 4387a0
Packit Service 4387a0
-   Update to the latest API changes in the GLib and GStreamer bindings
Packit Service 4387a0
-   Update to the latest versions of all crates
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
Build and Dependencies
Packit Service 4387a0
Packit Service 4387a0
-   The MESON BUILD SYSTEM BUILD IS NOW FEATURE-COMPLETE (*) and it is
Packit Service 4387a0
    now the recommended build system on all platforms and also used by
Packit Service 4387a0
    Cerbero to build GStreamer on all platforms. The Autotools build is
Packit Service 4387a0
    scheduled to be removed in the next cycle. Developers who currently
Packit Service 4387a0
    use gst-uninstalled should move to gst-build. The build option
Packit Service 4387a0
    naming has been cleaned up and made consistent and there are now
Packit Service 4387a0
    feature options to enable/disable plugins and various other features
Packit Service 4387a0
    on a case-by-case basis. (*) with the exception of plugin docs which
Packit Service 4387a0
    will be handled differently in future
Packit Service 4387a0
Packit Service 4387a0
-   Symbol export in libraries is now controlled via explicit exports
Packit Service 4387a0
    using symbol visibility or export defines where supported, to ensure
Packit Service 4387a0
    consistency across all platforms. This also allows libraries to have
Packit Service 4387a0
    exports that vary based on detected platform features and configure
Packit Service 4387a0
    options as is the case with the GStreamer OpenGL integration library
Packit Service 4387a0
    for example. A few symbols that had been exported by accident in
Packit Service 4387a0
    earlier versions may no longer be exported. These symbols will not
Packit Service 4387a0
    have had declarations in any public header files then though and
Packit Service 4387a0
    would not have been usable.
Packit Service 4387a0
Packit Service 4387a0
-   The GStreamer FFmpeg wrapper plugin (gst-libav) now depends on
Packit Service 4387a0
    FFmpeg 4.x and uses the new FFmpeg 4.x API and stopped relying on
Packit Service 4387a0
    ancient API that was removed with the FFmpeg 4.x release. This means
Packit Service 4387a0
    that it is no longer possible to build this module against an older
Packit Service 4387a0
    system-provided FFmpeg 3.x version. Use the internal FFmpeg 4.x copy
Packit Service 4387a0
    instead if you build using autotools, or use gst-libav 1.14.x
Packit Service 4387a0
    instead which targets the FFmpeg 3.x API and _should_ work fine in
Packit Service 4387a0
    combination with a newer GStreamer. It’s difficult for us to support
Packit Service 4387a0
    both old and new FFmpeg APIs at the same time, apologies for any
Packit Service 4387a0
    inconvenience caused.
Packit Service 4387a0
Packit Service 4387a0
-   Hardware-accelerated Nvidia video encoder/decoder plugins nvdec and
Packit Service 4387a0
    nvenc can be built against CUDA Toolkit versions 9 and 10.0 now. The
Packit Service 4387a0
    dynlink interface has been dropped since it’s deprecated in 10.0.
Packit Service 4387a0
Packit Service 4387a0
-   The (optional) OpenCV requirement has been bumped to >= 3.0.0 and
Packit Service 4387a0
    the plugin can also be built against OpenCV 4.x now.
Packit Service 4387a0
Packit Service 4387a0
-   New sctp plugin based on usrsctp (for WebRTC data channels)
Packit Service 4387a0
Packit Service 4387a0
Cerbero
Packit Service 4387a0
Packit Service 4387a0
Cerbero is a meta build system used to build GStreamer plus dependencies
Packit Service 4387a0
on platforms where dependencies are not readily available, such as
Packit Service 4387a0
Windows, Android, iOS and macOS.
Packit Service 4387a0
Packit Service 4387a0
Cerbero has seen a number of improvements:
Packit Service 4387a0
Packit Service 4387a0
-   Cerbero has been ported to Python 3 and requires Python 3.5 or newer
Packit Service 4387a0
    now
Packit Service 4387a0
Packit Service 4387a0
-   Source tarballs are now protected by checksums in the recipes to
Packit Service 4387a0
    guard against download errors and malicious takeover of projects or
Packit Service 4387a0
    websites. In addition, downloads are only allowed via secure
Packit Service 4387a0
    transports now and plain HTTP, FTP and git:// transports are not
Packit Service 4387a0
    allowed anymore.
Packit Service 4387a0
Packit Service 4387a0
-   There is now a new fetch-bootstrap command which downloads sources
Packit Service 4387a0
    required for bootstrapping, with an optional --build-tools-only
Packit Service 4387a0
    argument to match the bootstrap --build-tools-only command.
Packit Service 4387a0
Packit Service 4387a0
-   The bootstrap, build, package and bundle-source commands gained a
Packit Service 4387a0
    new --offline switch that ensures that only sources from the cache
Packit Service 4387a0
    are used and never downloaded via the network. This is useful in
Packit Service 4387a0
    combination with the fetch and fetch-bootstrap commands that acquire
Packit Service 4387a0
    sources ahead of time before any build steps are executed. This
Packit Service 4387a0
    allows more control over the sources used and when sources are
Packit Service 4387a0
    updated, and is particularly useful for build environments that
Packit Service 4387a0
    don’t have network access.
Packit Service 4387a0
Packit Service 4387a0
-   bootstrap --assume-yes will automatically say ‘yes’ to any
Packit Service 4387a0
    interactive prompts during the bootstrap stage, such as those from
Packit Service 4387a0
    apt-get or yum.
Packit Service 4387a0
Packit Service 4387a0
-   bootstrap --system-only will only bootstrap the system without build
Packit Service 4387a0
    tools.
Packit Service 4387a0
Packit Service 4387a0
-   Manifest support: The build manifest can be used in continuous
Packit Service 4387a0
    integration (CI) systems to fixate the Git revision of certain
Packit Service 4387a0
    projects so that all builds of a pipeline are on the same reference.
Packit Service 4387a0
    This is used in GStreamer’s gitlab CI for example. It can also be
Packit Service 4387a0
    used in order to re-produce a specific build. To set a manifest, you
Packit Service 4387a0
    can set manifest = 'my_manifest.xml' in your configuration file, or
Packit Service 4387a0
    use the --manifest command line option. The command line option will
Packit Service 4387a0
    take precedence over anything specific in the configuration file.
Packit Service 4387a0
Packit Service 4387a0
-   The new build-deps command can be used to build only the
Packit Service 4387a0
    dependencies of a recipe, without the recipe itself.
Packit Service 4387a0
Packit Service 4387a0
-   new --list-variants command to list available variants
Packit Service 4387a0
Packit Service 4387a0
-   variants can now be set on the command line via the -v option as a
Packit Service 4387a0
    comma-separated list. This overrides any variants set in any
Packit Service 4387a0
    configuration files.
Packit Service 4387a0
Packit Service 4387a0
-   new qt5, intelmsdk and nvidia variants for enabling Qt5 and hardware
Packit Service 4387a0
    codec support. See the Enabling Optional Features with Variants
Packit Service 4387a0
    section in the Cerbero documentation for more details how to enable
Packit Service 4387a0
    and use these variants.
Packit Service 4387a0
Packit Service 4387a0
-   When building on Windows, Cerbero can now build GStreamer recipes
Packit Service 4387a0
    and core dependencies such as glib with Visual Studio. This is
Packit Service 4387a0
    controlled by the visualstudio variant. Visual Studio 2015, 2017,
Packit Service 4387a0
    and 2019 are supported. Currently, only 64-bit x86 is supported due
Packit Service 4387a0
    to a known bug which will be fixed for the next release.
Packit Service 4387a0
Packit Service 4387a0
-   A new -t / --timestamp command line switch makes commands print
Packit Service 4387a0
    timestamps
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
Platform-specific changes and improvements
Packit Service 4387a0
Packit Service 4387a0
Android
Packit Service 4387a0
Packit Service 4387a0
-   toolchain: update compiler to clang and NDKr18. NDK r18 removed the
Packit Service 4387a0
    armv5 target and only has Android platforms that target at least
Packit Service 4387a0
    armv7 so the armv5 target is not useful anymore.
Packit Service 4387a0
Packit Service 4387a0
-   The way that GIO modules are named has changed due to upstream GLib
Packit Service 4387a0
    natively adding support for loading static GIO modules. This means
Packit Service 4387a0
    that any GStreamer application using gnutls for SSL/TLS on the
Packit Service 4387a0
    Android or iOS platforms (or any other setup using static libraries)
Packit Service 4387a0
    will fail to link looking for the g_io_module_gnutls_load_static()
Packit Service 4387a0
    function. The new function name is now
Packit Service 4387a0
    g_io_gnutls_load(gpointer data). data can be NULL for a static
Packit Service 4387a0
    library. Look at this commit for the necessary change in the
Packit Service 4387a0
    examples.
Packit Service 4387a0
Packit Service 4387a0
-   various build issues on Android have been fixed.
Packit Service 4387a0
Packit Service 4387a0
macOS and iOS
Packit Service 4387a0
Packit Service 4387a0
-   various build issues on iOS have been fixed.
Packit Service 4387a0
Packit Service 4387a0
-   the minimum required iOS version is now 9.0. The difference in
Packit Service 4387a0
    adoption between 8.0 and 9.0 is 0.1% and the bump to 9.0 fixes some
Packit Service 4387a0
    build issues.
Packit Service 4387a0
Packit Service 4387a0
-   The way that GIO modules are named has changed due to upstream GLib
Packit Service 4387a0
    natively adding support for loading static GIO modules. This means
Packit Service 4387a0
    that any GStreamer application using gnutls for SSL/TLS on the
Packit Service 4387a0
    Android or iOS platforms (or any other setup using static libraries)
Packit Service 4387a0
    will fail to link looking for the g_io_module_gnutls_load_static()
Packit Service 4387a0
    function. The new function name is now
Packit Service 4387a0
    g_io_gnutls_load(gpointer data). data can be NULL for a static
Packit Service 4387a0
    library. Look at this commit for the necessary change in the
Packit Service 4387a0
    examples.
Packit Service 4387a0
Packit Service 4387a0
Windows
Packit Service 4387a0
Packit Service 4387a0
-   The webrtcdsp element is shipped again as part of the Windows binary
Packit Service 4387a0
    packages, the build system issue has been resolved.
Packit Service 4387a0
Packit Service 4387a0
-   ‘Inconsistent DLL linkage’ warnings when building with MSVC have
Packit Service 4387a0
    been fixed
Packit Service 4387a0
Packit Service 4387a0
-   Hardware-accelerated Nvidia video encoder/decoder plugins nvdec and
Packit Service 4387a0
    nvenc build on Windows now, also with MSVC and using Meson.
Packit Service 4387a0
Packit Service 4387a0
-   The ksvideosrc camera capture plugin supports 16-bit grayscale video
Packit Service 4387a0
    now
Packit Service 4387a0
Packit Service 4387a0
-   The wasapisrc audio capture element implements loopback recording
Packit Service 4387a0
    from another output device or sink
Packit Service 4387a0
Packit Service 4387a0
-   wasapisink recover from low buffer levels in shared mode and some
Packit Service 4387a0
    exclusive mode fixes
Packit Service 4387a0
Packit Service 4387a0
-   dshowsrc now implements the GstDeviceMonitor interface
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
Contributors
Packit Service 4387a0
Packit Service 4387a0
Aaron Boxer, Aleix Conchillo Flaqué, Alessandro Decina, Alexandru Băluț,
Packit Service 4387a0
Alex Ashley, Alexey Chernov, Alicia Boya García, Amit Pandya, Andoni
Packit Service 4387a0
Morales Alastruey, Andreas Frisch, Andre McCurdy, Andy Green, Anthony
Packit Service 4387a0
Violo, Antoine Jacoutot, Antonio Ospite, Arun Raghavan, Aurelien Jarno,
Packit Service 4387a0
Aurélien Zanelli, ayaka, Bananahemic, Bastian Köcher, Branko Subasic,
Packit Service 4387a0
Brendan Shanks, Carlos Rafael Giani, Charlie Turner, Christoph Reiter,
Packit Service 4387a0
Corentin Noël, Daeseok Youn, Damian Vicino, Dan Kegel, Daniel Drake,
Packit Service 4387a0
Daniel Klamt, Danilo Spinella, Dardo D Kleiner, David Ing, David
Packit Service 4387a0
Svensson Fors, Devarsh Thakkar, Dimitrios Katsaros, Edward Hervey,
Packit Service 4387a0
Emilio Pozuelo Monfort, Enrique Ocaña González, Erlend Eriksen, Ezequiel
Packit Service 4387a0
Garcia, Fabien Dessenne, Fabrizio Gennari, Florent Thiéry, Francisco
Packit Service 4387a0
Velazquez, Freyr666, Garima Gaur, Gary Bisson, George Kiagiadakis, Georg
Packit Service 4387a0
Lippitsch, Georg Ottinger, Geunsik Lim, Göran Jönsson, Guillaume
Packit Service 4387a0
Desmottes, H1Gdev, Haihao Xiang, Haihua Hu, Harshad Khedkar, Havard
Packit Service 4387a0
Graff, He Junyan, Hoonhee Lee, Hosang Lee, Hyunjun Ko, Ilya Smelykh,
Packit Service 4387a0
Ingo Randolf, Iñigo Huguet, Jakub Adam, James Stevenson, Jan Alexander
Packit Service 4387a0
Steffens, Jan Schmidt, Jerome Laheurte, Jimmy Ohn, Joakim Johansson,
Packit Service 4387a0
Jochen Henneberg, Johan Bjäreholt, John-Mark Bell, John Bassett, John
Packit Service 4387a0
Nikolaides, Jonathan Karlsson, Jonny Lamb, Jordan Petridis, Josep Torra,
Packit Service 4387a0
Joshua M. Doe, Jos van Egmond, Juan Navarro, Julian Bouzas, Jun Xie,
Packit Service 4387a0
Junyan He, Justin Kim, Kai Kang, Kim Tae Soo, Kirill Marinushkin, Kyrylo
Packit Service 4387a0
Polezhaiev, Lars Petter Endresen, Linus Svensson, Louis-Francis
Packit Service 4387a0
Ratté-Boulianne, Lucas Stach, Luis de Bethencourt, Luz Paz, Lyon Wang,
Packit Service 4387a0
Maciej Wolny, Marc-André Lureau, Marc Leeman, Marco Trevisan (Treviño),
Packit Service 4387a0
Marcos Kintschner, Marian Mihailescu, Marinus Schraal, Mark Nauwelaerts,
Packit Service 4387a0
Marouen Ghodhbane, Martin Kelly, Matej Knopp, Mathieu Duponchelle,
Packit Service 4387a0
Matteo Valdina, Matthew Waters, Matthias Fend, memeka, Michael Drake,
Packit Service 4387a0
Michael Gruner, Michael Olbrich, Michael Tretter, Miguel Paris, Mike
Packit Service 4387a0
Wey, Mikhail Fludkov, Naveen Cherukuri, Nicola Murino, Nicolas Dufresne,
Packit Service 4387a0
Niels De Graef, Nirbheek Chauhan, Norbert Wesp, Ognyan Tonchev, Olivier
Packit Service 4387a0
Crête, Omar Akkila, Pat DeSantis, Patricia Muscalu, Patrick Radizi,
Packit Service 4387a0
Patrik Nilsson, Paul Kocialkowski, Per Forlin, Peter Körner, Peter
Packit Service 4387a0
Seiderer, Petr Kulhavy, Philippe Normand, Philippe Renon, Philipp Zabel,
Packit Service 4387a0
Pierre Labastie, Piotr Drąg, Roland Jon, Roman Sivriver, Roman Shpuntov,
Packit Service 4387a0
Rosen Penev, Russel Winder, Sam Gigliotti, Santiago Carot-Nemesio,
Packit Service 4387a0
Sean-Der, Sebastian Dröge, Seungha Yang, Shi Yan, Sjoerd Simons, Snir
Packit Service 4387a0
Sheriber, Song Bing, Soon, Thean Siew, Sreerenj Balachandran, Stefan
Packit Service 4387a0
Ringel, Stephane Cerveau, Stian Selnes, Suhas Nayak, Takeshi Sato,
Packit Service 4387a0
Thiago Santos, Thibault Saunier, Thomas Bluemel, Tianhao Liu,
Packit Service 4387a0
Tim-Philipp Müller, Tobias Ronge, Tomasz Andrzejak, Tomislav Tustonić,
Packit Service 4387a0
U. Artie Eoff, Ulf Olsson, Varunkumar Allagadapa, Víctor Guzmán, Víctor
Packit Service 4387a0
Manuel Jáquez Leal, Vincenzo Bono, Vineeth T M, Vivia Nikolaidou, Wang
Packit Service 4387a0
Fei, wangzq, Whoopie, Wim Taymans, Wind Yuan, Wonchul Lee, Xabier
Packit Service 4387a0
Rodriguez Calvar, Xavier Claessens, Haihao Xiang, Yacine Bandou,
Packit Service 4387a0
Yeongjin Jeong, Yuji Kuwabara, Zeeshan Ali,
Packit Service 4387a0
Packit Service 4387a0
… and many others who have contributed bug reports, translations, sent
Packit Service 4387a0
suggestions or helped testing.
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
Stable 1.16 branch
Packit Service 4387a0
Packit Service 4387a0
After the 1.16.0 release there will be several 1.16.x bug-fix releases
Packit Service 4387a0
which will contain bug fixes which have been deemed suitable for a
Packit Service 4387a0
stable branch, but no new features or intrusive changes will be added to
Packit Service 4387a0
a bug-fix release usually. The 1.16.x bug-fix releases will be made from
Packit Service 4387a0
the git 1.16 branch, which is a stable branch.
Packit Service 4387a0
Packit Service 4387a0
1.16.0
Packit Service 4387a0
Packit Service 4387a0
1.16.0 was released on 19 April 2019.
Packit Service 4387a0
Packit Service 4387a0
1.16.1
Packit Service 4387a0
Packit Service 4387a0
The first 1.16 bug-fix release (1.16.1) was released on 23 September
Packit Service 4387a0
2019.
Packit Service 4387a0
Packit Service 4387a0
This release only contains bugfixes and it _should_ be safe to update
Packit Service 4387a0
from 1.16.0.
Packit Service 4387a0
Packit Service 4387a0
Highlighted bugfixes in 1.16.1
Packit Service 4387a0
Packit Service 4387a0
-   GStreamer-vaapi: fix green frames and decoding artefacts in some
Packit Service 4387a0
    cases
Packit Service 4387a0
-   OpenGL: fix wayland event source burning CPU in certain
Packit Service 4387a0
    circumstances
Packit Service 4387a0
-   Memory leak fixes and memory footprint improvements
Packit Service 4387a0
-   Performance improvements
Packit Service 4387a0
-   Stability and security fixes
Packit Service 4387a0
-   Fix enum for GST_MESSAGE_DEVICE_CHANGED which is technically an API
Packit Service 4387a0
    break, but this is only used internally in GStreamer and duplicated
Packit Service 4387a0
    another message enum
Packit Service 4387a0
-   hls: Make crypto dependency optional when hls-crypto is auto
Packit Service 4387a0
-   player: fix switching back and forth between forward and reverse
Packit Service 4387a0
    playback
Packit Service 4387a0
-   decklinkaudiosink: Drop late buffers
Packit Service 4387a0
-   openh264enc: Fix compilation with openh264 v2.0
Packit Service 4387a0
-   wasapisrc: fix segtotal value being always 2
Packit Service 4387a0
-   Fix issues on Android Q
Packit Service 4387a0
Packit Service 4387a0
gstreamer core
Packit Service 4387a0
Packit Service 4387a0
-   device: gst_device_create_element() is transfer floating, not
Packit Service 4387a0
    transfer full
Packit Service 4387a0
-   filesink, fdsink: respect IOV_MAX for the writev iovec array
Packit Service 4387a0
    (Solaris)
Packit Service 4387a0
-   miniobject: free qdata array when the last qdata is removed (reduces
Packit Service 4387a0
    memory footprint)
Packit Service 4387a0
-   bin: Fix minor race when adding to a bin
Packit Service 4387a0
-   aggregator: Actually handle NEED_DATA return from update_src_caps()
Packit Service 4387a0
-   aggregator: Ensure that the source pad is created as a
Packit Service 4387a0
    GstAggregatorPad if no type is given in the pad template
Packit Service 4387a0
-   latency: fix custom event leaks
Packit Service 4387a0
-   registry: Use plugin directory from the build system for
Packit Service 4387a0
    relocateable Windows builds
Packit Service 4387a0
-   message: fix up enum value for GST_MESSAGE_DEVICE_CHANGED
Packit Service 4387a0
-   info: Fix deadlock in gst_ring_buffer_logger_log()
Packit Service 4387a0
-   downloadbuffer: Check for flush after seek
Packit Service 4387a0
-   identity: Non-live upstream have no max latency
Packit Service 4387a0
-   identity: Fix the ts-offset property getter
Packit Service 4387a0
-   aggregator: Make parsing of explicit sink pad names more robust
Packit Service 4387a0
-   bufferpool: Fix the buffer size reset code
Packit Service 4387a0
-   fakesink, fakesrc, identity: sync gst_buffer_get_flags_string() with
Packit Service 4387a0
    new flags
Packit Service 4387a0
-   multiqueue: never unref queries we do not own
Packit Service 4387a0
-   concat: Reset last_stop on FLUSH_STOP too
Packit Service 4387a0
-   aggregator: fix flow-return boolean return type mismatch
Packit Service 4387a0
-   gstpad: Handle probes that reset the data field
Packit Service 4387a0
-   gst: Add support for g_autoptr(GstPromise)
Packit Service 4387a0
-   gst-inspect: fix unused-const-variable error in windows
Packit Service 4387a0
-   base: Include gstbitwriter.h in the single-include header
Packit Service 4387a0
-   Add various Since: 1.16 markers
Packit Service 4387a0
-   GST_MESSAGE_DEVICE_CHANGED duplicates GST_MESSAGE_REDIRECT
Packit Service 4387a0
-   Targetting wrong meson version
Packit Service 4387a0
-   meson: Make get_flex_version.py script executable
Packit Service 4387a0
-   meson: Link to objects instead of static helper library
Packit Service 4387a0
-   meson: set correct install path for gdb helper
Packit Service 4387a0
-   meson: fix warning about configure_file() install kwarg
Packit Service 4387a0
Packit Service 4387a0
gst-plugins-base
Packit Service 4387a0
Packit Service 4387a0
-   video-info: parse field-order for all interleaved formats
Packit Service 4387a0
-   tests: fix up valgrind suppressions for glibc getaddrinfo leaks
Packit Service 4387a0
-   meson: Reenable NEON support (in audio resampler)
Packit Service 4387a0
-   audio-resampler: Update NEON to handle remainders not multiples of 4
Packit Service 4387a0
-   eglimage: Fix memory leak
Packit Service 4387a0
-   audiodecoder: Set output caps with negotiated caps to avoid critical
Packit Service 4387a0
    info printed
Packit Service 4387a0
-   video-frame: Take TFF flag from the video info if it was set in
Packit Service 4387a0
    there
Packit Service 4387a0
-   glcolorconvert: Fix external-oes shader
Packit Service 4387a0
-   video-anc: Fix ADF detection when trying to extract data from vanc
Packit Service 4387a0
-   gl/wayland: fix wayland event source burning CPU
Packit Service 4387a0
-   configure: add used attribute in order to make NEON detection
Packit Service 4387a0
    working with -flto.
Packit Service 4387a0
-   audioaggregator: Return a valid rate range from caps query if
Packit Service 4387a0
    downstream supports a whole range
Packit Service 4387a0
-   rtspconnection: data-offset increase not set
Packit Service 4387a0
-   rtpsconnection: Fix number of n_vectors
Packit Service 4387a0
-   video-color: Add compile-time assert for ColorimetryInfo enum
Packit Service 4387a0
-   audiodecoder: Fix leak on failed audio gaps
Packit Service 4387a0
-   glupload: Keep track of cached EGLImage texture format
Packit Service 4387a0
-   playsink: Set ts-offset to text sink.
Packit Service 4387a0
-   meson.build: use join_paths() on prefix
Packit Service 4387a0
-   compositor: copy frames as-is when possible
Packit Service 4387a0
-   compositor: Skip background when a pad obscures it completely
Packit Service 4387a0
-   rtspconnection: Start CSeq at 1 (some servers don’t cope well with
Packit Service 4387a0
    seqnum 0)
Packit Service 4387a0
-   viv-fb: fix build break for GST_GL_API
Packit Service 4387a0
-   gl/tests: fix shader creation tests part 2
Packit Service 4387a0
-   gl/tests: fix shader creation tests
Packit Service 4387a0
-   wayland: set the event queue also for the xdg_wm_base object
Packit Service 4387a0
-   video: Added GI annotation for gstvideoaffinetransformationmeta
Packit Service 4387a0
    apply_matrix
Packit Service 4387a0
-   compositor: Remove unneeded left shift for ARGB/AYUV SOURCE operator
Packit Service 4387a0
-   Colorimetry fixes
Packit Service 4387a0
-   alsasrc: Don’t use driver timestamp if it’s zero
Packit Service 4387a0
-   gloverlaycompositor: fix crash if buffer doesn’t have video meta
Packit Service 4387a0
-   meson: Don’t try to find gio-unix on Windows
Packit Service 4387a0
-   glshader: fix default external-oes shaders
Packit Service 4387a0
-   subparse: fix pushing WebVTT cue with no newline at the end
Packit Service 4387a0
-   meson: Missing “android” choice in gl_winsys
Packit Service 4387a0
-   video test: Keep BE test inline with LE test
Packit Service 4387a0
-   id3tag: Correctly validate the year from v1 tags before passing to
Packit Service 4387a0
    GstDateTime
Packit Service 4387a0
-   gl/wayland: Don’t prefix wl_shell struct field
Packit Service 4387a0
-   eglimage: Add compatibility define for DRM_FORMAT_NV24
Packit Service 4387a0
-   Add various Since: 1.16 markers
Packit Service 4387a0
-   video-anc: Handle SD formats correctly
Packit Service 4387a0
-   Docs: add GL_CFLAGS to GTK_DOC_CFLAGS
Packit Service 4387a0
-   GL: using vaapi and showing on glimagesink on wayland loads one core
Packit Service 4387a0
    for 100% on 1.16
Packit Service 4387a0
-   GL: external-oes shader places precision qualifier before #extension
Packit Service 4387a0
    (was: androidmedia amcviddec fail after 1.15.90 1.16.0 update)
Packit Service 4387a0
Packit Service 4387a0
gst-plugins-good
Packit Service 4387a0
Packit Service 4387a0
-   alpha: Fix one_over_kc calculation on arm/aarch64
Packit Service 4387a0
-   souphttpsrc: Fix incompatible type build warning
Packit Service 4387a0
-   rtpjitterbuffer: limit max-dropout-time to maxint32
Packit Service 4387a0
-   rtpjitterbuffer: Clear clock master before unreffing
Packit Service 4387a0
-   qtdemux: Use empty-array safe way to cleanup GPtrArray
Packit Service 4387a0
-   v4l2: Fix type compatibility issue with glibc 2.30
Packit Service 4387a0
-   valgrind: suppress Cond error coming from gnutls and Ignore leaks
Packit Service 4387a0
    caused by shout/sethostent
Packit Service 4387a0
-   rtpfunnel: forward correct segment when switching pad
Packit Service 4387a0
-   gtkglsink: fix crash when widget is resized after element
Packit Service 4387a0
    destruction
Packit Service 4387a0
-   jpegdec: Don’t dereference NULL input state if we have no caps in
Packit Service 4387a0
    TIME segments
Packit Service 4387a0
-   rtp: opuspay: fix memory leak in gst_rtp_opus_pay_setcaps
Packit Service 4387a0
-   v4l2videodec: return right type for drain.
Packit Service 4387a0
-   rtpssrcdemux: Avoid taking streamlock out-of-band
Packit Service 4387a0
-   Support v4l2src buffer orphaning
Packit Service 4387a0
-   splitmuxsink: Only set running time on finalizing sink element when
Packit Service 4387a0
    in async-finalize mode
Packit Service 4387a0
-   rtpsession: Always keep at least one NACK on early RTCP
Packit Service 4387a0
-   rtspsrc: do not try to send EOS with invalid seqnum
Packit Service 4387a0
-   rtpsession: Call on-new-ssrc earlier
Packit Service 4387a0
-   rtprawdepay: Don’t get rid of the buffer pool on FLUSH_STOP
Packit Service 4387a0
-   rtpbin: Free storage when freeing session
Packit Service 4387a0
-   scaletempo: Advertise interleaved layout in caps templates
Packit Service 4387a0
-   Support v4l2src buffer orphaning
Packit Service 4387a0
Packit Service 4387a0
gst-plugins-bad
Packit Service 4387a0
Packit Service 4387a0
-   hls: Make crypto dependency optional when hls-crypto is auto
Packit Service 4387a0
-   player: fix switching back and forth between forward and reverse
Packit Service 4387a0
    playback
Packit Service 4387a0
-   decklinkaudiosink: Drop late buffers
Packit Service 4387a0
-   srt: Add stats property, include sender-side statistics and fix a
Packit Service 4387a0
    crash
Packit Service 4387a0
-   dshowsrcwrapper: fix regression on device selection
Packit Service 4387a0
-   tsdemux: Limit the maximum PES payload size
Packit Service 4387a0
-   wayland: Define libdrm_dep in meson.build to fix meson configure
Packit Service 4387a0
    error when kms is disabled
Packit Service 4387a0
-   sctp: Fix crash on free() when using the MSVC binaries
Packit Service 4387a0
-   webrtc: Fix signals documentation
Packit Service 4387a0
-   h264parse: don’t critical on VUI parameters > 2^31
Packit Service 4387a0
-   rtmp: Fix crash inside free() with MSVC on Windows
Packit Service 4387a0
-   iqa: fix leak of map_meta.data
Packit Service 4387a0
-   d3dvideosink: Fix crash on WinProc handler
Packit Service 4387a0
-   amc: Fix crash when a sync_meta survives its sink
Packit Service 4387a0
-   pitch: Fix race between putSamples() and setting soundtouch
Packit Service 4387a0
    parameters
Packit Service 4387a0
-   webrtc: fix type of max-retransmits, make it work
Packit Service 4387a0
-   mxfdemux: Also allow picture essence element type 0x05 for VC-3
Packit Service 4387a0
-   wasapi: fix symbol redefinition build error
Packit Service 4387a0
-   decklinkvideosrc: Retrieve mode of the ancillary data from the frame
Packit Service 4387a0
-   decklinkaudiosrc/decklinkvideosrc: Do nothing in
Packit Service 4387a0
    BaseSrc::negotiate() and…
Packit Service 4387a0
-   adaptivedemux: do not retry downloads during shutdown.
Packit Service 4387a0
-   webrtcbin: fix GInetAddress leak
Packit Service 4387a0
-   dtls: fix dtls connection object leak
Packit Service 4387a0
-   siren: fix a global buffer overflow spotted by asan
Packit Service 4387a0
-   kmssink: Fix implicit declaration build error
Packit Service 4387a0
-   Fix -Werror=return-type error in configure.
Packit Service 4387a0
-   aiff: Fix infinite loop in header parsing.
Packit Service 4387a0
-   nvdec: Fix possible frame drop on EOS
Packit Service 4387a0
-   srtserversrc: yields malformed rtp payloads
Packit Service 4387a0
-   srtsink: Fix crash in case no URI
Packit Service 4387a0
-   dtlsagent: Fix leaked dtlscertificate
Packit Service 4387a0
-   meson: bluez: Early terminate configure on Windows
Packit Service 4387a0
-   decklink: Correctly ensure >=16 byte alignment for the buffers we
Packit Service 4387a0
    allocate
Packit Service 4387a0
-   webrtcbin: fix DTLS when receivebin is set to DROP
Packit Service 4387a0
-   zbar: Include running-time, stream-time and duration in the messages
Packit Service 4387a0
-   uvch264src: Make sure we set our segment
Packit Service 4387a0
-   avwait: Allow start and end timecode to be set back to NULL
Packit Service 4387a0
-   avwait: Don’t print warnings for every buffer passed
Packit Service 4387a0
-   hls/meson: fix dependency logic
Packit Service 4387a0
-   Waylandsink gnome shell workaround
Packit Service 4387a0
-   avwait: Allow setting start timecode after end timecode; protect
Packit Service 4387a0
    propeties with mutex
Packit Service 4387a0
-   wayland/wlbuffer: just return if used_by_compositor is true when
Packit Service 4387a0
    attach
Packit Service 4387a0
-   proxy: Set SOURCE flag on the source and SINK flag on the sink
Packit Service 4387a0
-   ivfparse: Check the data size against IVF_FRAME_HEADER_SIZE
Packit Service 4387a0
-   webrtc: Add various Since markers to new types after 1.14.0
Packit Service 4387a0
-   msdk: fix the typo in debug category
Packit Service 4387a0
-   dtlsagent: Do not overwrite openssl locking callbacks
Packit Service 4387a0
-   meson: Fix typo in gsm header file name
Packit Service 4387a0
-   srt: handle races in state change
Packit Service 4387a0
-   webrtc: Add g_autoptr() support for public types
Packit Service 4387a0
-   openh264enc: Fix compilation with openh264 v2.0
Packit Service 4387a0
-   meson: Allow CUDA_PATH fallback on linux
Packit Service 4387a0
-   meson: fix build with opencv=enabled and opencv4. Fixes #964
Packit Service 4387a0
-   meson: Add support for the colormanagement plugin
Packit Service 4387a0
-   autotools: gstsctp: set LDFLAGS
Packit Service 4387a0
-   nvenc/nvdec: Add NVIDIA SDK headers to noinst_HEADERS
Packit Service 4387a0
-   h264parse: Fix typo when setting multiview mode and flags
Packit Service 4387a0
-   Add various Since: 1.16 markers
Packit Service 4387a0
-   opencv: allow compilation against 4.1.x
Packit Service 4387a0
-   Backport of some minor srt commits without MR into 1.16
Packit Service 4387a0
-   meson: fix build with opencv=enabled and opencv4
Packit Service 4387a0
-   wasapisrc: fix segtotal value being always 2 due to an unused
Packit Service 4387a0
    variable
Packit Service 4387a0
-   meson: colormanagement missing
Packit Service 4387a0
-   androidmedia amcviddec fail after 1.15.90 1.16.0 update
Packit Service 4387a0
Packit Service 4387a0
gst-plugins-ugly
Packit Service 4387a0
Packit Service 4387a0
-   meson: Always require the gmodule dependency
Packit Service 4387a0
Packit Service 4387a0
gst-libav
Packit Service 4387a0
Packit Service 4387a0
-   docs: don’t include the type hierarchy, fixing build with gtk-doc
Packit Service 4387a0
    1.30
Packit Service 4387a0
-   avvidenc: Correctly signal interlaced input to ffmpeg when the input
Packit Service 4387a0
    caps are interlaced
Packit Service 4387a0
-   autotools: add bcrypt to win32 libs
Packit Service 4387a0
-   gstav: Use libavcodec util function for version check
Packit Service 4387a0
-   API documentation fails to build with gtk-doc 1.30
Packit Service 4387a0
Packit Service 4387a0
gst-rtsp-server
Packit Service 4387a0
Packit Service 4387a0
-   rtsp-client: RTP Info must exist in PLAY response
Packit Service 4387a0
-   onvif-media: fix “void function returning a value” compiler warning
Packit Service 4387a0
-   Add various Since: 1.16 markers
Packit Service 4387a0
Packit Service 4387a0
gstreamer-vaapi
Packit Service 4387a0
Packit Service 4387a0
-   fix egl context leak and display creation race
Packit Service 4387a0
-   pluginutil: Remove Mesa from drivers white list
Packit Service 4387a0
-   Classify vaapidecodebin as a hardware decoder
Packit Service 4387a0
-   Fix two leak
Packit Service 4387a0
-   vaapivideomemory: demote error message to info
Packit Service 4387a0
-   encoder: vp8,vp9: reset frame_counter when input frame’s format
Packit Service 4387a0
    changes
Packit Service 4387a0
-   encoder: mpeg2: No packed header for SPS and PPS
Packit Service 4387a0
-   decoder: vp9: clear parser pointer after release
Packit Service 4387a0
-   encoder: Fixes deadlock in change state function
Packit Service 4387a0
-   encoder: h265: reset num_ref_idx_l1_active_minus1 when low delay B.
Packit Service 4387a0
-   encoder: not call ensure_num_slices inside g_assert()
Packit Service 4387a0
-   encoder: continue if roi meta is NULL
Packit Service 4387a0
-   decoder: vp9: Set chroma_ ype by VP9 bit_depth
Packit Service 4387a0
-   vaapipostproc: don’t do any color conversion when GL_TEXTURE_UPLOAD
Packit Service 4387a0
-   libs: surface: fix double free when dmabuf export fails
Packit Service 4387a0
-   h264 colors and artifacts upon upgrade to GStreamer Core Library
Packit Service 4387a0
    version 1.15.90
Packit Service 4387a0
Packit Service 4387a0
gst-editing-services
Packit Service 4387a0
Packit Service 4387a0
-   element: Properly handle the fact that pasting can return NULL
Packit Service 4387a0
-   Add various missing Since markers
Packit Service 4387a0
-   launch: Fix caps restriction short names
Packit Service 4387a0
-   python: Avoid warning about using deprecated methods
Packit Service 4387a0
-   video-transition: When using non crossfade effect use ‘over’
Packit Service 4387a0
    operations
Packit Service 4387a0
-   meson: Generate a pkgconfig file for the GES plugin
Packit Service 4387a0
Packit Service 4387a0
gst-devtools
Packit Service 4387a0
Packit Service 4387a0
-   launcher: testsuites: skip systemclock stress tests
Packit Service 4387a0
-   validate: fix build on macOS
Packit Service 4387a0
Packit Service 4387a0
gst-build
Packit Service 4387a0
Packit Service 4387a0
-   Update win flex bison binaries
Packit Service 4387a0
-   Update the flexmeson windows binary version
Packit Service 4387a0
-   Don’t allow people to run meson inside the uninstalled env
Packit Service 4387a0
Packit Service 4387a0
Cerbero build tool and packaging changes in 1.16.1
Packit Service 4387a0
Packit Service 4387a0
-   cerbero: Add enums for Fedora 30, Fedora 31 and Debian bullseye
Packit Service 4387a0
-   gnutls.recipe: Fix crash when running on Android Q
Packit Service 4387a0
-   recipes: Upgrade openssl to 1.1.1c
Packit Service 4387a0
-   Fix some typos
Packit Service 4387a0
-   add support for vs build tools 2019, fixes #183
Packit Service 4387a0
-   android: Adjust gstreamer-1.0.mk for NDK r20
Packit Service 4387a0
-   Fix license enums
Packit Service 4387a0
-   bootstrap: Fix dnf usage on CentOS
Packit Service 4387a0
-   Make _add_system_libs reentrant
Packit Service 4387a0
-   meson.recipe: Fix setting of bitcode compiler options
Packit Service 4387a0
-   cerbero: support Ubuntu disco dingo
Packit Service 4387a0
-   cerbero: Set utf-8 to execution character set also on MSVC
Packit Service 4387a0
-   git: simplify the reset of the source branch.
Packit Service 4387a0
-   FORTIFY: %n not allowed on Android Q
Packit Service 4387a0
-   Fails to build if there’s no license file for the given license
Packit Service 4387a0
    (GPL/LGPL without Plus, Proprietary, …)
Packit Service 4387a0
Packit Service 4387a0
Contributors to 1.16.1
Packit Service 4387a0
Packit Service 4387a0
Aaron Boxer, Adam Duskett, Alicia Boya García, Andoni Morales Alastruey,
Packit Service 4387a0
Antonio Ospite, Arun Raghavan, Askar Safin, A. Wilcox, Charlie Turner,
Packit Service 4387a0
Christoph Reiter, Damian Hobson-Garcia, Daniel Klamt, Danny Smith, David
Packit Service 4387a0
Gunzinger, David Ing, David Svensson Fors, Doug Nazar, Edward Hervey,
Packit Service 4387a0
Eike Hein, Fabrice Bellet, Fernando Herrrera, Georg Lippitsch, Göran
Packit Service 4387a0
Jönsson, Guillaume Desmottes, Haihao Xiang, Haihua Hu, Håvard Graff, Hou
Packit Service 4387a0
Qi, Ignacio Casal Quinteiro, Ilya Smelykh, Jan Schmidt, Javier Celaya,
Packit Service 4387a0
Jim Mason, Jonas Larsson, Jordan Petridis, Jose Antonio Santos Cadenas,
Packit Service 4387a0
Juan Navarro, Knut Andre Tidemann, Kristofer Björkström, Lucas Stach,
Packit Service 4387a0
Marco Felsch, Marcos Kintschner, Mark Nauwelaerts, Martin Liska, Martin
Packit Service 4387a0
Theriault, Mathieu Duponchelle, Matthew Waters, Michael Olbrich, Mike
Packit Service 4387a0
Gorse, Nicola Murino, Nicolas Dufresne, Niels De Graef, Niklas
Packit Service 4387a0
Hambüchen, Nirbheek Chauhan, Olivier Crête, Philippe Normand, Ross
Packit Service 4387a0
Burton, Sebastian Dröge, Seungha Yang, Song Bing, Thiago Santos,
Packit Service 4387a0
Thibault Saunier, Thomas Coldrick, Tim-Philipp Müller, Víctor Manuel
Packit Service 4387a0
Jáquez Leal, Vivia Nikolaidou, Xavier Claessens, Yeongjin Jeong,
Packit Service 4387a0
Packit Service 4387a0
… and many others who have contributed bug reports, translations, sent
Packit Service 4387a0
suggestions or helped testing. Thank you all!
Packit Service 4387a0
Packit Service 4387a0
List of merge requests and issues fixed in 1.16.1
Packit Service 4387a0
Packit Service 4387a0
-   List of Merge Requests applied in 1.16
Packit Service 4387a0
-   List of Issues fixed in 1.16.1
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
Known Issues
Packit Service 4387a0
Packit Service 4387a0
-   possibly breaking/incompatible changes to properties of wrapped
Packit Service 4387a0
    FFmpeg decoders and encoders (see above).
Packit Service 4387a0
Packit Service 4387a0
-   The way that GIO modules are named has changed due to upstream GLib
Packit Service 4387a0
    natively adding support for loading static GIO modules. This means
Packit Service 4387a0
    that any GStreamer application using gnutls for SSL/TLS on the
Packit Service 4387a0
    Android or iOS platforms (or any other setup using static libraries)
Packit Service 4387a0
    will fail to link looking for the g_io_module_gnutls_load_static()
Packit Service 4387a0
    function. The new function name is now
Packit Service 4387a0
    g_io_gnutls_load(gpointer data). See Android/iOS sections above for
Packit Service 4387a0
    further details.
Packit Service 4387a0
Packit Service 4387a0
Packit Service 4387a0
Schedule for 1.18
Packit Service 4387a0
Packit Service 4387a0
Our next major feature release will be 1.18, and 1.17 will be the
Packit Service 4387a0
unstable development version leading up to the stable 1.18 release. The
Packit Service 4387a0
development of 1.17/1.18 will happen in the git master branch.
Packit Service 4387a0
Packit Service 4387a0
The plan for the 1.18 development cycle is yet to be confirmed, but it
Packit Service 4387a0
is now expected that feature freeze will take place shortly after the
Packit Service 4387a0
GStreamer conference/hackfest in early November 2019, with the first
Packit Service 4387a0
1.18 stable release ready in late November or early December.
Packit Service 4387a0
Packit Service 4387a0
1.18 will be backwards-compatible to the stable 1.16, 1.14, 1.12, 1.10,
Packit Service 4387a0
1.8, 1.6, 1.4, 1.2 and 1.0 release series.
Packit Service 4387a0
Packit Service 4387a0
------------------------------------------------------------------------
Packit Service 4387a0
Packit Service 4387a0
_These release notes have been prepared by Tim-Philipp Müller with_
Packit Service 4387a0
_contributions from Sebastian Dröge, Guillaume Desmottes, Matthew
Packit Service 4387a0
Waters, _ _Thibault Saunier, and Víctor Manuel Jáquez Leal._
Packit Service 4387a0
Packit Service 4387a0
_License: CC BY-SA 4.0_