=== release 1.10.3 ===

2017-01-30  Sebastian Dröge <[email protected]>

       * configure.ac:
         releasing 1.10.3

2017-01-30 13:33:23 +0200  Sebastian Dröge <[email protected]>

       * po/el.po:
         po: Update translations

2017-01-27 16:14:16 +0200  Vivia Nikolaidou <[email protected]>

       * gst/isomp4/atoms.c:
         qtmux: Timecode track fixes for STSD entry
         The n_frames field (frames per second) should follow the nominal frame
         rate for drop-frame timecodes.
         Also, the trak's timescale (and duration, accordingly) should follow the
         STSD entry's timescale and frame duration (fps_n and fps_d accordingly),
         not the other way around.
         https://bugzilla.gnome.org/show_bug.cgi?id=777832

2017-01-19 11:08:11 +0100  Arnaud Vrac <[email protected]>

       * ext/soup/gstsouphttpsrc.c:
         souphttpsrc: retry request on early termination from the server
         Fix a regression introduced by commit 183695c61a54f1 (refactor to use
         Soup's sync API). The code previously attempted to reconnect when the
         server closed the connection early, for example when the stream was put
         in pause for some time.
         Reintroduce this feature by checking if EOS is received before the
         expected content size is downloaded. In this case, do the request
         starting at the previous read position.
         https://bugzilla.gnome.org/show_bug.cgi?id=776720

2017-01-10 09:40:56 -0700  Matt Staples <[email protected]>

       * gst/rtsp/gstrtspsrc.c:
         rtspsrc: find_stream_by_channel should ignore unconfigured streams
         https://bugzilla.gnome.org/show_bug.cgi?id=777101

2017-01-25 18:43:00 +0000  Brendan Shanks <[email protected]>

       * gst/isomp4/gstqtmux.c:
         qtmux: Fix debug typo and remove misleading warning
         https://bugzilla.gnome.org/show_bug.cgi?id=777362

2017-01-26 13:54:14 +0200  Sebastian Dröge <[email protected]>

       * gst/autodetect/gstautodetect.c:
         Revert "autodetect: bring the element state down after success"
         This reverts commit 67f6d3358e4620319335065db25edaaba1f5ae0a.
         It causes problems in certain scenarios and needs further investigation
         https://bugzilla.gnome.org/show_bug.cgi?id=764947#c9

2017-01-09 11:32:35 +0530  Rahul Bedarkar <[email protected]>

       * gst/wavparse/gstwavparse.c:
         wavparse: check for not NULL before clearing adapter
         In case wavparse receives a manually injected FLUSH_STOP event
         while operating in pull mode we get criticals because we'd try
         to clear a NULL adapter.
         https://bugzilla.gnome.org/show_bug.cgi?id=777123

2017-01-20 17:16:10 +0200  Sebastian Dröge <[email protected]>

       * gst/avi/gstavidemux.c:
         avidemux: Stop reading a ncdt sub-tag if it goes behind the surrounding tag
         https://bugzilla.gnome.org/show_bug.cgi?id=777532

2017-01-20 07:58:26 +0200  Sebastian Dröge <[email protected]>

       * gst/avi/gstavidemux.c:
         avidemux: Fix various out of bounds reads when parsing ncdt tags
         https://bugzilla.gnome.org/show_bug.cgi?id=777500

2017-01-19 13:46:58 +0200  Sebastian Dröge <[email protected]>

       * gst/isomp4/qtdemux.c:
         qtdemux: Increment current stts index whenever we finished one stts entry
         Otherwise we could read more chunks than there are available, doing an
         out of bounds read and potentially crash.
         https://bugzilla.gnome.org/show_bug.cgi?id=777469

2017-01-19 13:25:53 +0200  Sebastian Dröge <[email protected]>

       * gst/isomp4/qtdemux.c:
         Revert "qtdemux: Increment current stts index in all code paths after reading one chunk"
         This reverts commit 99d5d7570d0b53dad3bc8eb653b1320ee422aace. It broke
         playback of various valid files.

2017-01-19 07:52:33 +0200  Sebastian Dröge <[email protected]>

       * gst/isomp4/qtdemux.c:
         qtdemux: Increment current stts index in all code paths after reading one chunk
         Otherwise we could read more chunks than there are available, doing an
         out of bounds read and potentially crash.
         https://bugzilla.gnome.org/show_bug.cgi?id=777469

2017-01-13 16:40:43 +0100  Arnaud Vrac <[email protected]>

       * ext/soup/gstsouphttpsrc.c:
         souphttpsrc: properly track redirections
         The current code configures libsoup to handle redirections
         transparently, without informing the caller, thus preventing the element
         to record the redirect code and location uri.
         Fix this by always setting the SOUP_MESSAGE_NO_REDIRECT, preventing
         libsoup from handling the redirection. When we receive a redirection
         request and libsoup can safely handle it, return a custom error which
         triggers a retry with the new URI.
         https://bugzilla.gnome.org/show_bug.cgi?id=777222

2017-01-13 00:01:06 +1100  Jan Schmidt <[email protected]>

       * gst/isomp4/gstqtmux.c:
         qtmux: Don't reset request pad numbering across uses
         When reset, don't restart request pad numberings, as
         request pads can survive across state changes. Only
         restart at 0 if all request pads are handed back first.
         https://bugzilla.gnome.org/show_bug.cgi?id=777174

2017-01-11 17:53:32 -0800  Andre McCurdy <[email protected]>

       * gst/isomp4/qtdemux.c:
         qtdemux: free seqh after calling qtdemux_parse_svq3_stsd_data()
         The seqh buffer allocated in qtdemux_parse_svq3_stsd_data() needs to
         be freed by the caller after use.
         https://bugzilla.gnome.org/show_bug.cgi?id=777157
         Signed-off-by: Andre McCurdy <[email protected]>

2017-01-16 15:17:15 +0100  Jean-Christophe Trotin <[email protected]>

       * sys/v4l2/gstv4l2allocator.c:
         v4l2allocator: fix memory type in allocator probe
         The buffer memory type provided to the VIDIOC_CREATE_BUFS ioctl shall
         be set with the value ("memory") given as input parameter of the
         gst_v4l2_allocator_probe() function.
         https://bugzilla.gnome.org/show_bug.cgi?id=777327

2016-11-11 14:31:03 +1100  Matthew Waters <[email protected]>

       * gst/autodetect/gstautodetect.c:
         autodetect: bring the element state down after success
         Otherwise some messages that are emitted by the element on NULL->READY
         will not reach the application.
         https://bugzilla.gnome.org/show_bug.cgi?id=764947

2016-04-24 21:38:51 +0900  Seungha Yang <[email protected]>

       * gst/isomp4/qtdemux.c:
         qtdemux: Fix key_time in gst_qtdemux_adjust_seek()
         time in segment should be PTS based (not DTS).
         https://bugzilla.gnome.org/show_bug.cgi?id=765498

2017-01-07 23:55:42 +1100  Jan Schmidt <[email protected]>

       * gst/isomp4/qtdemux.c:
         qtdemux: Don't reset output timestamps when no tfdt
         If a fragmented stream doesn't have a tfdt, don't
         reset the output timestamps at each fragment boundary
         by erroneously using the default value of 0. Introduced
         by commit 69fc48
         https://bugzilla.gnome.org/show_bug.cgi?id=754230

2016-12-14 21:45:15 +0200  Sebastian Dröge <[email protected]>

       * gst/isomp4/qtdemux.c:
         qtdemux: Check if we have enough data available when parsing edit lists
         Also consume the data entry by entry to get complicated indexing out of
         the code.
         https://bugzilla.gnome.org/show_bug.cgi?id=776107

2016-12-14 10:15:10 +0200  Sebastian Dröge <[email protected]>

       * gst/isomp4/qtdemux.c:
         qtdemux: Check that the XiTh size is big enough
         https://bugzilla.gnome.org/show_bug.cgi?id=775794

2016-12-09 20:27:53 +0900  Heekyoung Seo <[email protected]>

       * gst/isomp4/qtdemux.c:
         qtdemux: Check node length of video sample description
         Add check for node length of video sample description and its fields and
         for the XiTh atom.
         Also unify the code a bit.
         https://bugzilla.gnome.org/show_bug.cgi?id=775794

2016-12-11 13:27:27 +0200  Sebastian Dröge <[email protected]>

       * gst/audiofx/gstscaletempo.c:
         scaletempo: Ensure to reinit buffers whenever they were not allocated yet
         That is, whenever we go through start/stop we have to ensure that on the
         next opportunity the buffers are reallocated again. Otherwise the
         buffers might be NULL because the element was reused with the same
         configuration as before (i.e. set_caps() wouldn't have reinited the
         buffers).
         https://bugzilla.gnome.org/show_bug.cgi?id=775898

2016-12-09 17:55:39 +0200  Sebastian Dröge <[email protected]>

       * gst/flx/gstflxdec.c:
       * gst/flx/gstflxdec.h:
         flxdec: Only send SEGMENT events after CAPS
         I.e., don't just forward the event but delay it if we don't have caps on
         the srcpad yet.

2016-12-09 17:49:40 +0200  Sebastian Dröge <[email protected]>

       * gst/flx/gstflxdec.c:
         flxdec: Unref and unmap buffers in all code paths as needed
         https://bugzilla.gnome.org/show_bug.cgi?id=775888

2016-12-06 07:48:47 +0200  Sebastian Dröge <[email protected]>

       * gst/flx/gstflxdec.c:
         flxdec: Allocate 0-initialized memory for the decoded frame
         Otherwise we might leak arbitrary information from the uninitialized
         memory if not every pixel is written.
         https://scarybeastsecurity.blogspot.gr/2016/12/1days-0days-pocs-more-gstreamer-flic.html

2016-12-05 07:57:19 -0700  Matt Staples <[email protected]>

       * gst/rtsp/gstrtspsrc.c:
         rtspsrc: Fix session cleanup when handling redirect on PLAY
         Redirect on PLAY wasn't doing the necessary session cleanup. Fixed by
         removing code from gst_rtspsrc_send that changed the state varable upon
         encountering a redirect. Better to let the redirect handlers in
         gst_rtspsrc_retrieve_sdp and gst_rtspsrc_play do their own
         state-dependent cleanup.
         https://bugzilla.gnome.org/show_bug.cgi?id=775543

2016-12-01 17:08:09 +0100  Edward Hervey <[email protected]>

       * gst/rtpmanager/gstrtpjitterbuffer.c:
       * gst/rtpmanager/rtpjitterbuffer.c:
         jitterbuffer: Don't leak duplicate items
         When providing items with a seqnum, there is a (very small) probability
         that an element with the same seqnum already exists. Don't forget
         to free that item if it wasn't inserted.
         And avoid returning undefined values when dealing with duplicate items

2016-11-03 15:03:59 +0100  Havard Graff <[email protected]>

       * gst/rtpmanager/gstrtpjitterbuffer.c:
       * tests/check/elements/rtpjitterbuffer.c:
         rtpjitterbuffer: fix timer-reuse bug
         When doing rtx, the jitterbuffer will always add an rtx-timer for the next
         sequence number.
         In the case of the packet corresponding to that sequence number arriving,
         that same timer will be reused, and simply moved on to wait for the
         following sequence number etc.
         Once an rtx-timer expires (after all retries), it will be rescheduled as
         a lost-timer instead for the same sequence number.
         Now, if this particular sequence-number now arrives (after the timer has
         become a lost-timer), the reuse mechanism *should* now set a new
         rtx-timer for the next sequence number, but the bug is that it does
         not change the timer-type, and hence schedules a lost-timer for that
         following sequence number, with the result that you will have a very
         early lost-event for a packet that might still arrive, and you will
         never be able to send any rtx for this packet.
         Found by Erlend Graff - [email protected]
         https://bugzilla.gnome.org/show_bug.cgi?id=773891

2016-10-09 15:59:05 +0200  Havard Graff <[email protected]>

       * gst/rtpmanager/gstrtpjitterbuffer.c:
       * gst/rtpmanager/rtpjitterbuffer.c:
       * gst/rtpmanager/rtpjitterbuffer.h:
       * tests/check/elements/rtpjitterbuffer.c:
         rtpjitterbuffer: fix lost-event using dts instead of pts
         The lost-event was using a different time-domain (dts) than the outgoing
         buffers (pts). Given certain network-conditions these two would become
         sufficiently different and the lost-event contained timestamp/duration
         that was really wrong. As an example GstAudioDecoder could produce
         a stream that jumps back and forth in time after receiving a lost-event.
         The previous behavior calculated the pts (based on the rtptime) inside the
         rtp_jitter_buffer_insert function, but now this functionality has been
         refactored into a new function rtp_jitter_buffer_calculate_pts that is
         called much earlier in the _chain function to make pts available to
         various calculations that wrongly used dts previously
         (like the lost-event).
         There are however two calculations where using dts is the right thing to
         do: calculating the receive-jitter and the rtx-round-trip-time, where the
         arrival time of the buffer from the network is the right metric
         (and is what dts in fact is today).
         The patch also adds two tests regarding B-frames or the
         “rtptime-going-backwards”-scenario, as there were some concerns that this
         patch might break this behavior (which the tests shows it does not).

2016-11-03 16:33:53 +0100  Havard Graff <[email protected]>

       * gst/rtpmanager/gstrtpjitterbuffer.c:
       * tests/check/elements/rtpjitterbuffer.c:
         rtpjitterbuffer: fix bug in reschedule_timer
         The new timeout is always going to be (timeout + delay), however, the
         old behavior compared the current timeout to just (timeout), basically
         being (delay) off.
         This would happen if rtx-delay == rtx-retry-timeout, with the result that
         a second rtx attempt for any buffers would be scheduled immediately instead
         of after rtx-delay ms.
         Simply calculate (new_timeout = timeout + delay) and then use that instead.
         https://bugzilla.gnome.org/show_bug.cgi?id=773905

2016-12-01 15:06:06 +0530  Garima Gaur <[email protected]>

       * gst/rtp/gstrtph264depay.c:
       * gst/rtp/gstrtpsbcdepay.c:
         rtp: Fix some memory leaks in usage of gst_pad_get_current_caps()
         https://bugzilla.gnome.org/show_bug.cgi?id=775071

2016-12-01 11:23:02 +0100  Edward Hervey <[email protected]>

       * gst/isomp4/qtdemux.c:
         qtdemux: Sanitize unknown codec caps
         We might have non-printable characters in the unknown fourcc, replace
         them with '_', in the same way we do it for unknown tags.

2016-12-01 20:04:28 +0200  Sebastian Dröge <[email protected]>

       * gst/avi/gstavidemux.c:
         avidemux: Free vprp chunk also if it existed but we made no use of it
         https://bugzilla.gnome.org/show_bug.cgi?id=775479

2016-12-01 17:38:33 +0200  Sebastian Dröge <[email protected]>

       * gst/matroska/matroska-read-common.c:
         matroskademux: Fix memory leak when parsing attachments
         gst_tag_image_data_to_image_sample() does not take ownership of the
         passed memory, so don't set it to NULL to allow us to free it later.
         https://bugzilla.gnome.org/show_bug.cgi?id=775472

2016-12-01 14:56:18 +0200  Sebastian Dröge <[email protected]>

       * gst/matroska/matroska-read-common.c:
         matroskademux: Unify zlib/bzip2 decompress loops with the ones from qtdemux
         Especially, simplify the code a bit.

2016-12-01 14:41:48 +0200  Sebastian Dröge <[email protected]>

       * gst/isomp4/qtdemux.c:
         qtdemux: Increase inflate buffer in bigger steps
         1024 bytes is quite small, let's do 4096 bytes (or one page).
         Also remove redundant if, we're always in that case when getting here.

2016-12-01 14:30:49 +0200  Sebastian Dröge <[email protected]>

       * gst/isomp4/qtdemux.c:
         qtdemux: Ensure that size of the pasp atom is as much as we need
         https://bugzilla.gnome.org/show_bug.cgi?id=775455

2016-12-01 14:27:55 +0200  Sebastian Dröge <[email protected]>

       * gst/isomp4/qtdemux.c:
         qtdemux: Fix zlib inflate loop
         Handle errors cleanly, deallocate all memory and return the actual size
         of the inflated data.
         https://bugzilla.gnome.org/show_bug.cgi?id=775455

2016-12-01 14:30:10 +0200  Sebastian Dröge <[email protected]>

       * gst/isomp4/qtdemux.c:
         qtdemux: Free compressed moov node and it's corresponding decompressed data
         https://bugzilla.gnome.org/show_bug.cgi?id=775455

2016-12-01 14:29:21 +0200  Sebastian Dröge <[email protected]>

       * gst/isomp4/qtdemux.c:
         qtdemux: Check size of compressed MOOV header against available data
         And actually read the size of the cmvd atom from the right position.
         https://bugzilla.gnome.org/show_bug.cgi?id=775455

2016-12-01 13:38:16 +0200  Sebastian Dröge <[email protected]>

       * gst/audioparsers/gstaacparse.c:
         aacparse: Make sure we have enough data in the codec_data to be able to parse it
         Also error out cleanly if mapping the buffer failed.
         https://bugzilla.gnome.org/show_bug.cgi?id=775450

2016-12-01 13:32:22 +0200  Sebastian Dröge <[email protected]>

       * gst/isomp4/qtdemux.c:
         qtdemux: Fix out of bounds read in tag parsing code
         We can't simply assume that the length of the tag value as given
         inside the stream is correct but should also check against the amount of
         data we have actually available.
         https://bugzilla.gnome.org/show_bug.cgi?id=775451

2016-10-26 13:21:29 +0200  Alejandro G. Castro <[email protected]>

       * gst/rtpmanager/gstrtpsession.c:
       * gst/rtpmanager/rtpsession.c:
       * gst/rtpmanager/rtpsession.h:
         rtpbin: pipeline gets an EOS when any rtpsources byes
         Instead of sending EOS when a source byes we have to wait for
         all the sources to be gone, which means they already sent BYE and
         were removed from the session. We now handle the EOS in the rtcp
         loop checking the amount of sources in the session.
         https://bugzilla.gnome.org/show_bug.cgi?id=773218

2016-10-24 16:56:31 +0000  Enrique Ocaña González <[email protected]>

       * gst/isomp4/qtdemux.c:
         qtdemux: Use the tfdt decode time on byte streams when it's significantly different than the time in the last sample
         We consider there's a sifnificant difference when it's larger than on second
         or than half the duration of the last processed fragment in case the latter is
         larger.
         https://bugzilla.gnome.org/show_bug.cgi?id=754230