=== release 1.4.4 === 2014-11-06 Sebastian Dröge * configure.ac: releasing 1.4.4 2014-11-01 12:18:02 +0100 Aurélien Zanelli * ext/vpx/gstvp8utils.h: vpx: remove compatibility defines We are guaranteed to have VPX_IMG_FMT_I420, VPX_PLANE_Y, VPX_PLANE_U and VPX_PLANE_V as we require libvpx > 1.1.0. https://bugzilla.gnome.org/show_bug.cgi?id=739476 2014-11-01 11:59:26 +0000 Tim-Philipp Müller * gst/rtp/gstrtpmp2tpay.c: rtpmp2tpay: fix up template caps so we can output the default pt 33 Add fixed payload type for mp2t to template caps as well, so our output caps match the advertised default pt. Fixes a regression from 1.2. There's still something wrong with caps negotiation though, rtpmp2tpay payload=96 ! fakesink will not output caps with payload=96. 2014-10-27 11:08:20 +0100 Sebastian Dröge * tests/check/elements/aacparse.c: aacparse: Fix unit test now that we always have profile/level in the caps 2014-10-26 11:47:25 +0100 Sebastian Dröge * gst/audioparsers/gstaacparse.c: aacparse: Always set profile/level on the caps We have the information already, so why not use it? 2014-10-30 15:37:36 -0700 Aleix Conchillo Flaqué * gst/rtsp/gstrtspsrc.c: rtspsrc: mikey related memory leaks https://bugzilla.gnome.org/show_bug.cgi?id=739430 2014-10-28 21:32:06 +0000 Tim-Philipp Müller * ext/pulse/pulsedeviceprovider.h: * sys/v4l2/gstv4l2deviceprovider.h: * sys/v4l2/gstv4l2tuner.h: pulse, v4l2: add missing G_END_DECLS in some places 2014-10-22 22:50:54 +0530 Arun Raghavan * ext/pulse/pulsesink.c: pulsesink: Temporarily disable stream status posting We need a mechanism in PulseAudio to allow running code outside the mainloop lock. Then we'd be able to post to the bus (taking the GST_OBJECT_LOCK), without worrying about locking order with the mainloop lock, which is the current cause of deadlocks while trying to post the stream status messages. https://bugzilla.gnome.org/show_bug.cgi?id=736071 2014-10-07 15:29:33 +0200 Aurélien Zanelli * sys/v4l2/gstv4l2bufferpool.c: v4l2bufferpool: cleanly handle streamon failure for output device On streamon failure, the queued buffer is not released from the bufferpool class point of view because it is queued to the driver and the flush logic is not performed since we are not in streaming state. It causes the v4l2 bufferpool to always return that stop method failed and to leak v4l2 objects and buffers. This commit solve this by performing the flush logic in error case, ie flushing the allocator and restoring queued buffer state to non-queued. https://bugzilla.gnome.org/show_bug.cgi?id=738102 2014-10-08 10:31:21 +0200 Aurélien Zanelli * sys/v4l2/gstv4l2bufferpool.c: v4l2bufferpool: implement dispose method Unref objects in dispose method rather than in finalize in order to prevent circular reference. https://bugzilla.gnome.org/show_bug.cgi?id=738102 2014-10-08 10:35:14 +0200 Aurélien Zanelli * sys/v4l2/gstv4l2bufferpool.c: v4l2bufferpool: check that allocator is non null when stopping pool Otherwise, we could dereference NULL allocator when the stop method is called by the GstBufferPool's finalize method. https://bugzilla.gnome.org/show_bug.cgi?id=738102 2014-10-09 12:15:05 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2sink.c: v4l2sink: Implement unlock/unlock_stop This will prevent deadlocks, but will also properly flush the pool and allocator when going to READY state. It should also fix issues reported on mailing list when seeking is performed. https://bugzilla.gnome.org/show_bug.cgi?id=738152 2014-10-25 12:36:02 +0100 Tim-Philipp Müller * gst/rtpmanager/gstrtpjitterbuffer.c: rtpjitterbuffer: fix crash on some 32-bit systems Make sure to pass right number of bits to gst_structure_new() which is a vararg function. Fixes elements/rtpaux unit test on ppc32. 2014-10-24 23:48:30 +0100 Tim-Philipp Müller * gst/interleave/interleave.c: interleave: intersect result with filter caps in caps query Fixes crash in audiotestsrc because of an unsupported format getting negotiated on big-endian systems with audiotestsrc ! interleave ! audioconvert ! wavenc 2014-10-22 15:28:44 +0200 Ananda * ext/speex/gstspeexdec.c: * ext/speex/gstspeexenc.c: speex: Fix segfault when resetting the codecs multiple times https://bugzilla.gnome.org/show_bug.cgi?id=738793 2014-10-21 13:10:24 +0200 Wim Taymans * gst/rtpmanager/gstrtpjitterbuffer.c: rtpjitterbuffer: make debug line less confusing 2014-10-03 17:28:06 -0700 Aleix Conchillo Flaqué * gst/rtsp/gstrtspsrc.c: rtspsrc: set full stream caps on internal src TCP pads Set the complete stream caps on the TCP internal src pads. Otherwise, ptdemux will not properly detect the caps change. https://bugzilla.gnome.org/show_bug.cgi?id=737868 2014-10-17 22:23:27 +0200 Sjoerd Simons * gst/rtpmanager/gstrtpmux.c: * tests/check/elements/rtpmux.c: rtpmux: Don't set PROXY_CAPS flag on the src pad rtpmux behaves like a funnel in that it forwards whatever upstream is sending buffers. So setting proxy caps doesn't make sense as the upstream don't have to have compatible caps, thus resulting in an empty caps set as a result of a caps query. Instead set fixed caps just as funnel does. https://bugzilla.gnome.org/show_bug.cgi?id=738722 2014-10-20 11:57:38 +0530 Vineeth T M * gst/videobox/gstvideobox.c: videobox: critical error when element properties set as max/min left, right, top, bottom can be set from range of -2147483648 to 2147483647 when i launch the videobox element with that values, it gives a critical error (gst-check-1.0:29869): GStreamer-CRITICAL **: gst_value_set_int_range_step: assertion 'start < end' failed This happens because min cannot be equal to max. https://bugzilla.gnome.org/show_bug.cgi?id=738838 2014-10-11 11:18:42 +1100 David Sansome * gst/equalizer/gstiirequalizer.c: equalizer: Don't call iirequalizer's transform_ip in passthrough mode It tries to map the read-only buffer with GST_MAP_READWRITE and crashes. https://bugzilla.gnome.org/show_bug.cgi?id=737886 2014-10-02 14:26:08 +0530 Nirbheek Chauhan * ext/soup/gstsouphttpclientsink.c: souphttpclientsink: Fix lifetime of stream headers and queued buffers Stream headers are updated whenever ::set_caps is called, so we can't assume they'll be valid before the message body is written out. We *can* assume that for queued buffers, but SOUP_MEMORY_STATIC is still wrong for those. Also, add some debug logging for stream header interactions. https://bugzilla.gnome.org/show_bug.cgi?id=737771 2014-10-02 03:26:22 +0200 Matej Knopp * gst/audioparsers/gstaacparse.c: aacparse: fix memory leak when prepending ADTS headers https://bugzilla.gnome.org/show_bug.cgi?id=737761 2014-10-02 10:10:11 +0300 Sebastian Dröge * gst/wavenc/gstwavenc.c: wavenc: Send CAPS event after the pad was activated Otherwise the CAPS event will be dropped and we never configure any caps at all, leading to weird behaviour in many situations. Especially header rewriting is not going to work if a capsfilter is after wavenc. https://bugzilla.gnome.org/show_bug.cgi?id=737735 2014-10-01 23:12:30 +0530 Nirbheek Chauhan * ext/soup/gstsouphttpclientsink.c: souphttpclientsink: Add some more useful debug logging 2014-10-01 23:05:03 +0530 Nirbheek Chauhan * ext/soup/gstsouphttpclientsink.c: souphttpclientsink: Free queued buffers in ::reset ::render sets a new callback for writing out new buffers only if there aren't already buffers queued for writing with a previously-scheduled callback. However, if the previously-scheduled callback is interrupted by a state change (either manually or due to an error) and there are still buffers in the queue, restarting the pipeline will result in buffers being queued forever, and no callbacks will ever be scheduled, and no buffers will be written out. https://bugzilla.gnome.org/show_bug.cgi?id=737739 2014-09-30 11:28:39 +0300 Sebastian Dröge * ext/vpx/gstvp8enc.c: vp8enc: finish() and drain() should return a GstFlowReturn 2014-09-30 11:35:12 +0300 Sebastian Dröge * ext/vpx/gstvp8enc.c: * ext/vpx/gstvp9enc.c: vp8enc/vp9enc: Protect the encoder with a mutex in all situations 2014-09-30 11:31:43 +0300 Sebastian Dröge * ext/vpx/gstvp9enc.c: vp9enc: Allow caps renegotiation https://bugzilla.gnome.org/show_bug.cgi?id=726329 2014-03-14 12:59:02 +0100 Jose Antonio Santos Cadenas * ext/vpx/gstvp8enc.c: vp8enc: Allow caps renegotiation https://bugzilla.gnome.org/show_bug.cgi?id=726329 2014-09-29 22:48:16 +0530 Arun Raghavan * ext/pulse/pulsesink.c: * ext/pulse/pulsesrc.c: pulse: Add some documentation about threading and synchronisation This gives a quick introduction to how the pulsesink/pulsesrc code interacts with the pa_threaded_mainloop that we start up to communicate with the server. 2014-09-29 20:18:08 +0530 Arun Raghavan * ext/pulse/pulsesink.c: pulsesink: Make emitting stream status messages synchronous The stream status messages are emitted in the PA mainloop thread, which means the mainloop lock is taken, followed by the Gst object lock (by gst_element_post_message()). In all other locations, the order of locking is reversed (this is unavoidable in a bunch of cases where the object lock is taken by GstBaseSink or GstAudioBaseSink, and then we get control to take the mainloop lock). The only way to guarantee that the defer callback for stream status messages doesn't deadlock is to either stop posting those messages, or make sure that the message emission is completed before we proceed to any point that might take the object lock before the mainloop lock (which is what we do after this patch). https://bugzilla.gnome.org/show_bug.cgi?id=736071 2014-10-10 18:30:07 -0400 Olivier Crête * gst/rtpmanager/rtpsource.c: * gst/rtpmanager/rtpsource.h: rtpsource: Rename seqnum-base to seqnum-offset in caps This was modified back in 1.0 in GstRtpBasePayload 2014-10-10 17:30:24 -0400 Olivier Crête * gst/rtpmanager/gstrtpmux.c: * gst/rtpmanager/gstrtpmux.h: * tests/check/elements/rtpmux.c: rtpmux: clock-base and seqnum-base -> timestamp-offset and seqnum-offset These were renamed in GstRTPBasePayload in 1.0 2014-10-10 18:11:19 -0400 Olivier Crête * gst/dtmf/gstrtpdtmfsrc.c: * tests/check/elements/dtmf.c: rtpdtmfsrc: clock-base and seqnum-base -> timestamp-offset and seqnum-offset These were renamed in GstRTPBasePayload in 1.0