Up to [cvs.NetBSD.org] / pkgsrc / multimedia / gst-plugins1-base
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
gstreamer1: updated to 1.24.10 GStreamer 1.24.10 stable bug fix release More than 40 security fixes across a wide range of elements following an audit by the GitHub Security Lab, including the MP4, Matroska, Ogg and WAV demuxers, subtitle parsers, image decoders, audio decoders and the id3v2 tag parser avviddec: Fix regression that could trigger assertions about width/height mismatches appsink and appsrc fixes closed caption handling fixes decodebin3 and urisourcebin fixes glupload: dmabuf: Fix emulated tiled import level: fix LevelMeta values outside of the stated range mpegtsmux, flvmux: fix potential busy looping with high cpu usage in live mode pipeline dot file graph generation improvements qt(6): fix criticals with multiple qml(6)gl{src,sink} rtspsrc: Optionally timestamp RTP packets with their receive times in TCP/HTTP mode to enable clock drift handling splitmuxsrc: reduce number of file descriptors used systemclock: locking order fixes v4l2: fix possible v4l2videodec deadlock on shutdown; 8-bit bayer format fixes x265: Fix build with libx265 version >= 4.1 after masteringDisplayColorVolume API change macOS: fix rendering artifacts in retina displays, plus ptp clock fixes cargo: Default to thin lto for the release profile (for faster builds with lower memory requirements) Various bug fixes, build fixes, memory leak fixes, and other stability and reliability improvements Translation updates
gstreamer1: updated to 1.24.9 GStreamer 1.24.9 stable bug fix release gst-rtsp-server security fix GstAggregator start time selection and latency query fixes for force-live mode audioconvert: fix dynamic handling of mix matrix, and accept custom upstream event for setting one encodebin: fix parser selection for encoders that support multiple codecs flvmux improvments for pipelines where timestamps don't start at 0 glcontext: egl: Unrestrict the support base DRM formats kms: Add IMX-DCSS auto-detection in sink and fix stride with planar formats in allocator macOS main application event loop fixes mpegtsdemux: Handle PTS/DTS wraparound with ignore-pcr=true playbin3, decodebin3, parsebin, urisourcebin: fix races, and improve stability and stream-collection handling rtpmanager: fix early RTCP SR generation for sparse streams like metadata qml6glsrc: Reduce capture delay qtdemux: fix parsing of rotation matrix with 180 degree rotation rtpav1depay: added wait-for-keyframe and request-keyframe properties srt: make work with newer libsrt versions and don't re-connect on authentication failure v4l2 fixes and improvement webrtcsink, webrtcbin and whepsrc fixes cerbero: fix Python 3.13 compatibility, g-i with newer setuptools, bootstrap on Arch Linux; iOS build fixes Ship qroverlay plugin in binary packages Various bug fixes, memory leak fixes, and other stability and reliability improvements
gstreamer1: updated to 1.24.8 Highlighted bugfixes: decodebin3: collection handling fixes encodebin: Fix pad removal (and smart rendering in gst-editing-services) glimagesink: Fix cannot resize viewport when video size changed in caps matroskamux, webmmux: fix firefox compatibility issue with Opus audio streams mpegtsmux: Wait for data on all pads before deciding on a best pad unless timing out splitmuxsink: Override LATENCY query to pretend to downstream that we're not live video: QoS event handling improvements voamrwbenc: fix list of bitrates vtenc: Restart encoding session when certain errors are detected wayland: Fix ABI break in WL context type name webrtcbin: Prevent crash when attempting to set answer on invalid SDP cerbero: ship vp8/vp9 software encoders again, which went missing in 1.24.7; ship transcode plugin Various bug fixes, memory leak fixes, and other stability and reliability improvements
gstreamer1: updated to 1.24.7 GStreamer 1.24.7 Highlighted bugfixes: Fix APE and Musepack audio file and GIF playback with FFmpeg 7.0 playbin3: Fix potential deadlock with multiple playbin3s with glimagesink used in parallel qt6: various qmlgl6src and qmlgl6sink fixes and improvements rtspsrc: expose property to force usage of non-compliant setup URLs for RTSP servers where the automatic fallback doesn't work urisourcebin: gapless playback and program switching fixes v4l2: various fixes va: Fix potential deadlock with multiple va elements used in parallel meson: option to disable gst-full for static-library build configurations that do not need this cerbero: libvpx updated to 1.14.1; map 2022Server to Windows11; disable rust variant on Linux if binutils is too old Various bug fixes, memory leak fixes, and other stability and reliability improvements
gstreamer1: updated to 1.24.6 GStreamer 1.24.6 stable bug fix release The GStreamer team is pleased to announce another bug fix release in the new stable 1.24 release series of your favourite cross-platform multimedia framework! This release only contains bugfixes and security fixes and it should be safe to update from 1.24.x. Highlighted bugfixes: Fix compatibility with FFmpeg 7.0 qmlglsink: Fix failure to display content on recent Android devices adaptivedemux: Fix handling of closed caption streams cuda: Fix runtime compiler loading with old CUDA tookit decodebin3 stream selection handling fixes d3d11compositor, d3d12compositor: Fix transparent background mode with YUV output d3d12converter: Make gamma remap work as intended h264decoder: Update output frame duration for interlaced video when second field frame is discarded macOS audio device provider now listens to audio devices being added/removed at runtime Rust plugins: audioloudnorm, s3hlssink, gtk4paintablesink, livesync and webrtcsink fixes videoaggregator: preserve features in non-alpha caps for subclasses with non-system memory sink caps vtenc: Fix redistribute latency spam v4l2: fixes for complex video formats va: Fix strides when importing DMABUFs, dmabuf handle leaks, and blocklist unmaintained Intel i965 driver for encoding waylandsink: Fix surface cropping for rotated streams webrtcdsp: Enable multi_channel processing to fix handling of stereo streams Various bug fixes, memory leak fixes, and other stability and reliability improvements
gstreamer1: updated to 1.24.5 GStreamer 1.24.5 Highlighted bugfixes: webrtcsink: Support for AV1 via nvav1enc, av1enc or rav1enc encoders AV1 RTP payloader/depayloader fixes to work correctly with Chrome and Pion WebRTC av1parse, av1dec error handling/robustness improvements av1enc: Handle force-keyunit events properly for WebRTC decodebin3: selection and collection handling improvements hlsdemux2: Various fixes for discontinuities, variant switching, playlist updates qml6glsink: fix RGB format support rtspsrc: more control URL handling fixes v4l2src: Interpret V4L2 report of sync loss as video signal loss d3d12 encoder, memory and videosink fixes vtdec: more robust error handling, fix regression ndi: support for NDI SDK v6 Various bug fixes, memory leak fixes, and other stability and reliability improvements
gstreamer1: updated to 1.24.4 GStreamer 1.24.4 stable bug fix release Highlighted bugfixes: audioconvert: support more than 64 audio channels avvidec: fix dropped frames when doing multi-threaded decoding of I-frame codecs such as DV Video mpegtsmux: Correctly time out in live pipelines, esp. for sparse streams like KLV and DVB subtitles vtdec deadlock fixes on shutdown and format/resolution changes (as might happen with e.g. HLS/DASH) fmp4mux, isomp4mux: Add support for adding AV1 header OBUs into the MP4 headers, and add language from tags gtk4paintablesink improvements: fullscreen mode and gst-play-1.0 support webrtcsink: add support for insecure TLS and improve error handling and VP9 handling vah264enc, vah265enc: timestamp handling fixes; generate IDR frames on force-keyunit-requests, not I frames v4l2codecs: decoder: Reorder caps to prefer `DMA_DRM` ones, fixes issues with playbin3 Visualizer plugins fixes Avoid using private APIs on iOS various bug fixes, memory leak fixes, and other stability and reliability improvements
gstreamer1: updated to 1.24.3 1.24.3 This release only contains bugfixes and it should be safe to update from 1.24.x. Highlighted bugfixes in 1.24.3 EXIF image tag parsing security fixes Subtitle handling improvements in parsebin Fix issues with HLS streams that contain VTT subtitles Qt6 QML sink re-render and re-sizing fixes unixfd ipc plugin timestamp and segment handling fixes vah264enc, vah265enc: Do not touch the PTS of the output frame vah264dec and vapostproc fixes and improvements v4l2: multiple fixes and improvements, incl. for mediatek JPEG decoder and v4l2 loopback v4l2: fix hang after seek with some v4l2 decoders Wayland sink fixes ximagesink: fix regression on RPi/aarch64 fmp4mux, mp4mux gained FLAC audio support D3D11, D3D12: reliablity improvements and memory leak fixes Media Foundation device provider fixes GTK4 paintable sink improvements including support for directly importing dmabufs with GTK 4.14 WebRTC sink/source fixes and improvements AWS s3sink, s3src, s3hlssink now support path-style addressing MPEG-TS demuxer fixes Python bindings fixes various bug fixes, memory leak fixes, and other stability and reliability improvements 1.24.2 This release only contains bugfixes and it should be safe to update from 1.24.x. Highlighted bugfixes in 1.24.2 H.264 parsing regression fixes WavPack typefinding improvements Video4linux fixes and improvements Android build and runtime fixes macOS OpenGL memory leak and robustness fixes Qt/QML video sink fixes Package new analytics and mse libraries in binary packages Windows MSVC binary packages: fix libvpx avx/avx2/avx512 instruction set detection various bug fixes, memory leak fixes, and other stability and reliability improvements
gst-plugins1-base: remove unused patch Noted by Marc Baudoin.
gstreamer1: update to 1.24.1 This release only contains bugfixes and security fixes and it should be safe to update from 1.24.0.
gst-plugins1-base: add upstream bug report URL
gst-plugins1-base: Include sys/stat.h for S_*.
*: update gstreamer1 to 1.24.0 GStreamer 1.24.0 new major stable release The GStreamer team is excited to announce a new major feature release of your favourite cross-platform multimedia framework! As always, this release is again packed with new features, bug fixes and many other improvements. The 1.24 release series adds new features on top of the previous 1.22 series and is part of the API and ABI-stable 1.x release series of the GStreamer multimedia framework. Highlights: New Discourse forum and Matrix chat space New Analytics and Machine Learning abstractions and elements Playbin3 and decodebin3 are now stable and the default in gst-play-1.0, GstPlay/GstPlayer The va plugin is now preferred over gst-vaapi and has higher ranks GstMeta serialization/deserialization and other GstMeta improvements New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data New unixfd plugin for efficient 1:N inter-process communication on Linux cudaipc source and sink for zero-copy CUDA memory sharing between processes New intersink and intersrc elements for 1:N pipeline decoupling within the same process Qt5 + Qt6 QML integration improvements including qml6glsrc, qml6glmixer, qml6gloverlay, and qml6d3d11sink elements DRM Modifier Support for dmabufs on Linux OpenGL, Vulkan and CUDA integration enhancements Vulkan H.264 and H.265 video decoders RTP stack improvements including new RFC7273 modes and more correct header extension handling in depayloaders WebRTC improvements such as support for ICE consent freshness, and a new webrtcsrc element to complement webrtcsink WebRTC signallers and webrtcsink implementations for LiveKit and AWS Kinesis Video Streams WHIP server source and client sink, and a WHEP source Precision Time Protocol (PTP) clock support for Windows and other additions Low-Latency HLS (LL-HLS) support and many other HLS and DASH enhancements New W3C Media Source Extensions library Countless closed caption handling improvements including new cea608mux and cea608tocea708 elements Translation support for awstranscriber Bayer 10/12/14/16-bit depth support MPEG-TS support for asynchronous KLV demuxing and segment seeking, plus various new muxer features Capture source and sink for AJA capture and playout cards SVT-AV1 and VA-API AV1 encoders, stateless AV1 video decoder New uvcsink element for exporting streams as UVC camera DirectWrite text rendering plugin for windows Direct3D12-based video decoding, conversion, composition, and rendering AMD Advanced Media Framework AV1 + H.265 video encoders with 10-bit and HDR support AVX/AVX2 support and NEON support on macOS on Apple ARM64 CPUs via new liborc GStreamer C# bindings have been updated Rust bindings improvements and many new and improved Rust plugins Lots of new plugins, features, performance improvements and bug fixes
gstreamer: update to 1.22.10 GStreamer 1.22.10 This release only contains bugfixes and security fixes and it should be safe to update from 1.22.x. Highlighted bugfixes: gst-python: fix bindings overrides for Python >= 3.12 glcolorconvert: fix wrong RGB to YUV matrix with bt709 glvideoflip: fix "method" property setting at construction time gtk4paintablesink: Always draw a black background behind the video frame, and other fixes pad: keep segment event seqnums the same when applying a pad offset basesink: Preroll on out of segment buffers when not dropping them Prefer FFmpeg musepack decoder/demuxer, fixing musepack playback in decodebin3/playbin3 livesync: add support for image formats such as JPEG or PNG sdpdemux: Add SDP message (aka session) attributes to the caps too textwrap: add support for gaps macos: Fix gst_macos_main() terminating whole process, and set activation policy webrtcbin: Improve SDP intersection for Opus various bug fixes, build fixes, memory leak fixes, and other stability and reliability improvements GStreamer 1.22.9 This release only contains bugfixes and security fixes and it should be safe to update from 1.22.x. Highlighted bugfixes: More Security fixes for the AV1 codec parser va: fixes for Mesa Gallium drivers in Mesa versions older than v23.2 v4l2src: Consider framerate during caps selection v4l2codec: decoder fixes rtspsrc: multicast fixes camerabin viewfinder fixes various bug fixes, build fixes, memory leak fixes, and other stability and reliability improvements
gstreamer1: update to 1.22.8 Highlighted bugfixes: Security fixes for the AV1 codec parser [Security fixes](https://gstreamer.freedesktop.org/security/) for the AV1 video codec parser avdec video decoder: fix another possible deadlock with FFmpeg 6.1 qtdemux: reverse playback and seeking fixes for files with raw audio streams v4l2: fix "newly allocated buffer ... is not free" warning log flood GstPlay + GstPlayer library fixes dtls: Fix build failure on Windows when compiling against OpenSSL 3.2.0 d3d11screencapturesrc: Fix wrong color with HDR enabled Cerbero build tool: More python 3.12 string escape warning fixes; make sure to bundle build tools as well various bug fixes, build fixes, memory leak fixes, and other stability and reliability improvements
gstreamer: update to 1.22.7 Highlighted bugfixes: Security fixes for the MXF demuxer and AV1 codec parser glfilter: Memory leak fix for OpenGL filter elements d3d11videosink: Fix toggling between fullscreen and maximized, and window switching in fullscreen mode DASH / HLS adaptive streaming fixes Decklink card device provider device name string handling fixes interaudiosrc: handle non-interleaved audio properly openh264: Fail gracefully if openh264 encoder/decoder creation fails rtspsrc: improved whitespace handling in response headers by certain cameras v4l2codecs: avoid wrap-around after 1000000 frames; tiled formats handling fixes video-scaler, audio-resampler: downgraded "Can't find exact taps" debug log messages wasapi2: Don't use global volume control object Rust plugins: various improvements in aws, fmp4mux, hlssink3, livesync, ndisrc, rtpav1depay, rsfilesink, s3sink, sccparse WebRTC: various webrtchttp, webrtcsrc, and webrtcsink improvements and fixes Cerbero build tools: recognise Windows 11; restrict parallelism of gst-plugins-rs build on small systems Packages: ca-certificates update; fix gio module loading and TLS support on macOS
gstreamer*: update to 1.22.6 1.22.6 Highlighted bugfixes: Security fixes for the MXF demuxer and H.265 video parser Fix latency regression in H.264 hardware decoder base class androidmedia: fix HEVC codec profile registration and fix coded_data handling decodebin3: fix switching from a raw stream to an encoded stream gst-inspect: prettier and more correct signal and action signals printing rtmp2: Allow NULL flash version, omitting the field, for better RTMP server compatibility rtspsrc: better compatibility with buggy RTSP servers that don't set a clock-rate rtpjitterbuffer: fix integer overflow that led to more packets being declared lost than have been lost v4l2: fix video encoding regression on RPi and fix support for left and top padding waylandsink: Crop surfaces to their display width height cerbero: Recognise Manjaro; add Rust support for MSVC ARM64; cmake detection fixes various bug fixes, memory leak fixes, and other stability and reliability improvements 1.22.5 Highlighted bugfixes: Security fixes for the RealMedia demuxer vaapi decoders, postproc: Disable DMAbuf from caps negotiation to fix garbled video in some cases decodebin3, playbin3, parsebin fixes, especially for stream reconfiguration hlsdemux2: fix early seeking; don't pass referer when updating playlists; webvtt fixes gtk: Fix critical caused by pointer movement when stream is getting ready qt6: Set sampler filtering method, fixes bad quality with qml6glsink and gstqt6d3d11 v4l2src: handle resolution change when buffers are copied videoflip: update orientation tag in auto mode video timecode: Add support for framerates lower than 1fps and accept 119.88 (120/1.001) fps webrtcsink: fixes for x264enc and NVIDIA encoders cerbero: Pull ninja from system if possible, avoid spurious bootstrap of cmake packages: Recipe updates for ffmpeg, libsoup, orc various bug fixes, memory leak fixes, and other stability and reliability improvements
gstreamer: update to 1.22.4 The GStreamer team is pleased to announce another bug fix release in the stable 1.22 release series of your favourite cross-platform multimedia framework! This release only contains bugfixes and security fixes and it should be safe to update from 1.22.x.
gstreamer1*: update to 1.22.3 Highlighted bugfixes: avdec: fix occasional video decoder deadlock on seeking with FFmpeg 6.0 decodebin3: fix regression handling input streams without CAPS or TIME segment such as e.g. udpsrc or pushfilesrc bluez: a2dpsink: fix Bluetooth SIG Certification test failures osxvideosink: fix deadlock upon closing output window qtdemux: fix edit list handling regression and AV1 codec box parsing qtmux: fix extraction of CEA608 closed caption data from S334-1A packets rtspsrc: Fix handling of * control path splitmux: timestamp handling improvements v4l2videodec: Rework dynamic resolution change handling (needed for IMX6 mainline codec) videoflip: fix regression with automatically rotating video based on tags d3d11: many d3d11videosink and d3d11compositor fixes webrtc, rtp: numerous data race fixes and stability fixes cerbero: Add support for RHEL9 and Rocky Linux; build timecodestamper plugin with libltc support various bug fixes, memory leak fixes, and other stability and reliability improvements
gstreamer1: update to 1.22.2 Highlighted bugfixes: avdec_h264: fix decoder deadlocks with FFmpeg 6.0 rtspsrc: fix regression with URI protocols in OPTIONS requests for RTSP over TLS rtspsrc: improved control url handling compatibility for broken servers decklink: fix 10 bit RGB (r210) format auto detection for capture and fix playout if video caps are configured before audio caps d3d11videosink: Fix tearing in case of fullscreen mode playbin: fix deadlock when stopping stream with subtitles visible (even more) typefinding: fix regression not detecting application/dash+xml in some corner cases osxvideosink: fix broken aspect ratio and frame drawing region decodebin3, parsebin: Improve elementary stream handling when decoders are not present and fix hang when removing a failing stream urisourcebin: Propagate sticky events from parsebin, so that the `STREAM_START` event with the `GstStream` info is always available when pads get exposed v4l2: Add support for YVU420M format; mark JPEG content as parsed h264decoder, h265decoder: DPB bumping process and latency reporting fixes Opus: Fix reading of extended channel config in MPEG-TS and fix missing sample rate when remuxing from RTP to Matroska zxing: add support for building against zxing-c++ 2.0 cerbero: Fix packaging of Rust plugins on Android; fix modern Gentoo distro detection various bug fixes, memory leak fixes, and other stability and reliability improvements
Update gstreamer1 to 1.22.1 Highlight summary: - New HLS, DASH and Microsoft Smooth Streaming adaptive streaming clients adaptivemux2, which requires a "streams-aware" container to work. - videoconvert and videoscale were combined to videoconvertscale - xingmux was moved to plugins-good Many improvements listed at https://gstreamer.freedesktop.org/releases/1.22/
gstreamer1: update to 1.20.5 GStreamer 1.20.5 stable bug fix release The GStreamer team is pleased to announce another bug fix release in the stable 1.20 release series of your favourite cross-platform multimedia framework! This release only contains bug fixes. It should be safe to update from 1.20.x. Highlighted bugfixes: systemclock waiting fixes for certain 32-bit platforms/libcs alphacombine: robustness improvements for corner case scenarios avfvideosrc: Report latency when doing screen capture d3d11videosink: various thread-safety and stability fixes decklink: fix performance issue when HDMI signal has been lost for a long time flacparse: Fix handling of headers advertising 32 bits per sample mpegts: Handle when iconv doesn't support ISO 6937 (e.g. musl libc) opengl: fix automatic dispmanx detection for rpi4 and fix usage of eglCreate/DestroyImage opusdec: Various channel-related fixes textrender: event handling fixes, esp. for GAP event subparse: Fix non-closed tag handling videoscale: fix handling of unknown buffer metas videosink: reverse playback handling fixes qtmux: Prefill mode fixes, especially for raw audio multiudpsink: allow binding to IPv6 address rtspsrc: Fix usage of IPv6 connections in SETUP rtspsrc: Only EOS on timeout if all streams are timed out/EOS splitmuxsrc: fix playback stall if there are unlinked pads v4l2: Fix SIGSEGV on state change during format changes wavparse robustness fixes Fix static linking on macOS (opengl, vulkan) gstreamer-vaapi: fix headless build against mesa >= 22.3.0 GStreamer Editing Services library: Fix build with tools disabled webrtc example/demo fixes unit test fixes for aesdec and rtpjitterbuffer Cerbero: Fix ios cross-compile with cmake on M1; some recipe updates and other build fixes Binary packages: pkg-config file fixes for various recipes (ffmpeg, taglib, gstreamer) Binary packages: Enable high bitdepth support for libvpx (VP8/VP9 encoding/decoding) Binary packages: ship aes plugin Performance improvements Miscellaneous bug fixes, memory leak fixes, and other stability and reliability improvements
gstreamer1: updated to 1.20.4 Highlighted bugfixes in 1.20.4 avaudiodec: fix playback issue with WMA files, would throw an error at EOS with FFmpeg 5.x Fix deadlock when loading gst-editing-services plugin Fix input buffering capacity in live mode for aggregator, video/audio aggregator subclasses, muxers glimagesink: fix crash on Android subtitle handling and subtitle overlay fixes matroska-mux: allow width + height changes for avc3|hev1|vp8|vp9 rtspsrc: fix control url handling for spec compliant servers and add fallback for incompliant servers WebRTC fixes RTP retransmission fixes video: fixes for formats with 4x subsampling and horizontal co-sited chroma (Y41B, YUV9, YVU9 and IYU9) macOS build and packaging fixes, in particular fix finding of gio modules on macOS for https/TLS support Fix consuming of the macOS package as a framework in XCode Performance improvements Miscellaneous bug fixes, memory leak fixes, and other stability and reliability improvements
gstreamer1: update to 1.20.3 Highlighted bugfixes: Security fixes in Matroska, MP4 and AVI demuxers Fix scrambled video playback with hardware-accelerated VA-API decoders on certain Intel hardware playbin3/decodebin3 regression fix for unhandled streams Fragmented MP4 playback fixes Android H.265 encoder mapping Playback of MXF files produced by older FFmpeg versions Fix rtmp2sink crashes on 32-bit platforms WebRTC improvements D3D11 video decoder and screen recorder fixes Performance improvements Support for building against OpenCV 4.6 and other build fixes Miscellaneous bug fixes, memory leak fixes, and other stability and reliability improvements
gstreamer1: update to 1.20.2 Highlighted bugfixes: * avviddec: Remove vc1/wmv3 override and fix crashes on WMV files with FFMPEG 5.0+ * macOS: fix plugin discovery for GStreamer installed via brew and fix loading of Rust plugins * rtpbasepayload: various header extension handling fixes * rtpopusdepay: fix regression in stereo input handling if sprop-stereo is not advertised * rtspclientsink: fix possible shutdown deadlock * mpegts: gracefully handle "empty" program maps and fix AC-4 detection * mxfdemux: Handle empty VANC packets and fix EOS handling * playbin3: various playbin3, uridecodebin3, and playsink fixes * ptpclock: fix initial sync-up with certain devices * gltransformation: let graphene alloc its structures memory aligned * webrtcbin fixes and webrtc sendrecv example improvements * video4linux2: various fixes including some fixes for Raspberry Pi users * videorate segment handling fixes and other fixes * nvh264dec, nvh265dec: Fix broken key-unit trick modes and reverse playback * wpe: Reintroduce persistent WebContext * cerbero: Make it easier to consume 1.20.1 macOS GStreamer .pkgs * build fixes and gobject annotation fixes * bug fixes, security fixes, memory leak fixes, and other stability and reliability improvements
gst-plugins1-base: remove broken unfinished patch (it was the wrong approach, and isn't necessary anyway)
gst-plugins1-base: mend broken meson pkgsrc patch for gst-gl The patch has syntax errors and I think it is only needed for wip/gst-plugins1-gl? This might need to be done differently but should hopefully unbreak the base package which is more urgent until a proper fix can be made.
gst-plugins1: Update to 1.20.1 Release notes: https://gstreamer.freedesktop.org/releases/1.20/
gstreamer1: Build fixes for Solarish PR pkg/56509 from Claes Nästén
*: update gstreamer1 and plugins and related packages to 1.18.5 Based on the wip packages by nia and myself.
multimedia: Replace RMD160 checksums with BLAKE2s checksums All checksums have been double-checked against existing RMD160 and SHA512 hashes The following distfiles could not be fetched (for legal reasons?): ./multimedia/adobe-flash-player/distinfo adobe-flash-player-32.0.0.465/flash_player_npapi_linux.i386.tar.gz ./multimedia/adobe-flash-player/distinfo adobe-flash-player-32.0.0.465/flash_player_npapi_linux.x86_64.tar.gz ./multimedia/libdvdcss/distinfo libdvdcss-1.4.3.tar.bz2
multimedia: Remove SHA1 hashes for distfiles
gstreamer1,gst-plugins1-{base,bad}: fix build with GNU make 4.3 from Michael Forney
gst-plugins1-base: fix unportable test(1) operator.
gstreamer: update to 1.16.2 The second 1.16 bug-fix release (1.16.2) was released on 3 December 2019. This release only contains bugfixes and it should be safe to update from 1.16.1. Highlighted bugfixes in 1.16.2 Interlaced video scaling fixes CineForm video support in AVI audiorate: avoid glitches due to rounding errors after changing rate Command line tool output printing improvements on Windows various performance improvements, memory leak fixes and security fixes VP9 decoding fixes avfvideosrc: Explicitly request video permission on macOS 10.14+ wasapi: bug fixes and stability improvements webrtc-audio-processing: fix segmentation fault on 32-bit windows tsdemux: improved handling of certain discontinuities vaapi h265 decoder: wait for I-frame before trying to decode gstreamer gst-launch: Fix ugly stdout on Windows tee: Make sure to actually deactivate pads that are released bin: Drop need-context messages without source instead of crashing gst: Don't pass miniobjects to GST_DEBUG_OBJECT() and similar macros tracers: Don't leak temporary GstStructure gst-plugins-base xvimagepool: Update size, stride, and offset with allocated XvImage video-converter: Fix RGB-XYZ-RGB conversion audiorate: Update next_offset on rate change audioringbuffer: Reset reorder flag before check audio-buffer: Don't fail to map buffers with zero samples videorate: Fix max-duplication-time handling gl/gbm: ensure we call the resize callback before attempting to draw video-converter: Various fixes for interlaced scaling gstrtspconnection: messages_bytes not decreased check: Don't use real audio devices for tests riff: add CineForm mapping glfilters: Don't use static variables for storing per-element state glupload: Add VideoMetas and GLSyncMeta to the raw uploaded buffers streamsynchronizer: avoid pad release race during logging. gst-play: Use gst_print* to avoid broken stdout string on Windows gst-plugins-good vp9dec: Fix broken 4:4:4 8bits decoding rtpsession: add locking for clear-pt-map rtpL16depay: don't crash if data is not modulo channels*width wavparse: Fix push mode ignoring audio with a size smaller than segment buffer wavparse: Fix push mode ignoring last audio payload chunk aacparse: fix wrong offset of the channel number in adts header jpegdec: Fix incorrect logic in EOI tag detection videocrop: Also update the coordinate when in-place jpegdec: don't overwrite the last valid line vpx: Error out if enabled and no features found v4l2videodec: ensure pool exists before orphaning it v4l2videoenc: fix type conversion errors v4l2bufferpool: Queue number of allocated buffers to capture v4l2object: fix mpegversion number typo v4l2object: Work around bad TRY_FMT colorimetry implementations gst-plugins-bad avfvideosrc: Explicitly request video permission on macOS 10.14+ wasapi: Various fixes and a workaround for a specific driver bug wasapi: Move to CoInitializeEx for COM initialization wasapi: Fix runtime/build warnings waylandsink: Commit the parent after creating subsurface msdkdec: fix surface leak in msdkdec_handle_frame tsmux: Fix copying of buffer region tsdemux: Handle continuity mismatch in more cases tsdemux: Always issue a DTS even when it's equal to PTS openexr: Fix build with OpenEXR 2.4 (and also OpenEXR 2.2 on Ubuntu 18.04) ccextractor: Always forward all sticky events to the caption pad pnmdec: Return early on ::finish() if we have no actual data to parse ass: avoid infinite unref loop with bad data fluidsynth: add sf3 to soundfont search path webrtcdsp/webrtcechoprobe segmentation fault on windows (1.16.0 x86) gst-libav avvidenc: Fix error propagation avdemux: Fix segmentation fault if long_name is NULL avviddec: Fix huge leak caused by circular reference avviddec: Enforce allocate new AVFrame per input frame avdec_mpeg2video (and probably more): Huge memory leak in git master gst-rtsp-server rtsp-media: Use lock in gst_rtsp_media_is_receive_only rtsp-client: RTP Info when completed_sender rtsp-client: fix location uri-format by getting uri directly from context instead gstreamer-vaapi meson build: halt configuration if no renderer API libs: decoder: h265: skip all pictures prior the first I-frame libs: window: x11: Avoid usage of deprecated API gst-editing-services Initialize debug categories before usage gst-build gst-env: Use locally built GStreamer utility programs
gstreamer1: update to 1.16.1 1.16.1 The first 1.16 bug-fix release (1.16.1) was released on 23 September 2019. This release only contains bugfixes and it should be safe to update from 1.16.0. Highlighted bugfixes in 1.16.1 GStreamer-vaapi: fix green frames and decoding artefacts in some cases OpenGL: fix wayland event source burning CPU in certain circumstances Memory leak fixes and memory footprint improvements Performance improvements Stability and security fixes Fix enum for GST_MESSAGE_DEVICE_CHANGED which is technically an API break, but this is only used internally in GStreamer and duplicated another message enum hls: Make crypto dependency optional when hls-crypto is auto player: fix switching back and forth between forward and reverse playback decklinkaudiosink: Drop late buffers openh264enc: Fix compilation with openh264 v2.0 wasapisrc: fix segtotal value being always 2 android: Fix gnutls issue causing a FORTIFY crash on Android Q windows: Fix two crashes due to cross-CRT free when using MSVC gstreamer core device: gst_device_create_element() is transfer floating, not transfer full filesink, fdsink: respect IOV_MAX for the writev iovec array (Solaris) miniobject: free qdata array when the last qdata is removed (reduces memory footprint) bin: Fix minor race when adding to a bin aggregator: Actually handle NEED_DATA return from update_src_caps() aggregator: Ensure that the source pad is created as a GstAggregatorPad if no type is given in the pad template latency: fix custom event leaks registry: Use plugin directory from the build system for relocateable Windows builds message: fix up enum value for GST_MESSAGE_DEVICE_CHANGED info: Fix deadlock in gst_ring_buffer_logger_log() downloadbuffer: Check for flush after seek identity: Non-live upstream have no max latency identity: Fix the ts-offset property getter aggregator: Make parsing of explicit sink pad names more robust bufferpool: Fix the buffer size reset code fakesink, fakesrc, identity: sync gst_buffer_get_flags_string() with new flags multiqueue: never unref queries we do not own concat: Reset last_stop on FLUSH_STOP too aggregator: fix flow-return boolean return type mismatch gstpad: Handle probes that reset the data field gst: Add support for g_autoptr(GstPromise) gst-inspect: fix unused-const-variable error in windows base: Include gstbitwriter.h in the single-include header Add various Since: 1.16 markers GST_MESSAGE_DEVICE_CHANGED duplicates GST_MESSAGE_REDIRECT Targetting wrong meson version meson: Make get_flex_version.py script executable meson: Link to objects instead of static helper library meson: set correct install path for gdb helper meson: fix warning about configure_file() install kwarg gst-plugins-base video-info: parse field-order for all interleaved formats tests: fix up valgrind suppressions for glibc getaddrinfo leaks meson: Reenable NEON support (in audio resampler) audio-resampler: Update NEON to handle remainders not multiples of 4 eglimage: Fix memory leak audiodecoder: Set output caps with negotiated caps to avoid critical info printed video-frame: Take TFF flag from the video info if it was set in there glcolorconvert: Fix external-oes shader video-anc: Fix ADF detection when trying to extract data from vanc gl/wayland: fix wayland event source burning CPU configure: add used attribute in order to make NEON detection working with -flto. audioaggregator: Return a valid rate range from caps query if downstream supports a whole range rtspconnection: data-offset increase not set rtpsconnection: Fix number of n_vectors video-color: Add compile-time assert for ColorimetryInfo enum audiodecoder: Fix leak on failed audio gaps glupload: Keep track of cached EGLImage texture format playsink: Set ts-offset to text sink. meson.build: use join_paths() on prefix compositor: copy frames as-is when possible compositor: Skip background when a pad obscures it completely rtspconnection: Start CSeq at 1 (some servers don't cope well with seqnum 0) viv-fb: fix build break for GST_GL_API gl/tests: fix shader creation tests part 2 gl/tests: fix shader creation tests wayland: set the event queue also for the xdg_wm_base object video: Added GI annotation for gstvideoaffinetransformationmeta apply_matrix compositor: Remove unneeded left shift for ARGB/AYUV SOURCE operator Colorimetry fixes alsasrc: Don't use driver timestamp if it's zero gloverlaycompositor: fix crash if buffer doesn't have video meta meson: Don't try to find gio-unix on Windows glshader: fix default external-oes shaders subparse: fix pushing WebVTT cue with no newline at the end meson: Missing "android" choice in gl_winsys video test: Keep BE test inline with LE test id3tag: Correctly validate the year from v1 tags before passing to GstDateTime gl/wayland: Don't prefix wl_shell struct field eglimage: Add compatibility define for DRM_FORMAT_NV24 Add various Since: 1.16 markers video-anc: Handle SD formats correctly Docs: add GL_CFLAGS to GTK_DOC_CFLAGS GL: using vaapi and showing on glimagesink on wayland loads one core for 100% on 1.16 GL: external-oes shader places precision qualifier before #extension (was: androidmedia amcviddec fail after 1.15.90 1.16.0 update) gst-plugins-good alpha: Fix one_over_kc calculation on arm/aarch64 souphttpsrc: Fix incompatible type build warning rtpjitterbuffer: limit max-dropout-time to maxint32 rtpjitterbuffer: Clear clock master before unreffing qtdemux: Use empty-array safe way to cleanup GPtrArray v4l2: Fix type compatibility issue with glibc 2.30 valgrind: suppress Cond error coming from gnutls and Ignore leaks caused by shout/sethostent rtpfunnel: forward correct segment when switching pad gtkglsink: fix crash when widget is resized after element destruction jpegdec: Don't dereference NULL input state if we have no caps in TIME segments rtp: opuspay: fix memory leak in gst_rtp_opus_pay_setcaps v4l2videodec: return right type for drain. rtpssrcdemux: Avoid taking streamlock out-of-band Support v4l2src buffer orphaning splitmuxsink: Only set running time on finalizing sink element when in async-finalize mode rtpsession: Always keep at least one NACK on early RTCP rtspsrc: do not try to send EOS with invalid seqnum rtpsession: Call on-new-ssrc earlier rtprawdepay: Don't get rid of the buffer pool on FLUSH_STOP rtpbin: Free storage when freeing session scaletempo: Advertise interleaved layout in caps templates Support v4l2src buffer orphaning gst-plugins-bad hls: Make crypto dependency optional when hls-crypto is auto player: fix switching back and forth between forward and reverse playback decklinkaudiosink: Drop late buffers srt: Add stats property, include sender-side statistics and fix a crash dshowsrcwrapper: fix regression on device selection tsdemux: Limit the maximum PES payload size wayland: Define libdrm_dep in meson.build to fix meson configure error when kms is disabled sctp: Fix crash on free() when using the MSVC binaries webrtc: Fix signals documentation h264parse: don't critical on VUI parameters > 2^31 rtmp: Fix crash inside free() with MSVC on Windows iqa: fix leak of map_meta.data d3dvideosink: Fix crash on WinProc handler amc: Fix crash when a sync_meta survives its sink pitch: Fix race between putSamples() and setting soundtouch parameters webrtc: fix type of max-retransmits, make it work mxfdemux: Also allow picture essence element type 0x05 for VC-3 wasapi: fix symbol redefinition build error decklinkvideosrc: Retrieve mode of the ancillary data from the frame decklinkaudiosrc/decklinkvideosrc: Do nothing in BaseSrc::negotiate() and... adaptivedemux: do not retry downloads during shutdown. webrtcbin: fix GInetAddress leak dtls: fix dtls connection object leak siren: fix a global buffer overflow spotted by asan kmssink: Fix implicit declaration build error Fix -Werror=return-type error in configure. aiff: Fix infinite loop in header parsing. nvdec: Fix possible frame drop on EOS srtserversrc: yields malformed rtp payloads srtsink: Fix crash in case no URI dtlsagent: Fix leaked dtlscertificate meson: bluez: Early terminate configure on Windows decklink: Correctly ensure >=16 byte alignment for the buffers we allocate webrtcbin: fix DTLS when receivebin is set to DROP zbar: Include running-time, stream-time and duration in the messages uvch264src: Make sure we set our segment avwait: Allow start and end timecode to be set back to NULL avwait: Don't print warnings for every buffer passed hls/meson: fix dependency logic Waylandsink gnome shell workaround avwait: Allow setting start timecode after end timecode; protect propeties with mutex wayland/wlbuffer: just return if used_by_compositor is true when attach proxy: Set SOURCE flag on the source and SINK flag on the sink ivfparse: Check the data size against IVF_FRAME_HEADER_SIZE webrtc: Add various Since markers to new types after 1.14.0 msdk: fix the typo in debug category dtlsagent: Do not overwrite openssl locking callbacks meson: Fix typo in gsm header file name srt: handle races in state change webrtc: Add g_autoptr() support for public types openh264enc: Fix compilation with openh264 v2.0 meson: Allow CUDA_PATH fallback on linux meson: fix build with opencv=enabled and opencv4. Fixes #964 meson: Add support for the colormanagement plugin autotools: gstsctp: set LDFLAGS nvenc/nvdec: Add NVIDIA SDK headers to noinst_HEADERS h264parse: Fix typo when setting multiview mode and flags Add various Since: 1.16 markers opencv: allow compilation against 4.1.x Backport of some minor srt commits without MR into 1.16 meson: fix build with opencv=enabled and opencv4 wasapisrc: fix segtotal value being always 2 due to an unused variable meson: colormanagement missing androidmedia amcviddec fail after 1.15.90 1.16.0 update gst-plugins-ugly meson: Always require the gmodule dependency gst-libav docs: don't include the type hierarchy, fixing build with gtk-doc 1.30 avvidenc: Correctly signal interlaced input to ffmpeg when the input caps are interlaced autotools: add bcrypt to win32 libs gstav: Use libavcodec util function for version check API documentation fails to build with gtk-doc 1.30 gst-rtsp-server rtsp-client: RTP Info must exist in PLAY response onvif-media: fix "void function returning a value" compiler warning Add various Since: 1.16 markers gstreamer-vaapi fix egl context leak and display creation race pluginutil: Remove Mesa from drivers white list Classify vaapidecodebin as a hardware decoder Fix two leak vaapivideomemory: demote error message to info encoder: vp8,vp9: reset frame_counter when input frame's format changes encoder: mpeg2: No packed header for SPS and PPS decoder: vp9: clear parser pointer after release encoder: Fixes deadlock in change state function encoder: h265: reset num_ref_idx_l1_active_minus1 when low delay B. encoder: not call ensure_num_slices inside g_assert() encoder: continue if roi meta is NULL decoder: vp9: Set chroma_ ype by VP9 bit_depth vaapipostproc: don't do any color conversion when GL_TEXTURE_UPLOAD libs: surface: fix double free when dmabuf export fails h264 colors and artifacts upon upgrade to GStreamer Core Library version 1.15.90 gst-editing-services element: Properly handle the fact that pasting can return NULL Add various missing Since markers launch: Fix caps restriction short names python: Avoid warning about using deprecated methods video-transition: When using non crossfade effect use 'over' operations meson: Generate a pkgconfig file for the GES plugin gst-devtools launcher: testsuites: skip systemclock stress tests validate: fix build on macOS gst-build Update win flex bison binaries Update the flexmeson windows binary version Don't allow people to run meson inside the uninstalled env Contributors to 1.16.1 Aaron Boxer, Adam Duskett, Alicia Boya García, Andoni Morales Alastruey, Antonio Ospite, Arun Raghavan, Askar Safin, A. Wilcox, Charlie Turner, Christoph Reiter, Damian Hobson-Garcia, Daniel Klamt, Danny Smith, David Gunzinger, David Ing, David Svensson Fors, Doug Nazar, Edward Hervey, Eike Hein, Fabrice Bellet, Fernando Herrrera, Georg Lippitsch, Göran Jönsson, Guillaume Desmottes, Haihao Xiang, Haihua Hu, Håvard Graff, Hou Qi, Ignacio Casal Quinteiro, Ilya Smelykh, Jan Schmidt, Javier Celaya, Jim Mason, Jonas Larsson, Jordan Petridis, Jose Antonio Santos Cadenas, Juan Navarro, Knut Andre Tidemann, Kristofer Björkström, Lucas Stach, Marco Felsch, Marcos Kintschner, Mark Nauwelaerts, Martin Liska, Martin Theriault, Mathieu Duponchelle, Matthew Waters, Michael Olbrich, Mike Gorse, Nicola Murino, Nicolas Dufresne, Niels De Graef, Niklas Hambüchen, Nirbheek Chauhan, Olivier Crête, Philippe Normand, Ross Burton, Sebastian Dröge, Seungha Yang, Song Bing, Thiago Santos, Thibault Saunier, Thomas Coldrick, Tim-Philipp Müller, Víctor Manuel Jáquez Leal, Vivia Nikolaidou, Xavier Claessens, Yeongjin Jeong, ... and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all! List of merge requests and issues fixed in 1.16.1 List of Merge Requests applied in 1.16 List of Issues fixed in 1.16.1 Known Issues possibly breaking/incompatible changes to properties of wrapped FFmpeg decoders and encoders (see above). 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 Android or iOS platforms (or any other setup using static libraries) will fail to link looking for the g_io_module_gnutls_load_static() function. The new function name is now g_io_gnutls_load(gpointer data). See Android/iOS sections above for further details.
gstreamer1: updated to 1.16.0 GStreamer 1.16.0: Introduction 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 many new features, bug fixes and other improvements. Highlights - GStreamer WebRTC stack gained support for data channels for peer-to-peer communication based on SCTP, BUNDLE support, as well as support for multiple TURN servers. - AV1 video codec support for Matroska and QuickTime/MP4 containers and more configuration options and supported input formats for the AOMedia AV1 encoder - Support for Closed Captions and other Ancillary Data in video - Support for planar (non-interleaved) raw audio - GstVideoAggregator, compositor and OpenGL mixer elements are now in -base - New alternate fields interlace mode where each buffer carries a single field - WebM and Matroska ContentEncryption support in the Matroska demuxer - new WebKit WPE-based web browser source element - Video4Linux: HEVC encoding and decoding, JPEG encoding, and improved dmabuf import/export - Hardware-accelerated Nvidia video decoder gained support for VP8/VP9 decoding, whilst the encoder gained support for H.265/HEVC encoding. - Many improvements to the Intel Media SDK based hardware-accelerated video decoder and encoder plugin (msdk): dmabuf import/export for zero-copy integration with other components; VP9 decoding; 10-bit HEVC encoding; video post-processing (vpp) support including deinterlacing; and the video decoder now handles dynamic resolution changes. - The ASS/SSA subtitle overlay renderer can now handle multiple subtitles that overlap in time and will show them on screen simultaneously - The Meson build is now feature-complete (*) and it is now the recommended build system on all platforms. The Autotools build is scheduled to be removed in the next cycle. - The GStreamer Rust bindings and Rust plugins module are now officially part of upstream GStreamer. - The GStreamer Editing Services gained a gesdemux element that allows directly playing back serialized edit list with playbin or (uri)decodebin - Many performance improvements
Update gstreamer1 and plugins to 1.14.4 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 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
gstreamer1: update to 1.14.2 This release only contains bugfixes and it should be safe to update from 1.14.x.
gstreamer1: updated to 1.14.1 1.14.1 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!
gstreamer1: update to 1.14.0 The GStreamer team is proud to announce a new major feature release of your favourite cross-platform multimedia framework! The 1.14 release series adds new features on top of the previous 1.12 series and is part of the API and ABI-stable 1.x release series of the GStreamer multimedia framework. Highlights: WebRTC support: real-time audio/video streaming to and from web browsers Experimental support for the next-gen royalty-free AV1 video codec Video4Linux: encoding support, stable element names and faster device probing Support for the Secure Reliable Transport (SRT) video streaming protocol RTP Forward Error Correction (FEC) support (ULPFEC) RTSP 2.0 support in rtspsrc and gst-rtsp-server ONVIF audio backchannel support in gst-rtsp-server and rtspsrc playbin3 gapless playback and pre-buffering support tee, our stream splitter/duplication element, now does allocation query aggregation which is important for efficient data handling and zero-copy QuickTime muxer has a new prefill recording mode that allows file import in Adobe Premiere and FinalCut Pro while the file is still being written. rtpjitterbuffer fast-start mode and timestamp offset adjustment smoothing souphttpsrc connection sharing, which allows for connection reuse, cookie sharing, etc. nvdec: new plugin for hardware-accelerated video decoding using the NVIDIA NVDEC API Adaptive DASH trick play support ipcpipeline: new plugin that allows splitting a pipeline across multiple processes Major gobject-introspection annotation improvements for large parts of the library API GStreamer C# bindings have been revived and seen many updates and fixes The externally-maintained GStreamer Rust bindings have many usability improvements and cover most of the API now
gstreamer1: updated to 1.12.5 Bugs fixed in 1.12.5: pad: fix some stream deactivation deadlocks/races registrychunks: don't read from unaligned memory when loading registry ptp: fix build failure with #undef USE_MEASUREMENT_FILTERING downloadbuffer: Don't hold the mutex while posting the download-complete message playbin3: Fix accessing invalid index in GstStream when received select-stream event id3v2: re-fix handling of ID3 v2.4 tags with extended headers audio: fix handling of U32BE format videodecoder: Reset QoS time after pushing segment. This fixes playbin gapless playback with videos. subparse: push out of last chunk of text if last line has no newline aacparse: When parsing raw input, accept frames of any size. This fixes handling of encoded silence. splitmuxsrc: Improve not-linked handling. rtspsrc: also proxy multicast-iface property to RTCP udpsrc flacdec: flush flac decoder on lost sync, so that it can re-sync. matroskamux: Only mark new clusters as keyframe if they start on a keyframe or we're muxing only audio matroskamux: Clip maximum cluster duration to the maximum possible value h264parse: reset internal 'state' variable properly x264enc: fix build with newer x264 with support for multiple bit depths x265enc: Fix tagging of keyframes on output buffers glimagesink: Correct PAR in output caps when transforming vtdec: destroy and create the GL context on start()/stop(), fixing a refcount loop player: fix criticals when reading info/track properties that are NULL lv2: fix inverted boolean properties rtponviftimestamp: fix state change function init/reset, fixing memory corruption or leaks on shutdown libav: some build issues fixes rtsp-server: Place netaddress meta on packets received via TCP. Fixes keep-alive via RTCP in TCP interleaved mode. rtsp-server: gi annotation fixes gst-libav: internal ffmpeg copy was updated to ffmpeg 3.3.6 Various fixes for memory leaks, deadlocks and crashes in all modules ... and many, many more!
gstreamer1 + plugins: update to 1.12.4 ### 1.12.4 The fourth 1.12 bug-fix release (1.12.4) was released on 7 December 2017. This release only contains bugfixes and it should be safe to update from 1.12.x. #### Major bugfixes in 1.12.4 - Dozens of fixes for various issues detected with the help of Google's OSS-Fuzz project: https://github.com/google/oss-fuzz Details to be found there in the bug tracker - Performance regressions with registering debug categories after gst_init() were fixed - Regression with seeking back to 0 in souphttpsrc was fixed - Regression with header rewriting in flacparse was fixed - Regression with playbin/playsink leaking sinks was fixed - Inconsistencies with DROPPED/HANDLED handling in pad probe handlers are fixed - gst_bin_iterate_sorted() always returns sources last now, as documented - gst_query_writable_structure() will never return NULL, for consistency with events - Removal of metas from gst_buffer_meta_foreach() works correctly now - OpenJPEG plugin builds with OpenJPEG >= 2.3 - CDIO plugin builds with CDIO >= 1.0 - gstreamer-vaapi works correctly with libva 1.0 - gst-libav was updated to ffmpeg 3.3.5 - Various fixes for memory leaks, deadlocks and crashes in all modules - ... and many, many more!
Update gstreamer1 to 1.12.3 Major bugfixes in 1.12.3 Fix for infinite recursion on buffer free in v4l2 Fix for glimagesink crash on macOS when used via autovideosink Fix for huge overhead in matroskamux caused by writing one Cluster per audio-frame in audio-only streams. Also use SimpleBlocks for Opus and other audio codecs, which works around a bug in VLC that prevented Opus streams to be played and decreases overhead even more Fix for flushing seeks in rtpmsrc always causing an error Fix for timestamp overflows in calculations in audio encoder base class Fix for RTP h265 depayloader marking P-frames as I-frames Fix for long connection delays of clients in RTSP server Fixes for event handling in queue and queue2 elements, and updates to buffering levels on NOT_LINKED streams Various fixes to event and buffering handling in decodebin3/playbin3 Various fixes for memory leaks, deadlocks and crashes in all modules ... and many, many more!
Update gstreamer1 and its plugins to 1.12.2. Highlights new msdk plugin for Intel's Media SDK for hardware-accelerated video encoding and decoding on Intel graphics hardware on Windows or Linux. x264enc can now use multiple x264 library versions compiled for different bit depths at runtime, to transparently provide support for multiple bit depths. videoscale and videoconvert now support multi-threaded scaling and conversion, which is particularly useful with higher resolution video. h264parse will now automatically insert AU delimiters if needed when outputting byte-stream format, which improves standard compliance and is needed in particular for HLS playback on iOS/macOS. rtpbin has acquired bundle support for incoming streams Major new features and changes Noteworthy new API The video library gained support for a number of new video formats: GBR_12LE, GBR_12BE, GBRA_12LE, GBRA_12BE (planar 4:4:4 RGB/RGBA, 12 bits per channel) GBRA_10LE, GBRA_10BE (planar 4:4:4:4 RGBA, 10 bits per channel) GBRA (planar 4:4:4:4 ARGB, 8 bits per channel) I420_12BE, I420_12LE (planar 4:2:0 YUV, 12 bits per channel) I422_12BE,I422_12LE (planar 4:2:2 YUV, 12 bits per channel) Y444_12BE, Y444_12LE (planar 4:4:4 YUV, 12 bits per channel) VYUY (another packed 4:2:2 YUV format) The high-level GstPlayer API was extended with functions for taking video snapshots and enabling accurate seeking. It can optionally also use the still-experimental playbin3 element now. New Elements msdk: new plugin for Intel's Media SDK for hardware-accelerated video encoding and decoding on Intel graphics hardware on Windows or Linux. This includes an H.264 encoder/decoder (msdkh264dec, msdkh264enc), an H.265 encoder/decoder (msdkh265dec, msdkh265enc), an MJPEG encoder/encoder (msdkmjpegdec, msdkmjpegenc), an MPEG-2 video encoder (msdkmpeg2enc) and a VP8 encoder (msdkvp8enc). iqa is a new Image Quality Assessment plugin based on DSSIM, similar to the old (unported) videomeasure element. The faceoverlay element, which allows you to overlay SVG graphics over a detected face in a video stream, has been ported from 0.10. our ffmpeg wrapper plugin now exposes/maps the ffmpeg Opus audio decoder (avdec_opus) as well as the GoPro CineForm HD / CFHD decoder (avdec_cfhd), and also a parser/writer for the IVF format (avdemux_ivf and avmux_ivf). audiobuffersplit is a new element that splits raw audio buffers into equal-sized buffers audiomixmatrix is a new element that mixes N:M audio channels according to a configured mix matrix. The timecodewait element got renamed to avwait and can operate in different modes now. The opencv video processing plugin has gained a new dewarp element that dewarps fisheye images. ttml is a new plugin for parsing and rendering subtitles in Timed Text Markup Language (TTML) format. For the time being these elements will not be autoplugged during media playback however, unless the GST_TTML_AUTOPLUG=1 environment variable is set. Only the EBU-TT-D profile is supported at this point. New element features and additions x264enc can now use multiple x264 library versions compiled for different bit depths at runtime, to transparently provide support for multiple bit depths. A new configure parameter --with-x264-libraries has been added to specify additional paths to look for additional x264 libraries to load. Background is that the libx264 library is always compile for one specific bit depth and the x264enc element would simply support the depth supported by the underlying library. Now we can support multiple depths. x264enc also picks up the interlacing mode automatically from the input caps now and passed interlacing/TFF information correctly to the library. videoscale and videoconvert now support multi-threaded scaling and conversion, which is particularly useful with higher resolution video. This has to be enabled explicitly via the "n-threads" property. videorate's new "rate" property lets you set a speed factor on the output stream splitmuxsink's buffer collection and scheduling was rewritten to make processing and splitting deterministic; before it was possible for a buffer to end up in a different file chunk in different runs. splitmuxsink also gained a new "format-location-full" signal that works just like the existing "format-location" signal only that it is also passed the primary stream's first buffer as argument, so that it is possible to construct the file name based on metadata such as the buffer timestamp or any GstMeta attached to the buffer. The new "max-size-timecode" property allows for timecode-based splitting. splitmuxsink will now also automatically start a new file if the input caps change in an incompatible way. fakesink has a new "drop-out-of-segment" property to not drop out-of-segment buffers, which is useful for debugging purposes. identity gained a "ts-offset" property. both fakesink and identity now also print what kind of metas are attached to buffers when printing buffer details via the "last-message" property used by gst-launch-1.0 -v. multiqueue: made "min-interleave-time" a configurable property. video nerds will be thrilled to know that videotestsrc's snow is now deterministic. videotestsrc also gained some new properties to make the ball pattern based on system time, and invert colours each second ("animation-mode", "motion", and "flip" properties). oggdemux reverse playback should work again now. You're welcome. playbin3 and urisourcebin now have buffering enabled by default, and buffering message aggregation was fixed. tcpclientsrc now has a "timeout" property appsink has gained support for buffer lists. For backwards compatibility reasons users need to enable this explicitly with gst_app_sink_set_buffer_list_support(), however. Once activated, a pulled GstSample can contain either a buffer list or a single buffer. splitmuxsrc reverse playback was fixed and handling of sparse streams, such as subtitle tracks or metadata tracks, was improved. matroskamux has acquired support for muxing G722 audio; it also marks all buffers as keyframes now when streaming only audio, so that tcpserversink will behave properly with audio-only streams. qtmux gained support for ProRes 4444 XQ, HEVC/H.265 and CineForm (GoPro) formats, and generally writes more video stream-related metadata into the track headers. It is also allows configuration of the maximum interleave size in bytes and time now. For fragmented mp4 we always write the tfdt atom now as required by the DASH spec. qtdemux supports FLAC, xvid, mp2, S16L and CineForm (GoPro) tracks now, and generally tries harder to extract more video-related information from track headers, such as colorimetry or interlacing details. It also received a couple of fixes for the scenario where upstream operates in TIME format and feeds chunks to qtdemux (e.g. DASH or MSE). audioecho has two new properties to apply a delay only to certain channels to create a surround effect, rather than an echo on all channels. This is useful when upmixing from stereo, for example. The "surround-delay" property enables this, and the "surround-mask" property controls which channels are considered surround sound channels in this case. webrtcdsp gained various new properties for gain control and also exposes voice activity detection now, in which case it will post "voice-activity" messages on the bus whenever the voice detection status changes. The decklink capture elements for Blackmagic Decklink cards have seen a number of improvements: decklinkvideosrc will post a warning message on "no signal" and an info message when the signal lock has been (re)acquired. There is also a new read-only "signal" property that can be used to query the signal lock status. The GAP flag will be set on buffers that are captured without a signal lock. The new drop-no-signal-frames will make decklinkvideosrc drop all buffers that have been captured without an input signal. The "skip-first-time" property will make the source drop the first few buffers, which is handy since some devices will at first output buffers with the wrong resolution before they manage to figure out the right input format and decide on the actual output caps. decklinkaudiosrc supports more than just 2 audio channels now. The capture sources no longer use the "hardware" timestamps which turn out to be useless and instead just use the pipeline clock directly. srtpdec now also has a readonly "stats" property, just like srtpenc. rtpbin gained RTP bundle support, as used by e.g. WebRTC. The first rtpsession will have a rtpssrcdemux element inside splitting the streams based on their SSRC and potentially dispatch to a different rtpsession. Because retransmission SSRCs need to be merged with the corresponding media stream the ::on-bundled-ssrc signal is emitted on rtpbin so that the application can find out to which session the SSRC belongs. rtprtxqueue gained two new properties exposing retransmission statistics ("requests" and "fulfilled-requests") kmssink will now use the preferred mode for the monitor and render to the base plane if nothing else has set a mode yet. This can also be done forcibly in any case via the new "force-modesetting" property. Furthermore, kmssink now allows only the supported connector resolutions as input caps in order to avoid scaling or positioning of the input stream, as kmssink can't know whether scaling or positioning would be more appropriate for the use case at hand. waylandsink can now take DMAbuf buffers as input in the presence of a compatible Wayland compositor. This enables zero-copy transfer from a decoder or source that outputs DMAbuf. It will also set surface opacity hint to allow better rendering optimization in the compositor. udpsrc can be bound to more than one interface when joining a multicast group, this is done by giving a comma separate list of interfaces such as multicast-iface="eth0,eth1". Plugin moves dataurisrc moved from gst-plugins-bad to core The rawparse plugin containing the rawaudioparse and rawvideoparse elements moved from gst-plugins-bad to gst-plugins-base. These elements supersede the old videoparse and audioparse elements. They work the same, with just some minor API changes. The old legacy elements still exist in gst-plugins-bad, but may be removed at some point in the future. timecodestamper is an element that attaches time codes to video buffers in form of GstVideoTimeCodeMetas. It had a "clock-source" property which has now been removed because it was fairly useless in practice. It gained some new properties however: the "first-timecode" property can be used to set the inital timecode; alternatively "first-timecode-to-now" can be set, and then the current system time at the time the first buffer arrives is used as base time for the time codes. Plugin removals The mad mp1/mp2/mp3 decoder plugin was removed from gst-plugins-ugly, as libmad is GPL licensed, has been unmaintained for a very long time, and there are better alternatives available. Use the mpg123audiodec element from the mpg123 plugin in gst-plugins-ugly instead, or avdec_mp3 from the gst-libav module which wraps the ffmpeg library. We expect that we will be able to move mp3 decoding to gst-plugins-good in the next cycle seeing that most patents around mp3 have expired recently or are about to expire. The mimic plugin was removed from gst-plugins-bad. It contained a decoder and encoder for a video codec used by MSN messenger many many years ago (in a galaxy far far away). The underlying library is unmaintained and no one really needs to use this codec any more. Recorded videos can still be played back with the MIMIC decoder in gst-libav. Miscellaneous API additions Request pad name templates passed to gst_element_request_pad() may now contain multiple specifiers, such as e.g. src_%u_%u. gst_buffer_iterate_meta_filtered() is a variant of gst_buffer_iterate_meta() that only returns metas of the requested type and skips all other metas. gst_pad_task_get_state() gets the current state of a task in a thread-safe way. gst_uri_get_media_fragment_table() provides the media fragments of an URI as a table of key=value pairs. gst_print(), gst_println(), gst_printerr(), and gst_printerrln() can be used to print to stdout or stderr. These functions are similar to g_print() and g_printerr() but they also support all the additional format specifiers provided by the GStreamer logging system, such as e.g. GST_PTR_FORMAT. a GstParamSpecArray has been added, for elements who want to have array type properties, such as the audiomixmatrix element for example. There are also two new functions to set and get properties of this type from bindings: gst_util_set_object_array() gst_util_get_object_array() various helper functions have been added to make it easier to set or get GstStructure fields containing caps-style array or list fields from language bindings (which usually support GValueArray but don't know about the GStreamer specific fundamental types): gst_structure_get_array() gst_structure_set_array() gst_structure_get_list() gst_structure_set_list() a new 'dynamic type' registry factory type was added to register dynamically loadable GType types. This is useful for automatically loading enum/flags types that are used in caps, such as for example the GstVideoMultiviewFlagsSet type used in multiview video caps. there is a new GstProxyControlBinding for use with GstController. This allows proxying the control interface from one property on one GstObject to another property (of the same type) in another GstObject. So e.g. in parent-child relationship, one may need to call gst_object_sync_values() on the child and have a binding (set elsewhere) on the parent update the value. This is used in glvideomixer and glsinkbin for example, where sync_values() on the child pad or element will call sync_values() on the exposed bin pad or element. Note that this doesn't solve GObject property forwarding, that must be taken care of by the implementation manually or using GBinding. gst_base_parse_drain() has been made public for subclasses to use. `gst_base_sink_set_drop_out_of_segment()' can be used by subclasses to prevent GstBaseSink from dropping buffers that fall outside of the segment. gst_calculate_linear_regression() is a new utility function to calculate a linear regression. gst_debug_get_stack_trace is an easy way to retrieve a stack trace, which can be useful in tracer plugins. allocators: the dmabuf allocator is now sub-classable, and there is a new GST_CAPS_FEATURE_MEMORY_DMABUF define. video decoder subclasses can use the newly-added function gst_video_decoder_allocate_output_frame_with_params() to pass a GstBufferPoolAcquireParams to the buffer pool for each buffer allocation. the video time code API has gained a dedicated GstVideoTimeCodeInterval type plus related API, including functions to add intervals to timecodes. There is a new libgstbadallocators-1.0 library in gst-plugins-bad, which may go away again in future releases once the GstPhysMemoryAllocator interface API has been validated by more users and was moved to libgstallocators-1.0 from gst-plugins-base. GstPlayer New API has been added to: get the number of audio/video/subtitle streams: gst_player_media_info_get_number_of_streams() gst_player_media_info_get_number_of_video_streams() gst_player_media_info_get_number_of_audio_streams() gst_player_media_info_get_number_of_subtitle_streams() enable accurate seeking: gst_player_config_set_seek_accurate() and gst_player_config_get_seek_accurate() get a snapshot image of the video in RGBx, BGRx, JPEG, PNG or native format: gst_player_get_video_snapshot() selecting use of a specific video sink element (gst_player_video_overlay_video_renderer_new_with_sink()) If the environment variable GST_PLAYER_USE_PLAYBIN3 is set, GstPlayer will use the still-experimental playbin3 element and the GstStreams API for playback. Miscellaneous changes video caps for interlaced video may contain an optional "field-order" field now in the case of interlaced-mode=interleaved to signal that the field order is always the same throughout the stream. This is useful to signal to muxers such as mp4mux. The new field is parsed from/to GstVideoInfo of course. video decoder and video encoder base classes try harder to proxy interlacing, colorimetry and chroma-site related fields in caps properly. The buffer stored in the PROTECTION events is now left unchanged. This is a change of behaviour since 1.8, especially for the mssdemux element which used to decode the base64 parsed data wrapped in the protection events emitted by the demuxer. PROTECTION events can now be injected into the pipeline from the application; source elements deriving from GstBaseSrc will forward those downstream now. The DASH demuxer is now correctly parsing the MSPR-2.0 ContentProtection nodes and emits Protection events accordingly. Applications relying on those events might need to decode the base64 data stored in the event buffer before using it. The registry can now also be disabled by setting the environment variable GST_REGISTRY_DISABLE=yes, with similar effect as the GST_DISABLE_REGISTRY compile time switch. Seeking performance with gstreamer-vaapi based decoders was improved. It would recreate the decoder and surfaces on every seek which can be quite slow. more robust handling of input caps changes in videoaggregator-based elements such as compositor. Lots of adaptive streaming-related fixes across the board (DASH, MSS, HLS). Also: mssdemux, the Microsoft Smooth Streaming demuxer, has seen various fixes for live streams, duration reporting and seeking. The DASH manifest parser now extracts MS PlayReady ContentProtection objects from manifests and sends them downstream as PROTECTION events. It also supports multiple Period elements in external xml now. gst-libav was updated to ffmpeg 3.3 but should still work with any 3.x version. GstEncodingProfile has been generally enhanced so it can, for example, be used to get possible profiles for a given file extension. It is now possible to define profiles based on element factory names or using a path to a .gep file containing a serialized profile. audioconvert can now do endianness conversion in-place. All other conversions still require a copy, but e.g. sign conversion and a few others could also be implemented in-place now. The new, experimental playbin3 and urisourcebin elements got many bugfixes and improvements and should generally be closer to a full replacement of the old elements. interleave now supports > 64 channels. OpenCV elements, grabcut and retinex has been ported to use GstOpencvVideoFilter base class, increasing code reuse and fixing buffer map/unmap issues. Redundant copie of images has been removed in edgedetect, cvlaplace and cvsobel. This comes with various cleanup and Meson support. OpenGL integration As usual the GStreamer OpenGL integration library has seen numerous fixes and performance improvements all over the place, and is hopefully ready now to become API stable and be moved to gst-plugins-base during the 1.14 release cycle. The GStreamer OpenGL integration layer has also gained support for the Vivante EGL FB windowing system, which improves performance on platforms such as Freescale iMX.6 for those who are stuck with the proprietary driver. The qmlglsink element also supports this now if Qt is used with eglfs or wayland backend, and it works in conjunction with gstreamer-imx of course. various qmlglsrc improvements Tracing framework and debugging improvements New tracing hooks have been added to track GstMiniObject and GstObject ref/unref operations. The memory leaks tracer can optionally use this to retrieve stack traces if enabled with e.g. GST_TRACERS=leaks(filters="GstEvent,GstMessage",stack-traces-flags=full) The GST_DEBUG_FILE environment variable, which can be used to write the debug log output to a file instead of printing it to stderr, can now contain a name pattern, which is useful for automated testing and continuous integration systems. The following format specifiers are supported: %p: will be replaced with the PID %r: will be replaced with a random number, which is useful for instance when running two processes with the same PID but in different containers. Tools gst-inspect-1.0 can now list elements by type with the new --types command-line option, e.g. gst-inspect-1.0 --types=Audio/Encoder will show a list of audio encoders. gst-launch-1.0 and gst_parse_launch() have gained a new operator (:) that allows linking all pads between two elements. This is useful in cases where the exact number of pads or type of pads is not known beforehand, such as in the uridecodebin : encodebin scenario, for example. In this case, multiple links will be created if the encodebin has multiple profiles compatible with the output of uridecodebin. gst-device-monitor-1.0 now shows a gst-launch-1.0 snippet for each device that shows how to make use of it in a gst-launch-1.0 pipeline string. GStreamer RTSP server The RTSP server now also supports Digest authentication in addition to Basic authentication. The GstRTSPClient class has gained a pre-*-request signal and virtual method for each client request type, emitted in the beginning of each rtsp request. These signals or virtual methods let the application validate the requests, configure the media/stream in a certain way and also generate error status codes in case of an error or a bad request. GStreamer VAAPI GstVaapiDisplay now inherits from GstObject, thus the VA display logging messages are better and tracing the context sharing is more readable. When uploading raw images into a VA surfaces now VADeriveImages are tried fist, improving the upload performance, if it is possible. The decoders and the post-processor now can push dmabuf-based buffers to downstream under certain conditions. For example: GST_GL_PLATFORM=egl gst-play-1.0 video-sample.mkv --videosink=glimagesink Refactored the wrapping of VA surface into gstreamer memory, adding lock when mapping and unmapping, and many other fixes. Now vaapidecodebin loads vaapipostproc dynamically. It is possible to avoid it usage with the environment variable GST_VAAPI_DISABLE_VPP=1. Regarding encoders: they have primary rank again, since they can discover, in run-time, the color formats they can use for upstream raw buffers and caps renegotiation is now possible. Also the encoders push encoding info downstream via tags. About specific encoders: added constant bit-rate encoding mode for VP8 and H265 encoder handles P010_10LE color format. Regarding decoders, flush operation has been improved, now the internal VA encoder is not recreated at each flush. Also there are several improvements in the handling of H264 and H265 streams. VAAPI plugins try to create their on GstGL context (when available) if they cannot find it in the pipeline, to figure out what type of VA Display they should create. Regarding vaapisink for X11, if the backend reports that it is unable to render correctly the current color format, an internal VA post-processor, is instantiated (if available) and converts the color format. GStreamer Editing Services and NLE Enhanced auto transition behaviour Fix some races in nlecomposition Allow building with msvc Added a UNIX manpage for ges-launch API changes: Added ges_deinit (allowing the leak tracer to work properly) Added ges_layer_get_clips_in_interval Finally hide internal symbols that should never have been exposed GStreamer validate Port gst-validate-launcher to python 3 gst-validate-launcher now checks if blacklisted bugs have been fixed on bugzilla and errors out if it is the case Allow building with msvc Add ability for the launcher to run GStreamer unit tests Added a way to activate the leaks tracer on our tests and fix leaks Make the http server multithreaded New testsuite for running various test scenarios on the DASH-IF test vectors GStreamer Python Bindings Overrides has been added for IntRange, Int64Range, DoubleRange, FractionRange, Array and List. This finally enables Python programmers to fully read and write GstCaps objects. Build and Dependencies Meson build files are now disted in tarballs, for jhbuild and so distro packagers can start using it. Note that the Meson-based build system is not 100% feature-equivalent with the autotools-based one yet. Some plugin filenames have been changed to match the plugin names: for example the file name of the encoding plugin in gst-plugins-base containing the encodebin element was libgstencodebin.so and has been changed to libgstencoding.so. This affects only a handful of plugins across modules. Developers who install GStreamer from source and just do make install after updating the source code, without doing make uninstall first, will have to manually remove the old installed plugin files from the installation prefix, or they will get 'Cannot register existing type' critical warnings. Most of the docbook-based documentation (FAQ, Application Development Manual, Plugin Writer's Guide, design documents) has been converted to markdown and moved into a new gst-docs module. The gtk-doc library API references and the plugins documentation are still built as part of the source modules though. GStreamer core now optionally uses libunwind and libdw to generate backtraces. This is useful for tracer plugins used during debugging and development. There is a new libgstbadallocators-1.0 library in gst-plugins-bad (which may go away again in future releases once the GstPhysMemoryAllocator interface API has been validated by more users). gst-omx and gstreamer-vaapi modules can now also be built using the Meson build system. The qtkitvideosrc element for macOS was removed. The API is deprecated since 10.9 and it wasn't shipped in the binaries since a few releases. Platform-specific improvements Android androidmedia: add support for VP9 video decoding/encoding and Opus audio decoding (where supported) OS/X and iOS avfvideosrc, which represents an iPhone camera or, on a Mac, a screencapture session, so far allowed you to select an input device by device index only. New API adds the ability to select the position (front or back facing) and device-type (wide angle, telephoto, etc.). Furthermore, you can now also specify the orientation (portrait, landscape, etc.) of the videostream. Bugs fixed in 1.12 More than 635 bugs have been fixed during the development of 1.12. This list does not include issues that have been cherry-picked into the stable 1.10 branch and fixed there as well, all fixes that ended up in the 1.10 branch are also included in 1.12. This list also does not include issues that have been fixed without a bug report in bugzilla, so the actual number of fixes is much higher. Stable 1.12 branch After the 1.12.0 release there will be several 1.12.x bug-fix releases which will contain bug fixes which have been deemed suitable for a stable branch, but no new features or intrusive changes will be added to a bug-fix release usually. The 1.12.x bug-fix releases will be made from the git 1.12 branch, which is a stable branch. 1.12.0 1.12.0 was released on 4th May 2017. 1.12.1 The first 1.12 bug-fix release (1.12.1) was released on 20 June 2017. This release only contains bugfixes and it should be safe to update from 1.12.x. Major bugfixes in 1.12.1 Various fixes for crashes, assertions, deadlocks and memory leaks Fix for regression when seeking to the end of ASF files Fix for regression in (raw)videoparse that caused it to omit video metadata Fix for regression in discoverer that made it show more streams than actually available Numerous bugfixes to the adaptive demuxer base class and the DASH demuxer Various playbin3/urisourcebin related bugfixes Vivante DirectVIV (imx6) texture uploader works with single-plane (e.g. RGB) video formats now Intel Media SDK encoder now outputs valid PTS and keyframe flags OpenJPEG2000 plugin can be loaded again on MacOS and correctly displays 8 bit RGB images now Fixes to DirectSound source/sink for high CPU usage and wrong latency/buffer size calculations gst-libav was updated to ffmpeg n3.3.2 ... and many, many more! 1.12.2 The second 1.12 bug-fix release (1.12.2) was released on 14 July 2017. This release only contains bugfixes and it should be safe to update from 1.12.x. Major bugfixes in 1.12.2 Various fixes for crashes, assertions, deadlocks and memory leaks Regression fix for playback of live HLS streams Regression fix for crash when playing back a tunneled RTSP stream Regression fix for playback of RLE animations in MOV containers Regression fix for RTP GSM payloading producing corrupted output Major bugfixes to the MXF demuxer, mostly related to seeking and fixes to the frame reordering handling in the MXF muxer and demuxer Fix for playback of mono streams on MacOS More fixes for index handling of ASF containers Various fixes to adaptivedemux, DASH and HLS demuxers Fix deadlock in gstreamer-editing-services during class initialization ... and many, many more!
Update gstreamer1 and its plugins to 1.10.4. ### 1.10.4 The third 1.10 bug-fix release (1.10.4) was released on 23 February 2017. This release only contains bugfixes and it should be safe to update from 1.10.x. #### Major bugfixes in 1.10.4 - Various fixes for crashes, assertions, deadlocks and memory leaks on fuzzed input files and in other situations (CVE-2017-5847, CVE-2017-5848) - More regression fixes for souphttpsrc redirection tracking - Regression fix for gmodule on 32 bit Android, which was introduced as part of the 64 bit Android fix in 1.10.3 and broke the androidmedia plugin - Various bugfixes for regressions and other problems in the V4L2 plugin - Fix for 5.1, 6.1 and 7.1 channel layouts for Vorbis - Fixes for timestamp generation of Android video encoder element - gst-libav was updated to ffmpeg 3.2.4, fixing a couple of CVEs - ... and many, many more!
gst-plugins1-base: update to 1.10.3
Allow python-3.6.
Update gstreamer1 packages to 1.10.0. # GStreamer 1.10 Release Notes **GStreamer 1.10.0 was released on 1st November 2016.** 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. See [https://gstreamer.freedesktop.org/releases/1.10/][latest] for the latest version of this document. *Last updated: Tuesday 1 Nov 2016, 15:00 UTC [(log)][gitlog]* [latest]: https://gstreamer.freedesktop.org/releases/1.10/ [gitlog]: https://cgit.freedesktop.org/gstreamer/www/log/src/htdocs/releases/1.10/release-notes-1.10.md ## Introduction 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. ## Highlights - Several convenience APIs have been added to make developers' lives easier - A new `GstStream` API provides applications a more meaningful view of the structure of streams, simplifying the process of dealing with media in complex container formats - Experimental `decodebin3` and `playbin3` elements which bring a number of improvements which were hard to implement within `decodebin` and `playbin` - A new `parsebin` element to automatically unpack and parse a stream, stopping just short of decoding - Experimental new `meson`-based build system, bringing faster build and much better Windows support (including for building with Visual Studio) - A new `gst-docs` module has been created, and we are in the process of moving our documentation to a markdown-based format for easier maintenance and updates - A new `gst-examples` module has been create, which contains example GStreamer applications and is expected to grow with many more examples in the future - Various OpenGL and OpenGL|ES-related fixes and improvements for greater efficiency on desktop and mobile platforms, and Vulkan support on Wayland was also added - Extensive improvements to the VAAPI plugins for improved robustness and efficiency - Lots of fixes and improvements across the board, spanning RTP/RTSP, V4L2, Bluetooth, audio conversion, echo cancellation, and more! ## Major new features and changes ### Noteworthy new API, features and other changes #### Core API additions ##### Receive property change notifications via bus messages New API was added to receive element property change notifications via bus messages. So far, applications had to connect a callback to an element's `notify::property-name` signal via the GObject API, which was inconvenient for at least two reasons: one had to implement a signal callback function, and that callback function would usually be called from one of the streaming threads, so one had to marshal (send) any information gathered or pending requests to the main application thread which was tedious and error-prone. Enter [`gst_element_add_property_notify_watch()`][notify-watch] and [`gst_element_add_property_deep_notify_watch()`][deep-notify-watch] which will watch for changes of a property on the specified element, either only for this element or recursively for a whole bin or pipeline. Whenever such a property change happens, a `GST_MESSAGE_PROPERTY_NOTIFY` message will be posted on the pipeline bus with details of the element, the property and the new property value, all of which can be retrieved later from the message in the application via [`gst_message_parse_property_notify()`][parse-notify]. Unlike the GstBus watch functions, this API does not rely on a running GLib main loop. The above can be used to be notified asynchronously of caps changes in the pipeline, or volume changes on an audio sink element, for example. [notify-watch]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-add-property-notify-watch [deep-notify-watch]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-add-property-deep-notify-watch [parse-notify]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#gst-message-parse-property-notify ##### GstBin "deep" element-added and element-removed signals GstBin has gained `"deep-element-added"` and `"deep-element-removed"` signals which makes it easier for applications and higher-level plugins to track when elements are added or removed from a complex pipeline with multiple sub-bins. `playbin` makes use of this to implement the new `"element-setup"` signal which can be used to configure elements as they are added to `playbin`, just like the existing `"source-setup"` signal which can be used to configure the source element created. ##### Error messages can contain additional structured details It is often useful to provide additional, structured information in error, warning or info messages for applications (or higher-level elements) to make intelligent decisions based on them. To allow this, error, warning and info messages now have API for adding arbitrary additional information to them using a `GstStructure`: [`GST_ELEMENT_ERROR_WITH_DETAILS`][element-error-with-details] and corresponding API for the other message types. This is now used e.g. by the new [`GST_ELEMENT_FLOW_ERROR`][element-flow-error] API to include the actual flow error in the error message, and the [souphttpsrc element][souphttpsrc-detailed-errors] to provide the HTTP status code, and the URL (if any) to which a redirection has happened. [element-error-with-details]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GST-ELEMENT-ERROR-WITH-DETAILS:CAPS [element-flow-error]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GST-ELEMENT-FLOW-ERROR:CAPS [souphttpsrc-detailed-errors]: https://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/ext/soup/gstsouphttpsrc.c?id=60d30db912a1aedd743e66b9dcd2e21d71fbb24f#n1318 ##### Redirect messages have official API now Sometimes, elements need to redirect the current stream URL and tell the application to proceed with this new URL, possibly using a different protocol too (thus changing the pipeline configuration). Until now, this was informally implemented using `ELEMENT` messages on the bus. Now this has been formalized in the form of a new `GST_MESSAGE_REDIRECT` message. A new redirect message can be created using [`gst_message_new_redirect()`][new-redirect]. If needed, multiple redirect locations can be specified by calling [`gst_message_add_redirect_entry()`][add-redirect] to add further redirect entries, all with metadata, so the application can decide which is most suitable (e.g. depending on the bitrate tags). [new-redirect]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#gst-message-new-redirect [add-redirect]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#gst-message-add-redirect-entry ##### New pad linking convenience functions that automatically create ghost pads New pad linking convenience functions were added: [`gst_pad_link_maybe_ghosting()`][pad-maybe-ghost] and [`gst_pad_link_maybe_ghosting_full()`][pad-maybe-ghost-full] which were previously internal to GStreamer have now been exposed for general use. The existing pad link functions will refuse to link pads or elements at different levels in the pipeline hierarchy, requiring the developer to create ghost pads where necessary. These new utility functions will automatically create ghostpads as needed when linking pads at different levels of the hierarchy (e.g. from an element inside a bin to one that's at the same level in the hierarchy as the bin, or in another bin). [pad-maybe-ghost]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-link-maybe-ghosting [pad-maybe-ghost-full]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-link-maybe-ghosting-full ##### Miscellaneous Pad probes: IDLE and BLOCK probes now work slightly differently in pull mode, so that push and pull mode have opposite scenarios for idle and blocking probes. In push mode, it will block with some data type and IDLE won't have any data. In pull mode, it will block _before_ getting a buffer and will be IDLE once some data has been obtained. ([commit][commit-pad-probes], [bug][bug-pad-probes]) [commit-pad-probes]: https://cgit.freedesktop.org/gstreamer/gstreamer/commit/gst/gstpad.c?id=368ee8a336d0c868d81fdace54b24431a8b48cbf [bug-pad-probes]: https://bugzilla.gnome.org/show_bug.cgi?id=761211 [`gst_parse_launch_full()`][parse-launch-full] can now be made to return a `GstBin` instead of a top-level pipeline by passing the new `GST_PARSE_FLAG_PLACE_IN_BIN` flag. [parse-launch-full]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstParse.html#gst-parse-launch-full The default GStreamer debug log handler can now be removed before calling `gst_init()`, so that it will never get installed and won't be active during initialization. A new [`STREAM_GROUP_DONE` event][stream-group-done-event] was added. In some ways it works similar to the `EOS` event in that it can be used to unblock downstream elements which may be waiting for further data, such as for example `input-selector`. Unlike `EOS`, further data flow may happen after the `STREAM_GROUP_DONE` event though (and without the need to flush the pipeline). This is used to unblock input-selector when switching between streams in adaptive streaming scenarios (e.g. HLS). [stream-group-done-event]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html#gst-event-new-stream-group-done The `gst-launch-1.0` command line tool will now print unescaped caps in verbose mode (enabled by the -v switch). [`gst_element_call_async()`][call-async] has been added as convenience API for plugin developers. It is useful for one-shot operations that need to be done from a thread other than the current streaming thread. It is backed by a thread-pool that is shared by all elements. [call-async]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-call-async Various race conditions have been fixed around the `GstPoll` API used by e.g. `GstBus` and `GstBufferPool`. Some of these manifested themselves primarily on Windows. `GstAdapter` can now keep track of discontinuities signalled via the `DISCONT` buffer flag, and has gained [new API][new-adapter-api] to track PTS, DTS and offset at the last discont. This is useful for plugins implementing advanced trick mode scenarios. [new-adapter-api]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstAdapter.html#gst-adapter-pts-at-discont `GstTestClock` gained a new [`"clock-type"` property][clock-type-prop]. [clock-type-prop]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstTestClock.html#GstTestClock--clock-type #### GstStream API for stream announcement and stream selection New stream listing and stream selection API: new API has been added to provide high-level abstractions for streams ([`GstStream`][stream-api]) and collections of streams ([`GstStreamCollections`][stream-collection-api]). ##### Stream listing A [`GstStream`][stream-api] contains all the information pertinent to a stream, such as stream id, caps, tags, flags and stream type(s); it can represent a single elementary stream (e.g. audio, video, subtitles, etc.) or a container stream. This will depend on the context. In a decodebin3/playbin3 one it will typically be elementary streams that can be selected and unselected. A [`GstStreamCollection`][stream-collection-api] represents a group of streams and is used to announce or publish all available streams. A GstStreamCollection is immutable - once created it won't change. If the available streams change, e.g. because a new stream appeared or some streams disappeared, a new stream collection will be published. This new stream collection may contain streams from the previous collection if those streams persist, or completely new ones. Stream collections do not yet list all theoretically available streams, e.g. other available DVD angles or alternative resolutions/bitrate of the same stream in case of adaptive streaming. New events and messages have been added to notify or update other elements and the application about which streams are currently available and/or selected. This way, we can easily and seamlessly let the application know whenever the available streams change, as happens frequently with digital television streams for example. The new system is also more flexible. For example, it is now also possible for the application to select multiple streams of the same type (e.g. in a transcoding/transmuxing scenario). A [`STREAM_COLLECTION` message][stream-collection-msg] is posted on the bus to inform the parent bin (e.g. `playbin3`, `decodebin3`) and/or the application about what streams are available, so you no longer have to hunt for this information at different places. The available information includes number of streams of each type, caps, tags etc. Bins and/or the application can intercept the message synchronously to select and deselect streams before any data is produced - for the case where elements such as the demuxers support the new stream API, not necessarily in the parsebin compatibility fallback case. Similarly, there is also a [`STREAM_COLLECTION` event][stream-collection-event] to inform downstream elements of the available streams. This event can be used by elements to aggregate streams from multiple inputs into one single collection. The `STREAM_START` event was extended so that it can also contain a GstStream object with all information about the current stream, see [`gst_event_set_stream()`][event-set-stream] and [`gst_event_parse_stream()`][event-parse-stream]. [`gst_pad_get_stream()`][pad-get-stream] is a new utility function that can be used to look up the GstStream from the `STREAM_START` sticky event on a pad. [stream-api]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStream.html [stream-collection-api]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStreamCollection.html [stream-collection-msg]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#gst-message-new-stream-collection [stream-collection-event]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html#gst-event-new-stream-collection [event-set-stream]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html#gst-event-set-stream [event-parse-stream]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html#gst-event-parse-stream [pad-get-stream]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-get-stream ##### Stream selection Once the available streams have been published, streams can be selected via their stream ID using the new `SELECT_STREAMS` event, which can be created with [`gst_event_new_select_streams()`][event-select-streams]. The new API supports selecting multiple streams per stream type. In the future, we may also implement explicit deselection of streams that will never be used, so elements can skip these and never expose them or output data for them in the first place. The application is then notified of the currently selected streams via the new `STREAMS_SELECTED` message on the pipeline bus, containing both the current stream collection as well as the selected streams. This might be posted in response to the application sending a `SELECT_STREAMS` event or when `decodebin3` or `playbin3` decide on the streams to be initially selected without application input. [event-select-streams]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html#gst-event-new-select-streams ##### Further reading See further below for some notes on the new elements supporting this new stream API, namely: `decodebin3`, `playbin3` and `parsebin`. More information about the new API and the new elements can also be found here: - GStreamer [stream selection design docs][streams-design] - Edward Hervey's talk ["The new streams API: Design and usage"][streams-talk] ([slides][streams-slides]) - Edward Hervey's talk ["Decodebin3: Dealing with modern playback use cases"][db3-talk] ([slides][db3-slides]) [streams-design]: https://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/part-stream-selection.txt [streams-talk]: https://gstconf.ubicast.tv/videos/the-new-gststream-api-design-and-usage/ [streams-slides]: https://gstreamer.freedesktop.org/data/events/gstreamer-conference/2016/Edward%20Hervey%20-%20The%20New%20Streams%20API%20Design%20and%20Usage.pdf [db3-talk]: https://gstconf.ubicast.tv/videos/decodebin3-or-dealing-with-modern-playback-use-cases/ [db3-slides]: https://gstreamer.freedesktop.org/data/events/gstreamer-conference/2015/Edward%20Hervey%20-%20decodebin3.pdf #### Audio conversion and resampling API The audio conversion library received a completely new and rewritten audio resampler, complementing the audio conversion routines moved into the audio library in the [previous release][release-notes-1.8]. Integrating the resampler with the other audio conversion library allows us to implement generic conversion much more efficiently, as format conversion and resampling can now be done in the same processing loop instead of having to do it in separate steps (our element implementations do not make use of this yet though). The new audio resampler library is a combination of some of the best features of other samplers such as ffmpeg, speex and SRC. It natively supports S16, S32, F32 and F64 formats and uses optimized x86 and neon assembly for most of its processing. It also has support for dynamically changing sample rates by incrementally updating the filter tables using linear or cubic interpolation. According to some benchmarks, it's one of the fastest and most accurate resamplers around. The `audioresample` plugin has been ported to the new audio library functions to make use of the new resampler. [release-notes-1.8]: https://gstreamer.freedesktop.org/releases/1.8/ #### Support for SMPTE timecodes Support for SMPTE timecodes was added to the GStreamer video library. This comes with an abstraction for timecodes, [`GstVideoTimeCode`][video-timecode] and a [`GstMeta`][video-timecode-meta] that can be placed on video buffers for carrying the timecode information for each frame. Additionally there is various API for making handling of timecodes easy and to do various calculations with them. A new plugin called [`timecode`][timecode-plugin] was added, that contains an element called `timecodestamper` for putting the timecode meta on video frames based on counting the frames and another element called `timecodewait` that drops all video (and audio) until a specific timecode is reached. Additionally support was added to the Decklink plugin for including the timecode information when sending video out or capturing it via SDI, the `qtmux` element is able to write timecode information into the MOV container, and the `timeoverlay` element can overlay timecodes on top of the video. More information can be found in the [talk about timecodes][timecode-talk] at the GStreamer Conference 2016. [video-timecode]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideo.html#GstVideoTimeCode [video-timecode-meta]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideometa.html#gst-buffer-add-video-time-code-meta [timecode-plugin]: https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/gst/timecode [timecode-talk]: https://gstconf.ubicast.tv/videos/smpte-timecodes-in-gstreamer/ #### GStreamer OpenMAX IL plugin The last gst-omx release, 1.2.0, was in July 2014. It was about time to get a new one out with all the improvements that have happened in the meantime. From now on, we will try to release gst-omx together with all other modules. This release features a lot of bugfixes, improved support for the Raspberry Pi and in general improved support for zerocopy rendering via EGL and a few minor new features. At this point, gst-omx is known to work best on the Raspberry Pi platform but it is also known to work on various other platforms. Unfortunately, we are not including configurations for any other platforms, so if you happen to use gst-omx: please send us patches with your configuration and code changes! ### New Elements #### decodebin3, playbin3, parsebin (experimental) This release features new decoding and playback elements as experimental technology previews: `decodebin3` and `playbin3` will soon supersede the existing `decodebin` and `playbin` elements. We skipped the number 2 because it was already used back in the 0.10 days, which might cause confusion. Experimental technology preview means that everything should work fine already, but we can't guarantee there won't be minor behavioural changes in the next cycle. In any case, please test and report any problems back. Before we go into detail about what these new elements improve, let's look at the new [`parsebin`][parsebin] element. It works similarly to `decodebin` and `decodebin3`, only that it stops one step short and does not plug any actual decoder elements. It will only plug parsers, tag readers, demuxers and depayloaders. Also note that parsebin does not contain any queueing element. [`decodebin3`'s][decodebin3] internal architecture is slightly different from the existing `decodebin` element and fixes many long-standing issues with our decoding engine. For one, data is now fed into the internal `multiqueue` element *after* it has been parsed and timestamped, which means that the `multiqueue` element now has more knowledge and is able to calculate the interleaving of the various streams, thus minimizing memory requirements and doing away with magic values for buffering limits that were conceived when videos were 240p or 360p. Anyone who has tried to play back 4k video streams with decodebin2 will have noticed the limitations of that approach. The improved timestamp tracking also enables `multiqueue` to keep streams of the same type (audio, video) aligned better, making sure switching between streams of the same type is very fast. Another major improvement in `decodebin3` is that it will no longer decode streams that are not being used. With the old `decodebin` and `playbin`, when there were 8 audio streams we would always decode all 8 streams even if 7 were not actually used. This caused a lot of CPU overhead, which was particularly problematic on embedded devices. When switching between streams `decodebin3` will try hard to re-use existing decoders. This is useful when switching between multiple streams of the same type if they are encoded in the same format. Re-using decoders is also useful when the available streams change on the fly, as might happen with radio streams (chained Oggs), digital television broadcasts, when adaptive streaming streams change bitrate, or when switching gaplessly to the next title. In order to guarantee a seamless transition, the old `decodebin2` would plug a second decoder for the new stream while finishing up the old stream. With `decodebin3`, this is no longer needed - at least not when the new and old format are the same. This will be particularly useful on embedded systems where it is often not possible to run multiple decoders at the same time, or when tearing down and setting up decoders is fairly expensive. `decodebin3` also allows for multiple input streams, not just a single one. This will be useful, in the future, for gapless playback, or for feeding multiple external subtitle streams to decodebin/playbin. `playbin3` uses `decodebin3` internally, and will supercede `playbin`. It was decided that it would be too risky to make the old `playbin` use the new `decodebin3` in a backwards-compatible way. The new architecture makes it awkward, if not impossible, to maintain perfect backwards compatibility in some aspects, hence `playbin3` was born, and developers can migrate to the new element and new API at their own pace. All of these new elements make use of the new `GstStream` API for listing and selecting streams, as described above. `parsebin` provides backwards compatibility for demuxers and parsers which do not advertise their streams using the new API yet (which is most). The new elements are not entirely feature-complete yet: `playbin3` does not support so-called decodersinks yet where the data is not decoded inside GStreamer but passed directly for decoding to the sink. `decodebin3` is missing the various `autoplug-*` signals to influence which decoders get autoplugged in which order. We're looking to add back this functionality, but it will probably be in a different way, with a single unified signal and using GstStream perhaps. For more information on these new elements, check out Edward Hervey's talk [*decodebin3 - dealing with modern playback use cases*][db3-talk] [parsebin]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-plugins/html/gst-plugins-base-plugins-parsebin.html [decodebin3]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-plugins/html/gst-plugins-base-plugins-decodebin3.html [db3-talk]: https://gstconf.ubicast.tv/videos/decodebin3-or-dealing-with-modern-playback-use-cases/ #### LV2 ported from 0.10 and switched from slv2 to lilv2 The LV2 wrapper plugin has been ported to 1.0 and moved from using the deprecated slv2 library to its replacement liblv2. We support sources and filter elements. lv2 is short for *Linux Audio Developer's Simple Plugin API (LADSPA) version 2* and is an open standard for audio plugins which includes support for audio synthesis (generation), digital signal processing of digital audio, and MIDI. The new lv2 plugin supersedes the existing LADSPA plugin. #### WebRTC DSP Plugin for echo-cancellation, gain control and noise suppression A set of new elements ([webrtcdsp][webrtcdsp], [webrtcechoprobe][webrtcechoprobe]) based on the WebRTC DSP software stack can now be used to improve your audio voice communication pipelines. They support echo cancellation, gain control, noise suppression and more. For more details you may read [Nicolas' blog post][webrtc-blog-post]. [webrtcdsp]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-plugins/html/gst-plugins-bad-plugins-webrtcdsp.html [webrtcechoprobe]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-plugins/html/gst-plugins-bad-plugins-webrtcechoprobe.html [webrtc-blog-post]: https://ndufresne.ca/2016/06/gstreamer-echo-canceller/ #### Fraunhofer FDK AAC encoder and decoder New encoder and decoder elements wrapping the Fraunhofer FDK AAC library have been added (`fdkaacdec`, `fdkaacdec`). The Fraunhofer FDK AAC encoder is generally considered to be a very high-quality AAC encoder, but unfortunately it comes under a non-free license with the option to obtain a paid, commercial license. ### Noteworthy element features and additions #### Major RTP and RTSP improvements - The RTSP server and source element, as well as the RTP jitterbuffer now support remote clock synchronization according to [RFC7273][https://tools.ietf.org/html/rfc7273]. - Support for application and profile specific RTCP packets was added. - The H265/HEVC payloader/depayloader is again in sync with the final RFC. - Seeking stability of the RTSP source and server was improved a lot and runs stably now, even when doing scrub-seeking. - The RTSP server received various major bugfixes, including for regressions that caused the IP/port address pool to not be considered, or NAT hole punching to not work anymore. [Bugzilla #766612][https://bugzilla.gnome.org/show_bug.cgi?id=766612] - Various other bugfixes that improve the stability of RTP and RTSP, including many new unit / integration tests. #### Improvements to splitmuxsrc and splitmuxsink - The splitmux element received reliability and error handling improvements, removing at least one deadlock case. `splitmuxsrc` now stops cleanly at the end of the segment when handling seeks with a stop time. We fixed a bug with large amounts of downstream buffering causing incorrect out-of-sequence playback. - `splitmuxsrc` now has a `"format-location"` signal to directly specify the list of files to play from. - `splitmuxsink` can now optionally send force-keyunit events to upstream elements to allow splitting files more accurately instead of having to wait for upstream to provide a new keyframe by itself. #### OpenGL/GLES improvements ##### iOS and macOS (OS/X) - We now create OpenGL|ES 3.x contexts on iOS by default with a fallback to OpenGL|ES 2.x if that fails. - Various zerocopy decoding fixes and enhancements with the encoding/decoding/capturing elements. - libdispatch is now used on all Apple platforms instead of GMainLoop, removing the expensive poll()/pthread_*() overhead. ##### New API - `GstGLFramebuffer` - for wrapping OpenGL frame buffer objects. It provides facilities for attaching `GstGLMemory` objects to the necessary attachment points, binding and unbinding and running a user-supplied function with the framebuffer bound. - `GstGLRenderbuffer` (a `GstGLBaseMemory` subclass) - for wrapping OpenGL render buffer objects that are typically used for depth/stencil buffers or for color buffers where we don't care about the output. - `GstGLMemoryEGL` (a `GstGLMemory` subclass) - for combining `EGLImage`s with a GL texture that replaces `GstEGLImageMemory` bringing the improvements made to the other `GstGLMemory` implementations. This fixes a performance regression in zerocopy decoding on the Raspberry Pi when used with an updated gst-omx. ##### Miscellaneous improvements - `gltestsrc` is now usable on devices/platforms with OpenGL 3.x and OpenGL|ES and has completed or gained support for new patterns in line with the existing ones in `videotestsrc`. - `gldeinterlace` is now available on devices/platforms with OpenGL|ES implementations. - The dispmanx backend (used on the Raspberry Pi) now supports the `gst_video_overlay_set_window_handle()` and `gst_video_overlay_set_render_rectangle()` functions. - The `gltransformation` element now correctly transforms mouse coordinates (in window space) to stream coordinates for both perspective and orthographic projections. - The `gltransformation` element now detects if the `GstVideoAffineTransformationMeta` is supported downstream and will efficiently pass its transformation downstream. This is a performance improvement as it results in less processing being required. - The wayland implementation now uses the multi-threaded safe event-loop API allowing correct usage in applications that call wayland functions from multiple threads. - Support for native 90 degree rotations and horizontal/vertical flips in `glimagesink`. #### Vulkan - The Vulkan elements now work under Wayland and have received numerous bugfixes. #### QML elements - `qmlglsink` video sink now works on more platforms, notably, Windows, Wayland, and Qt's eglfs (for embedded devices with an OpenGL implementation) including the Raspberry Pi. - New element `qmlglsrc` to record a QML scene into a GStreamer pipeline. #### KMS video sink - New element `kmssink` to render video using Direct Rendering Manager (DRM) and Kernel Mode Setting (KMS) subsystems in the Linux kernel. It is oriented to be used mostly in embedded systems. #### Wayland video sink - `waylandsink` now supports the wl_viewporter extension allowing video scaling and cropping to be delegated to the Wayland compositor. This extension is also been made optional, so that it can also work on current compositors that don't support it. It also now has support for the video meta, allowing zero-copy operations in more cases. #### DVB improvements - `dvbsrc` now has better delivery-system autodetection and several new parameter sanity-checks to improve its resilience to configuration omissions and errors. Superfluous polling continues to be trimmed down, and the debugging output has been made more consistent and precise. Additionally, the channel-configuration parser now supports the new dvbv5 format, enabling `dvbbasebin` to automatically playback content transmitted on delivery systems that previously required manual description, like ISDB-T. #### DASH, HLS and adaptivedemux - HLS now has support for Alternate Rendition audio and video tracks. Full support for Alternate Rendition subtitle tracks will be in an upcoming release. - DASH received support for keyframe-only trick modes if the `GST_SEEK_FLAG_TRICKMODE_KEY_UNITS` flag is given when seeking. It will only download keyframes then, which should help with high-speed playback. Changes to skip over multiple frames based on bandwidth and other metrics will be added in the near future. - Lots of reliability fixes around seek handling and bitrate switching. #### Bluetooth improvements - The `avdtpsrc` element now supports metadata such as track title, artist name, and more, which devices can send via AVRCP. These are published as tags on the pipeline. - The `a2dpsink` element received some love and was cleaned up so that it actually works after the initial GStreamer 1.0 port. #### GStreamer VAAPI - All the decoders have been split, one plugin feature per codec. So far, the available ones, depending on the driver, are: `vaapimpeg2dec`, `vaapih264dec`, `vaapih265dec`, `vaapivc1dec`, `vaapivp8dec`, `vaapivp9dec` and `vaapijpegdec` (which already was split). - Improvements when mapping VA surfaces into memory. It now differentiates between negotiation caps and allocations caps, since the allocation memory for surfaces may be bigger than one that is going to be mapped. - `vaapih265enc` now supports constant bitrate mode (CBR). - Since several VA drivers are unmaintained, we decide to keep a whitelist with the va drivers we actually test, which is mostly the i915 and to a lesser degree gallium from the mesa project. Exporting the environment variable `GST_VAAPI_ALL_DRIVERS` disables the whitelist. - Plugin features are registered at run-time, according to their support by the loaded VA driver. So only the decoders and encoder supported by the system are registered. Since the driver can change, some dependencies are tracked to invalidate the GStreamer registry and reload the plugin. - `dmabuf` importation from upstream has been improved, gaining performance. - `vaapipostproc` now can negotiate buffer transformations via caps. - Decoders now can do I-frame only reverse playback. This decodes I-frames only because the surface pool is smaller than the required by the GOP to show all the frames. - The upload of frames onto native GL textures has been optimized too, keeping a cache of the internal structures for the offered textures by the sink. #### V4L2 changes - More pixels formats are now supported - Decoder is now using `G_SELECTION` instead of the deprecated `G_CROP` - Decoder now uses the `STOP` command to handle EOS - Transform element can now scale the pixel aspect ratio - Colorimetry support has been improved even more - We now support the `OUTPUT_OVERLAY` type of video node in v4l2sink #### Miscellaneous - `multiqueue`'s input pads gained a new `"group-id"` property which can be used to group input streams. Typically one will assign different id numbers to audio, video and subtitle streams for example. This way `multiqueue` can make sure streams of the same type advance in lockstep if some of the streams are unlinked and the `"sync-by-running-time"` property is set. This is used in decodebin3/playbin3 to implement almost-instantaneous stream switching. The grouping is required because different downstream paths (audio, video, etc.) may have different buffering/latency etc. so might be consuming data from multiqueue with a slightly different phase, and if we track different stream groups separately we minimize stream switching delays and buffering inside the `multiqueue`. - `alsasrc` now supports ALSA drivers without a position for each channel, this is common in some professional or industrial hardware. - `libvpx` based decoders (`vp8dec` and `vp9dec`) now create multiple threads on computers with multiple CPUs automatically. - `rfbsrc` - used for capturing from a VNC server - has seen a lot of debugging. It now supports the latest version of the RFB protocol and uses GIO everywhere. - `tsdemux` can now read ATSC E-AC-3 streams. - New `GstVideoDirection` video orientation interface for rotating, flipping and mirroring video in 90° steps. It is implemented by the `videoflip` and `glvideoflip` elements currently. - It is now possible to give `appsrc` a duration in time, and there is now a non-blocking try-pull API for `appsink` that returns NULL if nothing is available right now. - `x264enc` has support now for chroma-site and colorimetry settings - A new JPEG2000 parser element was added, and the JPEG2000 caps were cleaned up and gained more information needed in combination with RTP and various container formats. - Reverse playback support for `videorate` and `deinterlace` was implemented - Various improvements everywhere for reverse playback and `KEY_UNITS` trick mode - New cleaned up `rawaudioparse` and `rawvideoparse` elements that replace the old `audioparse` and `videoparse` elements. There are compatibility element factories registered with the old names to allow existing code to continue to work. - The Decklink plugin gained support for 10 bit video SMPTE timecodes, and generally got many bugfixes for various issues. - New API in `GstPlayer` for setting the multiview mode for stereoscopic video, setting an HTTP/RTSP user agent and a time offset between audio and video. In addition to that, there were various bugfixes and the new gst-examples module contains Android, iOS, GTK+ and Qt example applications. - `GstBin` has new API for suppressing various `GstElement` or `GstObject` flags that would otherwise be affected by added/removed child elements. This new API allows `GstBin` subclasses to handle for themselves if they should be considered a sink or source element, for example. - The `subparse` element can handle WebVTT streams now. - A new `sdpsrc` element was added that can read an SDP from a file, or get it as a string as property and then sets up an RTP pipeline accordingly. ### Plugin moves No plugins were moved this cycle. We'll make up for it next cycle, promise! ### Rewritten memory leak tracer GStreamer has had basic functionality to trace allocation and freeing of both mini-objects (buffers, events, caps, etc.) and objects in the form of the internal `GstAllocTrace` tracing system. This API was never exposed in the 1.x API series though. When requested, this would dump a list of objects and mini-objects at exit time which had still not been freed at that point, enabled with an environment variable. This subsystem has now been removed in favour of a new implementation based on the recently-added tracing framework. Tracing hooks have been added to trace the creation and destruction of GstObjects and mini-objects, and a new tracer plugin has been written using those new hooks to track which objects are still live and which are not. If GStreamer has been compiled against the libunwind library, the new leaks tracer will remember where objects were allocated from as well. By default the leaks tracer will simply output a warning if leaks have been detected on `gst_deinit()`. If the `GST_LEAKS_TRACER_SIG` environment variable is set, the leaks tracer will also handle the following UNIX signals: - `SIGUSR1`: log alive objects - `SIGUSR2`: create a checkpoint and print a list of objects created and destroyed since the previous checkpoint. Unfortunately this will not work on Windows due to no signals, however. If the `GST_LEAKS_TRACER_STACK_TRACE` environment variable is set, the leaks tracer will also log the creation stack trace of leaked objects. This may significantly increase memory consumption however. New `MAY_BE_LEAKED` flags have been added to GstObject and GstMiniObject, so that objects and mini-objects that are likely to stay around forever can be flagged and blacklisted from the leak output. To give the new leak tracer a spin, simply call any GStreamer application such as `gst-launch-1.0` or `gst-play-1.0` like this: GST_TRACERS=leaks gst-launch-1.0 videotestsrc num-buffers=10 ! fakesink If there are any leaks, a warning will be raised at the end. It is also possible to trace only certain types of objects or mini-objects: GST_TRACERS="leaks(GstEvent,GstMessage)" gst-launch-1.0 videotestsrc num-buffers=10 ! fakesink This dedicated leaks tracer is much much faster than valgrind since all code is executed natively instead of being instrumented. This makes it very suitable for use on slow machines or embedded devices. It is however limited to certain types of leaks and won't catch memory leaks when the allocation has been made via plain old `malloc()` or `g_malloc()` or other means. It will also not trace non-GstObject GObjects. The goal is to enable leak tracing on GStreamer's Continuous-Integration and testing system, both for the regular unit tests (make check) and media tests (gst-validate), so that accidental leaks in common code paths can be detected and fixed quickly. For more information about the new tracer, check out Guillaume Desmottes's ["Tracking Memory Leaks"][leaks-talk] talk or his [blog post][leaks-blog] about the topic. [leaks-talk]: https://gstconf.ubicast.tv/videos/tracking-memory-leaks/ [leaks-blog]: https://blog.desmottes.be/?post/2016/06/20/GStreamer-leaks-tracer ### GES and NLE changes - Clip priorities are now handled by the layers, and the GESTimelineElement priority property is now deprecated and unused - Enhanced (de)interlacing support to always use the `deinterlace` element and expose needed properties to users - Allow reusing clips children after removing the clip from a layer - We are now testing many more rendering formats in the gst-validate test suite, and failures have been fixed. - Also many bugs have been fixed in this cycle! ### GStreamer validate changes This cycle has been focused on making GstValidate more than just a validating tool, but also a tool to help developers debug their GStreamer issues. When reporting issues, we try to gather as much information as possible and expose it to end users in a useful way. For an example of such enhancements, check out Thibault Saunier's [blog post](improving-debugging-gstreamer-validate) about the new Not Negotiated Error reporting mechanism. Playbin3 support has been added so we can run validate tests with `playbin3` instead of playbin. We are now able to properly communicate between `gst-validate-launcher` and launched subprocesses with actual IPC between them. That has enabled the test launcher to handle failing tests specifying the exact expected issue(s). [improving-debugging-gstreamer-validate]: https://blogs.s-osg.org/improving-debugging-gstreamer-validate/ ### gst-libav changes gst-libav uses the recently released ffmpeg 3.2 now, which brings a lot of improvements and bugfixes from the ffmpeg team in addition to various new codec mappings on the GStreamer side and quite a few bugfixes to the GStreamer integration to make it more robust. ## Build and Dependencies ### Experimental support for Meson as build system #### Overview We have have added support for building GStreamer using the [Meson build system][meson]. This is currently experimental, but should work fine at least on Linux using the gcc or clang toolchains and on Windows using the MingW or MSVC toolchains. Autotools remains the primary build system for the time being, but we hope to someday replace it and will steadily work towards that goal. More information about the background and implications of all this and where we're hoping to go in future with this can be found in [Tim's mail][meson-mail] to the gstreamer-devel mailing list. For more information on Meson check out [these videos][meson-videos] and also the [Meson talk][meson-gstconf] at the GStreamer Conference. Immediate benefits for Linux users are faster builds and rebuilds. At the time of writing the Meson build of GStreamer is used by default in GNOME's jhbuild system. The Meson build currently still lacks many of the fine-grained configuration options to enable/disable specific plugins. These will be added back in due course. Note: The meson build files are not distributed in the source tarballs, you will need to get GStreamer from git if you want try it out. [meson]: http://mesonbuild.com/ [meson-mail]: https://lists.freedesktop.org/archives/gstreamer-devel/2016-September/060231.html [meson-videos]: http://mesonbuild.com/videos.html [meson-gstconf]: https://gstconf.ubicast.tv/videos/gstreamer-development-on-windows-ans-faster-builds-everywhere-with-meson/ #### Windows Visual Studio toolchain support Windows users might appreciate being able to build GStreamer using the MSVC toolchain, which is not possible using autotools. This means that it will be possible to debug GStreamer and applications in Visual Studio, for example. We require VS2015 or newer for this at the moment. There are two ways to build GStreamer using the MSVC toolchain: 1. Using the MSVC command-line tools (`cl.exe` etc.) via Meson's "ninja" backend. 2. Letting Meson's "vs2015" backend generate Visual Studio project files that can be opened in Visual Studio and compiled from there. This is currently only for adventurous souls though. All the bits are in place, but support for all of this has not been merged into GStreamer's cerbero build tool yet at the time of writing. This will hopefully happen in the next cycle, but for now this means that those wishing to compile GStreamer with MSVC will have to get their hands dirty. There are also no binary SDK builds using the MSVC toolchain yet. For more information on GStreamer builds using Meson and the Windows toolchain check out Nirbheek Chauhan's blog post ["Building and developing GStreamer using Visual Studio"][msvc-blog]. [msvc-blog]: http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html ### Dependencies #### gstreamer libunwind was added as an optional dependency. It is used only for debugging and tracing purposes. The `opencv` plugin in gst-plugins-bad can now be built against OpenCV version 3.1, previously only 2.3-2.5 were supported. #### gst-plugins-ugly - `mpeg2dec` now requires at least libmpeg2 0.5.1 (from 2008). #### gst-plugins-bad - `gltransformation` now requires at least graphene 1.4.0. - `lv2` now plugin requires at least lilv 0.16 instead of slv2. ### Packaging notes Packagers please note that the `gst/gstconfig.h` public header file in the GStreamer core library moved back from being an architecture dependent include to being architecture independent, and thus it is no longer installed into `$(libdir)/gstreamer-1.0/include/gst` but into the normal include directory where it lives happily ever after with all the other public header files. The reason for this is that we now check whether the target supports unaligned memory access based on predefined compiler macros at compile time instead of checking it at configure time. ## Platform-specific improvements ### Android #### New universal binaries for all supported ABIs We now provide a "universal" tarball to allow building apps against all the architectures currently supported (x86, x86-64, armeabi, armeabi-v7a, armeabi-v8a). This is needed for building with recent versions of the Android NDK which defaults to building against all supported ABIs. Use [the Android player example][android-player-example-build] as a reference for the required changes. [android-player-example-build]: https://cgit.freedesktop.org/gstreamer/gst-examples/commit/playback/player/android?id=a5cdde9119f038a1eb365aca20faa9741a38e788 #### Miscellaneous - New `ahssrc` element that allows reading the hardware sensors, e.g. compass or accelerometer. ### macOS (OS/X) and iOS - Support for querying available devices on OS/X via the GstDeviceProvider API was added. - It is now possible to create OpenGL|ES 3.x contexts on iOS and use them in combination with the VideoToolbox based decoder element. - many OpenGL/GLES improvements, see OpenGL section above ### Windows - gstconfig.h: Always use dllexport/import on Windows with MSVC - Miscellaneous fixes to make libs and plugins compile with the MVSC toolchain - MSVC toolchain support (see Meson section above for more details) ## New Modules for Documentation, Examples, Meson Build Three new git modules have been added recently: ### gst-docs This is a new module where we will maintain documentation in the markdown format. It contains the former gstreamer.com SDK tutorials which have kindly been made available by Fluendo under a Creative Commons license. The tutorials have been reviewed and updated for GStreamer 1.x and will be available as part of the [official GStreamer documentation][doc] going forward. The old gstreamer.com site will then be shut down with redirects pointing to the updated tutorials. Some of the existing docbook XML-formatted documentation from the GStreamer core module such as the *Application Development Manual* and the *Plugin Writer's Guide* have been converted to markdown as well and will be maintained in the gst-docs module in future. They will be removed from the GStreamer core module in the next cycle. This is just the beginning. Our goal is to provide a more cohesive documentation experience for our users going forward, and easier to create and maintain documentation for developers. There is a lot more work to do, get in touch if you want to help out. If you encounter any problems or spot any omissions or outdated content in the new documentation, please [file a bug in bugzilla][doc-bug] to let us know. We will probably release gst-docs as a separate tarball for distributions to package in the next cycle. [doc]: http://gstreamer.freedesktop.org/documentation/ [doc-bug]: https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer&component=documentation ### gst-examples A new [module][examples-git] has been added for examples. It does not contain much yet, currently it only contains a small [http-launch][http-launch] utility that serves a pipeline over http as well as various [GstPlayer playback frontends][puis] for Android, iOS, Gtk+ and Qt. More examples will be added over time. The examples in this repository should be more useful and more substantial than most of the examples we ship as part of our other modules, and also written in a way that makes them good example code. If you have ideas for examples, let us know. No decision has been made yet if this module will be released and/or packaged. It probably makes sense to do so though. [examples-git]: https://cgit.freedesktop.org/gstreamer/gst-examples/tree/ [http-launch]: https://cgit.freedesktop.org/gstreamer/gst-examples/tree/network/http-launch/ [puis]: https://cgit.freedesktop.org/gstreamer/gst-examples/tree/playback/player ### gst-build [gst-build][gst-build-git] is a new meta module to build GStreamer using the new Meson build system. This module is not required to build GStreamer with Meson, it is merely for convenience and aims to provide a development setup similar to the existing `gst-uninstalled` setup. gst-build makes use of Meson's [subproject feature][meson-subprojects] and sets up the various GStreamer modules as subprojects, so they can all be updated and built in parallel. This module is still very new and highly experimental. It should work at least on Linux and Windows (OS/X needs some build fixes). Let us know of any issues you encounter by popping into the `#gstreamer` IRC channel or by [filing a bug][gst-build-bug]. This module will probably not be released or packaged (does not really make sense). [gst-build-git]: https://cgit.freedesktop.org/gstreamer/gst-build/tree/ [gst-build-bug]: https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer&component=gst-build [meson-subprojects]: https://github.com/mesonbuild/meson/wiki/Subprojects ## Contributors Aaron Boxer, Aleix Conchillo Flaqué, Alessandro Decina, Alexandru Băluț, Alex Ashley, Alex-P. Natsios, Alistair Buxton, Allen Zhang, Andreas Naumann, Andrew Eikum, Andy Devar, Anthony G. Basile, Arjen Veenhuizen, Arnaud Vrac, Artem Martynovich, Arun Raghavan, Aurélien Zanelli, Barun Kumar Singh, Bernhard Miller, Brad Lackey, Branko Subasic, Carlos Garcia Campos, Carlos Rafael Giani, Christoffer Stengren, Daiki Ueno, Damian Ziobro, Danilo Cesar Lemes de Paula, David Buchmann, Dimitrios Katsaros, Duncan Palmer, Edward Hervey, Emmanuel Poitier, Enrico Jorns, Enrique Ocaña González, Fabrice Bellet, Florian Zwoch, Florin Apostol, Francisco Velazquez, Frédéric Bertolus, Fredrik Fornwall, Gaurav Gupta, George Kiagiadakis, Georg Lippitsch, Göran Jönsson, Graham Leggett, Gregoire Gentil, Guillaume Desmottes, Gwang Yoon Hwang, Haakon Sporsheim, Haihua Hu, Havard Graff, Heinrich Fink, Hoonhee Lee, Hyunjun Ko, Iain Lane, Ian, Ian Jamison, Jagyum Koo, Jake Foytik, Jakub Adam, Jan Alexander Steffens (heftig), Jan Schmidt, Javier Martinez Canillas, Jerome Laheurte, Jesper Larsen, Jie Jiang, Jihae Yi, Jimmy Ohn, Jinwoo Ahn, Joakim Johansson, Joan Pau Beltran, Jonas Holmberg, Jonathan Matthew, Jonathan Roy, Josep Torra, Julien Isorce, Jun Ji, Jürgen Slowack, Justin Kim, Kazunori Kobayashi, Kieran Bingham, Kipp Cannon, Koop Mast, Kouhei Sutou, Kseniia, Kyle Schwarz, Kyungyong Kim, Linus Svensson, Luis de Bethencourt, Marcin Kolny, Marcin Lewandowski, Marianna Smidth Buschle, Mario Sanchez Prada, Mark Combellack, Mark Nauwelaerts, Martin Kelly, Matej Knopp, Mathieu Duponchelle, Mats Lindestam, Matthew Gruenke, Matthew Waters, Michael Olbrich, Michal Lazo, Miguel París Díaz, Mikhail Fludkov, Minjae Kim, Mohan R, Munez, Nicola Murino, Nicolas Dufresne, Nicolas Huet, Nikita Bobkov, Nirbheek Chauhan, Olivier Crête, Paolo Pettinato, Patricia Muscalu, Paulo Neves, Peng Liu, Peter Seiderer, Philippe Normand, Philippe Renon, Philipp Zabel, Pierre Lamot, Piotr Drąg, Prashant Gotarne, Raffaele Rossi, Ray Strode, Reynaldo H. Verdejo Pinochet, Santiago Carot-Nemesio, Scott D Phillips, Sebastian Dröge, Sebastian Rasmussen, Sergei Saveliev, Sergey Borovkov, Sergey Mamonov, Sergio Torres Soldado, Seungha Yang, sezero, Song Bing, Sreerenj Balachandran, Stefan Sauer, Stephen, Steven Hoving, Stian Selnes, Thiago Santos, Thibault Saunier, Thijs Vermeir, Thomas Bluemel, Thomas Jones, Thomas Klausner, Thomas Scheuermann, Tim-Philipp Müller, Ting-Wei Lan, Tom Schoonjans, Ursula Maplehurst, Vanessa Chipirras Navalon, Víctor Manuel Jáquez Leal, Vincent Penquerc'h, Vineeth TM, Vivia Nikolaidou, Vootele Vesterblom, Wang Xin-yu (王昕宇), William Manley, Wim Taymans, Wonchul Lee, Xabier Rodriguez Calvar, Xavier Claessens, xlazom00, Yann Jouanin, Zaheer Abbas Merali ... and many others who have contributed bug reports, translations, sent suggestions or helped testing. ## Bugs fixed in 1.10 More than [750 bugs][bugs-fixed-in-1.10] have been fixed during the development of 1.10. This list does not include issues that have been cherry-picked into the stable 1.8 branch and fixed there as well, all fixes that ended up in the 1.8 branch are also included in 1.10. This list also does not include issues that have been fixed without a bug report in bugzilla, so the actual number of fixes is much higher. [bugs-fixed-in-1.10]: https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Platform&limit=0&list_id=164074&order=bug_id&product=GStreamer&query_format=advanced&resolution=FIXED&target_milestone=1.8.1&target_milestone=1.8.2&target_milestone=1.8.3&target_milestone=1.8.4&target_milestone=1.9.1&target_milestone=1.9.2&target_milestone=1.9.90&target_milestone=1.10.0 ## Stable 1.10 branch After the 1.10.0 release there will be several 1.10.x bug-fix releases which will contain bug fixes which have been deemed suitable for a stable branch, but no new features or intrusive changes will be added to a bug-fix release usually. The 1.10.x bug-fix releases will be made from the git 1.10 branch, which is a stable branch. ### 1.10.0 1.10.0 was released on 1st November 2016. ## Known Issues - iOS builds with iOS 6 SDK and old C++ STL. You need to select iOS 6 instead of 7 or 8 in your projects settings to be able to link applications. [Bug #766366](https://bugzilla.gnome.org/show_bug.cgi?id=766366) - Code signing for Apple platforms has some problems currently, requiring manual work to get your application signed. [Bug #771860](https://bugzilla.gnome.org/show_bug.cgi?id=771860) - Building applications with Android NDK r13 on Windows does not work. Other platforms and earlier/later versions of the NDK are not affected. [Bug #772842](https://bugzilla.gnome.org/show_bug.cgi?id=772842) - The new leaks tracer may deadlock the application (or exhibit other undefined behaviour) when `SIGUSR` handling is enabled via the `GST_LEAKS_TRACER_SIG` environment variable. [Bug #770373](https://bugzilla.gnome.org/show_bug.cgi?id=770373) - vp8enc crashes on 32 bit Windows, but was working fine in 1.6. 64 bit Windows is unaffected. [Bug #763663](https://bugzilla.gnome.org/show_bug.cgi?id=763663) ## Schedule for 1.12 Our next major feature release will be 1.12, and 1.11 will be the unstable development version leading up to the stable 1.12 release. The development of 1.11/1.12 will happen in the git master branch. The plan for the 1.12 development cycle is yet to be confirmed, but it is expected that feature freeze will be around early/mid-January, followed by several 1.11 pre-releases and the new 1.12 stable release in March. 1.12 will be backwards-compatible to the stable 1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series. - - - *These release notes have been prepared by Olivier Crête, Sebastian Dröge, Nicolas Dufresne, Edward Hervey, Víctor Manuel Jáquez Leal, Tim-Philipp Müller, Reynaldo H. Verdejo Pinochet, Arun Raghavan, Thibault Saunier, Jan Schmidt, Wim Taymans, Matthew Waters* *License: [CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/)*
Update gstreamer1 and its plugins to 1.8.3. 1.8.3 The third 1.8 bug-fix release (1.8.3) was released on 19 August 2016. This release only contains bugfixes and it should be safe to update from 1.8.x. Major bugfixes in 1.8.3 Fix Android build scripts on OS X and Windows Fix stepping in PAUSED state in certain circumstances Fix jackaudiosink hang when exiting Fix udpsrc receiving multicast packets not only from the selected multicast group Fix unnecessary decoding of unselected streams in GES Fix (multi)udpsink randomly not sending to clients Fix ALL_BOTH probes not considering EVENT_FLUSH Fix average input rate calculations in queue2 Fix various locking issues causing deadlock in adaptivedemux Fix gst-libav encoders to correctly produce codec_data in caps Add Wayland, Windows and Rasberry Pi support to the QML GL video sink Add support for building with OpenH264 1.6 Add support for controlling deinterlacing in GES video sources ... and many, many more! 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. Known Issues gst-rtsp-server does not take address pool configuration into account for sending unicast UDP. Bugzilla #766612 vp8enc crashes on 32 bit Windows, but was working fine in 1.6. 64 bit Windows is unaffected. Bugzilla #763663
Update gstreamer and plugins to 1.8.2. This release only contains bugfixes and it should be safe to update from 1.8.1.
Update gstreamer1 and its plugins to 1.8.1. Switch gst-plugin1-libav from ffmpeg2 to ffmpeg3. 1.8.1 The first 1.8 bug-fix release (1.8.1) was released on 20 April 2016. This release only contains bugfixes and it should be safe to update from 1.8.0. Major bugfixes in 1.8.1 Fix app compilation with Android NDK r11 and newer Fix compilation of nvenc plugin against latest NVIDIA SDK 6.0 Fix regression in avdeinterlace Fix memory corruption in scaletempo element with S16 input Fix glitches at the start with all audio sinks except for pulsesink Fix regression with encrypted HLS streams Fix automatic multithreaded decoding of VP8/9 video Fix deadlock in HTTP adaptive streams when scrub-seeking Fix regression in RTSP source with SRTP Add support for SRTP rollover counters in the RTSP source Add support for HiDPI ("Retina") screens in caopengllayersink ... and many more!
Update gstreamer1 and plugins to 1.8.0. GStreamer 1.8.0 was released on 24 March 2016. 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. See https://gstreamer.freedesktop.org/releases/1.8/ for the latest version of this document. Highlights Hardware-accelerated zero-copy video decoding on Android New video capture source for Android using the android.hardware.Camera API Windows Media reverse playback support (ASF/WMV/WMA) New tracing system provides support for more sophisticated debugging tools New high-level GstPlayer playback convenience API Initial support for the new Vulkan API, see Matthew Waters' blog post for more details Improved Opus audio codec support: Support for more than two channels; MPEG-TS demuxer/muxer can now handle Opus; sample-accurate encoding/decoding/transmuxing with Ogg, Matroska, ISOBMFF (Quicktime/MP4), and MPEG-TS as container; new codec utility functions for Opus header and caps handling in pbutils library. The Opus encoder/decoder elements were also moved to gst-plugins-base (from -bad), and the opus RTP depayloader/payloader to -good. GStreamer VAAPI module now released and maintained as part of the GStreamer project Asset proxy support in the GStreamer Editing Services
Allow building with python-3.4 and 3.5.
Update to 1.6.3 Changelog: * 759110 : appsrc: Clear is_eos flag when receiving the flush event * 759910 : typefind: AAC/ADTS typefinding reads over array bounds * 760222 : videopool: store videoinfo after choosing the biggest buffer size
Update gstreamer1 and plugins to 1.6.2. Major bugfixes Crashes in gst-libav with sinks that did not provide a buffer pool but supported video metadata were fixed. This affected d3dvideosink and some 3rd party sinks. Also related fixes for crashes when a downstream buffer pool failed allocation. Big GL performance improvement on iOS by a factor of 2 by using Apple's sync extension. Deadlocks in the DirectSound elements on Windows, and the behaviour of its mute property were fixed. The Direct3D video sink does not crash anymore when minimizing the window The library soname generation on Android >= 6.0 was fixed, which previously caused GStreamer to fail to load there. File related elements have large-file (>2GB) support on Android now. gst-libav was updated to ffmpeg 2.8.3. Deserialization of custom events in the GDP depayloader was fixed. Missing OpenGL context initialization in the Qt/QML video sink was fixed in certain situations. Interoperability with some broken RTSP servers using HTTP tunnel was improved. Various compilation fixes for Windows. Various smaller memory leak and other fixes in different places. and many, many more
Update gstreamer1 and plugins to 1.6.1. GStreamer 1.6.1 Release Notes The GStreamer team is proud to announce the first bugfix release in the stable 1.6 release series of your favourite cross-platform multimedia framework! This release only contains bugfixes and it is safe to update from 1.6.0. For a full list of bugfixes see Bugzilla. See http://gstreamer.freedesktop.org/releases/1.6/ for the latest version of this document. Last updated: Friday 30 October 2015, 14:00 UTC (log) Major bugfixes Crashes in the gst-libav encoders were fixed More DASH-IF test streams are working now Live DASH, HLS and MS SmoothStreaming streams work more reliable and other fixes for the adaptive streaming protocols Reverse playback works with scaletempo to keep the audio pitch Correct stream-time is reported for negative applied_rate SRTP packet validation during decoding does not reject valid packets anymore Fixes for audioaggregator and aggregator to start producing output at the right time, and e.g. not outputting lots of silence in the beginning gst-libav's internal ffmpeg snapshot was updated to 2.8.1 cerbero has support for Mac OS X 10.11 (El Capitan) Various memory leaks were fixed, including major leaks in playbin, playsink and decodebin Various GObject-Introspection annotation fixes for bindings and many, many more GStreamer 1.6 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! This release has been in the works for more than a year and is packed with new features, bug fixes and other improvements. See http://gstreamer.freedesktop.org/releases/1.6/ for the latest version of this document. Highlights Stereoscopic 3D and multiview video support Trick mode API for key-frame only fast-forward/fast-reverse playback etc. Improved DTS (decoding timestamp) vs. PTS (presentation timestamp) handling to account for negative DTS New GstVideoConverter API for more optimised and more correct conversion of raw video frames between all supported formats, with rescaling v4l2src now supports renegotiation v4l2transform can now do scaling V4L2 Element now report Colorimetry properly Easier chunked recording of MP4, Matroska, Ogg, MPEG-TS: new splitmuxsink and multifilesink improvements Content Protection signalling API and Common Encryption (CENC) support for DASH/MP4 Many adaptive streaming (DASH, HLS and MSS) improvements New PTP and NTP network client clocks and better remote clock tracking stability High-quality text subtitle overlay at display resolutions with glimagesink or gtkglsink RECORD support for the GStreamer RTSP Server Retransmissions (RTX) support in RTSP server and client RTSP seeking support in client and server has been fixed RTCP scheduling improvements and reduced size RTCP support MP4/MOV muxer acquired a new "robust" mode of operation which attempts to keep the output file in a valid state at all times Live mixing support in aggregator, audiomixer and compositor was improved a lot compositor now also supports rescaling of inputs streams on the fly New audiointerleave element with proper input synchronisation and live input support Blackmagic Design DeckLink capture and playback card support was rewritten from scratch; 2k/4k support; mode sensing KLV metadata support in RTP and MPEG-TS H.265 video encoder (x265), decoders (libav, libde265) and RTP payloader and depayloaders New DTLS plugin and SRTP/DTLS support OpenGL3 support, multiple contexts and context propagation, 3D video, transfer/conversion separation, subtitle blending New OpenGL-based QML video sink, Gtk GL video sink, CoreAnimation CAOpenGLLayerSink video sink gst-libav switched to ffmpeg as libav-provider, gains support for 3D/multiview video, trick modes, and the CAVS codec GstHarness API for unit tests gst-editing-services got a completely new ges-launch-1.0 interface, improved mixing support and integration into gst-validate gnonlin has been deprecated in favor of nle (Non Linear Engine) in gst-editing-services gst-validate has a new plugin system, an extensive default testsuite, support for concurrent test runs and valgrind support cerbero build tool for SDK binary packages gains new 'bundle-source' command Various improvements to the Android, iOS, OS X and Windows platform support Full log at http://gstreamer.freedesktop.org/releases/1.6/
Add SHA512 digests for distfiles for multimedia category Problems found locating distfiles: Package adobe-flash-plugin11: missing distfile flash-plugin-11.2.202.540-release.i386.rpm Package gmplayer: missing distfile mplayer/AlienMind-1.2.tar.bz2 Package gmplayer: missing distfile mplayer/BlueHeart-1.5.tar.bz2 Package gmplayer: missing distfile mplayer/CornerMP-aqua-1.4.tar.bz2 Package gmplayer: missing distfile mplayer/MPlayer-1.1.1.tar.xz Package gmplayer: missing distfile mplayer/WMP6-2.2.tar.bz2 Package gmplayer: missing distfile mplayer/gnome-1.1.tar.bz2 Package gmplayer: missing distfile mplayer/hwswskin-1.3.tar.bz2 Package gmplayer: missing distfile mplayer/neutron-1.6.tar.bz2 Package gmplayer: missing distfile mplayer/plastic-1.3.tar.bz2 Package gmplayer: missing distfile mplayer/slim-1.3.tar.bz2 Package gmplayer: missing distfile mplayer/xine-lcd-1.2.tar.bz2 Package handbrake: missing distfile handbrake/HandBrake-0.9.3.tar.gz Package handbrake: missing distfile handbrake/bzip2-1.0.5.tar.gz Package handbrake: missing distfile handbrake/faad2-2.6.1.tar.gz Package handbrake: missing distfile handbrake/lame-3.98.tar.gz Package handbrake: missing distfile handbrake/libdvdread-0.9.7.tar.gz Package handbrake: missing distfile handbrake/libmp4v2-r45.tar.gz Package handbrake: missing distfile handbrake/libquicktime-0.9.10.tar.gz Package handbrake: missing distfile handbrake/libtheora-1.0.tar.gz Package handbrake: missing distfile handbrake/mpeg2dec-0.5.1.tar.gz Package handbrake: missing distfile handbrake/x264-r1028-83baa7f.tar.gz Package handbrake: missing distfile handbrake/zlib-1.2.3.tar.gz Package libdvdcss: missing distfile libdvdcss-1.3.99.tar.bz2 Package mplayer-share: missing distfile mplayer/MPlayer-1.1.1.tar.xz Package mpv: missing distfile mpv-0.12.0.tar.gz Package realplayer-codecs: missing distfile rp8codecs-20040626.tar.bz2 Package realplayer-codecs: missing distfile rp8codecs-alpha-20050115.tar.bz2 Package win32-codecs: missing distfile rp9codecs-win32-20050115.tar.bz2 Package xanim: missing distfile xa2.0_cvid_netbsd386.o.gz Package xanim: missing distfile xa2.0_iv32_netbsd386.o.gz Package xanim: missing distfile xa1.0_cyuv_netbsd68k.o.gz Package xanim: missing distfile xa2.0_cvid_linuxELF.o.gz Package xanim: missing distfile xa2.0_iv32_linuxELF.o.gz Package xanim: missing distfile xa1.0_cyuv_sparcAOUT.o.gz Package xanim: missing distfile xa2.0_cvid_sparcELF.o.gz Package xanim: missing distfile xa2.0_iv32_sparcELF.o.gz Package xanim: missing distfile xa1.0_cyuv_linuxPPC.o.gz Otherwise, existing SHA1 digests verified and found to be the same on the machine holding the existing distfiles (morden). All existing SHA1 digests retained for now as an audit trail.
Update to 1.4.5. All pkgsrc patches were integrated :-) GStreamer core: * 736969 : queue2: dead lock when buffering * 738092 : basesink: clamp reported position based on direction * 740001 : task: race condition when pausing and stopping GStreamer Plugins Base: * 741420 : video pools: should update size in configuration after applying alignment * 715050 : add typefinder for audio/x-audible * 739544 : tcp: Add test and fix memory leak in tcp elements * 739840 : typefind should recognize Apple Core Audio Format (CAF) * 740556 : videodecoder: don't complain when DTS != PTS on keyframes * 740675 : playsink: continues playback, reset mute property * 740730 : rtspconnection: don't remove child source if parent source is already destroyed * 740853 : audiodecoder: Push pending events before sending EOS. * 740952 : alsa: NetBSD fixes * 741045 : audiorate can can lose timestamp precision in some cases * 741198 : playbin: leaks GstPads GStreamer Plugins Good: * 711437 : apev2mux: should not put APEv2 tags at beginning of WavPack files * 726194 : v4l2src does not cope well when a capture card is sometimes interlaced, sometimes progressive at the same resolution * 736397 : flvdemux: Per-stream resyncing behavior causes A/V-desyncs * 737603 : v4l2bufferpool: set buffer interlace flags when field is V4L2_FIELD_INTERLACED * 739476 : vpx: fails to build against libvpx from git * 739722 : matroskamux: Thread safe register GstMatroskamuxPad * 739789 : v4l2allocator: fix error message if allocator is already active * 739791 : v4l2bufferpool: unref pool when v4l2_allocator_new() fails * 739792 : v4l2allocator: fix gst_v4l2_allocator_stop prototype * 739996 : videomixer: Drops a lot of frames, if one of the sources is live * 740040 : v4l2src: Fails in presence of V4L2_BUF_FLAG_ERROR * 740392 : rtspsrc: mikey base64 decoded key-mgmt leak * 740407 : qtmux limits capture to 4096x4096 * 740633 : v4l2src: RW io-mode is broken * 740636 : v4l2src: framerate is not always set on driver * 740671 : aspectratiocrop: crop needs to be reset when video size changes * 740905 : v4l2: still has 1 include to linux/videodev.h * 741271 : rtph264pay: Buffer leak in H.264 payloader when using SPS/PPS * 741381 : rtph264pay: Race condition may cause crash when going from PAUSED- > READY * 741407 : deinterlace: in query_caps return only supported formats if filter is interlaced * 737579 : v4l2object: set colorspace for output devices * 739754 : v4l2bufferpool: Should validate that all memories are writeable before queueing back GStreamer Plugins Bad: * 722764 : rawparse: fix SEEKING query handling * 729768 : mpegtsbase: Raise limit to read more bytes initially to find PCR * 739152 : gl/cocoa: build with GNUStep fails * 740191 : dvbbasesink: segfaults on 32-bit (rpi) * 740201 : gl/cocoa: Does not compile on OSX < 10.7 anymore * 740451 : srtpdec: leaks rtp/rtcp sink events * 740953 : configure.ac: unportable test(1) comparison operator * 741321 : opusparse: fix header parsing esp. of encoded output of libopus GStreamer RTSP Server: * 739481 : rtsp-stream: leaks srtp decoder when leaving rtpbin
Add upstream bug report URL.
Update to 1.4.4: GStreamer Plugins Base: * 736969 : queue2: dead lock when buffering * 737055 : audiosink: Setting URI on playbin at about-to-finish when playing AAC and using an alsasink causes delayed playback * 737706 : videoencoder: release frame in finish_frame when no output state is configured * 737742 : vorbisdec: Crashes when handling more than 8 channels * 737752 : rtsp-client: crash when cleaning up session * 738064 : decodebin: The “drained” signal is emitted multiple times, first time too early (~1s) GStreamer Plugins Good: * 726329 : vp8enc: Add support for caps renegotiation * 736071 : audiobasesink: Don't hold object lock while calling into other objects like the clock * 737735 : wavenc writes broken file if caps are set * 737739 : souphttpclientsink: Restarting after error results in buffers being queued forever * 737761 : aacparse: memory leak when converting to adts * 737771 : souphttpclientsink: Stream header buffer lifetime assumptions are incorrect * 737886 : equalizer: crash when changing equalizer settings during playback * 738102 : v4l2bufferpool: cleanly handle streamon failure for output device * 738152 : v4l2sink: leak with output device * 738297 : DTMF telephone-event timestamps are bogus * 738722 : rtpmux returns EMPTY caps when query'ing * 738793 : speex: encoder/decoder segfault when resetting multiple times * 739430 : rtspsrc: mikey related memory leaks GStreamer Plugins Bad: * 732239 : h264parse: expose parsed profiles to downstream * 733510 : gltransformation produced black screen * 734156 : androidmedia: doesn't calculate framesize for COLOR_FormatYUV420Planar correctly * 736319 : dashdemux: mark first buffer as discont after restarting a download task * 737186 : h264parse: Return flushing if we get chained while being set to READY * 737569 : tsdemux: valid data is discarded if PES start packet is the first packet after discontinuity * 737658 : fluiddec: segmentation fault when used with fakesrc * 737724 : vc1parse: unref caps when it is empty in renegotiate() * 738067 : gl: Downloading YUY2 is broken and creates blocky artefacts * 738223 : fluiddec: leaks memory in gst_fluid_dec_change_state() * 738230 : vc1parser: fix level value for simple/main profile * 738243 : vc1parse: fix framesize when input is frame-layer * 738291 : fluiddec: leaks incoming caps event * 738449 : vc1parse: just assume none header-format when no codec_data is present * 738519 : vc1parse: parse frame header when stream format is ASF/raw for simple/main profile * 738532 : vc1parse: select caps according to wmv format at negotiation * 738674 : rtmpsink: leaking URI string * 738695 : mpegtsbase: do not remove programs on EOS * 738696 : hlsdemux: send missing stream start * 739277 : GstGLFilter propose allocation pass uninitialized size to gst_query_add_allocation_pool * 739348 : configure.ac: auto decision to include GL library fails * 739368 : gl: small memory leak in gl shader * 739374 : h264parse: sets srccaps too often
Update gstreamer to 1.4.3: Note that this announcement includes everything from 1.4.2 too, which was never officially released as some critical bugs were found. Bug reports fixed in this release: GStreamer core: * 734412 : multiqueue: The buffering logic can lead to a pipeline stuck in PAUSED forever * 735574 : buffer: do not touch memory tag flag when copying buffer flags * 736295 : multiqueue: posts buffering message holding lock * 736424 : query: add annotations to gst_query_set_nth_allocation_pool * 736680 : basesrc: possible pool and allocator leak in prepare_allocation() * 736736 : query: add annotations to gst_query_add_allocation_pool * 736813 : typefindelement leaks sticky events upon flush_stop * 737102 : queue: Do not hold GST_QUEUE_LOCK while posting ERROR messages * 737133 : Missing gstconfig.h include GStreamer Plugins Base: * 732908 : audioresample: skips samples unless input buffers have correct size * 727255 : playbin: filter out buffering messages when switching URI and the previous URI is still playing * 729811 : output-selector: test example in gstreamer plugin base is giving " Internal data flow error " * 735569 : rtspconnection: Crash due to no protection of watchs readsrc * 735748 : playbin: can't play an avi file in totem with audio-filter=scaletempo * 735800 : textoverlay: Two textoverlay in sequence fail to negotiate (regression) * 735844 : basetextoverlay/pango: overlay negotiation fails when it should not * 735952 : videorate: GstStructure refcount critical message * 736071 : audiobasesink: Don't hold object lock while calling into other objects like the clock * 736118 : videofilter: The buffer is not writable in transform_frame_ip * 736739 : audiocdsrc: do not leak uid after parsing TOC select event * 736779 : typefind: h265 IRAP picture always true * 736788 : audiodecoder: leaks events * 736796 : videoencoder: do not leak events when flushing them * 736861 : playbin: Reference count bug * 736679 : videodecoder: do not leak pool and allocator in error case * 736969 : queue2: dead lock when buffering * 709868 : Keep still meaningfull pending events on FLUSH_STOP GStreamer Plugins Good: * 719359 : vp8dec: Doesn't handle changes in resolution * 733607 : v4l2transform: Rank should have been NONE * 734266 : vp8dec: fails when input format changes * 735520 : aacparse: skip valid ADTS/LOAS frames * 735804 : smpte: Creates incomplete raw video caps * 735833 : matroskademux: parse error at end of file * 735859 : videomixer: Dynamically changing the FPS leads to an incorrect buffer time * 736192 : avidemux: some AVI files crash (regression) * 736266 : wavparse: error in reading adtl chunk * 736384 : v4l2sink: pool not unreffed after usage * 736670 : v4l2allocator: O_CLOEXEC needs _GNU_SOURCE * 736805 : multipartdemux leaks new stream events * 736807 : rtpbin: pad leaked in error case * 735660 : v4l2: fix new v4l2 code not working with certain devices (regression) * 736944 : videoscale: vs_image_scale_4tap_Y offset should use stride to calculate buffer offset * 737219 : flacparse: When generating headers, leave total_samples at 0 if upstream duration query returns GST_CLOCK_TIME_NONE. GStreamer Plugins Bad: * 735861 : dataurisrc: make src thread safe * 736090 : aiffparse: duplicate else-if condition * 736390 : tsdemux: plug for a memory leak * 736426 : mpegpsmux: memory leak with h264/avc stream * 736474 : vc1parse: malformed sequence layer header and STRUCT_C * 736490 : tsdemux: fix overflow of packet_length field of PESHeader * 736729 : glmixer: do not leak pool in error cases * 736730 : gltestsrc: do not leak pool in error cases * 736731 : openni2src: do not leak pool * 736732 : glfilter: do not leak pool in error cases * 736733 : vdpdecoder: do not leak pool * 736735 : waylandsink: do not leak buffer pool in error case * 736750 : vc1parse: fix sequence-layer/frame-layer endianness * 736871 : codecparsers_vc1: sequence-layer parser is broken due to endianness issue. * 736919 : hlsdemux: attempt to unlock an already unlocked mutex in gst_hls_demux_change_playlist * 736951 : vc1parse: initialize sent_codec_tag before using it GStreamer Plugins Ugly: * 736060 : asfdemux: add GUID for ASF_Metadata_Library_Object GStreamer libav Plugins: * 734661 : avviddec: After draining frames, flush the libav decoder * 736515 : avviddec: keep draining buffers from libav until libav says so * 737144 : avauddec: keep draining buffers from libav until libav says so GStreamer RTSP Server: * 735570 : Race condition between close() and handle_tunnel() causing crash * 736017 : Sequence number is not monotonic after PAUSE command
Update to 1.4.1: GStreamer Plugins Base: * 733916 : basetextoverlay: Simple pipeline with textoverlay and fakesink fails to negotiate * 733976 : uridecodebin: Does not set the dec- > source uri when an error occurred with a first uri and we set a new one in READY state * 734683 : playsinkconvertbin: returns true from accept caps but rejects it later * 734822 : playsinkconvertbin: only intersect with the filter at the end
Update to 1.4.0: This is GStreamer Base Plugins 1.4.0 Changes since 1.2: New API: • GstMessageType has GST_MESSAGE_EXTENDED added. All types before that can be used together as a flags type as before, but from that message onwards the types are just counted incrementally. This was necessary to be able to add more message types. In 2.0 GstMessageType will just become an enum and not a flags type anymore. • GstDeviceMonitor for device probing, e.g. to list all available audio or video capture devices. This is the replacement for GstPropertyProbe from 0.10. • Events accumulate the running-time offset now when travelling through pads, as set by the gst_pad_set_offset() function. This allows to compensate for this in the QOS event for example. • GstBuffer has a new flag "tag-memory" that is set automatically when memory is added or removed to a buffer. This allows buffer pools to detect if they can recycle a buffer or need to reset it first. • GstToc has new API to mark GstTocEntries as loops. • A not-authorized resource error has been defined to notify applications that accessing the resource has failed because of missing authorization and to distinguish this case from others. This change is actually already in 1.2.4. • GstPad has a new flag "accept-intersect", that will let the default ACCEPT_CAPS query handler do an intersection instead of subset check. This is interesting for parser elements that can handle incomplete caps. • GstCollectPads has support for flushing and a default handler for SEEK events now. • New GstFlowAggregator helper object that simplifies handling of flow returns in elements with multiple source pads. Additionally GstPad now always stores the last flow return and provides an API to retrieve it. • GstSegment has new API to offset the running time by a specific value and this is used in GstPad to allow positive and negative offsets in gst_pad_set_offset() in all situations. • Support for h265/HEVC and VP8 has been added to the codec utils and codec parsers library, and was integrated into various elements. • API for adjusting the TLS validation of RTSP connection has been added. • The RTSP and SDP library has MIKEY (RFC 3830) support now, and there is API to distinguish between the different RTSP profiles. • API to access RTP time information and statistics. • Support for auxiliary streams was added to rtpbin. • Support for tiled, raw video formats has been added. • GstVideoDecoder and GstAudioDecoder have API to help aggregating tag events and merge custom tags into them consistently. • GstBufferPool has support for flushing now. • playbin/playsink has support for application provided audio and video filters. • GstDiscoverer has new and simplified API to get details about missing plugins and information to pass to the plugin installer. • The GL library was merged from gst-plugins-gl to gst-plugins-bad, providing a generic infrastructure for handling GL inside GStreamer pipelines and a plugin with some elements using these, especially a video sink. Supported platforms currently are Android, Cocoa (OS X), DispManX (Raspberry Pi), EAGL (iOS), WGL (Windows) and generic X11, Wayland and EGL platforms. This replaces eglglessink and also is supposed to replace osxvideosink. • New GstAggregator base class in gst-plugins-bad. This is supposed to replace GstCollectPads in the future and fix long-known shortcomings in its API. Together with the base class some elements are provided already, like a videomixer (compositor). Major changes: • New plugins and elements: ∘ v4l2videodec element for accessing hardware codecs on platforms that make them accessible via V4L2, e.g. Samsung Exynos. This comes together with major refactoring of the existing V4L2 elements and the corresponding infrastructure. The v4l2videodec element replaces the mfcdec element. ∘ New downloadbuffer element that replaces the download buffering feature of queue2. Compared to queue2's code it is much simpler and only for this single use case. A noteworthy new feature is that it's downloading gaps in the already downloaded stream parts when nothing else is to be downloaded. This is now used by playbin when download buffering is enabled. ∘ rtpstreampay and rtpstreamdepay elements for transmitting RTP packets over a stream API (e.g. TCP) according to RFC 4571. ∘ rtprtx elements for standard compliant implementation of retransmissions, integrated into the rtpmanager plugin. ∘ audiomixer element that mixes multiple audio streams together into a single one while keeping synchronization. This is planned to become the replacement of the adder element. ∘ OpenNI2 plugin for 3D cameras like the Kinect camera. ∘ OpenEXR plugin for decoding high-dynamic-range EXR images. ∘ curlsshsink and curlsftpsink to write files via SSH/SFTP. ∘ videosignal, ivfparse and sndfile plugins ported from 0.10. ∘ avfvideosrc, vtdec and other elements were ported from 0.10 and are available on OS X and iOS now. • Other changes: ∘ gst-libav now uses libav 10.2, and gained support for H265/HEVC. ∘ Support for hardware codecs and special memory types has been improved with bugfixes and feature additions in various plugins and base classes. ∘ Various bugfixes and improvements to buffering in queue2 and multiqueue elements. ∘ dvbsrc supports more delivery mechanisms and other features now, including DVB S2 and T2 support. ∘ The MPEGTS library has support for many more descriptors. ∘ Major improvements to tsdemux and tsparse, especially time and seeking related. ∘ souphttpsrc now has support for keep-alive connections, compression, configurable number of retries and configuration for SSL certificate validation. ∘ hlsdemux has undergone major refactoring and works more reliable now and supports more HLS features like trick modes. Also fragments are pushed downstream while they're downloaded now instead of waiting for each fragment to finish. ∘ dashdemux and mssdemux are now also pushing fragments downstream while they're downloaded instead of waiting for each fragment to finish. ∘ videoflip can automatically flip based on the orientation tag. ∘ openjpeg supports the OpenJPEG2 API. ∘ waylandsink was refactored and should be more useful now. It also includes a small library which most likely is going to be removed in the future and will result in extensions to the GstVideoOverlay interface. ∘ gst-rtsp-server supports SRTP and MIKEY now. ∘ gst-libav encoders are now negotiating any profile/level settings with downstream via caps. ∘ Lots of fixes for coverity warnings all over the place. ∘ Negotiation related performance improvements. ∘ 800+ fixed bug reports, and many other bug fixes and other improvements everywhere that had no bug report. Things to look out for: • The eglglessink element was removed and replaced by the glimagesink element. • The mfcdec element was removed and replaced by v4l2videodec. • osxvideosink is only available in OS X 10.6 or newer. • On Android the namespace of the automatically generated Java class for initialization of GStreamer has changed from com.gstreamer to org.freedesktop.gstreamer to prevent namespace pollution. • On iOS you have to update your gst_ios_init.h and gst_ios_init.m in your projects from the one included in the binaries if you used the GnuTLS GIO module before. The loading mechanism has slightly changed.
update to 1.0.10 changes: bugfixes
update to 1.0.8 changes: minor fixes
apply same patch as gst-plugin0.10-base to fix build on i386 without SSE/SSE2 support.
update to 1.0.7 changes: bugfixes
update to 1.0.6 changes: bugfixes pkgsrc change: enabled introspection support (for shotwell)
update to 1.0.5 changes: bugfixes
Import gst-plugins1-base-1.0.3 as multimedia/gst-plugins1-base. GStreamer is a library that allows the construction of graphs of media-handling components, ranging from simple Ogg/Vorbis playback to complex audio (mixing) and video (non-linear editing) processing. Applications can take advantage of advances in codec and filter technology transparently. Developers can add new codecs and filters by writing a simple plugin with a clean, generic interface. GStreamer is released under the LGPL. This package is part of the 'base' plugins for GStreamer. It provides a set of must-have plugins.