Release 1.15.2

This commit is contained in:
Tim-Philipp Müller 2019-02-26 11:59:49 +00:00
parent 6205da4629
commit 7515eebb1a
6 changed files with 632 additions and 102 deletions

405
ChangeLog
View file

@ -1,3 +1,408 @@
=== release 1.15.2 ===
2019-02-26 11:59:49 +0000 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
* NEWS:
* RELEASE:
* configure.ac:
* gst-editing-services.doap:
* meson.build:
Release 1.15.2
2019-02-20 22:11:54 -0300 Thibault Saunier <tsaunier@igalia.com>
* examples/python/keyframes.py:
examples: Add an example about using keyframes in python
2019-02-11 18:26:04 +0900 Seungha Yang <seungha.yang@navercorp.com>
* ges/ges-meta-container.c:
ges-meta-container: Fix g-i annotation
ges-meta-container.c:516: Warning: GES: invalid "allow-none" annotation:
only valid for pointer types and out parameters
2019-02-06 00:30:35 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* plugins/ges/gesdemux.c:
misc: Fix warnings on Cerbero's ancient MinGW
gesdemux.c:297:3: error: value computed is not used [-Werror=unused-value]
2019-01-23 09:07:58 -0300 Thibault Saunier <tsaunier@igalia.com>
* ges/ges-group.c:
Fix segfault when adding clips to group outside a timeline
Making sure that objects are inside a timeline before adding/removing them from it
Fixes https://gitlab.freedesktop.org/gstreamer/gst-editing-services/issues/35
2019-01-30 15:58:33 -0300 Thibault Saunier <tsaunier@igalia.com>
* tests/check/python/test_timeline.py:
tests: Fix usage of undefined class
2019-01-28 19:09:03 -0300 Thibault Saunier <tsaunier@igalia.com>
* tools/ges-launcher.c:
launcher: Add options to set tracks restriction caps
2019-01-28 00:55:27 +0900 Yeongjin Jeong <yeongjin.jeong@navercorp.com>
* tests/check/ges/transition.c:
* tests/check/ges/uriclip.c:
tests: ges: Fix various leak
2019-01-26 19:50:48 +0900 Yeongjin Jeong <yeongjin.jeong@navercorp.com>
* ges/ges-layer.c:
layer: Fix asset leak
2019-01-26 16:44:09 +0900 Yeongjin Jeong <yeongjin.jeong@navercorp.com>
* ges/ges-effect.c:
effect: Fix string leak
2019-01-29 11:52:43 +0900 Yeongjin Jeong <yeongjin.jeong@navercorp.com>
* ges/ges-uri-asset.c:
uri-asset: Implement dispose vmethod for GESUriSourceAsset
... and fix DiscovererStreamInfo leak
2019-01-26 16:27:27 +0900 Yeongjin Jeong <yeongjin.jeong@navercorp.com>
* ges/ges-uri-asset.c:
uri-asset: Don't forget to unref DiscovererInfo on dispose
Dispose() must unref DiscovererInfo ownership
taken by ges_uri_clip_asset_set_info().
2019-01-25 18:21:43 +0900 Yeongjin Jeong <yeongjin.jeong@navercorp.com>
* ges/ges-video-transition.c:
video-transition: Fix GstPad leak
Returned Gstpad by link_element_to_mixer_with_smpte()
has increased refcount in ges_smart_mixer_get_mixer_pad().
2018-11-27 04:55:17 +0100 Alexandru Băluț <alexandru.balut@gmail.com>
* ges/ges-timeline.c:
* tests/check/python/common.py:
* tests/check/python/test_timeline.py:
timeline: Better handle loading inconsistent timelines
Auto transition when having 3 overlapping clips in a same point in the
timeline is not supported as we can't handle it in a nice way. Before we
to avoid creating 2 overlapping transitions (which is plain broken in
NLE) were completely disabling `auto-transition` and removing all
auto-transitions in the timeline but this is pretty weird for the end
user. This commit changes and now makes sure 2 transitions are not
created in the same place.
Also cleanup previous test case.
2019-01-18 17:25:11 -0300 Thibault Saunier <tsaunier@igalia.com>
* ges/ges-asset.c:
* ges/ges-project.c:
* ges/ges-transition-clip.c:
* ges/ges-xml-formatter.c:
s/accured/occurred/g
2019-01-18 17:12:42 -0300 Thibault Saunier <tsaunier@igalia.com>
* ges/ges-xml-formatter.c:
xml-formatter: Minor debug enhancement
2019-01-18 09:52:47 -0300 Thibault Saunier <tsaunier@igalia.com>
* plugins/ges/gesdemux.c:
* plugins/ges/gesdemux.h:
* plugins/ges/gesplugin.c:
plugins: Add an a gesdemux element to 'demux' serialized timelines
2015-03-14 20:52:47 +0000 Thibault Saunier <tsaunier@gnome.org>
* examples/c/gessrc.c:
* examples/c/meson.build:
* examples/python/gst-player.py:
* plugins/ges/gesplugin.c:
* plugins/ges/gessrc.c:
* plugins/ges/gessrc.h:
* plugins/ges/meson.build:
* plugins/meson.build:
plugins: implement a gessrc element useable from playbin
This is a new simple GstBin that can handle the ges:// uris
and will directly expose the srcppads of the tracks present in the
timeline.
2019-01-18 15:45:39 -0300 Thibault Saunier <tsaunier@igalia.com>
* ges/ges-internal.h:
* ges/ges-project.c:
* ges/ges-uri-asset.c:
* ges/ges-uri-asset.h:
* ges/ges.c:
* tests/check/python/test_assets.py:
uri-asset: Use the same code path for sync discovery as the async one
And start handling relocated assets.
Also expose the discoverer callback as a vmethod so that we can
overridde the discoverer when necessary (to handle discovering of
timeline through gesdemux for example)
2019-01-17 15:12:42 -0300 Thibault Saunier <tsaunier@igalia.com>
* ges/ges-pipeline.c:
* plugins/nle/nlecomposition.c:
* tests/check/nle/nlecomposition.c:
nlecomposition: Get overall pipeline position by recursing up
And handle NLEComposition inside NLEComposition
Fixes https://gitlab.freedesktop.org/gstreamer/gst-editing-services/issues/39
2018-09-30 17:22:13 -0300 Thibault Saunier <tsaunier@igalia.com>
* ges/ges-smart-video-mixer.c:
videomixer: Drop allocation query after the compositor
Working around https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/310
2019-01-28 18:59:40 -0300 Thibault Saunier <tsaunier@igalia.com>
* ges/ges-layer.c:
* tests/check/python/test_timeline.py:
layer: Resort clips before syncing priorities
We set the priorities making the assumption that `start_clips` is properly
ordered by start!
Fixes https://gitlab.gnome.org/GNOME/pitivi/issues/2254
2019-01-28 12:58:06 +0900 Seungha Yang <seungha.yang@navercorp.com>
* tests/check/ges/asset.c:
tests: asset: Add test async asset request with custom GMainContext
... and test call ges_{init/deinit} multiple times in a unit test.
2019-01-28 17:22:10 +0900 Seungha Yang <seungha.yang@navercorp.com>
* ges/ges.c:
Revert "ges: Add missing type unref on deinit"
This reverts commit e939cfebaf4deeabf21ba799ddc3eeaa87e7cf9a.
Class might not be initialized if they were already registered
when ges_init() was called, but were not created until ges_deinit() called.
2019-01-28 17:12:54 +0900 Seungha Yang <seungha.yang@navercorp.com>
* ges/ges-internal.h:
* ges/ges-uri-asset.c:
* ges/ges.c:
ges: Add check sync/async discoverer
To support ges_{init/deinit} multiple times in a process,
there should be a method for setting up internal object/table of
GESUriClipAssetClass. because *_class_init() will be called
only once in process lifecycle.
2019-01-28 17:15:19 +0900 Seungha Yang <seungha.yang@navercorp.com>
* ges/ges-uri-asset.c:
uri-asset: Add missing GHashTable cleanup
... and use g_object_unref() for GFile object, it's not a GstObject.
2019-01-28 16:34:15 +0900 Seungha Yang <seungha.yang@navercorp.com>
* ges/ges.c:
ges: Print initialize error reasons
2019-01-28 12:19:30 +0900 Seungha Yang <seungha.yang@navercorp.com>
* tests/check/ges/asset.c:
tests: asset: Remove out-of-date comment
2019-01-28 12:17:00 +0900 Seungha Yang <seungha.yang@navercorp.com>
* tests/check/ges/asset.c:
tests: asset: Remove pointless gst_init()
It's done by GST_CHECK_MAIN() already
2019-01-28 11:24:29 +0900 Seungha Yang <seungha.yang@navercorp.com>
* tests/check/ges/asset.c:
* tests/check/ges/backgroundsource.c:
* tests/check/ges/basic.c:
* tests/check/ges/clip.c:
* tests/check/ges/effects.c:
* tests/check/ges/group.c:
* tests/check/ges/layer.c:
* tests/check/ges/mixers.c:
* tests/check/ges/overlays.c:
* tests/check/ges/project.c:
* tests/check/ges/tempochange.c:
* tests/check/ges/timelineedition.c:
* tests/check/ges/titles.c:
* tests/check/ges/track.c:
* tests/check/ges/transition.c:
* tests/check/ges/uriclip.c:
* tests/check/nle/complex.c:
* tests/check/nle/nlecomposition.c:
* tests/check/nle/nleoperation.c:
* tests/check/nle/simple.c:
tests: init/deinit per test case
... in order to verify init/deinit pair.
2019-01-28 11:07:36 +0900 Seungha Yang <seungha.yang@navercorp.com>
* ges/ges.c:
ges: Simplify init/deinit flag
In theory, GES can be init/deinit multiple times in a process.
To simplify that use-case, let's trace only "ges_initialized" flag.
2019-01-21 11:53:44 +0100 Corentin Noël <corentin.noel@collabora.com>
* ges/ges-uri-asset.c:
* ges/ges-uri-asset.h:
uri-asset: Add ges_uri_clip_asset_finish to get better introspection
Vala requires a matching _finish function to correctly bind the method with the right finish method.
2019-01-21 14:14:06 +0100 Corentin Noël <corentin.noel@collabora.com>
* ges/ges-timeline.c:
timeline: fix two issues in the documentation
2019-01-15 09:59:59 -0300 Thibault Saunier <tsaunier@igalia.com>
* ges/ges-xml-formatter.c:
xml-formatter: Do not forget to serialize clips metadata
2019-01-15 09:38:14 -0300 Thibault Saunier <tsaunier@igalia.com>
* ges/ges-base-xml-formatter.c:
* ges/ges-internal.h:
* ges/ges-xml-formatter.c:
xml-formatter: Serialize groups metadatas
2019-01-15 00:15:28 +0900 Seungha Yang <seungha.yang@navercorp.com>
* ges/ges-uri-asset.c:
uri-asset: Don't leak GstDiscovererInfo
2019-01-15 00:13:24 +0900 Seungha Yang <seungha.yang@navercorp.com>
* ges/ges-uri-asset.c:
uri-asset: Impl. dispose vfunc
... and fix GList/GESAsset leak
2019-01-14 23:38:19 +0900 Seungha Yang <seungha.yang@navercorp.com>
* ges/ges-transition-clip.c:
transition-clip: Don't leak GESAsset
Returned GESAsset from ges_asset_request should be freed since
ges_extractable_set_asset doesn't take ownership
2019-01-14 22:14:18 +0900 Seungha Yang <seungha.yang@navercorp.com>
* ges/gstframepositioner.c:
framepositioner: Fix invalid memory access
The GstFramePositioner might be finalized before the notify callback
Without this commit,
gst-editing-services / ges_basic / test_ges_timeline_remove_track
can reproduce the case.
2019-01-14 15:06:26 +0900 Seungha Yang <seungha.yang@navercorp.com>
* plugins/nle/nleoperation.c:
nleoperation: Fix GstPad leak
Returned GstPad by nle_object_remove_ghost_pad() has increased
refcount.
2019-01-14 14:10:32 +0900 Seungha Yang <seungha.yang@navercorp.com>
* plugins/nle/nlecomposition.c:
* plugins/nle/nleghostpad.c:
nleghostpad: Fix GstEvent leak
2019-01-14 12:52:47 +0900 Seungha Yang <seungha.yang@navercorp.com>
* plugins/nle/nlecomposition.c:
nlecomposition: Don't leak GNode
Clear the last node before update
2019-01-14 13:22:13 +0900 Seungha Yang <seungha.yang@navercorp.com>
* tests/check/nle/complex.c:
* tests/check/nle/nlecomposition.c:
* tests/check/nle/tempochange.c:
tests: nle: Fix various leak
Don't leak GError and GstPad object
2019-01-14 11:34:20 +0900 Seungha Yang <seungha.yang@navercorp.com>
* tests/check/nle/common.c:
* tests/check/nle/common.h:
* tests/check/nle/complex.c:
* tests/check/nle/nleoperation.c:
* tests/check/nle/simple.c:
* tests/check/nle/tempochange.c:
tests: nle: Fix GList leak
2019-01-13 00:12:42 +0900 Seungha Yang <seungha.yang@navercorp.com>
* tests/check/ges/asset.c:
* tests/check/ges/basic.c:
* tests/check/ges/layer.c:
tests: ges: Fix various leak
2019-01-12 22:24:55 +0900 Seungha Yang <seungha.yang@navercorp.com>
* ges/ges-asset.c:
asset: Fix various leak
2019-01-12 21:59:20 +0900 Seungha Yang <seungha.yang@navercorp.com>
* ges/ges-enums.c:
enums: Add missing unref
2019-01-12 21:52:16 +0900 Seungha Yang <seungha.yang@navercorp.com>
* plugins/nle/nlecomposition.c:
nlecomposition: Clear all members before chaining up to parent on finalize
2019-01-12 21:51:36 +0900 Seungha Yang <seungha.yang@navercorp.com>
* ges/ges-structure-parser.c:
structure-parser: Add missig chain up code
2019-01-12 20:53:38 +0900 Seungha Yang <seungha.yang@navercorp.com>
* ges/ges.c:
ges: Add missing type unref on deinit
2019-01-12 20:23:50 +0900 Seungha Yang <seungha.yang@navercorp.com>
* ges/ges-asset.c:
* ges/ges-internal.h:
* ges/ges.c:
ges: Cleanup internal hash table on deinit
System-wide once allocated but it makes tracing leak hard
2019-01-12 19:57:37 +0900 Seungha Yang <seungha.yang@navercorp.com>
* ges/ges.c:
ges: Make init/deinit thread safe
Although it might be uncommon use case, init/deinit could be called
in non-main thread.
2019-01-12 19:23:25 +0900 Seungha Yang <seungha.yang@navercorp.com>
* ges/ges-asset.c:
asset: Use static lock
The mutex life cycle follows processs.
2019-01-14 10:16:18 +0900 Seungha Yang <seungha.yang@navercorp.com>
* tests/check/meson.build:
tests: Increase timeout value to 360 sec
Use consistent timeout value with core and other plugins.
Otherwise, valgrind sometimes timed out with default timeout 30sec.
2019-01-14 12:45:29 +0900 Seungha Yang <seungha.yang@navercorp.com>
* plugins/nle/nlecomposition.c:
nlecomposition: Don't try dump null stack
Fixes following assertion
Unexpected critical/warning: g_node_traverse: assertion 'root != NULL' failed
=== release 1.15.1 ===
2019-01-17 02:30:06 +0000 Tim-Philipp Müller <tim@centricular.com>

