diff options
author | Tim-Philipp Müller <tim@centricular.com> | 2019-02-26 11:38:00 +0000 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.com> | 2019-02-26 13:24:28 +0000 |
commit | 0dd0a29c02c77ef0289dcee06400d3ddbb25e8ff (patch) | |
tree | 014a640c29bdcd78968a885fa0f66409ca6e95a4 | |
parent | 8d3ca40e9db4b9d610b9b112050789103e26af87 (diff) |
Release 1.15.2
-rw-r--r-- | ChangeLog | 306 | ||||
-rw-r--r-- | NEWS | 307 | ||||
-rw-r--r-- | RELEASE | 2 | ||||
-rw-r--r-- | configure.ac | 4 | ||||
-rw-r--r-- | gstreamer.doap | 10 | ||||
-rw-r--r-- | meson.build | 2 |
6 files changed, 531 insertions, 100 deletions
@@ -1,3 +1,309 @@ +=== release 1.15.2 === + +2019-02-26 11:38:00 +0000 Tim-Philipp Müller <tim@centricular.com> + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * gstreamer.doap: + * meson.build: + Release 1.15.2 + +2019-02-26 11:38:00 +0000 Tim-Philipp Müller <tim@centricular.com> + + * docs/plugins/inspect/plugin-coreelements.xml: + * docs/plugins/inspect/plugin-coretracers.xml: + Update docs + +2019-02-26 11:37:57 +0000 Tim-Philipp Müller <tim@centricular.com> + + * po/af.po: + * po/ast.po: + * po/az.po: + * po/be.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/el.po: + * po/en_GB.po: + * po/eo.po: + * po/es.po: + * po/eu.po: + * po/fi.po: + * po/fr.po: + * po/fur.po: + * po/gl.po: + * po/hr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/lt.po: + * po/nb.po: + * po/nl.po: + * po/pl.po: + * po/pt_BR.po: + * po/ro.po: + * po/ru.po: + * po/rw.po: + * po/sk.po: + * po/sl.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + * po/zh_TW.po: + Update translations + +2019-02-25 13:49:43 +0100 Philipp Zabel <p.zabel@pengutronix.de> + + * gst/gstplugin.c: + plugin: add 0BSD as valid license + Add the zero-clause BSD license, which is an alteration of the ISC + license, to the list of valid licenses. + +2019-02-25 13:48:38 +0100 Philipp Zabel <p.zabel@pengutronix.de> + + * gst/gstplugin.c: + plugin: fix link to 3-clause BSD license + The current link points to the 2-clause BSD license, + explicitly link to the 3-clause version of the license. + +2019-02-20 17:51:40 +0530 Nirbheek Chauhan <nirbheek@centricular.com> + + * gst/gstmacros.h: + gstmacros.h: Fix restrict definition on MSVC + Turns out it's exposed as `__restrict`, not as `restrict`. + https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/95#note_120782 + +2019-02-20 01:25:11 +0530 Nirbheek Chauhan <nirbheek@centricular.com> + + * gst/gstmacros.h: + gstmacros.h: Fix check for 'restrict' keyword + MSVC also defines it as a keyword. Fixes build errors in projects that + include MSVC's xkeycheck.h which ensures that keywords aren't overriden + with a define. + +2019-02-18 09:58:19 +0900 Seungha Yang <seungha.yang@navercorp.com> + + * gst/gstbuffer.c: + buffer: Don't miss return value on Windows build + ... and use InterlockedExchangeAdd64 for the 64bit value. + InterlockedExchangeAdd is 32bit version. + +2019-02-15 13:23:37 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/gstbus.c: + bus: Make removing of signal/bus watches thread-safe + Between getting the GSource with the mutex and destroying it, something + else might've destroyed it already and we would have a dangling pointer. + Keep an additional reference just in case. + +2019-02-15 13:20:27 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/gstbus.c: + bus: Don't allow removing signal watches with gst_bus_remove_watch() + Signal watches are reference counted and gst_bus_remove_watch() would + immediately remove it, breaking the reference counting. Only + gst_bus_remove_signal_watch() should be used for removing signal + watches. + +2019-02-11 15:21:21 +1300 Lawrence Troup <lawrence.troup@teknique.com> + + * gst/gstpad.c: + * gst/gstpad.h: + pad: Document that pad unlink function is called with pad lock held + Fixes #353 + +2016-12-02 17:56:59 +0000 Tim-Philipp Müller <tim@centricular.com> + + * docs/gst/gstreamer-sections.txt: + * gst/gst_private.h: + * gst/gstbuffer.c: + * gst/gstmeta.c: + * gst/gstmeta.h: + * tests/check/gst/gstmeta.c: + buffer: store sequence number for metas + For metas where order might be significant if multiple metas are + attached to the same buffer, so store a sequence number with the + meta when adding it to the buffer. This allows users of the meta + to make sure metas are processed in the right order. + We need a 64-bit integer for the sequence number here in the API, + a 32-bit one might overflow too easily with high packet/buffer + rates. We could do it rtp-seqnum style of course, but that's a + bit of a pain. + We could also make it so that gst_buffer_add_meta() just keeps metas in + order or rely on the order we add the metas in, but that seems too + fragile overall, when buffers (incl. metas) get merged or split. + Also add a compare function for easier sorting. + We store the seqnum in the MetaItem struct here and not in the + GstMeta struct since there's no padding in the GstMeta struct. + We could add a private struct to GstMeta before the start of + GstMeta, but that's what MetaItem effectively is implementation- + wise. We can still change this later if we want, since it's all + private. + Fixes #262 + +2019-02-09 11:35:59 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/gstdeviceprovider.c: + deviceprovider: It's (transfer none) not (transfer-none) + +2019-01-30 10:41:58 -0300 Thibault Saunier <tsaunier@igalia.com> + + * docs/gst/gstreamer-sections.txt: + * gst/gstdevicemonitor.c: + * gst/gstdeviceprovider.c: + * gst/gstdeviceprovider.h: + * gst/gstmessage.c: + * gst/gstmessage.h: + * gst/gstquark.c: + * gst/gstquark.h: + device-provider: Allow notifying application of device changes + Thi introduces new APIs to post a `DEVICE_CHANGED` message on the + bus so the application is notifies when a device is modified. For + example, if the "defaultness" of a device was changed or any property + that can be changed at any time. Atomically changing the device + object notifying that way allow us to abtract away the internal threads. + New APIS: + - gst_message_new_device_changed + - gst_message_parse_device_changed + - gst_device_provider_device_changed + +2019-02-08 16:42:43 +0530 Nirbheek Chauhan <nirbheek@centricular.com> + + * gst/parse/get_flex_version.py: + * gst/parse/meson.build: + meson: Extract flex version using a regex inside a script + Different builds of Flex on different platforms output different strings + in --version. For example: + macOS: + flex 2.5.35 Apple(flex-31) + Windows: + win_flex.exe 2.6.4 + C:\Program Files (x86)\GnuWin32\bin\flex.EXE version 2.5.4 + We need to look for a string that looks like a version, which means + a regex till https://github.com/mesonbuild/meson/issues/1609 is fixed. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/356 + +2019-02-05 18:18:48 +0530 Nirbheek Chauhan <nirbheek@centricular.com> + + * libs/gst/check/gstharness.c: + * tests/check/gst/gstmeta.c: + * tools/gst-inspect.c: + misc: Fix various compiler warnings on MinGW + gstharness.c: Use G_GSIZE_FORMAT instead of hard-coding %zu + error: unknown conversion type character 'z' in format [-Werror=format] + gst-inspect.c: GPid is void* on non-UNIX, and we only use it on UNIX + error: initialization makes pointer from integer without a cast [-Werror] + gstmeta.c: Use and then discard value + error: value computed is not used [-Werror=unused-value] + With this, gstreamer builds with -Werror on MinGW + +2019-01-29 16:26:49 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/gstdatetime.c: + datetime: new() and new_local_time() constructors are not nullable + +2019-01-29 15:50:06 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/gstpad.c: + pad: Constructors are all not nullable + They can't possibly return NULL except in case of assertions. + +2019-01-29 15:49:50 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/gstpadtemplate.c: + padtemplate: Constructors are all nullable as they check the template name + +2019-01-29 12:01:59 +0100 Edward Hervey <edward@centricular.com> + + * tests/check/libs/baseparse.c: + test: Set PTS on proper variable + This would previously set the PTS on a random address causing various + memory corruption + +2019-01-25 02:36:18 +0100 Mathieu Duponchelle <mathieu@centricular.com> + + * gst/gstinfo.c: + * meson.build: + * meson_options.txt: + gstinfo: add Windows stacktraces support + This uses the DbgHelp library if available + +2019-01-25 13:46:59 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * gst/gstpad.c: + pad: Remove unneeded 64bit upcast in debug trace + The hook->hook_id is a gulong for which there are no portability issues + when tracing in printf format with %lu. So use %lu and remove the upcast + to 64 bit. This makes the code more consistent with everything else + tracing that hook_id and other gulong id. + +2019-01-24 13:52:46 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * tools/gst-inspect.c: + gst-inspect: Re-add DEFAULT_LESS_OPTS with initial value + Commit 56b4fbef5e6760adc927d0e1c7c8d6a0db9b785c refactored the pipe code + to use GLib utility, but the patch was hading some other changed. LESS + env was now hardcoded in the middle instead of from a define and was + changed from FXR to -RX. The "-" is not even valid for LESS env, and + with the lost of F, we would still use a pager when the content fits the + terminal. + +2019-01-23 13:51:08 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/gsttaglist.c: + taglist: Remove (scope call) annotation from gst_tag_register() + This was added in 7fdb15d6a2 but it is wrong. (scope call) is for + closures that only have to stay valid for the scope of the call, but the + tag merge function has to stay valid for the whole lifetime of the + application instead. + There's no appropriate scope annotation for that so we have to skip + these functions for now. + +2019-01-23 12:15:13 +0900 Seungha Yang <seungha.yang@navercorp.com> + + * tests/check/gst/gstinfo.c: + tests: info: Fix spurious validation + Should be equality check, not assignment. + Additionally, use fail_unless_equals_* macro for better readability + and debugging easier, if possible. + +2019-01-23 21:15:09 +0100 Mathieu Duponchelle <mathieu@centricular.com> + + * gst/parse/meson.build: + meson: improve flex version parsing + the output of flex --version can contain more than one space + +2019-01-22 14:05:43 +0900 Seungha Yang <seungha.yang@navercorp.com> + + * meson.build: + meson: Correct minimum required GLib version + It's updated to 2.40.0 since the commit 3e8ef4cf5a41e26836f0a5a8cb3ddaa5e55f1524 + +2019-01-17 11:22:27 +0900 Seungha Yang <seungha.yang@navercorp.com> + + * tools/gst-inspect.c: + gst-inspect: Don't setup pager too early + Setup it only if we have something to print out about inspected results. + Otherwise, gst_tools_print_version() output will be redirected to pager and also + exit immediately without waiting child process. + +2019-01-08 21:23:44 +0900 Seungha Yang <seungha.yang@navercorp.com> + + * tools/gst-inspect.c: + gst-inspect: Port to Glib's spawn API + Although we support pager just for *nix until now, + this can make more portable to Windows. + Fixes #342 + === release 1.15.1 === 2019-01-17 01:38:59 +0000 Tim-Philipp Müller <tim@centricular.com> @@ -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 wasn’t 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 wasn’t +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 it’s 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 it’s + a problem. Some servers only allow a limited number of concurrent + clients, so if no proper TEARDOWN is sent new clients may have problems connecting to the server for a while. - souphttpsrc behaves better with low bitrate streams now. Before it @@ -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 don’t have a stale gststereo plugin - lying about somewhere. + when upgrading, check that you don’t 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 won’t 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 won’t 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 -don’t have a stale gstopenglmixers plugin lying about somewhere. +don’t 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 didn’t ship these in our - cerbero-built Windows packages, so it’s unlikely that they’ll 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 didn’t ship + these in our cerbero-built Windows packages, so it’s unlikely that + they’ll 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 didn’t 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 it’s 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 it’s 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) { - } - 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 + (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 + } } - } - gst_structure_to_string() now serialises the actual value of pointers when serialising GstStructures instead of claiming they’re @@ -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 don’t 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 don’t 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 + don’t 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 GStreamer’s 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 @@ -1,4 +1,4 @@ -This is GStreamer core 1.15.1. +This is GStreamer core 1.15.2. GStreamer 1.15 is the development branch leading up to the next major stable version which will be 1.16. diff --git a/configure.ac b/configure.ac index 752b32448..2a7ed76ff 100644 --- a/configure.ac +++ b/configure.ac @@ -4,7 +4,7 @@ dnl initialize autoconf dnl when going to/from release please set the nano (fourth number) right ! dnl releases only do Wall, git and prerelease does Werror too dnl -AC_INIT([GStreamer],[1.15.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gstreamer]) +AC_INIT([GStreamer],[1.15.2],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gstreamer]) AG_GST_INIT dnl initialize automake (we require GNU make) @@ -62,7 +62,7 @@ dnl 1.2.5 => 205 dnl 1.10.9 (who knows) => 1009 dnl dnl sets GST_LT_LDFLAGS -AS_LIBTOOL(GST, 1501, 0, 1501) +AS_LIBTOOL(GST, 1502, 0, 1502) dnl *** autotools stuff **** diff --git a/gstreamer.doap b/gstreamer.doap index e4794bd76..4274a6df4 100644 --- a/gstreamer.doap +++ b/gstreamer.doap @@ -40,6 +40,16 @@ hierarchy, and a set of media-agnostic core elements. <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/gstreamer/gstreamer-1.15.2.tar.xz" /> + </Version> + </release> + + <release> + <Version> <revision>1.15.1</revision> <branch>master</branch> <name></name> diff --git a/meson.build b/meson.build index f1d54ca96..d3b802eb4 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('gstreamer', 'c', - version : '1.15.1', + version : '1.15.2', meson_version : '>= 0.47', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ]) |