=== 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