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
=== release 1.4.4 ===
2014-11-06 Sebastian Dröge <slomo@coaxion.net>
* configure.ac:
releasing 1.4.4
2014-10-24 12:51:07 +0100 Tim-Philipp Müller <tim@centricular.com>
* libs/gst/base/gstbasesink.c:
basesink: don't unlock mutex that is not locked
Fixes 'Attempt to unlock mutex that was not locked'
warning with newer GLibs when sink is shut down in
certain situations. Triggered by the decodebin
test_reuse_without_decoders unit test in -base
sometimes, esp. on slower machines.
2014-10-16 10:13:14 +0400 Andrei Sarakeev <sarakusha@gmail.com>
* plugins/elements/gstmultiqueue.c:
multiqueue: Wake up any waiting streams if the current one goes EOS
Otherwise we might have unlinked streams waiting.
https://bugzilla.gnome.org/show_bug.cgi?id=738198
2014-10-08 15:37:37 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
* docs/pwg/advanced-negotiation.xml:
docs: pwg: fix typo in 'Dynamic negotiation' section
The point of this example is to show how to set caps
on the source pad once it has been set on the sink pad.
So, in passthrough mode, the caps is just copied to the
source pad.
https://bugzilla.gnome.org/show_bug.cgi?id=738153
2014-10-06 13:38:21 +0200 Nicolas Huet <nicolas.huet@parrot.com>
* gst/gstsystemclock.c:
systemclock: fix multi-thread entry status issue
Running two threads, one executing the timer and one unscheduling it, the
unscheduled status set by the second thread is sometimes overwritten by the
first one.
https://bugzilla.gnome.org/show_bug.cgi?id=737999
2014-09-25 16:21:51 +0100 Tim-Philipp Müller <tim@centricular.com>
* tests/check/libs/baseparse.c:
tests: fix caps leak in baseparse unit test
2014-10-03 13:14:25 +0200 Matej Knopp <matej.knopp@gmail.com>
* tests/check/libs/baseparse.c:
tests: baseparse: set_sink_caps vfunc should't take ownership of the caps
https://bugzilla.gnome.org/show_bug.cgi?id=737762
2014-10-08 09:37:41 -0700 Aleix Conchillo Flaqué <aleix@oblong.com>
* plugins/elements/gstmultiqueue.c:
multiqueue: don't lock multiqueue when pushing serialized queries
If we are pushing a serialized query into a queue and the queue is
filled, we will end in a deadlock. We need to release the lock before
pushing and acquire it again afterward.
https://bugzilla.gnome.org/show_bug.cgi?id=737794
2014-10-02 14:55:22 +0300 Sebastian Dröge <sebastian@centricular.com>
* plugins/elements/gstqueue.c:
queue: Add missing break in switch
2014-09-27 20:10:34 +0200 Matej Knopp <matej.knopp@gmail.com>
* plugins/elements/gstmultiqueue.c:
multiqueue: update segment position on GAP events to calculate levels properly
https://bugzilla.gnome.org/show_bug.cgi?id=737498
2014-10-02 11:00:32 +0300 Sebastian Dröge <sebastian@centricular.com>
* plugins/elements/gstqueue.c:
queue: update segment position on GAP events to calculate levels properly
https://bugzilla.gnome.org/show_bug.cgi?id=737498
2014-10-02 10:57:43 +0300 Sebastian Dröge <sebastian@centricular.com>
* plugins/elements/gstqueue2.c:
queue2: update segment position on GAP events to calculate levels properly
https://bugzilla.gnome.org/show_bug.cgi?id=737498
2014-10-02 10:13:28 +0300 Sebastian Dröge <sebastian@centricular.com>
* plugins/elements/gstcapsfilter.c:
capsfilter: Push pending events before a buffer also if upstream never configured caps but we have srcpad caps already
Otherwise we never send pending events downstream that arrive after we
configured caps on the srcpad.
https://bugzilla.gnome.org/show_bug.cgi?id=737735
2014-09-24 10:11:54 +0200 Thibault Saunier <tsaunier@gnome.org>
* scripts/gst-uninstalled:
scripts: Handle gst-python in gst-uninstalled
https://bugzilla.gnome.org/show_bug.cgi?id=709082
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
This is GStreamer 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.
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.
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.
Revert the last commit and use the (new) FLEX_REQD directive in order
to build gstreamer on platforms with older versions of flex.
Thanks @wiz, @obache
gstreamer1 requires a version of flex that is 2.5.31 or greater.
DragonFly does not have a flex this new, so force gstreamer to use
the flex found at devel/flex (version 2.5.36 currently) rather than
the platform's native flex.
GStreamer is a library that allows the construction of graphs of
media-handling components, ranging from simple Ogg/Vorbis playback to
complex audio (mixing) and video (non-linear editing) processing.
Applications can take advantage of advances in codec and filter technology
transparently. Developers can add new codecs and filters by writing a
simple plugin with a clean, generic interface.
GStreamer is released under the LGPL.
This packages tracks 1.x release.