The NetBSD Project

CVS log for pkgsrc/multimedia/gst-plugins1-libav/Makefile

[BACK] Up to [cvs.NetBSD.org] / pkgsrc / multimedia / gst-plugins1-libav

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.70 / (download) - annotate - [select for diffs], Tue Mar 5 14:45:48 2024 UTC (3 weeks, 2 days ago) by wiz
Branch: MAIN
CVS Tags: HEAD
Changes since 1.69: +1 -2 lines
Diff to previous 1.69 (colored)

*: 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

Revision 1.69 / (download) - annotate - [select for diffs], Mon Jan 22 13:17:02 2024 UTC (2 months ago) by ryoon
Branch: MAIN
Changes since 1.68: +2 -1 lines
Diff to previous 1.68 (colored)

*: Recursive revbump from multimedia/libvpx

Revision 1.68 / (download) - annotate - [select for diffs], Thu Nov 16 09:22:51 2023 UTC (4 months, 1 week ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2023Q4-base, pkgsrc-2023Q4
Changes since 1.67: +1 -2 lines
Diff to previous 1.67 (colored)

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

Revision 1.67 / (download) - annotate - [select for diffs], Sun Nov 12 13:22:58 2023 UTC (4 months, 2 weeks ago) by wiz
Branch: MAIN
Changes since 1.66: +2 -2 lines
Diff to previous 1.66 (colored)

*: revebump for new brotli option for freetype2

Addresses PR 57693

Revision 1.66 / (download) - annotate - [select for diffs], Mon Aug 14 05:24:55 2023 UTC (7 months, 2 weeks ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2023Q3-base, pkgsrc-2023Q3
Changes since 1.65: +2 -1 lines
Diff to previous 1.65 (colored)

*: recursive bump for Python 3.11 as new default

Revision 1.65 / (download) - annotate - [select for diffs], Thu Mar 9 08:25:41 2023 UTC (12 months, 2 weeks ago) by prlw1
Branch: MAIN
CVS Tags: pkgsrc-2023Q2-base, pkgsrc-2023Q2, pkgsrc-2023Q1-base, pkgsrc-2023Q1
Changes since 1.64: +1 -2 lines
Diff to previous 1.64 (colored)

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/

Revision 1.64 / (download) - annotate - [select for diffs], Sun Jan 29 21:17:18 2023 UTC (13 months, 4 weeks ago) by ryoon
Branch: MAIN
Changes since 1.63: +2 -1 lines
Diff to previous 1.63 (colored)

*: Recursive revbup from graphics/freetype2

Revision 1.63 / (download) - annotate - [select for diffs], Fri Dec 16 21:08:09 2022 UTC (15 months, 1 week ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2022Q4-base, pkgsrc-2022Q4
Changes since 1.62: +6 -7 lines
Diff to previous 1.62 (colored)

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

Revision 1.62 / (download) - annotate - [select for diffs], Mon Jul 25 01:01:53 2022 UTC (20 months ago) by tnn
Branch: MAIN
CVS Tags: pkgsrc-2022Q3-base, pkgsrc-2022Q3
Changes since 1.61: +2 -1 lines
Diff to previous 1.61 (colored)

*: revbump for ffmpeg5

Revision 1.61 / (download) - annotate - [select for diffs], Mon Jul 18 15:50:19 2022 UTC (20 months, 1 week ago) by wiz
Branch: MAIN
Changes since 1.60: +2 -4 lines
Diff to previous 1.60 (colored)

gst-plugins1-libav: update to 1.20.3.

Match gstreamer1 update.

Revision 1.60 / (download) - annotate - [select for diffs], Tue Jun 28 11:34:55 2022 UTC (21 months ago) by wiz
Branch: MAIN
Changes since 1.59: +2 -1 lines
Diff to previous 1.59 (colored)

*: recursive bump for perl 5.36

Revision 1.59 / (download) - annotate - [select for diffs], Tue May 24 18:18:18 2022 UTC (22 months ago) by nia
Branch: MAIN
CVS Tags: pkgsrc-2022Q2-base, pkgsrc-2022Q2
Changes since 1.58: +2 -2 lines
Diff to previous 1.58 (colored)

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

Revision 1.58 / (download) - annotate - [select for diffs], Mon Apr 18 12:36:08 2022 UTC (23 months, 1 week ago) by nia
Branch: MAIN
Changes since 1.57: +3 -4 lines
Diff to previous 1.57 (colored)

gst-plugins1: Update to 1.20.1

Release notes:
https://gstreamer.freedesktop.org/releases/1.20/

Revision 1.57 / (download) - annotate - [select for diffs], Wed Dec 8 16:05:48 2021 UTC (2 years, 3 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2022Q1-base, pkgsrc-2022Q1, pkgsrc-2021Q4-base, pkgsrc-2021Q4
Changes since 1.56: +2 -1 lines
Diff to previous 1.56 (colored)

revbump for icu and libffi

Revision 1.56 / (download) - annotate - [select for diffs], Mon Nov 15 22:01:20 2021 UTC (2 years, 4 months ago) by wiz
Branch: MAIN
Changes since 1.55: +7 -12 lines
Diff to previous 1.55 (colored)

*: update gstreamer1 and plugins and related packages to 1.18.5

Based on the wip packages by nia and myself.

Revision 1.55 / (download) - annotate - [select for diffs], Sat Oct 9 15:35:08 2021 UTC (2 years, 5 months ago) by nia
Branch: MAIN
Changes since 1.54: +2 -2 lines
Diff to previous 1.54 (colored)

Recursive revbump for multimedia/libaom

Revision 1.54 / (download) - annotate - [select for diffs], Mon May 24 19:53:12 2021 UTC (2 years, 10 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2021Q3-base, pkgsrc-2021Q3, pkgsrc-2021Q2-base, pkgsrc-2021Q2
Changes since 1.53: +2 -2 lines
Diff to previous 1.53 (colored)

*: recursive bump for perl 5.34

Revision 1.53 / (download) - annotate - [select for diffs], Mon Aug 31 18:10:28 2020 UTC (3 years, 6 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2021Q1-base, pkgsrc-2021Q1, pkgsrc-2020Q4-base, pkgsrc-2020Q4, pkgsrc-2020Q3-base, pkgsrc-2020Q3
Changes since 1.52: +2 -2 lines
Diff to previous 1.52 (colored)

*: bump PKGREVISION for perl-5.32.

Revision 1.52 / (download) - annotate - [select for diffs], Mon Aug 17 20:19:38 2020 UTC (3 years, 7 months ago) by leot
Branch: MAIN
Changes since 1.51: +2 -2 lines
Diff to previous 1.51 (colored)

*: revbump after fontconfig bl3 changes (libuuid removal)

Revision 1.51 / (download) - annotate - [select for diffs], Sun Mar 8 16:50:42 2020 UTC (4 years ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2020Q2-base, pkgsrc-2020Q2, pkgsrc-2020Q1-base, pkgsrc-2020Q1
Changes since 1.50: +2 -1 lines
Diff to previous 1.50 (colored)

*: recursive bump for libffi

Revision 1.50 / (download) - annotate - [select for diffs], Fri Jan 10 12:47:06 2020 UTC (4 years, 2 months ago) by wiz
Branch: MAIN
Changes since 1.49: +3 -3 lines
Diff to previous 1.49 (colored)

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

Revision 1.49 / (download) - annotate - [select for diffs], Thu Nov 14 15:25:31 2019 UTC (4 years, 4 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2019Q4-base, pkgsrc-2019Q4
Changes since 1.48: +3 -4 lines
Diff to previous 1.48 (colored)

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.

Revision 1.48 / (download) - annotate - [select for diffs], Sun Aug 11 13:22:03 2019 UTC (4 years, 7 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2019Q3-base, pkgsrc-2019Q3
Changes since 1.47: +2 -1 lines
Diff to previous 1.47 (colored)

Bump PKGREVISIONs for perl 5.30.0

Revision 1.47 / (download) - annotate - [select for diffs], Wed May 29 20:51:47 2019 UTC (4 years, 10 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2019Q2-base, pkgsrc-2019Q2
Changes since 1.46: +6 -5 lines
Diff to previous 1.46 (colored)

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

Revision 1.46 / (download) - annotate - [select for diffs], Fri Nov 23 08:06:31 2018 UTC (5 years, 4 months ago) by ryoon
Branch: MAIN
CVS Tags: pkgsrc-2019Q1-base, pkgsrc-2019Q1, pkgsrc-2018Q4-base, pkgsrc-2018Q4
Changes since 1.45: +2 -1 lines
Diff to previous 1.45 (colored)

Recursive revbump from multimedia/libva

Revision 1.45 / (download) - annotate - [select for diffs], Thu Nov 8 15:07:11 2018 UTC (5 years, 4 months ago) by prlw1
Branch: MAIN
Changes since 1.44: +3 -4 lines
Diff to previous 1.44 (colored)

Update gst-plugins1-libav to 1.14.4

Highlight:

   * ext/libav/gstavdemux.c:
     avdemux: fix memory leaks
     https://bugzilla.gnome.org/show_bug.cgi?id=796452

Revision 1.44 / (download) - annotate - [select for diffs], Sat Nov 3 10:59:29 2018 UTC (5 years, 4 months ago) by wiz
Branch: MAIN
Changes since 1.43: +1 -4 lines
Diff to previous 1.43 (colored)

Remove outdated comment.

Revision 1.43 / (download) - annotate - [select for diffs], Wed Aug 22 09:45:49 2018 UTC (5 years, 7 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2018Q3-base, pkgsrc-2018Q3
Changes since 1.42: +2 -1 lines
Diff to previous 1.42 (colored)

Recursive bump for perl5-5.28.0

Revision 1.42 / (download) - annotate - [select for diffs], Wed May 23 20:58:18 2018 UTC (5 years, 10 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2018Q2-base, pkgsrc-2018Q2
Changes since 1.41: +2 -2 lines
Diff to previous 1.41 (colored)

gst-plugins1-libav: updated to 1.14.1

Follow gstreamer1 update.

Revision 1.41 / (download) - annotate - [select for diffs], Tue Apr 17 22:10:04 2018 UTC (5 years, 11 months ago) by wiz
Branch: MAIN
Changes since 1.40: +3 -3 lines
Diff to previous 1.40 (colored)

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

Revision 1.40 / (download) - annotate - [select for diffs], Sun Apr 15 09:40:05 2018 UTC (5 years, 11 months ago) by adam
Branch: MAIN
Changes since 1.39: +7 -9 lines
Diff to previous 1.39 (colored)

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!

Revision 1.39 / (download) - annotate - [select for diffs], Mon Mar 12 11:17:12 2018 UTC (6 years ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2018Q1-base, pkgsrc-2018Q1
Changes since 1.38: +2 -2 lines
Diff to previous 1.38 (colored)

Recursive bumps for fontconfig and libzip dependency changes.

Revision 1.38 / (download) - annotate - [select for diffs], Mon Feb 26 08:19:29 2018 UTC (6 years, 1 month ago) by adam
Branch: MAIN
Changes since 1.37: +2 -1 lines
Diff to previous 1.37 (colored)

revbump after x264-devel update

Revision 1.37 / (download) - annotate - [select for diffs], Sun Jan 28 19:33:09 2018 UTC (6 years, 2 months ago) by wiz
Branch: MAIN
Changes since 1.36: +2 -3 lines
Diff to previous 1.36 (colored)

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!

Revision 1.36 / (download) - annotate - [select for diffs], Fri Nov 17 23:21:06 2017 UTC (6 years, 4 months ago) by prlw1
Branch: MAIN
CVS Tags: pkgsrc-2017Q4-base, pkgsrc-2017Q4
Changes since 1.35: +2 -1 lines
Diff to previous 1.35 (colored)

gst-plugins1-libav: fix mp4 playback

From Jana Saout in https://bugzilla.gnome.org/show_bug.cgi?id=789193

Not meant as "fix" but as temporary workaround for people bothered
by this issue:

This quick & dirty hack replaces the deprecated call to
avcodec_decode_video2 by calls to avcodec_send_packet and
avcodec_receive_frame.

Note that this is hack is really ugly, because the API really isn't
meant to be used this way (the assumption is that each call to
avcodec_send_packet will produce at most one new frame) and also
the error handling and probably other cases are not handled correctly.

However, MP4 videos seem to play fine for me.

Revision 1.35 / (download) - annotate - [select for diffs], Thu Nov 16 16:49:40 2017 UTC (6 years, 4 months ago) by prlw1
Branch: MAIN
Changes since 1.34: +2 -2 lines
Diff to previous 1.34 (colored)

Update gst-plugins1-libav to 1.12.3

Bugs fixed in this release
- 784735 : gst-libav: Memory leak and possible crash in avio_alloc_context.

XXX Unfortunately https://trac.ffmpeg.org/ticket/6775 stands.
(ffmpeg 3.4 regression)

Revision 1.34 / (download) - annotate - [select for diffs], Tue Sep 12 14:03:09 2017 UTC (6 years, 6 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2017Q3-base, pkgsrc-2017Q3
Changes since 1.33: +2 -2 lines
Diff to previous 1.33 (colored)

gst-plugins1-libav: update to 1.12.2.

To match gstreamer1-1.12.2 update committed a short while ago.  No
separate changes file found.

Revision 1.33 / (download) - annotate - [select for diffs], Wed Aug 16 20:21:11 2017 UTC (6 years, 7 months ago) by wiz
Branch: MAIN
Changes since 1.32: +3 -3 lines
Diff to previous 1.32 (colored)

Follow some http redirects.

Revision 1.32 / (download) - annotate - [select for diffs], Thu Mar 16 14:35:23 2017 UTC (7 years ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2017Q2-base, pkgsrc-2017Q2, pkgsrc-2017Q1-base, pkgsrc-2017Q1
Changes since 1.31: +2 -3 lines
Diff to previous 1.31 (colored)

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!

Revision 1.31 / (download) - annotate - [select for diffs], Fri Feb 24 21:54:51 2017 UTC (7 years, 1 month ago) by maya
Branch: MAIN
Changes since 1.30: +2 -1 lines
Diff to previous 1.30 (colored)

revbump for ffmpeg3 buildlink3.mk addition of vaapi and vdpau.

It creates a noticeable change at least for mpv, which now
doesn't complain about --vo=vaapi or --vo=vdpau.

Revision 1.30 / (download) - annotate - [select for diffs], Fri Feb 3 15:34:29 2017 UTC (7 years, 1 month ago) by maya
Branch: MAIN
Changes since 1.29: +2 -3 lines
Diff to previous 1.29 (colored)

gst-plugins1-libav: update to 1.10.3

Revision 1.29 / (download) - annotate - [select for diffs], Mon Jan 16 23:45:14 2017 UTC (7 years, 2 months ago) by wiz
Branch: MAIN
Changes since 1.28: +2 -1 lines
Diff to previous 1.28 (colored)

Recursive bump for libvpx shlib major change.

Revision 1.28 / (download) - annotate - [select for diffs], Wed Nov 16 12:08:26 2016 UTC (7 years, 4 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2016Q4-base, pkgsrc-2016Q4
Changes since 1.27: +3 -3 lines
Diff to previous 1.27 (colored)

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 Blu, 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
Drg, 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/)*

Revision 1.27 / (download) - annotate - [select for diffs], Mon Sep 12 09:00:10 2016 UTC (7 years, 6 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2016Q3-base, pkgsrc-2016Q3
Changes since 1.26: +2 -3 lines
Diff to previous 1.26 (colored)

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

Revision 1.26 / (download) - annotate - [select for diffs], Wed Aug 17 00:06:43 2016 UTC (7 years, 7 months ago) by ryoon
Branch: MAIN
Changes since 1.25: +2 -2 lines
Diff to previous 1.25 (colored)

Recursive revbump from multimedia/libvpx uppdate

Revision 1.25 / (download) - annotate - [select for diffs], Sat Jul 9 06:38:39 2016 UTC (7 years, 8 months ago) by wiz
Branch: MAIN
Changes since 1.24: +2 -1 lines
Diff to previous 1.24 (colored)

Bump PKGREVISION for perl-5.24.0 for everything mentioning perl.

Revision 1.24 / (download) - annotate - [select for diffs], Sun Jun 12 15:58:23 2016 UTC (7 years, 9 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2016Q2-base, pkgsrc-2016Q2
Changes since 1.23: +2 -2 lines
Diff to previous 1.23 (colored)

Update gstreamer and plugins to 1.8.2.

This release only contains bugfixes and it should be safe to update
from 1.8.1.

Revision 1.23 / (download) - annotate - [select for diffs], Fri Apr 29 13:10:15 2016 UTC (7 years, 11 months ago) by wiz
Branch: MAIN
Changes since 1.22: +3 -3 lines
Diff to previous 1.22 (colored)

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!

Revision 1.22 / (download) - annotate - [select for diffs], Fri Apr 15 14:20:00 2016 UTC (7 years, 11 months ago) by wiz
Branch: MAIN
Changes since 1.21: +3 -3 lines
Diff to previous 1.21 (colored)

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

Revision 1.21 / (download) - annotate - [select for diffs], Sun Jan 24 14:46:41 2016 UTC (8 years, 2 months ago) by ryoon
Branch: MAIN
CVS Tags: pkgsrc-2016Q1-base, pkgsrc-2016Q1
Changes since 1.20: +3 -3 lines
Diff to previous 1.20 (colored)

Update to 1.6.3

Changelog:
* 758726 : avviddec: slice offset handling of real video leads
           to memory mishandling.

Revision 1.20 / (download) - annotate - [select for diffs], Sun Jan 3 17:56:53 2016 UTC (8 years, 2 months ago) by wiz
Branch: MAIN
Changes since 1.19: +3 -2 lines
Diff to previous 1.19 (colored)

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

Revision 1.19 / (download) - annotate - [select for diffs], Fri Nov 20 18:38:36 2015 UTC (8 years, 4 months ago) by ryoon
Branch: MAIN
CVS Tags: pkgsrc-2015Q4-base, pkgsrc-2015Q4
Changes since 1.18: +2 -3 lines
Diff to previous 1.18 (colored)

Update to 1.6.1

Changelog:
This is GStreamer 1.6.1

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:
  https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&limit=0&list_id=73005&order=bug_id&product=GStreamer&resolution=FIXED&target_milestone=1.6.1

See http://gstreamer.freedesktop.org/releases/1.6/ for the latest version of this document.

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: https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&limit=0&list_id=73005&order=bug_id&product=GStreamer&resolution=FIXED&target_milestone=1.6.1

Revision 1.18 / (download) - annotate - [select for diffs], Wed Nov 18 14:19:52 2015 UTC (8 years, 4 months ago) by ryoon
Branch: MAIN
Changes since 1.17: +2 -2 lines
Diff to previous 1.17 (colored)

Recursive revbump from multimedia/libvpx

Revision 1.17 / (download) - annotate - [select for diffs], Tue Jun 30 09:57:39 2015 UTC (8 years, 9 months ago) by ryoon
Branch: MAIN
CVS Tags: pkgsrc-2015Q3-base, pkgsrc-2015Q3
Changes since 1.16: +2 -2 lines
Diff to previous 1.16 (colored)

Recursive revbump from pkgsrc/multimedia/libvpx.

Revision 1.16 / (download) - annotate - [select for diffs], Fri Jun 12 10:50:38 2015 UTC (8 years, 9 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2015Q2-base, pkgsrc-2015Q2
Changes since 1.15: +2 -1 lines
Diff to previous 1.15 (colored)

Recursive PKGREVISION bump for all packages mentioning 'perl',
having a PKGNAME of p5-*, or depending such a package,
for perl-5.22.0.

Revision 1.15 / (download) - annotate - [select for diffs], Sat Jan 3 18:09:31 2015 UTC (9 years, 2 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2015Q1-base, pkgsrc-2015Q1
Changes since 1.14: +2 -2 lines
Diff to previous 1.14 (colored)

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

Revision 1.14 / (download) - annotate - [select for diffs], Sun Nov 23 15:54:00 2014 UTC (9 years, 4 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2014Q4-base, pkgsrc-2014Q4
Changes since 1.13: +2 -3 lines
Diff to previous 1.13 (colored)

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 ×Årainedãà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

Revision 1.13 / (download) - annotate - [select for diffs], Wed Oct 1 16:09:35 2014 UTC (9 years, 5 months ago) by wiz
Branch: MAIN
Changes since 1.12: +2 -1 lines
Diff to previous 1.12 (colored)

Recursive bump for ffmpeg2 shared library major version bump.

Revision 1.12 / (download) - annotate - [select for diffs], Wed Oct 1 14:26:15 2014 UTC (9 years, 5 months ago) by wiz
Branch: MAIN
Changes since 1.11: +2 -2 lines
Diff to previous 1.11 (colored)

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

Revision 1.11 / (download) - annotate - [select for diffs], Sun Aug 31 22:24:27 2014 UTC (9 years, 6 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2014Q3-base, pkgsrc-2014Q3
Changes since 1.10: +2 -2 lines
Diff to previous 1.10 (colored)

Update to 1.4.1:


GStreamer libav Plugins:
      * 734608 : avvidec: decoded frames lost on EOS

Revision 1.10 / (download) - annotate - [select for diffs], Fri Aug 8 21:52:58 2014 UTC (9 years, 7 months ago) by wiz
Branch: MAIN
Changes since 1.9: +4 -6 lines
Diff to previous 1.9 (colored)

Update to 1.4.0:

This is GStreamer Libav 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.

Revision 1.9 / (download) - annotate - [select for diffs], Thu May 29 23:37:01 2014 UTC (9 years, 10 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2014Q2-base, pkgsrc-2014Q2
Changes since 1.8: +2 -2 lines
Diff to previous 1.8 (colored)

Bump for perl-5.20.0.
Do it for all packages that
* mention perl, or
* have a directory name starting with p5-*, or
* depend on a package starting with p5-
like last time, for 5.18, where this didn't lead to complaints.
Let me know if you have any this time.

Revision 1.8 / (download) - annotate - [select for diffs], Thu Apr 10 05:39:16 2014 UTC (9 years, 11 months ago) by obache
Branch: MAIN
Changes since 1.7: +2 -1 lines
Diff to previous 1.7 (colored)

recursive bump from x264-devel builld number change (i.e. API change).

Revision 1.7 / (download) - annotate - [select for diffs], Wed Dec 4 11:35:56 2013 UTC (10 years, 3 months ago) by drochner
Branch: MAIN
CVS Tags: pkgsrc-2014Q1-base, pkgsrc-2014Q1, pkgsrc-2013Q4-base, pkgsrc-2013Q4
Changes since 1.6: +2 -2 lines
Diff to previous 1.6 (colored)

update to 1.0.10
changes: bugfixes

Revision 1.6 / (download) - annotate - [select for diffs], Mon Jul 22 14:46:34 2013 UTC (10 years, 8 months ago) by drochner
Branch: MAIN
CVS Tags: pkgsrc-2013Q3-base, pkgsrc-2013Q3
Changes since 1.5: +2 -3 lines
Diff to previous 1.5 (colored)

update to 1.0.8
no changes relevant to pkgsrc, just kept gst1 revision numbers in sync

Revision 1.5 / (download) - annotate - [select for diffs], Fri May 31 12:41:30 2013 UTC (10 years, 10 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2013Q2-base, pkgsrc-2013Q2
Changes since 1.4: +2 -1 lines
Diff to previous 1.4 (colored)

Bump all packages for perl-5.18, that
a) refer 'perl' in their Makefile, or
b) have a directory name of p5-*, or
c) have any dependency on any p5-* package

Like last time, where this caused no complaints.

Revision 1.4 / (download) - annotate - [select for diffs], Fri May 3 15:58:36 2013 UTC (10 years, 10 months ago) by drochner
Branch: MAIN
Changes since 1.3: +2 -2 lines
Diff to previous 1.3 (colored)

update to 1.0.7
changes: bugfixes

Revision 1.3 / (download) - annotate - [select for diffs], Thu Apr 11 11:28:18 2013 UTC (10 years, 11 months ago) by drochner
Branch: MAIN
Changes since 1.2: +2 -2 lines
Diff to previous 1.2 (colored)

update to 1.0.6
changes: bugfixes

Revision 1.2 / (download) - annotate - [select for diffs], Sat Apr 6 03:45:20 2013 UTC (10 years, 11 months ago) by rodent
Branch: MAIN
Changes since 1.1: +8 -8 lines
Diff to previous 1.1 (colored)

Fixes:

 COMMENT should not be longer than 70 characters.
 COMMENT should not begin with 'A'.
 COMMENT should not begin with 'An'.
 COMMENT should not begin with 'a'.
 COMMENT should not end with a period.
 COMMENT should start with a capital letter.

pkglint warnings. Some files also got minor formatting, spelling, and style
corrections.

Revision 1.1 / (download) - annotate - [select for diffs], Thu Nov 29 09:27:37 2012 UTC (11 years, 4 months ago) by ryoon
Branch: MAIN
CVS Tags: pkgsrc-2013Q1-base, pkgsrc-2013Q1, pkgsrc-2012Q4-base, pkgsrc-2012Q4

Import gst-libav-1.0.3 as multimedia/gst-plugins1-libav.

This module contains a GStreamer plugin for FFmpeg.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>