...
 
Commits (12)
[submodule "common"]
path = common
url = https://anongit.freedesktop.org/git/gstreamer/common.git
url = https://gitlab.freedesktop.org/gstreamer/common.git
=== release 1.14.5 ===
2019-05-29 18:09:30 +0100 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
* NEWS:
* RELEASE:
* configure.ac:
* gst-python.doap:
* meson.build:
Release 1.14.5
2018-11-05 05:51:05 +0000 Matthew Waters <matthew@centricular.com>
* .gitmodules:
* gst-python.doap:
Update git locations to gitlab
2018-07-20 15:58:35 +0200 Mathieu Duponchelle <mathieu@centricular.com>
* examples/helloworld.py:
helloworld: fix typo
=== release 1.14.4 ===
2018-10-02 23:13:44 +0100 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
* NEWS:
* RELEASE:
* configure.ac:
* gst-python.doap:
* meson.build:
Release 1.14.4
=== release 1.14.3 ===
2018-09-16 16:37:41 +0100 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
* NEWS:
* RELEASE:
* configure.ac:
* gst-python.doap:
* meson.build:
Release 1.14.3
=== release 1.14.2 ===
2018-07-20 01:08:03 +0100 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
* NEWS:
* RELEASE:
* configure.ac:
* gst-python.doap:
* meson.build:
Release 1.14.2
=== release 1.14.1 ===
2018-05-17 13:35:48 +0100 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
* NEWS:
* RELEASE:
* configure.ac:
* gst-python.doap:
* meson.build:
Release 1.14.1
2018-03-20 08:54:24 +0100 Havard Graff <havard.graff@gmail.com>
* gi/overrides/gstmodule.c:
gstmodule: fix warning when building against python2
PyMapping_GetItemString’ discards ‘const’ qualifier from pointer target type
https://bugzilla.gnome.org/show_bug.cgi?id=796093
2018-04-25 15:11:31 -0300 Thibault Saunier <tsaunier@igalia.com>
* configure.ac:
* meson.build:
Bump pygobject dependency to 3.8
2018-04-25 19:47:19 +0200 Emilio Pozuelo Monfort <pochu27@gmail.com>
* gi/overrides/Gst.py:
* gi/overrides/GstPbutils.py:
overrides: use get_introspection_module
https://bugzilla.gnome.org/show_bug.cgi?id=795555
2018-04-07 21:46:07 -0300 Thibault Saunier <tsaunier@igalia.com>
* gi/overrides/Gst.py:
overrides: Fix mixup between query function and chain one
2018-04-03 13:28:16 +0100 Tim-Philipp Müller <tim@centricular.com>
* Makefile.am:
Dist autogen.sh and configure.ac
=== release 1.14.0 ===
2018-03-19 20:29:28 +0000 Tim-Philipp Müller <tim@centricular.com>
......
......@@ -30,6 +30,8 @@ include $(top_srcdir)/common/cruft.mak
all-local: check-cruft
EXTRA_DIST = \
configure.ac autogen.sh depcomp \
RELEASE gst-python.doap \
meson.build \
meson_options.txt \
config.h.meson \
......
......@@ -3,19 +3,18 @@
GSTREAMER 1.14 RELEASE NOTES
The GStreamer team is proud to announce a new major feature release in
the stable 1.x API series of your favourite cross-platform multimedia
framework!
GStreamer 1.14.0 was originally released on 19 March 2018.
As always, this release is again packed with new features, bug fixes and
other improvements.
The latest bug-fix release in the 1.14 series is 1.14.5 and was released
on 29 May 2019.
GStreamer 1.14.0 was released on 19 March 2018.
1.14.5 will likely be the last release in the 1.14 release series which
has now been superseded by the 1.16 release series.
See https://gstreamer.freedesktop.org/releases/1.14/ for the latest
version of this document.
_Last updated: Monday 19 March 2018, 12:00 UTC (log)_
_Last updated: Wednesday 29 May 2019, 12:00 UTC (log)_
Introduction
......@@ -91,14 +90,14 @@ webrtcbin element and a webrtc support library. This allows you to build
applications that set up connections with and stream to and from other
WebRTC peers, whilst leveraging all of the usual GStreamer features such
as hardware-accelerated encoding and decoding, OpenGL integration,
zero-copy and embedded platform support. And it's easy to build and
zero-copy and embedded platform support. And its easy to build and
integrate into your application too!
WebRTC enables real-time communication of audio, video and data with web
browsers and native apps, and it is supported or about to be support by
recent versions of all major browsers and operating systems.
GStreamer's new WebRTC implementation uses libnice for Interactive
GStreamers new WebRTC implementation uses libnice for Interactive
Connectivity Establishment (ICE) to figure out the best way to
communicate with other peers, punch holes into firewalls, and traverse
NATs.
......@@ -108,9 +107,9 @@ the code sticks fairly close to the PeerConnection API. Where
functionality is missing it should be fairly obvious where it needs to
go.
For more details, background and example code, check out Nirbheek's blog
post _GStreamer has grown a WebRTC implementation_, as well as Matthew's
_GStreamer WebRTC_ talk from last year's GStreamer Conference in Prague.
For more details, background and example code, check out Nirbheeks blog
post _GStreamer has grown a WebRTC implementation_, as well as Matthews
_GStreamer WebRTC_ talk from last years GStreamer Conference in Prague.
New Elements
......@@ -121,7 +120,7 @@ New Elements
(SRT) video streaming protocol, which aims to be easy to use whilst
striking a new balance between reliability and latency for low
latency video streaming use cases. More details about SRT and the
implementation in GStreamer in Olivier's blog post _SRT in
implementation in GStreamer in Oliviers blog post _SRT in
GStreamer_.
- av1enc and av1dec elements providing experimental support for the
......@@ -142,7 +141,7 @@ New Elements
GStreamer-internal latency as well as latency added by external
components or circuits.
- 'fakevideosink is basically a null sink for video data and very
- fakevideosink is basically a null sink for video data and very
similar to fakesink, only that it will answer allocation queries and
will advertise support for various video-specific things such
GstVideoMeta, GstVideoCropMeta and GstVideoOverlayCompositionMeta
......@@ -153,22 +152,22 @@ New Elements
multiple processes. Usually a GStreamer pipeline runs in a single
process and parallelism is achieved by distributing workloads using
multiple threads. This means that all elements in the pipeline have
access to all the other elements' memory space however, including
access to all the other elements memory space however, including
that of any libraries used. For security reasons one might therefore
want to put sensitive parts of a pipeline such as DRM and decryption
handling into a separate process to isolate it from the rest of the
pipeline. This can now be achieved with the new ipcpipeline plugin.
Check out George's blog post _ipcpipeline: Splitting a GStreamer
Check out Georges blog post _ipcpipeline: Splitting a GStreamer
pipeline into multiple processes_ or his lightning talk from last
year's GStreamer Conference in Prague for all the gory details.
years GStreamer Conference in Prague for all the gory details.
- proxysink and proxysrc are new elements to pass data from one
pipeline to another within the same process, very similar to the
existing inter elements, but not limited to raw audio and video
data. These new proxy elements are very special in how they work
under the hood, which makes them extremely powerful, but also
dangerous if not used with care. The reason for this is that it's
not just data that's passed from sink to src, but these elements
dangerous if not used with care. The reason for this is that its
not just data thats passed from sink to src, but these elements
basically establish a two-way wormhole that passes through queries
and events in both directions, which means caps negotiation and
allocation query driven zero-copy can work through this wormhole.
......@@ -177,13 +176,13 @@ New Elements
streaming thread. There is a queue element inside proxysrc to
decouple the source thread from the sink thread, but that queue is
not unlimited, so it is entirely possible that the proxysink
pipeline thread gets stuck in the proxysrc pipeline, e.g. when that
pipeline thread gets stuck in the proxysrc pipeline, e.g. when that
pipeline is paused or stops consuming data for some other reason.
This means that one should always shut down down the proxysrc
pipeline before shutting down the proxysink pipeline, for example.
Or at least take care when shutting down pipelines. Usually this is
not a problem though, especially not in live pipelines. For more
information see Nirbheek's blog post _Decoupling GStreamer
information see Nirbheeks blog post _Decoupling GStreamer
Pipelines_, and also check out out the new ipcpipeline plugin for
sending data from one process to another process (see above).
......@@ -208,13 +207,13 @@ Noteworthy new API
in the GStreamer WebRTC implementation.
- GstReferenceTimestampMeta is a new meta that allows you to attach
additional reference timestamps to a buffer. These timestamps don't
additional reference timestamps to a buffer. These timestamps dont
have to relate to the pipeline clock in any way. Examples of this
could be an NTP timestamp when the media was captured, a frame
counter on the capture side or the (local) UNIX timestamp when the
media was captured. The decklink elements make use of this.
- GstVideoRegionOfInterestMeta: it's now possible to attach generic
- GstVideoRegionOfInterestMeta: its now possible to attach generic
free-form element-specific parameters to a region of interest meta,
for example to tell a downstream encoder to use certain codec
parameters for a certain region.
......@@ -251,7 +250,7 @@ Noteworthy new API
- GstAudioStreamAlign is a new helper object for audio elements that
handles discontinuity detection and sample alignment. It will align
samples after the previous buffer's samples, but keep track of the
samples after the previous buffers samples, but keep track of the
divergence between buffer timestamps and sample position (jitter).
If it exceeds a configurable threshold the alignment will be reset.
This simply factors out code that was duplicated in a number of
......@@ -271,7 +270,7 @@ Noteworthy new API
installing and handling a "render-rectangle" property on elements
that implement this interface, so that this functionality can also
be used from the command line for testing and debugging purposes.
The property wasn't added to the interface itself as that would
The property wasnt added to the interface itself as that would
require all implementors to provide it which would not be
backwards-compatible.
......@@ -284,11 +283,11 @@ Noteworthy new API
element is based on this.
- Full list of API new in 1.14:
- GStreamer core API new in 1.14
- GStreamer base library API new in 1.14
- gst-plugins-base libraries API new in 1.14
- gst-plugins-bad: no list, mostly GstWebRTC library and new
non-stream audio decoder base class.
- GStreamer core API new in 1.14
- GStreamer base library API new in 1.14
- gst-plugins-base libraries API new in 1.14
- gst-plugins-bad: no list, mostly GstWebRTC library and new
non-stream audio decoder base class.
New RTP features and improvements
......@@ -305,7 +304,7 @@ New RTP features and improvements
packet loss using _retransmission (rtx)_. GStreamer has had
retransmission support for a long time, but Forward Error Correction
allows for different trade-offs: The advantage of Forward Error
Correction is that it doesn't add latency, whereas retransmission
Correction is that it doesnt add latency, whereas retransmission
requires at least one more roundtrip to request and hopefully
receive lost packets; Forward Error Correction increases the
required bandwidth however, even in situations where there is no
......@@ -321,7 +320,7 @@ New RTP features and improvements
- a few new buffer flags for FEC support:
GST_BUFFER_FLAG_NON_DROPPABLE can be used to mark important buffers,
e.g. to flag RTP packets carrying keyframes or codec setup data for
e.g. to flag RTP packets carrying keyframes or codec setup data for
RTP Forward Error Correction purposes, or to prevent still video
frames from being dropped by elements due to QoS. There already is a
GST_BUFFER_FLAG_DROPPABLE. GST_RTP_BUFFER_FLAG_REDUNDANT is used to
......@@ -341,8 +340,8 @@ New RTP features and improvements
- rtpjitterbuffer has a new fast start mode: in many scenarios the
jitter buffer will have to wait for the full configured latency
before it can start outputting packets. The reason for that is that
it often can't know what the sequence number of the first expected
RTP packet is, so it can't know whether a packet earlier than the
it often cant know what the sequence number of the first expected
RTP packet is, so it cant know whether a packet earlier than the
earliest packet received will still arrive in future. This behaviour
can now be bypassed by setting the "faststart-min-packets" property
to the number of consecutive packets needed to start, and the jitter
......@@ -371,10 +370,10 @@ New element features
- tee now does allocation query aggregation, which is important for
zero-copy and efficient data handling, especially for video. Those
who want to drop allocation queries on purpose can use the identity
element's new "drop-allocation" property for that instead.
elements new "drop-allocation" property for that instead.
- audioconvert now has a "mix-matrix" property, which obsoletes the
audiomixmatrix element. There's also mix matrix support in the audio
audiomixmatrix element. Theres also mix matrix support in the audio
conversion and channel mixing API.
- x264enc: new "insert-vui" property to disable VUI (Video Usability
......@@ -413,7 +412,7 @@ New element features
- rtspsrc now has support for RTSP protocol version 2.0 as well as
ONVIF audio backchannels (see below for more details). It also
sports a new "accept-certificate" signal for "manually" checking a
sports a new "accept-certificate" signal for “manually” checking a
TLS certificate for validity. It now also prints RTSP/SDP messages
to the gstreamer debug log instead of stdout.
......@@ -422,8 +421,8 @@ New element features
- splitmuxsink has gained a "split-now" action signal and new
"alignment-threshold" and "use-robust-muxing" properties. If robust
muxing is enabled, it will check and set the muxer's reserved space
properties if present. This is primarily for use with mp4mux's
muxing is enabled, it will check and set the muxers reserved space
properties if present. This is primarily for use with mp4muxs
robust muxing mode.
- qtmux has a new _prefill recording mode_ which sets up a moov header
......@@ -447,24 +446,24 @@ New element features
This allows for connection reuse, cookie sharing, etc. Applications
can also force a context to use. In other news, HTTP headers
received from the server are posted as element messages on the bus
now for easier diagnostics, and it's also possible now to use other
now for easier diagnostics, and its also possible now to use other
types of proxy servers such as SOCKS4 or SOCKS5 proxies, support for
which is implemented directly in gio. Before only HTTP proxies were
allowed.
- qtmux, mp4mux and matroskamux will now refuse caps changes of input
streams at runtime. This isn't really supported with these
streams at runtime. This isnt really supported with these
containers (or would have to be implemented differently with a
considerable effort) and doesn't produce valid and spec-compliant
files that will play everywhere. So if you can't guarantee that the
input caps won't change, use a container format that does support on
considerable effort) and doesnt produce valid and spec-compliant
files that will play everywhere. So if you cant guarantee that the
input caps wont change, use a container format that does support on
the fly caps changes for a stream such as MPEG-TS or use
splitmuxsink which can start a new file when the caps change. What
would happen before is that e.g. rtph264depay or rtph265depay would
simply send new SPS/PPS inband even for AVC format, which would then
get muxed into the container as if nothing changed. Some decoders
will handle this just fine, but that's often more luck than by
design. In any case, it's not right, so we disallow it now.
will handle this just fine, but thats often more luck than by
design. In any case, its not right, so we disallow it now.
- matroskamux has Table of Content (TOC) support now (chapters etc.)
and matroskademux TOC support has been improved. matroskademux has
......@@ -479,9 +478,12 @@ New element features
- The avwait element has a new "end-timecode" property and posts
"avwait-status" element messages now whenever avwait starts or stops
passing through data (e.g. because target-timecode and end-timecode
passing through data (e.g. because target-timecode and end-timecode
respectively have been reached).
- ‘alsamidisrc’ element has been broken for many many years and has
now been repaired allowing live capture from your MIDI HW.
- h265parse and h265parse will try harder to make upstream output the
same caps as downstream requires or prefers, thus avoiding
unnecessary conversion. The parsers also expose chroma format and
......@@ -501,7 +503,7 @@ New element features
- The NVIDIA NVENC hardware-accelerated video encoders now support
dynamic bitrate and preset reconfiguration and support the I420
4:2:0 video format. It's also possible to configure the gop size via
4:2:0 video format. Its also possible to configure the gop size via
the new "gop-size" property.
- The MPEG-TS muxer and demuxer (tsmux, tsdemux) now have support for
......@@ -516,25 +518,25 @@ New element features
- The decklink plugin for Blackmagic capture and playback cards have
seen numerous improvements:
- decklinkaudiosrc and decklinkvideosrc now put hardware reference
timestamp on buffers in form of GstReferenceTimestampMetas.
This can be useful to know on multi-channel cards which frames from
different channels were captured at the same time.
- decklinkaudiosrc and decklinkvideosrc now put hardware reference
timestamp on buffers in form of GstReferenceTimestampMetas.
This can be useful to know on multi-channel cards which frames
from different channels were captured at the same time.
- decklinkvideosink has gained support for Decklink hardware keying
with two new properties ("keyer-mode" and "keyer-level") to control
the built-in hardware keyer of Decklink cards.
- decklinkvideosink has gained support for Decklink hardware
keying with two new properties ("keyer-mode" and "keyer-level")
to control the built-in hardware keyer of Decklink cards.
- decklinkaudiosink has been re-implemented around GstBaseSink instead
of the GstAudioBaseSink base class, since the Decklink APIs don't
fit very well with the GstAudioBaseSink APIs, which used to cause
various problems due to inaccuracies in the clock calculations.
Problems were audio drop-outs and A/V sync going wrong after
pausing/seeking.
- decklinkaudiosink has been re-implemented around GstBaseSink
instead of the GstAudioBaseSink base class, since the Decklink
APIs don’t fit very well with the GstAudioBaseSink APIs, which
used to cause various problems due to inaccuracies in the clock
calculations. Problems were audio drop-outs and A/V sync going
wrong after pausing/seeking.
- support for more than 16 devices, without any artificial limit
- support for more than 16 devices, without any artificial limit
- work continued on the msdk plugin for Intel's Media SDK which
- work continued on the msdk plugin for Intels Media SDK which
enables hardware-accelerated video encoding and decoding on Intel
graphics hardware on Windows or Linux. Added the video memory,
buffer pool, and context/session sharing support which helps to
......@@ -553,7 +555,7 @@ New element features
streams, meaning it can do fast-forward/fast-rewind of normal (non-I
frame only) streams even at high speeds without saturating network
bandwidth or exceeding decoder capabilities. It will keep statistics
and skip keyframes or fragments as needed. See Sebastian's blog post
and skip keyframes or fragments as needed. See Sebastians blog post
_DASH trick-mode playback in GStreamer_ for more details. It also
supports webvtt subtitle streams now and has seen improvements when
seeking in live streams.
......@@ -561,13 +563,13 @@ New element features
- kmssink has seen lots of fixes and improvements in this cycle,
including:
- Raspberry Pi (vc4) and Xilinx DRM driver support
- Raspberry Pi (vc4) and Xilinx DRM driver support
- new "render-rectangle" property that can be used from the command
line as well as "display-width" and "display-height", and
"can-scale" properties
- new "render-rectangle" property that can be used from the
command line as well as "display-width" and "display-height",
and "can-scale" properties
- GstVideoCropMeta support
- GstVideoCropMeta support
Plugin and library moves
......@@ -597,7 +599,7 @@ handle multiple input pads and aggregate streams into one output stream.
It improves upon the existing GstCollectPads API in that it is a proper
base class which was also designed with live streaming in mind.
GstAggregator subclasses will operate in a mode with defined latency if
any of the inputs are live streams. This ensures that the pipeline won't
any of the inputs are live streams. This ensures that the pipeline wont
stall if any of the inputs stop producing data, and that the configured
maximum latency is never exceeded.
......@@ -605,19 +607,19 @@ GstAudioAggregator, audiomixer and audiointerleave moved from -bad to -base
GstAudioAggregator is a new base class for raw audio mixers and muxers
and is based on GstAggregator (see above). It provides defined-latency
mixing of raw audio inputs and ensures that the pipeline won't stall
mixing of raw audio inputs and ensures that the pipeline wont stall
even if one of the input streams stops producing data.
As part of the move to stabilise the API there were some last-minute API
changes and clean-ups, but those should mostly affect internal elements.
It is used by the audiomixer element, which is a replacement for
'adder', which did not handle live inputs very well and did not align
‘adder’, which did not handle live inputs very well and did not align
input streams according to running time. audiomixer should behave much
better in that respect and generally behave as one would expected in
most scenarios.
Similarly, audiointerleave replaces the 'interleave' element which did
Similarly, audiointerleave replaces the ‘interleave’ element which did
not handle live inputs or non-aligned inputs very robustly.
GstAudioAggregator and its subclases have gained support for input
......@@ -626,7 +628,7 @@ as that would add additional latency. Furthermore, GAP events are now
handled correctly.
We hope to move the video equivalents (GstVideoAggregator and
compositor) to -base in the next cycle, i.e. for 1.16.
compositor) to -base in the next cycle, i.e. for 1.16.
GStreamer OpenGL integration library and plugin moved from -bad to -base
......@@ -647,7 +649,7 @@ The Qt QML-based qmlgl plugin has moved to -good and provides a
qmlglsink video sink element as well as a qmlglsrc element. qmlglsink
renders video into a QQuickItem, and qmlglsrc captures a window from a
QML view and feeds it as video into a pipeline for further processing.
Both elements leverage GStreamer's OpenGL integration. In addition to
Both elements leverage GStreamers OpenGL integration. In addition to
the move to -good the following features were added:
- A proxy object is now used for thread-safe access to the QML widget
......@@ -655,20 +657,20 @@ the move to -good the following features were added:
video widget at any time, so without this we might be left with a
dangling pointer.
- EGL is now supported with the X11 backend, which works e.g. on
- EGL is now supported with the X11 backend, which works e.g. on
Freescale imx6
The GTK+ plugin has also moved from -bad to -good. It includes gtksink
and gtkglsink which both render video into a GtkWidget. gtksink uses
Cairo for rendering the video, which will work everywhere in all
scenarios but involves an extra memory copy, whereas gtkglsink fully
leverages GStreamer's OpenGL integration, but might not work properly in
all scenarios, e.g. where the OpenGL driver does not properly support
leverages GStreamers OpenGL integration, but might not work properly in
all scenarios, e.g. where the OpenGL driver does not properly support
multiple sharing contexts in different threads; on Linux Nouveau is
known to be broken in this respect, whilst NVIDIA's proprietary drivers
known to be broken in this respect, whilst NVIDIAs proprietary drivers
and most other drivers generally work fine, and the experience with
Intel's driver seems to be mixed; some proprietary embedded Linux
drivers don't work; macOS works).
Intels driver seems to be mixed; some proprietary embedded Linux
drivers don’t work; macOS works.
GstPhysMemoryAllocator interface moved from -bad to -base
......@@ -677,13 +679,13 @@ physical address backed memory.
Plugin removals
- the sunaudio plugin was removed, since it couldn't ever have been
- the sunaudio plugin was removed, since it couldnt ever have been
built or used with GStreamer 1.0, but no one even noticed in all
these years.
- the schroedinger-based Dirac encoder/decoder plugin has been
removed, as there is no longer any upstream or anyone else
maintaining it. Seeing that it's quite a fringe codec it seemed best
maintaining it. Seeing that its quite a fringe codec it seemed best
to simply remove it.
API removals
......@@ -697,29 +699,28 @@ Miscellaneous changes
- The video support library has gained support for a few new pixel
formats:
- NV16_10LE32: 10-bit variant of NV16, packed into 32bit words (plus 2
bits padding)
- NV12_10LE32: 10-bit variant of NV12, packed into 32bit words (plus 2
bits padding)
- GRAY10_LE32: 10-bit grayscale, packed in 32bit words (plus 2 bits
padding)
- NV16_10LE32: 10-bit variant of NV16, packed into 32bit words
(plus 2 bits padding)
- NV12_10LE32: 10-bit variant of NV12, packed into 32bit words
(plus 2 bits padding)
- GRAY10_LE32: 10-bit grayscale, packed in 32bit words (plus 2
bits padding)
- decodebin, playbin and GstDiscoverer have seen stability
improvements in corner cases such as shutdown while still starting
up or shutdown in error cases (hat tip to the oss-fuzz project).
- floating reference handling was inconsistent and has been cleaned up
across the board, including annotations. This solves various
long-standing memory leaks in language bindings, which e.g. often
long-standing memory leaks in language bindings, which e.g. often
caused elements and pads to be leaked.
- major gobject-introspection annotation improvements for large parts
of the library API, including nullability of return types and
function parameters, correct types (e.g. strings vs. filenames),
function parameters, correct types (e.g. strings vs. filenames),
ownership transfer, array length parameters, etc. This allows to use
bigger parts of the GStreamer API to be safely used from dynamic
language bindings (e.g. Python, Javascript) and allows static
bindings (e.g. C#, Rust, Vala) to autogenerate more API bindings
language bindings (e.g. Python, Javascript) and allows static
bindings (e.g. C#, Rust, Vala) to autogenerate more API bindings
without manual intervention.
OpenGL integration
......@@ -728,7 +729,7 @@ OpenGL integration
gst-plugins-base and is now part of our stable API.
- new MESA3D GBM BACKEND. On devices with working libdrm support, it
is possible to use Mesa3D's GBM library to set up an EGL context
is possible to use Mesa3Ds GBM library to set up an EGL context
directly on top of KMS. This makes it possible to use the GStreamer
OpenGL elements without a windowing system if a libdrm- and
Mesa3D-supported GPU is present.
......@@ -762,8 +763,8 @@ Tracing framework and debugging improvements
log handler of course, this just provides this functionality as part
of GStreamer.
- 'fakevideosink is a null sink for video data that advertises
video-specific metas ane behaves like a video sink. See above for
- fakevideosink is a null sink for video data that advertises
video-specific metas and behaves like a video sink. See above for
more details.
- gst_util_dump_buffer() prints the content of a buffer to stdout.
......@@ -818,8 +819,8 @@ GStreamer RTSP server
the best of our knowledge the first RTSP 2.0 implementation ever!
- ONVIF audio backchannel support. This is an extension specified by
ONVIF that allows RTSP clients (e.g. a control room operator) to
send audio back to the RTSP server (e.g. an IP camera).
ONVIF that allows RTSP clients (e.g. a control room operator) to
send audio back to the RTSP server (e.g. an IP camera).
Theoretically this could have been done also by using the RECORD
method of the RTSP protocol, but ONVIF chose not to do that, so the
backchannel is set up alongside the other streams. Format
......@@ -837,7 +838,7 @@ GStreamer RTSP server
manually checking a TLS certificate for validity.
- Fix keep-alive/timeout issue for certain clients using TCP
interleave as transport who don't do keep-alive via some other
interleave as transport who dont do keep-alive via some other
method such as periodic RTSP OPTION requests. We now put netaddress
metas on the packets from the TCP interleaved stream, so can map
RTCP packets to the right stream in the server and can handle them
......@@ -854,7 +855,7 @@ GStreamer RTSP server
GStreamer VAAPI
- Improve DMABuf's usage, both upstream and dowstream, and
- Improve DMABufs usage, both upstream and dowstream, and
memory:DMABuf caps feature is also negotiated when the dmabuf-based
buffer cannot be mapped onto user-space.
......@@ -866,19 +867,19 @@ GStreamer VAAPI
- VA display cache was removed.
- libva's log messages are now redirected into the GStreamer log
- libvas log messages are now redirected into the GStreamer log
handler.
- Decoders improved their upstream re-negotiation by avoiding to
re-instantiate the internal decoder if stream caps are compatible
with the previous one.
- When downstream doesn't support GstVideoMeta and the decoded frames
don't have standard strides, they are copied onto system
- When downstream doesnt support GstVideoMeta and the decoded frames
dont have standard strides, they are copied onto system
memory-based buffers.
- H.264 decoder has a low-latency property, for live streams which
doesn't conform the H.264 specification but still it is required to
doesnt conform the H.264 specification but still it is required to
push the frames to downstream as soon as possible.
- As part of the Google Summer of Code 2017 the H.264 decoder drops
......@@ -925,6 +926,8 @@ GStreamer VAAPI
- vaapisink was demoted to marginal rank on Wayland because COGL
cannot display YUV surfaces.
More details in Víctor’s blog post _GStreamer VA-API 1.14: what’s new?_.
GStreamer Editing Services and NLE
......@@ -941,7 +944,7 @@ GStreamer Editing Services and NLE
GStreamer validate
- Handle running scenarios on live pipelines (in the "content sense",
- Handle running scenarios on live pipelines (in the “content sense”,
not the GStreamer one)
- Implement RTSP support with a basic server based on gst-rtsp-server,
......@@ -968,7 +971,7 @@ GStreamer C# bindings
- Update wrapped API to GStreamer 1.14
- Removed the need for "glue" code
- Removed the need for “glue” code
- Provide a nuget
......@@ -988,7 +991,7 @@ Build and Dependencies
- some plugins and libraries have moved between modules, see the
_Plugin and_ _library moves_ section above, and their respective
dependencies have moved with them of course, e.g. the GStreamer
dependencies have moved with them of course, e.g. the GStreamer
OpenGL integration support library and plugin is now in
gst-plugins-base, and mpg123, LAME and twoLAME based audio decoder
and encoder plugins are now in gst-plugins-good.
......@@ -1032,7 +1035,7 @@ versions of GStreamer of course).
There is also a small structure size related ABI breakage introduced in
the gst-plugins-bad codecparsers library between version 1.13.90 and
1.13.91. This should "only" affect gstreamer-vaapi, so anyone who ships
1.13.91. This should “only” affect gstreamer-vaapi, so anyone who ships
the release candidates is advised to upgrade those two modules at the
same time.
......@@ -1045,39 +1048,44 @@ Android
macOS and iOS
- this section will be filled in shortly {FIXME!}
- no major changes in macOS and iOS support, only bugfixes
Windows
- The GStreamer wasapi plugin was rewritten and should not only be
usable now, but in top shape and suitable for low-latency use cases.
The Windows Audio Session API (WASAPI) is Microsoft's most modern
The Windows Audio Session API (WASAPI) is Microsofts most modern
method for talking with audio devices, and now that the wasapi
plugin is up to scratch it is preferred over the directsound plugin.
The ranks of the wasapisink and wasapisrc elements have been updated
to reflect this. Further improvements include:
- support for more than 2 channels
- support for more than 2 channels
- a new "low-latency" property to enable low-latency operation
(which should always be safe to enable)
- a new "low-latency" property to enable low-latency operation (which
should always be safe to enable)
- support for the AudioClient3 API which is only available on
Windows 10: in wasapisink this will be used automatically if
available; in wasapisrc it will have to be enabled explicitly
via the "use-audioclient3" property, as capturing audio with low
latency and without glitches seems to require setting the
realtime priority of the entire pipeline to “critical”, which
cannot be done from inside the element, but has to be done in
the application.
- support for the AudioClient3 API which is only available on Windows
10: in wasapisink this will be used automatically if available; in
wasapisrc it will have to be enabled explicitly via the
"use-audioclient3" property, as capturing audio with low latency and
without glitches seems to require setting the realtime priority of
the entire pipeline to "critical", which cannot be done from inside
the element, but has to be done in the application.
- set realtime thread priority to avoid glitches
- set realtime thread priority to avoid glitches
- allow opening devices in exclusive mode, which provides much
lower latency compared to shared mode where WASAPI’s engine
period is 10ms. This can be activated via the "exclusive"
property.
- allow opening devices in exclusive mode, which provides much lower
latency compared to shared mode where WASAPI's engine period is
10ms. This can be activated via the "exclusive" property.
- Also see Nirbheek’s blog post _Low Latency Audio on Windows with
GStreamer_.
- There are now GstDeviceProvider implementations for the wasapi and
directsound plugins, so it's now possible to discover both audio
directsound plugins, so its now possible to discover both audio
sources and audio sinks on Windows via the GstDeviceMonitor API
- debug log timestamps are now higher granularity owing to
......@@ -1132,12 +1140,12 @@ Sreerenj Balachandran, Stefan Kost, Stefan Popa, Stefan Sauer, Stian
Selnes, Thiago Santos, Thibault Saunier, Thijs Vermeir, Tim Allen,
Tim-Philipp Müller, Ting-Wei Lan, Tomas Rataj, Tom Bailey, Tonu Jaansoo,
U. Artie Eoff, Umang Jain, Ursula Maplehurst, VaL Doroshchuk, Vasilis
Liaskovitis, Víctor Manuel Jáquez Leal, vijay, Vincent Penquerc'h,
Liaskovitis, Víctor Manuel Jáquez Leal, vijay, Vincent Penquerch,
Vineeth T M, Vivia Nikolaidou, Wang Xin-yu (王昕宇), Wei Feng, Wim
Taymans, Wonchul Lee, Xabier Rodriguez Calvar, Xavier Claessens,
XuGuangxin, Yasushi SHOJI, Yi A Wang, Youness Alaoui,
... and many others who have contributed bug reports, translations, sent
and many others who have contributed bug reports, translations, sent
suggestions or helped testing.
......@@ -1167,12 +1175,534 @@ the git 1.14 branch, which is a stable branch.
1.14.1
The first 1.14 bug-fix release (1.14.1) is scheduled to be released
around the end of March or beginning of April.
The first 1.14 bug-fix release (1.14.1) was released on 17 May 2018.
This release only contains bugfixes and it should be safe to update from
1.14.0.
Noteworthy bugfixes in 1.14.1
- GstPad: Fix race condition causing the same probe to be called
multiple times
- Fix occasional deadlocks on windows when outputting debug logging
- Fix debug levels being applied in the wrong order
- GIR annotation fixes for bindings
- audiomixer, audioaggregator: fix some negotiation issues
- gst-play-1.0: fix leaving stdin in non-blocking mode after exit
- flvmux: wait for caps on all input pads before writing header even
if source is live
- flvmux: don’t wake up the muxer unless there is data, fixes busy
looping if there’s no input data
- flvmux: fix major leak of input buffers
- rtspsrc, rtsp-server: revert to RTSP RFC handling of
sendonly/recvonly attributes
- rtpvrawpay: fix payloading with very large mtu sizes where
everything fits into a single RTP packet
- v4l2: Fix hard-coded enabled v4l2 probe on Linux/ARM
- v4l2: Disable DMABuf for emulated formats when using libv4l2
- v4l2: Always set colorimetry in S_FMT
- asfdemux: Set stream-format field for H264 streams and handle H.264
in bytestream format
- x265enc: Fix tagging of keyframes on output buffers
- ladspa: Fix critical during plugin load on Windows
- decklink: Fix COM initialisation on Windows
- h264parse: fix re-use across pipeline stop/restart
- mpegtsmux: fix force-keyframe event handling and PCR/PMT changes
that would confuse some players with generated HLS streams
- adaptivedemux: Support period change in live playlist
- rfbsrc: Fix support for applevncserver and support NULL pool in
decide_allocation
- jpegparse: Fix APP1 marker segment parsing
- h265parse: Make caps writable before modifying them, fixes criticals
- fakevideosink: request an extra buffer if enable-last-sample is
enabled
- wasapisrc: Don’t provide a clock based on WASAPI’s clock
- wasapi: Only use audioclient3 when low-latency, as it might
otherwise glitch with slow CPUs or VMs
- wasapi: Don’t derive device period from latency time, should make it
more robust against glitches
- audiolatency: Fix wave detection in buffers and avoid bogus pts
values while starting
- msdk: fix plugin load on implementations with only HW support
- msdk: dec: set framerate to the driver only if provided, not in 0/1
case
- msdk: Don’t set extended coding options for JPEG encode
- rtponviftimestamp: fix state change function init/reset causing
races/crashes on shutdown
- decklink: fix initialization failure in windows binary
- ladspa: Fix critical warnings during plugin load on Windows and fix
dependencies in meson build
- gl: fix cross-compilation error with viv-fb
- qmlglsink: make work with eglfs_kms
- rtspclientsink: Don’t deadlock in preroll on early close
- rtspclientsink: Fix client ports for the RTCP backchannel
- rtsp-server: Fix session timeout when streaming data to client over
TCP
- vaapiencode: h264: find best profile in those available, fixing
negotiation errors
- vaapi: remove custom GstGL context handling, use GstGL instead.
Fixes GL Context sharing with WebkitGtk on wayland
- gst-editing-services: various fixes
- gst-python: bump pygobject req to 3.8; fix
GstPad.set_query_function(); dist autogen.sh and configure.ac in
tarball
- g-i: pick up GstVideo-1.0.gir from local build directory in GstGL
build
- g-i: update constant values for bindings
- avoid duplicate symbols in plugins across modules in static builds
- … and many, many more!
Cerbero build tool and packaging changes in 1.14.1
Toolchain updates on iOS and Android necessitated a fairly large number
of changes in our cerbero build tool used to create our binary packages
for the various platforms we support:
- Add support for Ubuntu 18.04 in cerbero
- Fix generation of fat shared libraries on macOS
- gnutls: also rename assembly functions on macos/ios to fix link
errors
- gnutls: fix assembly symbol names for windows x86
- openssl: fix linking on android/armv7
- openssl: fix linker issue with Android NDK’s r16 binutils
- ffmpeg: disable asm for android x86 to fix issues when linking with
apps
- x264: disable asm for android x86 to fix issues when linking with
apps
- gnutls: rename private symbols for armv8, x86 to not conflict with
openssl
- mpg123: disable assembly on android/x86 to fix linker problems with
relocations
- Check built version while loading recipe and rebuild if needed
- Fix packaging of libgcc_s_sjlj which was missing in Windows packages
- Make not-found in library search fatal so we don’t accidentally ship
broken packages
- ship the proxy plugin which was new in 1.14
- Fix git commands accidentally pulling in locally built libraries and
failing
Contributors to 1.14.1
Antonio Ospite, Aurélien Zanelli, Brendan Shanks, Carlos Rafael Giani,
Edward Hervey, Emilio Pozuelo Monfort, Enrique Ocaña González, Garima
Gaur, Georg Lippitsch, Guillaume Desmottes, Havard Graff, Hoonhee Lee,
Hyunjun Ko, James Stevenson, Jan Alexander Steffens (heftig), Jan
Schmidt, Joakim Johansson, Jun Xie, Kai Kang, Kirill Marinushkin, Mark
Nauwelaerts, Matej Knopp, Mathieu Duponchelle, Matthew Waters, Matthias
Fend, Michael Olbrich, Mikhail Fludkov, Nicolas Dufresne, Nirbheek
Chauhan, Olivier Crête, Omar Akkila, Patrik Nilsson, Philippe Normand,
Pierre Labastie, Sebastian Dröge, Seungha Yang, Sreerenj Balachandran,
Stian Selnes, Takeshi Sato, Thibault Saunier, Tim-Philipp Müller, U.
Artie Eoff, Víctor Manuel Jáquez Leal, Vivia Nikolaidou, Whoopie, Xabier
Rodriguez Calvar, Xavier Claessens, Zeeshan Ali, and countless others.
List of bugs fixed in 1.14.1
For a full list of bugfixes see Bugzilla. Note that this is not the full
list of changes. For the full list of changes please refer to the GIT
logs or ChangeLogs of the particular modules.
1.14.2
The second 1.14 bug-fix release (1.14.2) was released on 20 July 2018.
This release only contains bugfixes and it should be safe to update from
1.14.x.
Noteworthy bugfixes in 1.14.2
- asfdemux: Only send flush-stop event for flushing seeks
- glcolorbalance: Support OES textures for input/passthrough, avoids
possibly-unnecessary extra texture copy on Android in the default GL
path inside glimagesink.
- parsebin: Don’t try to continue autoplugging a parser if we got raw
caps
- audiobasesrc: Round down segsize to an integer number of samples
- scaletempo: Mark as Audio in classification
- souphttpsrc: thread-safety fixes
- v4l2bufferpool: Validate that capture buffers were queued, to detect
when buffer importation was refused by the driver.
- v4l2bufferpool: Only return eos for M2M devices not v4l2src when
buggy driver sends empty buffer
- v4l2allocator: Fix userptr importation
- v4l2src: Try to avoid TRY_FMT when camera is streaming, some drivers
don’t like it
- v4l2videoenc: Only renegotiate with upstream, fixes use in
GstRtspServer pipeline
- v4l2: many other fixes
- pitch: fix latency reporting, and various other things
- dvb: fix wrong (GPL) license headers in camconditionalaccess code
- webrtc: Fix transportsendbin to fix spurious shut-down failures in
webrtcbin if DTLS negotiation hasn’t completed yet.
- webrtc: Don’t deadlock on blocked pads on shutdown
- webrtcbin: copy sticky events on our ghostpads so users can use
gst_pad_get_current_caps() to determine what to do with newly-added
pads.
- webrtcbin: fix rtpstorage configuration on 32-bit systems
- webrtcbin: implement support for FEC and RTX
- gstplayer: Fix duration-changed CRITICAL warning if duration did not
actually change
- gstplayer: Avoid trying to join the player thread from itself
- codecparsers: mpeg2 parsing fixes for zero-sized packets
- wasapisink: fix a rounding error when calculating the buffer frame
count
- wasapisink: fix missing unlock in case IAudioClient_Start fails
- wasapi: fix potential crash with MinGW
- rtsp-server: fix race during udpsrc setup, avoiding pushing data on
unlinked udpsrc pad
- rtsp-server: fix waiting for multiple streams in rtspclientsink
- gst-editing-services: group: Fix handling clips that are added to a
layer
- gst-editing-services: python binding fixes
- gst-validate launcher: Allow retrieving coredumps from within
flatpak
- gst-validate launcher: Fix the –forever switch which was not
stopping on error
- vaapi: h264 encoder negotiation fixes
- vaapi: fix issues with native EGL display
- more GIR annotations fixes, especially for arrays
- gstreamer-sharp bindings were updated for g-i annotation fixes in
other modules
- fuzzing fixes
- memory leak fixes
- build fixes:
- build fixes for MSVC compiler
- meson: Fix detection of glib-mkenums under MSYS2 plus other
meson buil fixes
- Fix static build symbol redefinition errors (xvimage, gst-libav)
- qmlgl: build fixes for conflicting declaration of type GLsync
for non-android
- gl: build fixes for missing EGLuint64KHR typedef
- … and many more!
Contributors to 1.14.2
Alessandro Decina, Antoine Jacoutot, Brendan Shanks, Carlos Rafael
Giani, Christoph Reiter, Edward Hervey, Göran Jönsson, Guillaume
Desmottes, Hyunjun Ko, Iñigo Huguet, Jan Schmidt, Johan Bjäreholt,
Louis-Francis Ratté-Boulianne, Lyon Wang, Marian Mihailescu, Mark
Nauwelaerts, Mathieu Duponchelle, Matthew Waters, Michael Tretter,
Nicolas Dufresne, Nirbheek Chauhan, Philipp Zabel, Roland Jon, Sebastian
Dröge, Seungha Yang, Sreerenj Balachandran, Suhas Nayak, Thibault
Saunier, Tim-Philipp Müller, Víctor Manuel Jáquez Leal, Vivia
Nikolaidou, wangzq, and many others. Thank you all.
List of bugs fixed in 1.14.2
For a full list of bugfixes see Bugzilla. Note that this is not the full
list of changes. For the full list of changes please refer to the GIT
logs or ChangeLogs of the particular modules.
1.14.3
The third 1.14 bug-fix release (1.14.3) was released on 16 September
2018.
This release only contains bugfixes and it should be safe to update from
1.14.x.
Highlighted bugfixes in 1.14.3
- opusenc: fix crash on 32-bit platforms
- compositor: fix major buffer leak when doing crossfading on some but
not all pads
- wasapi: various fixes for wasapisrc and wasapisink regressions
- x264enc: Set bit depth to fix “This build of x264 requires 8-bit
depth. Rebuild to…” runtime errors with x264 version ≥ 153
- audioaggregator, audiomixer: caps negotiation fixes
- input-selector: latency handling fixes
- playbin, playsink: audio visualization support fixes
- dashdemux: fix possible crash if stream is neither isobmff nor
isoff_ondemand profile
- opencv: Fix build for opencv >= 3.4.2
- h265parse: miscellaneous fixes backported from h264parse
- pads: fix changing of pad offsets from inside pad probes
- pads: ensure that pads are blocked for IDLE probes if they are
called from the streaming thread too
Other noteworthy bugfixes in 1.14.3
- queries: Set default values for position and duration query results
- segment: make gst_segment_position_from_running_time_full() handle
positions before the segment properly
- aggregator: annotate GstAggregatorClass::update_src_caps for
bindings
- aggregator: Don’t leak peer pad of inactive pads when (not)
forwarding QoS events to them
- baseparse: avg_bitrate calculation critical warning fix
- typefind: improved flow return handling in pull mode, flushing is
not an error
- gl: Don’t steal callers reference when setting non-floating elements
via properties
- gl: Also don’t leak floating references to elements set via
properties
- tagdemux: Properly propagate gst_pad_pull_range() errors
- aacparse: fix codec_data buffer leak
- rtpgstpay: Add support for force-keyunit events
- rtpL8pay: don’t try to modify a read-only structure
- rtpvp8pay, rtpvp9pay, rtpopuspay: Fix VP8/VP9/OPUS dual encoding
name handling
- rtp payloaders: Use running_time instead of PTS for config-interval
calculations
- qtdemux: Don’t assert in prefill mode if a track has no samples at
all
- qmlgl: Ensure GL headers are included
- v4l2src: fix first input used is always used next times
- v4l2object: Only offer MMAP/DMABUF pool
- v4l2object: stop V4L2 from zeroing extended colorimetry for
non-mplane
- v4l2object: improve colorspace handling for JPEG sources
- splitmuxsink: fix handling of repeated timestamps and a leak if sink
pads are not released explicitly
- player: Set default position and duration value to
GST_CLOCK_TIME_NONE
- videoaggregator: Make sure to hold object lock while iterating sink
pads
- audiobuffersplit: improve resync handling and compensate better for
accumulated errors
- kmssink: add support for Xilinx DRM Driver, mxsfb-drm driver and the
Allwinner DRM driver (sun4i-drm)
- rsvg: Also accept </svg:svg> as ending tag
- ges: project: Compute relocation URIs in missing-uri signal
- ges: formatter: Serialize Transition border and invert properties
- ges: clip: Resync priorities when removing an effect
Contributors to 1.14.3
Christoph Reiter, Devarsh Thakkar, Edward Hervey, Gary Bisson, Iñigo
Huguet, Jan Alexander Steffens (heftig), Jan Schmidt, Jerome Laheurte,
Marcos Kintschner, Mathieu Duponchelle, Matthew Waters, Michael Olbrich,
Nicolas Dufresne, Nirbheek Chauhan, Paul Kocialkowski, Philippe Normand,
Philipp Zabel, Roland Jon, Sebastian Dröge, Seungha Yang, Thibault
Saunier, Tim-Philipp Müller, Yuji Kuwabara, and many others. Thank you
all.
List of bugs fixed in 1.14.3
For a full list of bugfixes see Bugzilla. Note that this is not the full
list of changes. For the full list of changes please refer to the GIT
logs or ChangeLogs of the particular modules.
1.14.4
The fourth 1.14 bug-fix release (1.14.4) was released on 2 October 2018.
This release only contains bugfixes and it should be safe to update from
1.14.x.
Highlighted bugfixes in 1.14.4
- glviewconvert: wait and set the gl sync meta on buffers
- glviewconvert: Copy composition meta from the primary buffer to both
outputs
- glcolorconvert: Don’t copy overlay composition meta over to NULL
outbufs
- matroskademux: add functionality needed for MSE use case fixing
youtube playback in epiphany/webkit-gtk
- msdk: fix build on windows
- opusenc: fix another crash on 32-bit x86 on windows (alignment issue
in SSE optimisations)
- osxaudio: add support for parsing more channel layouts
- tagdemux: Use upstream GST_EVENT_STREAM_START (and stream-id) if
present
- vorbisdec: fix header handling regression: init decoder immediately
once we have headers
- wasapisink: recover from low buffer levels in shared mode
- fix GstSegment unit test which would fail on some 32-bit x86 CPUs
Contributors to 1.14.4
Alicia Boya García, Christoph Reiter, Edward Hervey, Jan Schmidt,
Matthew Waters, Nicola Murino, Nicolas Dufresne, Sebastian Dröge,
Tim-Philipp Müller, Wangfei, and many others. Thank you all.
List of bugs fixed in 1.14.4
For a full list of bugfixes see Bugzilla. Note that this is not the full
list of changes. For the full list of changes please refer to the GIT
logs or ChangeLogs of the particular modules.
1.14.5
The fifth and likely last 1.14 bug-fix release (1.14.5) was released on
29 May 2019.
This release only contains bugfixes and it should be safe to update from
1.14.x.
Highlighted bugfixes in 1.14.5
GStreamer core
- aggregator: take the pad lock around queue gap event removal
- aggregator: don’t leak gap buffer when out of segment
- buffer: fix possible memory corruption in gst_buffer_foreach_meta()
when removing metas
- bus: Make removing of signal/bus watches thread-safe
- bus: Don’t allow removing signal watches with gst_bus_remove_watch()
- controlbinding: Check if the weak pointer was cleared before
explicitly removing it
- ptp clock: Wait for ANNOUNCE before selecting a master; increase
tolerance for late follow-up and delay-resp
- segment: Allow stop == -1 in gst_segment_to_running_time() and
negative rate
- g-i: annotations fixes
gst-plugins-base
- audioconvert: fix endianness conversion for unpacked formats
(e.g. S24_32BE)
- audioringbuffer: Fix wrong memcpy address when reordering channels
- decodebin2: Make sure to remove pad probes when freeing
GstDecodeGroup
- glviewconvert: fix output when a transformation matrix is used
- glupload: prevent segfault when updating caps
- gl/egl: Determine correct format on dmabuf import
- glupload: dmabuf: be explicit about gl formats used
- id3tag: validate the year from v1 tags before passing to GstDateTime
- rtpbasepayload: fix sequence numbers when using buffer lists
- rtspconnection: fix security issue, potential heap overflow
(CVE-2019-9928)
- rtspconnection: fix GError set over the top of a previous GError
- rtspconnection: do not duplicate authentication headers
- subparse: don’t assert when failing to parse subrip timestamp
- video: various convert sample frame fixes
- video-converter: fix conversion from I420_10LE/BE, I420_12LE/BE,
A420_10LE/BE to BGRA/RGBA which created corrupted output
- video-format: Fix GBRA_10/12 alpha channel pixel strides
gst-plugins-good
- flv: Use 8kHz sample rate for alaw/mulaw audio
- flvdemux: Do not error out if the first added and chained pad is not
linked
- flvmux: try harder to make sure timestamps are always increasing
- gdkpixbufdec: output a TIME segment which is what’s expected for raw
video
- matroskademux: fix handling of MS ACM audio
- matroska: fix handling of FlagInterlaced
- pulsesink: Deal with not being able to convert a format to caps
- rtph265depay, rtph264depay; aggregation packet marker handling fixes
- rtpmp4gdepay: detect broken senders who send AAC with ADTS frames
- rtprawdepay: keep buffer pool around when flushing/seeking
- rtpssrcdemux: Forward serialized events to all pads
- qmlglsink: Handle OPENGL header guard changes
- qtdemux: fix track language code parsing; ignore corrupted CTTS box
- qtmux: Correctly set tkhd width/height to the display size
- splitmuxsink: various timecode meta handling fixes
- splitmuxsink: make work with audio-only encoders as muxers,
e.g. wavenc
- v4l2sink: fix pool-less allocation query handling
- v4l2dec/enc: fix use after free when handling events
- vpx: Fix build against libvpx 1.8
- webmmux: allow resolutions above 4096
gst-plugins-ugly
- sid: Fix cross-compilation by using AC_TRY_LINK instead of
AC_TRY_RUN
- x264: Only enable dynamic loading code for x264 before v253
gst-plugins-bad
- assrender: fix disappearing subtitles when seeking back in time
- decklinkvideosink: fix segfault when audiosink is closed before
videosink
- decklinkvideosrc: respect pixel format property even if mode is set
to auto
- d3dvideosink: Fix calculating buffer size of packed format; don’t
leak thread object
- dtls: Don’t abort on non-fatal issues, make work with newer OpenSSL
versions
- msdk: more robust error handling; fix intel sdk libdir path
- nvenc: Ensure drain all frames on finish; fix element reuse and
clean up properly
- openh264dec: Fix handling of errors when doing EOS
- shmsrc: fixes a crash when is-live is true due a race condition
- shmsink: fix possible (racy) deadlock on shutdown
- siren: Fix invalid floating point operation
- tsdemux: Skew correction improvements: use upstream DTS if set
- wasapi: number of segments was always 2 (the absolute minimum) by
accident
- wasapi: Fix infinite loop when the device disappears
gst-libav
- libav: Update internal snapshot to ffmpeg n3.4.6
- avdemux: fix negative pts if start_time is bigger than the ts
gst-rtsp-server
- rtsp-client: Fix crash in close handler and remove timeout GSource
on cleanup
- rtsp-stream: Use cached address when allocating sockets
- rtsp-media: Handle set state when preparing
- rtsp-media: Fix race condition in finish_unprepare
- rtsp-stream: Use seqnum-offset for rtpinfo
- rtsp-stream: add source elements to the pipeline before activation
for stream-status create message
gst-editing-services
- Fix compilation with latest GLib
- layer: Resort clips before syncing priorities
- timeline: Better handle loading inconsistent timelines
gstreamer-vaapi
- thread-safety and memory leak fixes
- improve caps negotiation if downstream takes ANY caps
- fix build with -DG_DISABLE_ASSERT
gst-omx
- fix caps leak
cerbero
- Add support for MacOSX 10.14, iOS 12.1, Fedora 29/30, Linux Mint
Tara (19)
- Miscellaneous tarball download / error handling improvements
- disable parallel builds by default on Windows
Contributors to 1.14.5
Aaron Boxer, Adam Jackson, Aleix Conchillo Flaqué, Alexandru Băluț,
Alicia Boya García, Andreas Frisch, Antonio Ospite, Arun Raghavan,
Benjamin Berg, Brad Reitmeyer, Christopher Snowhill, Daniel Drake,
Daniel Stone, Dardo D Kleiner, David Ing, Denis Nagorny, Edward Hervey,
Erlend Eriksen, Florent Thiéry, Freyr666, Göran Jönsson, Guillaume
Desmottes, Haihao Xiang, Haihua Hu, Havard Graff, He Junyan, Helmut
Grohne, Ilya Smelykh, Jacek Tomaszewski, James Cowgill, Jan Alexander
Steffens (heftig), Jan Schmidt, Johan Bjäreholt, Jordan Petridis, Josep
Torra, Joshua M. Doe, Justin Kim, Kristofer Bjorkstrom, Lars Petter
Endresen, Lars Wiréen, Linus Svensson, Lucas Stach, Maciej Wolny,
Marc-André Lureau, Marc Leeman, Marcos Kintschner, Marco Trevisan
(Treviño), Marouen Ghodhbane, Matej Knopp, Mathieu Duponchelle, Matthew
Waters, Michael Olbrich, Michael Tretter, mrk501, Naveen Cherukuri,
Nicola Murino, Nicolas Dufresne, Niels De Graef, Nirbheek Chauhan,
okuoku, Olivier Crête, Patricia Muscalu, Per Forlin, Peter Körner,
Philippe Normand, Philipp Zabel, Roland Jon, Russel Winder, Santiago
Carot-Nemesio, Sebastian Dröge, Seungha Yang, Sjoerd Simons, Thiago
Santos, Thibault Saunier, Tim-Philipp Müller, Tobias Ronge, Tomislav
Tustonić, U. Artie Eoff, Víctor Manuel Jáquez Leal, Vincenzo Bono, Vivia
Nikolaidou, Wangfei, Wim Taymans, Xabier Rodriguez Calvar, Xavier
Claessens, Xiang, Haihao, Yeongjin Jeong, and many others. Thank you
all!
List of bugs fixed in 1.14.5
For a full list of bugfixes see Bugzilla. Note that this is not the full
list of changes. For the full list of changes please refer to the GIT
logs or ChangeLogs of the particular modules.
During the release cycle issue and patch tracking moved from bugzilla to
gitlab, so information about this release may be on either of those two
trackers.
MRs with milestone 1.14.5:
https://gitlab.freedesktop.org/groups/gstreamer/-/merge_requests?scope=all&utf8=%E2%9C%93&state=all&milestone_title=1.14.5
Known Issues
......@@ -1180,6 +1710,14 @@ Known Issues
GStreamer webrtc support) is currently not shipped as part of the
Windows binary packages due to a build system issue.
- The gst-libav module in 1.14 will only build against older ffmpeg
3.x versions and won’t build against the newly-released ffmpeg 4.0
(as in RPM Fusion for Fedora 28) due to API changes. Use the
internal ffmpeg copy instead if you build using autotools. This is
fixed in git master / upcoming 1.16, but won’t be backported to the
1.14 branch as it is rather intrusive and difficult to support both
old and new APIs at the same time.
Schedule for 1.16
......@@ -1187,12 +1725,8 @@ Our next major feature release will be 1.16, and 1.15 will be the
unstable development version leading up to the stable 1.16 release. The
development of 1.15/1.16 will happen in the git master branch.
The plan for the 1.16 development cycle is yet to be confirmed, but it
is expected that feature freeze will be around August 2018 followed by
several 1.15 pre-releases and the new 1.16 stable release in September.
1.16 will be backwards-compatible to the stable 1.14, 1.12, 1.10, 1.8,
1.6, 1.4, 1.2 and 1.0 release series.
1.16.0 was released on 19 April 2019 and is backwards-compatible to the
stable 1.14, 1.12, 1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
------------------------------------------------------------------------
......
This is GStreamer gst-python 1.14.0.
This is GStreamer gst-python 1.14.5.
The GStreamer team is thrilled to announce a new major feature release in the
The GStreamer team is pleased to announce another bug-fix release in the
stable 1.x API series of your favourite cross-platform multimedia framework!
As always, this release is again packed with new features, bug fixes and
other improvements.
The 1.14 release series adds new features on top of the 1.12 series and is
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
framework.
The 1.14 release series has now been superseded by the stable 1.16 series
which was released on 19 April 2019 and should be backwards compatible. We
recommend you upgrade to 1.16 at your earliest convenience.
Full release notes can be found at:
https://gstreamer.freedesktop.org/releases/1.14/
......@@ -57,10 +58,10 @@ with other GStreamer modules for a complete multimedia experience.
==== Download ====
You can find source releases of gstreamer in the download
directory: https://gstreamer.freedesktop.org/src/gstreamer/
directory: https://gstreamer.freedesktop.org/src/
The git repository and details how to clone it can be found at
http://cgit.freedesktop.org/gstreamer/gstreamer/
https://gitlab.freedesktop.org/gstreamer/
==== Homepage ====
......@@ -68,10 +69,16 @@ The project's website is https://gstreamer.freedesktop.org/
==== Support and Bugs ====
We use GNOME's bugzilla for bug reports and feature requests:
http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
for bug reports and feature requests:
https://gitlab.freedesktop.org/gstreamer
Please submit patches via GitLab as well, in form of Merge Requests. See
https://gstreamer.freedesktop.org/documentation/contribute/
Please submit patches via bugzilla as well.
for more details.
For help and support, please subscribe to and send questions to the
gstreamer-devel mailing list (see below for details).
......
......@@ -3,7 +3,7 @@ AC_PREREQ([2.68])
dnl initialize autoconf
dnl when going to/from release please set the nano (fourth number) right !
dnl releases only do Wall, cvs and prerelease does Werror too
AC_INIT(GStreamer GObject Introspection overrides for Python , 1.14.0,
AC_INIT(GStreamer GObject Introspection overrides for Python , 1.14.5,
http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
gst-python)
......@@ -38,8 +38,8 @@ AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
dnl required versions of other packages
dnl Note that they are runtime requirements
AC_SUBST(GST_REQ, 1.14.0)
AC_SUBST(PYGOBJECT_REQ, 3.0)
AC_SUBST(GST_REQ, 1.14.5)
AC_SUBST(PYGOBJECT_REQ, 3.8)
AC_DISABLE_STATIC
......
......@@ -9,7 +9,7 @@ from gi.repository import GObject, Gst
def bus_call(bus, message, loop):
t = message.type
if t == Gst.MessageType.EOS:
sys.stout.write("End-of-stream\n")
sys.stdout.write("End-of-stream\n")
loop.quit()
elif t == Gst.MessageType.ERROR:
err, debug = message.parse_error()
......
......@@ -27,7 +27,7 @@
import sys
import inspect
from ..overrides import override
from ..importer import modules
from ..module import get_introspection_module
from gi.repository import GLib
......@@ -40,7 +40,8 @@ else:
_basestring = basestring
_callable = callable
Gst = modules['Gst']._introspection_module
Gst = get_introspection_module('Gst')
__all__ = []
if Gst._version == '0.10':
......@@ -146,7 +147,7 @@ class Pad(Gst.Pad):
def set_query_function(self, func):
self._real_query_func = func
self.set_query_function_full(self._chain_override, None)
self.set_query_function_full(self._query_override, None)
def set_query_function_full(self, func, udata):
self._real_query_func = func
......
......@@ -25,14 +25,14 @@
# any later version.
from ..overrides import override as override_
from ..importer import modules
from ..module import get_introspection_module
import gi
gi.require_version('Gst', '1.0')
from gi.repository import Gst # noqa
GstPbutils = modules['GstPbutils']._introspection_module
GstPbutils = get_introspection_module('GstPbutils')
__all__ = []
......
......@@ -66,7 +66,7 @@ GST_DEBUG_CATEGORY_STATIC (pygst_debug);
#define GST_CAT_DEFAULT pygst_debug
static PyObject *
gi_gst_get_type (const gchar * type_name)
gi_gst_get_type (gchar * type_name)
{
PyObject *module, *dict;
......
......@@ -25,11 +25,61 @@ GStreamer Python Bindings is a set of overrides and Gst fundamental types handli
<repository>
<GitRepository>
<location rdf:resource="git://anongit.freedesktop.org/gstreamer/gst-python"/>
<browse rdf:resource="http://cgit.freedesktop.org/gstreamer/gst-python"/>
<location rdf:resource="https://gitlab.freedesktop.org/gstreamer/gst-python"/>
<browse rdf:resource="http://gitlab.freedesktop.org/gstreamer/gst-python"/>
</GitRepository>
</repository>
<release>
<Version>
<revision>1.14.5</revision>
<branch>1.14</branch>
<name></name>
<created>2019-05-29</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-python/gst-python-1.14.5.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.14.4</revision>
<branch>1.14</branch>
<name></name>
<created>2018-10-02</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-python/gst-python-1.14.4.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.14.3</revision>
<branch>1.14</branch>
<name></name>
<created>2018-09-16</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-python/gst-python-1.14.3.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.14.2</revision>
<branch>1.14</branch>
<name></name>
<created>2018-07-20</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-python/gst-python-1.14.2.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.14.1</revision>
<branch>1.14</branch>
<name></name>
<created>2018-05-17</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-python/gst-python-1.14.1.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.14.0</revision>
......
project('gst-python', 'c', 'cpp',
version : '1.14.0',
version : '1.14.5',
meson_version : '>= 0.36.0',
default_options : [ 'warning_level=1',
'c_std=gnu99',
......@@ -18,7 +18,7 @@ gst_dep = dependency('gstreamer-1.0', version : gst_req,
gstbase_dep = dependency('gstreamer-base-1.0', version : gst_req,
fallback : ['gstreamer', 'gst_base_dep'])
gmodule_dep = dependency('gmodule-2.0')
pygobject_dep = dependency('pygobject-3.0', version : '>= 3.0')
pygobject_dep = dependency('pygobject-3.0', version : '>= 3.8')
python_dep = dependency('python3')
python3 = import('python3').find_python()
......