307
NEWS
View file

@ -15,7 +15,7 @@ the git master branch and which will eventually result in 1.16.
See https://gstreamer.freedesktop.org/releases/1.16/ for the latest
version of this document.
_Last updated: Monday 14 January 2019, 13:00 UTC (log)_
_Last updated: Monday 25 January 2019, 15:00 UTC (log)_
Introduction
@ -24,8 +24,8 @@ 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!
As always, this release is again packed with new features, bug fixes and
other improvements.
As always, this release is again packed with many new features, bug
fixes and other improvements.
Highlights
@ -40,7 +40,7 @@ Highlights
- Support for Closed Captions and other Ancillary Data in video
- Spport for planar (non-interleaved) raw audio
- Support for planar (non-interleaved) raw audio
- GstVideoAggregator, compositor and OpenGL mixer elements are now in
-base
@ -98,14 +98,17 @@ Noteworthy new API
to process the media in a live pipeline before it reaches the sink.
This is on top of the systemic latency that is normally reported by
the latency query. This defaults to 20ms and should make pipelines
such as v4lsrc ! xvimagesink not claim that all frames are late in
the QoS events. Ideally, this should replace max_lateness for most
applications.
such as v4l2src ! xvimagesink not claim that all frames are late in
the QoS events. Ideally, this should replace the "max-lateness"
property for most applications.
- RTCP Extended Reports (XR) parsing according to RFC 3611:
Loss/Duplicate RLE, Packet Receipt Times, Receiver Reference Time,
Delay since the last Receiver (DLRR), Statistics Summary, and VoIP
Metrics reports.
Metrics reports. This only provides the ability to parse such
packets, generation of XR packets is not supported yet and XR
packets are not automatically parsed by rtpbin / rtpsession but must
be actively handled by the application.
- a new mode for interlaced video was added where each buffer carries
a single field of interlaced video, with buffer flags indicating
@ -146,9 +149,10 @@ or planar arrangement in memory would look like
|LEFT|LEFT|LEFT| and |RIGHT|RIGHT|RIGHT| residing in separate memory
chunks or separated by some padding.
GStreamer has always had signalling for non-interleaved audio, but it
was never actually properly implemented in any elements. audioconvert
would advertise support for it, but wasnt actually able to handle it.
GStreamer has always had signalling for non-interleaved audio since
version 1.0, but it was never actually properly implemented in any
elements. audioconvert would advertise support for it, but wasnt
actually able to handle it correctly.
With this release we now have full support for non-interleaved audio as
well, which means more efficient integration with external APIs that
@ -177,18 +181,18 @@ The video support library has gained support for detecting and
extracting Ancillary Data from videos as per the SMPTE S291M
specification, including:
- a VBI (Video Blanking Interval) parser that can detect and extract
Ancillary Data from Vertical Blanking Interval lines of component
signals. This is currently supported for videos in v210 and UYVY
format.
- a VBI (Vertical Blanking Interval) parser that can detect and
extract Ancillary Data from Vertical Blanking Interval lines of
component signals. This is currently supported for videos in v210
and UYVY format.
- a new GstMeta for closed captions: GstVideoCaptionMeta. This
supports the two types of closed captions, CEA-608 and CEA-708,
along with the four different ways they can be transported (other
systems are a superset of those).
- a VBI (Video Blanking Interval) encoder for writing ancillary data
to the Vertical Blanking Interval lines of component signals.
- a VBI (Vertical Blanking Interval) encoder for writing ancillary
data to the Vertical Blanking Interval lines of component signals.
The new closedcaption plugin in gst-plugins-bad then makes use of all
this new infrastructure and provides the following elements:
@ -222,6 +226,9 @@ support:
- playbin and playbin3 learned how to autoplug CEA 608/708 CC overlay
elements
- the externally maintained ajavideosrc element for AJA capture cards
has support for extracting closed captions
The rsclosedcaption plugin in the Rust plugins collection includes a
MacCaption (MCC) file parser and encoder.
@ -239,7 +246,7 @@ New Elements
- gloverlaycompositor: New OpenGL-based compositor element that
flattens any overlays from GstVideoOverlayCompositionMetas into the
video stream.
video stream. This element is also always part of glimagesink.
- glalpha: New element that adds an alpha channel to a video stream.
The values of the alpha channel can either be set to a constant or
@ -248,7 +255,7 @@ New Elements
done in floating point so results may not be identical to the output
of the existing alpha element.
- rtpfunnel funnels together rtp-streams into a single session. Use
- rtpfunnel funnels together RTP streams into a single session. Use
cases include multiplexing and bundle. webrtcbin uses it to
implement BUNDLE support.
@ -264,10 +271,12 @@ New Elements
WPE
- Two new OpenCV-based elements: cameracalibrate and cameraundistort
who can communicate to figure out distortion correction parameters
that can communicate to figure out distortion correction parameters
for a camera and correct for the distortion.
- new sctp plugin based on usrsctp with sctpenc and sctpdec elements
- New sctp plugin based on usrsctp with sctpenc and sctpdec elements.
These elements are used inside webrtcbin for implementing data
channels.
New element features and additions
@ -348,12 +357,12 @@ New element features and additions
- rtspsrc now allows applications to send RTSP SET_PARAMETER and
GET_PARAMETER requests using action signals.
- rtspsrc also has a small (100ms) configurable teardown delay by
default to try and make sure an RTSP TEARDOWN request gets sent out
when the source element shuts down. This will block the downward
PAUSED to READY state change for a short time, but can be unset
where its a problem. Some servers only allow a limited number of
concurren clients, so if no proper TEARDOWN is sent clients may have
- rtspsrc has a small (100ms) configurable teardown delay by default
to try and make sure an RTSP TEARDOWN request gets sent out when the
source element shuts down. This will block the downward PAUSED to
READY state change for a short time, but can be disabled where its
a problem. Some servers only allow a limited number of concurrent
clients, so if no proper TEARDOWN is sent new clients may have
problems connecting to the server for a while.
- souphttpsrc behaves better with low bitrate streams now. Before it
@ -364,6 +373,7 @@ New element features and additions
- filesink: do internal buffering to avoid performance regression with
small writes since we bypass libc buffering by using writev()
instead of fwrite()
- identity: add "eos-after" property and fix "error-after" property
when the element is reused
@ -405,9 +415,9 @@ New element features and additions
relays (TURN servers).
- The removesilence element has received various new features and
properties, such as a
"threshold"1 property, detecting silence only after minimum silence time/buffers, a“silent”property to control bus message notifications as well as a“squash”`
property.
properties, such as a "threshold" property, detecting silence only
after minimum silence time/buffers, a "silent" property to control
bus message notifications as well as a "squash" property.
- AOMedia AV1 decoder gained support for 10/12bit decoding whilst the
AV1 encoder supports more image formats and subsamplings now and
@ -430,15 +440,15 @@ Plugin and library moves
- The stereo element was moved from -bad into the existing audiofx
plugin in -good. If you get duplicate type registration warnings
when upgrading, check that you dont have a stale gststereo plugin
lying about somewhere.
when upgrading, check that you dont have a stale stereoplugin lying
about somewhere.
GstVideoAggregator, compositor, and OpenGL mixer elements moved from -bad to -base
GstVideoAggregator is a new base class for raw video mixers and muxers
and is based on [GstAggregator][aggregator]. It provides defined-latency
mixing of raw video inputs and ensures that the pipeline wont stall
even if one of the input streams stops producing data.
and is based on GstAggregator. It provides defined-latency mixing of raw
video 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.
@ -456,14 +466,15 @@ would expected in most scenarios.
The compositor element has gained support for per-pad blending mode
operators (SOURCE, OVER, ADD) which determines what operator to use for
blending this pad over the previous ones. This can be used to implement
crossfading.
crossfading and the available operators can be extended in the future as
needed.
A number of OpenGL-based video mixer elements (glvideomixer, glmixerbin,
glvideomixerelement, glstereomix, glmosaic) which are built on top of
GstVideoAggregator have also been moved from -bad to -base now. These
elements have been merged into the existing OpenGL plugin, so if you get
duplicate type registration warnings when upgrading, check that you
dont have a stale gstopenglmixers plugin lying about somewhere.
dont have a stale openglmixers plugin lying about somewhere.
Plugin removals
@ -477,11 +488,11 @@ The following plugins have been removed from gst-plugins-bad:
plugin.
- The acmmp3dec and acmenc plugins for Windows have been removed. ACM
is an ancient legacy API and there was no point in keeping them
around for a licensed mp3 decoder now that mp3 patents have expired
and we have a decoder in -good. We also didnt ship these in our
cerbero-built Windows packages, so its unlikely that theyll be
missed.
is an ancient legacy API and there was no point in keeping the
plugins around for a licensed MP3 decoder now that the MP3 patents
have expired and we have a decoder in -good. We also didnt ship
these in our cerbero-built Windows packages, so its unlikely that
theyll be missed.
Miscellaneous API additions
@ -506,7 +517,8 @@ Miscellaneous API additions
one might need to put such elements into READY state to test if the
hardware is present in the system for example.
- protection: Add a new definition for unspecified system protection
- protection: Add a new definition for unspecified system protection,
GST_PROTECTION_UNSPECIFIED_SYSTEM_ID
- take functions for various mini objects that didnt have them yet:
gst_query_take(), gst_message_take(), gst_tag_list_take(),
@ -522,11 +534,18 @@ Miscellaneous API additions
gst_clear_mini_object(), gst_clear_object()
- miniobject: new API gst_mini_object_add_parent() and
gst_mini_object_remove_parent()to set parent pointers on mini objects to ensure correct writability: Every container of miniobjects now needs to store itself as parent in the child object, and remove itself again later. A mini object is then only writable if there is at most one parent, that parent is writable itself, and the reference count of the mini object is 1.GstBuffer(for memories),GstBufferList(for buffers),GstSample(for caps, buffer, bufferlist), andGstVideoOverlayComposition`
were updated accordingly. Without this it was possible to have
e.g. a buffer list with a refcount of 2 used in two places at once
that both modify the same buffer with refcount 1 at the same time
wrongly thinking it is writable even though its really not.
gst_mini_object_remove_parent() to set parent pointers on mini
objects to ensure correct writability: Every container of
miniobjects now needs to store itself as parent in the child object,
and remove itself again later. A mini object is then only writable
if there is at most one parent, that parent is writable itself, and
the reference count of the mini object is 1. GstBuffer (for
memories), GstBufferList (for buffers), GstSample (for caps, buffer,
bufferlist), and GstVideoOverlayComposition were updated
accordingly. Without this it was possible to have e.g. a buffer list
with a refcount of 2 used in two places at once that both modify the
same buffer with refcount 1 at the same time wrongly thinking it is
writable even though its really not.
- poll: add API to watch for POLLPRI and stop treating POLLPRI as a
read. This is useful to wait for video4linux events which are
@ -596,7 +615,7 @@ GstPlayer
Miscellaneous changes
- As a result of moving to different FFmpeg APIs, encoder and decoder
- As a result of moving to newer FFmpeg APIs, encoder and decoder
elements exposed by the GStreamer FFmpeg wrapper plugin (gst-libav)
may have seen possibly incompatible changes to property names and/or
types, and not all properties exposed might be functional. We are
@ -649,48 +668,48 @@ Tracing framework and debugging improvements
object. This is currently limited to pads for GstElements and
events for the pads. The output may look like this:
(gdb) gst-print pad.object.parent
GstMatroskaDemux (matroskademux0) {
SinkPad (sink, pull) {
(gdb) gst-print pad.object.parent
GstMatroskaDemux (matroskademux0) {
SinkPad (sink, pull) {
}
SrcPad (video_0, push) {
events:
stream-start:
stream-id: 0463ccb080d00b8689bf569a435c4ff84f9ff753545318ae2328ea0763fd0bec/001:1274058367
caps: video/x-theora
width: 1920
height: 800
pixel-aspect-ratio: 1/1
framerate: 24/1
streamheader: < 0x5555557c7d30 [GstBuffer], 0x5555557c7e40 [GstBuffer], 0x7fffe00141d0 [GstBuffer] >
segment: time
rate: 1
tag: global
container-format: Matroska
}
SrcPad (audio_0, push) {
events:
stream-start:
stream-id: 0463ccb080d00b8689bf569a435c4ff84f9ff753545318ae2328ea0763fd0bec/002:1551204875
caps: audio/mpeg
mpegversion: 4
framed: true
stream-format: raw
codec_data: 0x7fffe0014500 [GstBuffer]
level: 2
base-profile: lc
profile: lc
channels: 2
rate: 44100
segment: time
rate: 1
tag: global
container-format: Matroska
tag: stream
audio-codec: MPEG-4 AAC audio
language-code: en
}
}
SrcPad (video_0, push) {
events:
stream-start:
stream-id: 0463ccb080d00b8689bf569a435c4ff84f9ff753545318ae2328ea0763fd0bec/001:1274058367
caps: video/x-theora
width: 1920
height: 800
pixel-aspect-ratio: 1/1
framerate: 24/1
streamheader: < 0x5555557c7d30 [GstBuffer], 0x5555557c7e40 [GstBuffer], 0x7fffe00141d0 [GstBuffer] >
segment: time
rate: 1
tag: global
container-format: Matroska
}
SrcPad (audio_0, push) {
events:
stream-start:
stream-id: 0463ccb080d00b8689bf569a435c4ff84f9ff753545318ae2328ea0763fd0bec/002:1551204875
caps: audio/mpeg
mpegversion: 4
framed: true
stream-format: raw
codec_data: 0x7fffe0014500 [GstBuffer]
level: 2
base-profile: lc
profile: lc
channels: 2
rate: 44100
segment: time
rate: 1
tag: global
container-format: Matroska
tag: stream
audio-codec: MPEG-4 AAC audio
language-code: en
}
}
- gst_structure_to_string() now serialises the actual value of
pointers when serialising GstStructures instead of claiming theyre
@ -704,10 +723,10 @@ Tools
- gst-inspect-1.0 has coloured output now and will automatically use a
pager if the output does not fit on a page. This only works in a
unix environment and if the output is not piped. If you dont like
the colours you can disable them by setting the
GST_INSPECT_NO_COLORS=1 environment variable or passing the
--no-colors command line option.
UNIX environment and if the output is not piped, and on Windows 10
build 16257 or newer. If you dont like the colours you can disable
them by setting the GST_INSPECT_NO_COLORS=1 environment variable or
passing the --no-color command line option.
GStreamer RTSP server
@ -736,6 +755,29 @@ GStreamer VAAPI
- this section will be filled in in due course
GStreamer OMX
- Add support of NV16 format to video encoders input.
- Video decoders now handle the ALLOCATION query to tell upstream
about the number of buffers they require. Video encoders will also
use this query to adjust their number of allocated buffers
preventing starvation when using dynamic buffer mode.
- The OMX_PERFORMANCE debug category has been renamed to OMX_API_TRACE
and can now be used to track a widder variety of interactions
between OMX and GStreamer.
- Video encoders will now detect frame rate only changes and will
inform OMX about it rather than doing a full format reset.
- Various Zynq UltraScale+ specific improvements:
- Video encoders are now able to import dmabuf from upstream.
- Support for HEVC range extension profiles and more AVC profiles.
- We can now request video encoders to generate an IDR using the
force key unit event.
GStreamer Editing Services and NLE
- this section will be filled in in due course
@ -858,7 +900,7 @@ Added
value per tag. The old ::iter_tag_list() function was renamed to
::iter_generic() and still provides access to each value for a tag
- Bus::iter() and Bus::iter_timed() iterators around the corresponding
::pop*() functions
::pop\*() functions
- serde serialization of Value can also handle Buffer now
@ -995,11 +1037,78 @@ Build and Dependencies
- New sctp plugin based on usrsctp (for WebRTC data channels)
Cerbero
Cerbero is a meta build system used to build GStreamer plus dependencies
on platforms where dependencies are not readily available, such as
Windows, Android, iOS and macOS.
Cerbero has seen a number of improvements:
- Cerbero has been ported to Python 3 and requires Python 3.5 or newer
now
- Source tarballs are now protected by checksums in the recipes to
guard against download errors and malicious takeover of projects or
websites. In addition, downloads are only allowed via secure
transports now and plain HTTP, FTP and git:// transports are not
allowed anymore.
- There is now a new fetch-bootstrap command which downloads sources
required for bootstrapping, with an optional --build-tools-only
argument to match the bootstrap --build-tools-only command.
- The bootstrap, build, package and bundle-source commands gained a
new --offline switch that ensures that only sources from the cache
are used and never downloaded via the network. This is useful in
combination with the fetch and fetch-bootstrap commands that acquire
sources ahead of time before any build steps are executed. This
allows more control over the sources used and when sources are
updated, and is particularly useful for build environments that
dont have network access.
- bootstrap --assume-yes will automatically say yes to any
interactive prompts during the bootstrap stage, such as those from
apt-get or yum.
- bootstrap --system-only will only bootstrap the system without build
tools.
- Manifest support: The build manifest can be used in continuous
integration (CI) systems to fixate the Git revision of certain
projects so that all builds of a pipeline are on the same reference.
This is used in GStreamers gitlab CI for example. It can also be
used in order to re-produce a specific build. To set a manifest, you
can set manifest = 'my_manifest.xml' in your configuration file, or
use the --manifest command line option. The command line option will
take precendence over anything specific in the configuration file.
- The new build-deps command can be used to build only the
dependencies of a recipe, without the recipe itself.
- new --list-variants command to list available variants
- variants can now be set on the command line via the -v option as a
comma-separated list. This overrides any variants set in any
configuration files.
- new qt5, intelmsdk and nvidia variants for enabling Qt5 and hardware
codec support. See the Enabling Optional Features with Variants
section in the Cerbero documentation for more details how to enable
and use these variants.
- A new -t / --timestamp command line switch makes commands print
timestamps
Platform-specific changes and improvements
Android
- toolchain: update compiler to clang and NDKr18. NDK r18 removed the
armv5 target and only has Android platforms that target at least
armv7 so the armv5 target is not useful anymore.
- The way that GIO modules are named has changed due to upstream GLib
natively adding support for loading static GIO modules. This means
that any GStreamer application using gnutls for SSL/TLS on the
@ -1010,9 +1119,15 @@ Android
library. Look at this commit for the necessary change in the
examples.
- various build issues on Android have been fixed.
macOS and iOS
- macOS binaries should be fully relocatable now
- various build issues on iOS have been fixed.
- the minimum required iOS version is now 9.0. The difference in
adoption between 8.0 and 9.0 is 0.1% and the bump to 9.0 fixes some
build issues.
- The way that GIO modules are named has changed due to upstream GLib
natively adding support for loading static GIO modules. This means

View file

@ -1,4 +1,4 @@
This is GStreamer gst-editing-services 1.15.1.
This is GStreamer gst-editing-services 1.15.2.
GStreamer 1.15 is the development branch leading up to the next major
stable version which will be 1.16.

View file

@ -3,7 +3,7 @@ AC_PREREQ(2.62)
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 Editing Services, 1.15.1,
AC_INIT(GStreamer Editing Services, 1.15.2,
http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
gstreamer-editing-services)
@ -51,11 +51,11 @@ dnl we override it here if we need to for the release candidate of new series
GST_API_VERSION=1.0
AC_SUBST(GST_API_VERSION)
AS_LIBTOOL(GST, 1501, 0, 1501)
AS_LIBTOOL(GST, 1502, 0, 1502)
dnl *** required versions of GStreamer stuff ***
GST_REQ=1.15.1
GSTPB_REQ=1.15.1
GST_REQ=1.15.2
GSTPB_REQ=1.15.2
dnl *** autotools stuff ****

View file

@ -30,6 +30,16 @@ GStreamer library for creating audio and video editors
</GitRepository>
</repository>
<release>
<Version>
<revision>1.15.2</revision>
<branch>master</branch>
<name></name>
<created>2019-02-26</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-editing-services/gst-editing-services-1.15.2.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.15.1</revision>

View file

@ -1,5 +1,5 @@
project('gst-editing-services', 'c',
version : '1.15.1',
version : '1.15.2',
meson_version : '>= 0.47',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])