=== release 1.8.1 === 2016-04-20 Sebastian Dröge * configure.ac: releasing 1.8.1 2016-04-20 15:31:19 +0300 Sebastian Dröge * po/da.po: po: Update translations 2016-04-15 00:46:56 -0700 Aleix Conchillo Flaqué * gst/rtsp/gstrtspsrc.c: * gst/rtsp/gstrtspsrc.h: rtspsrc: add srtp rollover counters from mikey crypto sessions The server can send multiple crypto sessions, one for each SSRC with its own rollover counter. We parse this information and pass it to the SRTP decoder via the "request-key" signal. https://bugzilla.gnome.org/show_bug.cgi?id=730540 2016-04-15 10:44:02 -0400 Xavier Claessens * gst/multifile/gstsplitmuxsink.c: spitmuxsink: Avoid creating small file at EOS When EOS is reached, the current file get closed and the last GOP in the mq was written in a new file. https://bugzilla.gnome.org/show_bug.cgi?id=765072 2016-04-16 02:17:26 +1000 Jan Schmidt * ext/pulse/pulsesink.c: Revert "pulsesink: uncork if needed upon commit" This reverts commit 0dd46accf6d282ff07065852bd91c85c78af3394. With some audiosinks, starting the ringbuffer on the first commit causes audio glitches at startup by starting to output segments from the ringbuffer before it has been filled / fully prerolled. This doesn't usually happen with pulsesink because we map the pulseaudio ringbuffer directly, but we should keep things consistent with other sinks with regards to startup latency, plus it gives more headway to avoid glitching, should the initial 2nd segment take more than 10ms to generate. https://bugzilla.gnome.org/show_bug.cgi?id=657076 2016-04-15 19:59:15 +0300 Sebastian Dröge * gst/audiofx/gstscaletempo.c: scaletempo: S16 uses S32 temporary buffers, float/double their own type Make sure to allocate not only a S16 buffer for S16 but a twice as big one to hold S32. https://bugzilla.gnome.org/show_bug.cgi?id=765116 2016-04-13 18:45:07 +0100 Damian Ziobro * gst/multifile/gstsplitmuxsink.c: * gst/multifile/gstsplitmuxsink.h: splitmuxsink: Add max_files_number property https://bugzilla.gnome.org/show_bug.cgi?id=744612 2016-04-12 10:15:39 +0300 Sebastian Dröge * gst/rtpmanager/rtpjitterbuffer.c: rtpjitterbuffer: Fix rtp_jitter_buffer_get_ts_diff() fill level calculation The head of the queue is the oldest packet (as in lowest seqnum), the tail is the newest packet. To calculate the fill level, we should calculate tail-head while considering wraparounds. Not the other way around. Other code is already doing this in the correct order. https://bugzilla.gnome.org/show_bug.cgi?id=764889 2016-04-11 08:33:17 +0900 Seungha Yang * gst/isomp4/qtdemux.c: qtdemux: Fix parsing segment duration of empty edit list box For empty edit list, segment-duration in edit list box should not be used for segment event. https://bugzilla.gnome.org/show_bug.cgi?id=764870 2016-04-12 09:41:00 +0000 Paolo Pettinato * gst/rtpmanager/gstrtpmux.c: rtpmux: Forward sticky events on buffer lists too, not only on buffers https://bugzilla.gnome.org/show_bug.cgi?id=764933 2016-04-12 15:01:28 +0300 Sebastian Dröge * gst/deinterlace/gstdeinterlace.c: deinterlace: Drain the field history if the caps are changing Otherwise we will use fields from the old caps with everything set up for the new caps, causing crashes and worse. Also don't do anything if the same caps are set twice. 2016-03-31 02:15:04 +1100 Jan Schmidt * gst/multifile/gstsplitmuxsink.c: splitmux: Handle a hang draining out at EOS Make sure that all data is drained out when the reference pad goes EOS. Fixes a problem where data that arrives on other pads after the reference pad finishes can stall forever and never pass EOS. https://bugzilla.gnome.org/show_bug.cgi?id=763711 2016-03-18 15:45:01 -0400 Xavier Claessens * gst/multifile/gstsplitmuxsink.c: splitmuxsink: Fix occasional deadlock when ending file with subtitle Deadlock occurs when splitting files if one stream received no buffer during the first GOP of the next file. That can happen in that scenario for example: 1) The first GOP of video is collected, it has a duration of 10s. max_in_running_time is set to 10s. 2) Other streams catchup and we receive the first subtitle buffer at ts=0 and has a duration of 1min. 3) We receive the 2nd subtitle buffer with a ts=1min. in_running_time is set to 1min. That buffer is blocked in handle_mq_input() because max_in_running_time is still 10s. 4) Since all in_running_time are now > 10s, max_out_running_time is now set to 10s. That first GOP gets recorded into the file. The muxer pop buffers out of the mq, when it tries to pop a 2nd subtitle buffer it blocks because the GstDataQueue is empty. 5) A 2nd GOP of video is collected and has a duration of 10s as well. max_in_running_time is now 20s. Since subtitle's in_running_time is already 1min, that GOP is already complete. 6) But let's say we overran the max file size, we thus set state to SPLITMUX_STATE_ENDING_FILE now. As soon as a buffer with ts > 10s (end of previous GOP) arrives in handle_mq_output(), EOS event is sent downstream instead. But since the subtitle queue is empty, that's never going to happen. Pipeline is now deadlocked. To fix this situation we have to: - Send a dummy event through the queue to wakeup output thread. - Update out_running_time to at least max_out_running_time so it sends EOS. - Respect time order, so we set out_running_tim=max_in_running_time because that's bigger than previous buffer and smaller than next. https://bugzilla.gnome.org/show_bug.cgi?id=763711 2016-01-31 11:08:38 +1100 Sebastian Dröge * gst/rtp/gstrtpjpegpay.c: rtpjpegpay: Allow different quantization tables for components 2 and 3 RFC 2435 mentions in section 4.1 that U/V use table number 1, but this seems just like an example. Some encoders are not following that and there seems to be no reason to reject their streams. https://bugzilla.gnome.org/show_bug.cgi?id=761345 2016-03-16 20:17:55 +0100 Havard Graff * gst/flv/gstflvdemux.c: * tests/check/elements/flvdemux.c: flvdemux: don't emit pad-added until caps are ready In other words, gst_pad_get_current_caps should never return NULL in a pad-added callback from the demuxer. Added tests for the two special cases with AAC and H.264 where this would happen every time. https://bugzilla.gnome.org/show_bug.cgi?id=763780 2016-02-29 23:40:03 -0300 Thiago Santos * gst/multifile/gstsplitmuxsink.c: * tests/check/elements/splitmux.c: splitmuxsink: only try to create internal sink if it doesn't exist This allows splitmuxsink to be reused after being put to NULL. Test included https://bugzilla.gnome.org/show_bug.cgi?id=762893 2016-03-24 15:14:23 +0900 Jimmy Ohn * gst/isomp4/qtdemux.c: qtdemux: Fix qtdemux memory leak in src_convert function If we don't find the index of the sample correctly in src_convert function, we have to unref about the qtdemux before returning value. So, I have modify it about instead pass qtdemux as a parameter into src_convert function. https://bugzilla.gnome.org/show_bug.cgi?id=763973 2015-11-04 14:51:19 +0900 Jihae Yi * gst/rtsp/gstrtspsrc.c: rtspsrc: avoid potentially overflowing expression https://bugzilla.gnome.org/show_bug.cgi?id=757569 2016-03-24 19:23:12 -0400 Nicolas Dufresne * ext/vpx/gstvpxdec.c: vpxdec: Use threads on multi-core systems This is a redo of commit b848c1b6ffd1e508228820a013f94fb445e4777f. The code was lost when the elements where ported to use a baseclass. https://bugzilla.gnome.org/show_bug.cgi?id=764169