Havard Graff [Wed, 14 Dec 2016 09:39:12 +0000 (10:39 +0100)]
tests/jitterbuffer: Major refactoring and cleanups
* Changed PCMU->TEST for common macros
* Changed verify-functions (lost & rtx) into macros.
* Remove option to add marker-bit for test-buffers (not used anywhere)
* Add new push_test_buffer function that makes sure there are correlation
between dts and the time on the clock. (classic test-mistake)
* Established a generic starting-point for tests with the
construct_deterministic_initial_state function and use it where
applicable, which removes lots of "boilerplate" everywhere.
* Add basic lost-event test
* Remove as much "magic constants" as possible.
* Remove 3 tests that no longer are testing anything that others don't,
and was completely unmaintainable.
* Remove unnecessary use of the testclock
* Verify each test is testing what it actually says it does (and modify
where it doesn't)
In general, make the tests much smaller, better, more maintainable and
readable.
https://bugzilla.gnome.org/show_bug.cgi?id=774409
Tim-Philipp Müller [Wed, 14 Dec 2016 09:54:11 +0000 (09:54 +0000)]
Remove generated .spec file
Likely extremely bitrotten, and we should not ship this anyway.
Sebastian Dröge [Wed, 14 Dec 2016 08:15:10 +0000 (10:15 +0200)]
qtdemux: Check that the XiTh size is big enough
https://bugzilla.gnome.org/show_bug.cgi?id=775794
Heekyoung Seo [Fri, 9 Dec 2016 11:27:53 +0000 (20:27 +0900)]
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
Heekyoung Seo [Thu, 8 Dec 2016 09:50:52 +0000 (18:50 +0900)]
qtdemux: Enable xvid/mp2 codec support
Add support for xvid video and mp2 audio, add m2v1 fourcc.
https://bugzilla.gnome.org/show_bug.cgi?id=775794
Sebastian Dröge [Tue, 13 Dec 2016 20:32:46 +0000 (22:32 +0200)]
gst: Don't declare variables inside the for loop header
This is a C99 feature.
Sebastian Dröge [Sun, 11 Dec 2016 11:27:27 +0000 (13:27 +0200)]
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
Tim-Philipp Müller [Sat, 10 Dec 2016 12:52:18 +0000 (12:52 +0000)]
docs: design: remove, moved to gst-docs
Thibault Saunier [Fri, 9 Dec 2016 20:17:35 +0000 (17:17 -0300)]
meson: Support building without Gst debug
Sebastian Dröge [Fri, 9 Dec 2016 15:55:39 +0000 (17:55 +0200)]
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.
Sebastian Dröge [Fri, 9 Dec 2016 15:49:40 +0000 (17:49 +0200)]
flxdec: Unref and unmap buffers in all code paths as needed
https://bugzilla.gnome.org/show_bug.cgi?id=775888
Arun Raghavan [Tue, 6 Dec 2016 12:12:31 +0000 (17:42 +0530)]
v4l2object: Don't set empty interlace-mode list
If for some reason we fail to probe formats (all try_fmt calls fail, for
example), this is not a critical error, but we end up with an empty list
of interlace modes. This causes all subsequent negotiation to fail.
This patch fixes interlace-mode setting to be skipped if we failed to
detect any.
https://bugzilla.gnome.org/show_bug.cgi?id=775702
Garima Gaur [Wed, 7 Dec 2016 11:52:22 +0000 (17:22 +0530)]
monoscope: Unref allocation query after finished with it
https://bugzilla.gnome.org/show_bug.cgi?id=775752
Sebastian Dröge [Tue, 6 Dec 2016 05:48:47 +0000 (07:48 +0200)]
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
Matt Staples [Mon, 5 Dec 2016 14:57:19 +0000 (07:57 -0700)]
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
Aleix Conchillo Flaque [Wed, 7 Sep 2016 13:10:27 +0000 (16:10 +0300)]
rtspsrc: always send teardown request
Allow CMD_CLOSE to cancel all commands not only CMD_PAUSE
and ignore CMD_WAIT while closing.
https://bugzilla.gnome.org/show_bug.cgi?id=748360
Edward Hervey [Sat, 3 Dec 2016 07:19:27 +0000 (08:19 +0100)]
Automatic update of common submodule
From f980fd9 to 39ac2f5
Edward Hervey [Thu, 1 Dec 2016 16:08:09 +0000 (17:08 +0100)]
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
Edward Hervey [Thu, 1 Dec 2016 10:23:02 +0000 (11:23 +0100)]
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.
Sebastian Dröge [Thu, 1 Dec 2016 18:04:28 +0000 (20:04 +0200)]
avidemux: Free vprp chunk also if it existed but we made no use of it
https://bugzilla.gnome.org/show_bug.cgi?id=775479
Sebastian Dröge [Thu, 1 Dec 2016 15:38:33 +0000 (17:38 +0200)]
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
Sebastian Dröge [Thu, 1 Dec 2016 12:56:18 +0000 (14:56 +0200)]
matroskademux: Unify zlib/bzip2 decompress loops with the ones from qtdemux
Especially, simplify the code a bit.
Sebastian Dröge [Thu, 1 Dec 2016 12:41:48 +0000 (14:41 +0200)]
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.
Sebastian Dröge [Thu, 1 Dec 2016 12:30:49 +0000 (14:30 +0200)]
qtdemux: Ensure that size of the pasp atom is as much as we need
https://bugzilla.gnome.org/show_bug.cgi?id=775455
Sebastian Dröge [Thu, 1 Dec 2016 12:30:10 +0000 (14:30 +0200)]
qtdemux: Free compressed moov node and it's corresponding decompressed data
https://bugzilla.gnome.org/show_bug.cgi?id=775455
Sebastian Dröge [Thu, 1 Dec 2016 12:29:21 +0000 (14:29 +0200)]
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
Sebastian Dröge [Thu, 1 Dec 2016 12:27:55 +0000 (14:27 +0200)]
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
Sebastian Dröge [Thu, 1 Dec 2016 11:38:16 +0000 (13:38 +0200)]
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
Sebastian Dröge [Thu, 1 Dec 2016 11:32:22 +0000 (13:32 +0200)]
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
Garima Gaur [Thu, 1 Dec 2016 09:36:06 +0000 (15:06 +0530)]
rtp: Fix some memory leaks in usage of gst_pad_get_current_caps()
https://bugzilla.gnome.org/show_bug.cgi?id=775071
Vivia Nikolaidou [Wed, 30 Nov 2016 15:56:02 +0000 (17:56 +0200)]
qtdemux: Read interlacing information from 'fiel' atom
Read interlacing and TFF/BFF information from the 'fiel' atom and pass it
into the caps
https://bugzilla.gnome.org/show_bug.cgi?id=775414
Sebastian Dröge [Tue, 29 Nov 2016 11:55:40 +0000 (13:55 +0200)]
qtdemux: Fix compiler warning
qtdemux.c: In function ‘qtdemux_parse_trak’:
qtdemux.c:10184:38: error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 9 has type ‘gint {aka const int}’ [-Werror=format=]
GST_DEBUG_OBJECT (qtdemux, "Found jpeg: len %u, need %lu", len,
^
Scott D Phillips [Mon, 28 Nov 2016 21:45:24 +0000 (13:45 -0800)]
qtdemux: Change off_t type to gint
off_t is a signed integer type provided by sys/types.h on posix systems.
Replace with gint for building on non-posix systems (like windows).
https://bugzilla.gnome.org/show_bug.cgi?id=775287
Scott D Phillips [Wed, 23 Nov 2016 05:00:25 +0000 (21:00 -0800)]
meson: add libm to has_function checks
The functions from math.h may be implemented in libm.
https://bugzilla.gnome.org/show_bug.cgi?id=774876
Nirbheek Chauhan [Thu, 27 Oct 2016 17:32:37 +0000 (23:02 +0530)]
Revert "meson: dv plugin now works on MSVC"
This reverts commit
05a89613feff70cff416367f5aa807a1d5c68b63.
Let's not put in stuff that needs unreleased Meson. This can go in
for the next cycle.
Sebastian Dröge [Mon, 28 Nov 2016 11:51:41 +0000 (13:51 +0200)]
avidemux: Ensure that tags are valid UTF-8 before adding them to the taglist
https://bugzilla.gnome.org/show_bug.cgi?id=775219
Sebastian Dröge [Mon, 28 Nov 2016 10:22:49 +0000 (12:22 +0200)]
multipartdemux: Post an error message on the bus if we got EOS without having added any pads
Sebastian Dröge [Mon, 28 Nov 2016 10:00:09 +0000 (12:00 +0200)]
souphttpsrc: Handle non-UTF8 headers and error reasons more gracefully
Especially don't put them into GstStructures in one way or another, just
ignore them or error out cleanly depending on the importance of their
content.
Sebastian Dröge [Mon, 28 Nov 2016 07:30:25 +0000 (09:30 +0200)]
vrawpay: Error out cleanly if mapping the video frame fails
Instead of later dereferencing NULL and crashing.
Edward Hervey [Sun, 27 Nov 2016 10:14:13 +0000 (11:14 +0100)]
rtprtxsend: Update statistics before pushing
If an element queries the number of retransmission buffers pushed
*while* the push is still taking place (and before the object lock
is taken just after) it would end up with the wrong statistic
being reported.
Increment it just before the push, avoids races when getting statistics
https://bugzilla.gnome.org/show_bug.cgi?id=768723
Tim-Philipp Müller [Sat, 26 Nov 2016 11:20:51 +0000 (11:20 +0000)]
common: use https protocol for common submodule
https://bugzilla.gnome.org/show_bug.cgi?id=775110
Philipp Zabel [Thu, 28 Jul 2016 16:51:24 +0000 (18:51 +0200)]
gstv4l2bufferpool: lock flush_stop against regular qbuf
These can be called from different threads and both manipulate the
pool->buffers array. Lock them properly and let flush_stop move the
array contents into a temporary array on the stack to avoid having
to call release_buffer under the object lock.
https://bugzilla.gnome.org/show_bug.cgi?id=775015
Philipp Zabel [Thu, 24 Nov 2016 13:25:22 +0000 (14:25 +0100)]
gstv4l2bufferpool: remove critical error message when process is called on an inactive pool
If the pool is inactive, it is guaranteed to also be flushing, so the
following check will return GST_FLOW_FLUSHING anyway.
This can happen if a v4l2src is blocking on DQBUF in create and is sent
an EOS event on another thread. In that case the pool is set to
flushing/inactive without locking, the v4l2src is unblocked, and may
call pool_process with a valid buffer on the already inactive pool.
https://bugzilla.gnome.org/show_bug.cgi?id=775014
Philipp Zabel [Thu, 24 Nov 2016 13:41:52 +0000 (14:41 +0100)]
v4l2src: release buffer if create fails
gst_base_src_get_range does not expect a buffer to be returned in
the error case, so we are leaking a reference here if create fails.
https://bugzilla.gnome.org/show_bug.cgi?id=775014
Sebastian Dröge [Wed, 23 Nov 2016 16:34:04 +0000 (18:34 +0200)]
rtpbin: Handle create_session() returning NULL in bundle code
CID 1394492.
Sebastian Dröge [Tue, 22 Nov 2016 14:42:55 +0000 (16:42 +0200)]
qtmux: Make sure to only change DTS of writable buffers
And trivial cleanup
https://bugzilla.gnome.org/show_bug.cgi?id=774840
Sebastian Dröge [Tue, 22 Nov 2016 14:42:26 +0000 (16:42 +0200)]
qtmux: Error out much earlier if we don't have a valid PTS
https://bugzilla.gnome.org/show_bug.cgi?id=774840
Sebastian Dröge [Tue, 22 Nov 2016 14:18:41 +0000 (16:18 +0200)]
qtmux: Only use buffer durations if they are actually valid
https://bugzilla.gnome.org/show_bug.cgi?id=774840
Sebastian Dröge [Tue, 22 Nov 2016 13:59:19 +0000 (15:59 +0200)]
qtmux: Revert commits that set DTS and duration on buffers unconditionally
39f7e52266fde3b3c035e22cbcbb2bb1fa207b17 was setting the buffer duration
to 0 if is not valid, under the assumption that this is "the last"
buffer and no others are coming next. This is wrong, last_buf is the
previous buffer and not the very last one.
4e3c13c87c258c9c95e2217d32ab314d12b5fffc was setting DTS to 0 if there
was none. This will set DTS to 0 for all e.g. audio streams, completely
messing up calculations if streams don't start at 0.
https://bugzilla.gnome.org/show_bug.cgi?id=774840
Sebastian Dröge [Tue, 22 Nov 2016 13:58:37 +0000 (15:58 +0200)]
qtmux: Only write "gap" edit list if there is a non-zero gap
https://bugzilla.gnome.org/show_bug.cgi?id=774840
Matthew Waters [Tue, 22 Nov 2016 20:09:06 +0000 (07:09 +1100)]
flxdec: rewrite logic based on GstByteReader/Writer
Solves overreading/writing the given arrays and will error out if the
streams asks to do that.
Also does more error checking that the stream is valid and won't
overrun any allocated arrays. Also mitigate integer overflow errors
calculating allocation sizes.
https://bugzilla.gnome.org/show_bug.cgi?id=774859
Sebastian Dröge [Wed, 23 Nov 2016 09:20:49 +0000 (11:20 +0200)]
flxdec: Don't unref() parent in the chain function
We don't own the reference here, it is owned by the caller and given to
us for the scope of this function. Leftover mistake from 0.10 porting.
https://bugzilla.gnome.org/show_bug.cgi?id=774897
Sebastian Dröge [Tue, 22 Nov 2016 18:33:29 +0000 (20:33 +0200)]
vpxdec: libvpx's release buffer is sometimes called with fb->priv==NULL
Don't assert on this but just ignore these cases.
Sebastian Dröge [Tue, 22 Nov 2016 18:24:59 +0000 (20:24 +0200)]
matroskademux: Fix cluster searching if we search multiple times in one chunk
After finding a cluster id in the byte reader, we skip ahead the reader
position by one further byte to be able to continue searching from there
inside the same chunk if the cluster candidate was a false positive.
We have to accomodate for that additional byte when resuming the search,
otherwise all following pulls are off-by-one for every resume and we run
into an assertion.
Sebastian Dröge [Tue, 22 Nov 2016 18:01:20 +0000 (20:01 +0200)]
matroska: Add size checks to the parsing of FLAC headers
Matthew Waters [Tue, 22 Nov 2016 12:46:00 +0000 (23:46 +1100)]
flxdec: fix some warnings comparing unsigned < 0
bf43f44fcfada5ec4a3ce60cb374340486fe9fac was comparing an unsigned
expression to be < 0 which was always false.
gstflxdec.c: In function ‘flx_decode_brun’:
gstflxdec.c:322:33: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
if ((glong) row - count < 0) {
^
gstflxdec.c:332:33: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
if ((glong) row - count < 0) {
^
https://bugzilla.gnome.org/show_bug.cgi?id=774834
Vivia Nikolaidou [Mon, 21 Nov 2016 14:17:31 +0000 (16:17 +0200)]
qtmux: Enable up to 16 unpositioned raw audio channels
https://bugzilla.gnome.org/show_bug.cgi?id=774789
Matthew Waters [Tue, 22 Nov 2016 08:05:00 +0000 (19:05 +1100)]
flxdec: add some write bounds checking
Without checking the bounds of the frame we are writing into, we can
write off the end of the destination buffer.
https://scarybeastsecurity.blogspot.dk/2016/11/0day-exploit-advancing-exploitation.html
https://bugzilla.gnome.org/show_bug.cgi?id=774834
David Evans [Mon, 21 Nov 2016 15:25:23 +0000 (15:25 +0000)]
qtdemux: Be sure not to read off end of FLAC dfLa box
https://bugzilla.gnome.org/show_bug.cgi?id=773712
Nicola Murino [Mon, 21 Nov 2016 10:48:58 +0000 (11:48 +0100)]
matroskademux: add support for skipping invalid data in push mode
https://bugzilla.gnome.org/show_bug.cgi?id=774566
Nicola Murino [Mon, 21 Nov 2016 10:48:29 +0000 (11:48 +0100)]
matroskaparse: add support for skipping invalid data
https://bugzilla.gnome.org/show_bug.cgi?id=774566
Sebastian Dröge [Fri, 18 Nov 2016 15:00:59 +0000 (17:00 +0200)]
rtspsrc: Move to new helper function to parse authentication responses
https://bugzilla.gnome.org/show_bug.cgi?id=774416
christophecvr [Sun, 20 Nov 2016 13:12:16 +0000 (14:12 +0100)]
qtdemux: Fix wrong compiler warning with gcc 6.2
| ../../../git/gst/isomp4/qtdemux.c: In function 'qtdemux_parse_tree':
| ../../../git/gst/isomp4/qtdemux.c:10224:24: error: 'size' may be used uninitialized in this function [-Werror=maybe-uninitialized]
| offset += size;
| ^~
| ../../../git/gst/isomp4/qtdemux.c:10197:25: note: 'size' was declared here
| guint32 size, tag;
| ^~~~
https://bugzilla.gnome.org/show_bug.cgi?id=774747
Tim-Philipp Müller [Sun, 20 Nov 2016 16:15:07 +0000 (16:15 +0000)]
win32: remove copies of generated headers
Sebastian Dröge [Sun, 20 Nov 2016 11:14:08 +0000 (13:14 +0200)]
avidemux: Ensure that raw video have properly aligned buffers
That is, aligned to to 32 bytes for video. Fixes crashes if the raw
buffers are passed to SIMD processing functions.
https://bugzilla.gnome.org/show_bug.cgi?id=774428
Sebastian Dröge [Sun, 20 Nov 2016 11:08:27 +0000 (13:08 +0200)]
qtdemux: Ensure that raw audio and video have properly aligned buffers
That is, aligned to the basic type for audio and to 32 bytes for video.
Fixes crashes if the raw buffers are passed to SIMD processing functions.
https://bugzilla.gnome.org/show_bug.cgi?id=774428
Sebastian Dröge [Mon, 14 Nov 2016 12:44:11 +0000 (14:44 +0200)]
qtmux: Always write edit lists for the tracks to give a more accurate duration
Always write an edit list for the whole track. In general this is not
necessary except for the case of having a gap or DTS adjustment but
it allows to give the whole track's duration in the usually more
accurate media timescale.
https://bugzilla.gnome.org/show_bug.cgi?id=774403
Seungha Yang [Fri, 18 Nov 2016 13:45:45 +0000 (22:45 +0900)]
qtdemux: Remove useless return variable
qtdemux_expose_streams() returns flow error immediately, if there is an error.
So, the variable for the flow return is not needed.
https://bugzilla.gnome.org/show_bug.cgi?id=774674
David Evans [Thu, 17 Nov 2016 13:59:48 +0000 (13:59 +0000)]
qtdemux: Add support for FLAC encapsulated in ISOBMFF
As defined by
https://git.xiph.org/?p=flac.git;a=blob_plain;f=doc/isoflac.txt
https://bugzilla.gnome.org/show_bug.cgi?id=773712
Sebastian Dröge [Thu, 17 Nov 2016 17:59:53 +0000 (19:59 +0200)]
rtpmux: Mark pad as needing reconfiguration again if it failed
And return FLUSHING instead of NOT_NEGOTIATED on flushing pads.
https://bugzilla.gnome.org/show_bug.cgi?id=774623
Sebastian Dröge [Thu, 17 Nov 2016 17:59:26 +0000 (19:59 +0200)]
monoscope: Mark pad as needing reconfiguration again if it failed
And return FLUSHING instead of NOT_NEGOTIATED on flushing pads.
https://bugzilla.gnome.org/show_bug.cgi?id=774623
Sebastian Dröge [Thu, 17 Nov 2016 17:58:52 +0000 (19:58 +0200)]
deinterlace: Mark pad as needing reconfiguration again if reconfiguration failed
And consider negotiation failures on flushing pads as FLUSHING, not as
NOT_NEGOTIATED.
https://bugzilla.gnome.org/show_bug.cgi?id=774623
Sebastian Dröge [Thu, 17 Nov 2016 17:56:23 +0000 (19:56 +0200)]
dvdec: Fix handling of negotiation failures
Return NOT_NEGOTIATED if sending the caps event fails, or FLUSHING if
the pad was flushing at that point.
https://bugzilla.gnome.org/show_bug.cgi?id=774623
Scott D Phillips [Fri, 18 Nov 2016 01:16:26 +0000 (17:16 -0800)]
meson: add_global_arguments -> add_project_arguments
https://bugzilla.gnome.org/show_bug.cgi?id=774656
Vinod Kesti [Wed, 16 Nov 2016 05:23:51 +0000 (10:53 +0530)]
splitmuxsink: pad request fails for flvmux
splitmuxsink requests pad from element using pad template like "video_%u", "audio_%u" and "sink_%d". This is true for most of the muxers.
But splitmuxsink not able to request pad to flvmux as flvmux has "audio" and "video" as pad templates.
fix: splitmuxsink should fallback to "audio" and "video" when template not found.
https://bugzilla.gnome.org/show_bug.cgi?id=774507
Sebastian Dröge [Thu, 17 Nov 2016 08:24:28 +0000 (10:24 +0200)]
matroskaparse: Add remaining relevant parts from
a3a55305 to the parser
https://bugzilla.gnome.org/show_bug.cgi?id=774566
Nicola Murino [Wed, 16 Nov 2016 21:39:01 +0000 (22:39 +0100)]
matroskaparse: ignore parsing errors at the end of the file
This is the same change as
a3a55305 for the parser.
https://bugzilla.gnome.org/show_bug.cgi?id=774566
Philippe Normand [Wed, 16 Nov 2016 07:56:34 +0000 (08:56 +0100)]
rtpbin: receive bundle support
A new signal named on-bundled-ssrc is provided and can be
used by the application to redirect a stream to a different
GstRtpSession or to keep the RTX stream grouped within the
GstRtpSession of the same media type.
https://bugzilla.gnome.org/show_bug.cgi?id=772740
Vinod Kesti [Tue, 15 Nov 2016 11:22:39 +0000 (16:52 +0530)]
aacparse: assertion while converting ADTS stream to RAW
aacparse resizes input buffer while converting ADTS stream to RAW,
During buffer resize buffer write permission is not checked.
This throws gst_buffer_is_writable assertion and leads to AV sync issue some times.
It is corrected by making buffer writeable using gst_buffer_make_writable
https://bugzilla.gnome.org/show_bug.cgi?id=774129
Seungha Yang [Tue, 15 Nov 2016 12:17:51 +0000 (21:17 +0900)]
qtdemux: Don't modify upstream TIME segment
TIME segment implies that stream/running time is being handled by upstream.
So, we shouldn't override it without any clue.
This patch is for fixing seek in DASH streaming.
https://bugzilla.gnome.org/show_bug.cgi?id=774196
Arun Raghavan [Mon, 14 Nov 2016 17:03:27 +0000 (22:33 +0530)]
meson: Add define for v4l2-probe config option
Sebastian Dröge [Mon, 14 Nov 2016 15:37:51 +0000 (17:37 +0200)]
deinterleave: Reset caps accumulator to ANY when resyncing the adapter, not EMPTY
The accumulator is filled by intersecting with all the pad caps, as such
it must be initialized with ANY (like it is before the iteration is
started) and not to EMPTY.
Fixes the CAPS query always returning EMPTY caps when resyncing happened
during the query, e.g. because pads were added/removed.
Petr Kulhavy [Mon, 14 Nov 2016 11:13:14 +0000 (12:13 +0100)]
udpsrc: remove redundant saddr unref
The g_object_unref (saddr) before receiving message seems to be redundant as it
is done just before jumping to retry
Though not directly related, part of
https://bugzilla.gnome.org/show_bug.cgi?id=772841
Petr Kulhavy [Sat, 12 Nov 2016 22:34:23 +0000 (23:34 +0100)]
udpsrc: receive control messages only in multicast
Control messages are used only in multicast mode - to detect if the destination
address is not ours and possibly drop the packet. However in non-multicast
modes the messages are still allocated and freed even if not used. Therefore
request control messages from g_socket_receive_message() only in multicast
mode.
https://bugzilla.gnome.org/show_bug.cgi?id=772841
Scott D Phillips [Fri, 11 Nov 2016 18:45:01 +0000 (10:45 -0800)]
Use intermediate guint when handling GstVideoMultiviewFlags
The underlying integer type of the enum GstVideoMultiviewFlags is
implementation defined and may not have the same size as guint.
https://bugzilla.gnome.org/show_bug.cgi?id=774293
Scott D Phillips [Fri, 11 Nov 2016 18:44:18 +0000 (10:44 -0800)]
splitfilesrc: update uri_get_type to match the prototype in GstURIHandlerInterface
https://bugzilla.gnome.org/show_bug.cgi?id=774293
Scott D Phillips [Thu, 27 Oct 2016 05:37:34 +0000 (22:37 -0700)]
meson: don't add_global_arguments when being built as a subproject
https://bugzilla.gnome.org/show_bug.cgi?id=773568
Vincent Penquerc'h [Fri, 21 Oct 2016 14:49:36 +0000 (15:49 +0100)]
flacparse: fix header rewriting being ignored
https://bugzilla.gnome.org/show_bug.cgi?id=727802
Sean DuBois [Wed, 9 Nov 2016 06:25:27 +0000 (06:25 +0000)]
flvmux: Add metadatacreator property
Allow users to set metadatacreator value in the meta packet
https://bugzilla.gnome.org/show_bug.cgi?id=774131
Vivia Nikolaidou [Tue, 1 Nov 2016 17:56:36 +0000 (19:56 +0200)]
splitmuxsink: Use first buffer TS as mux start time
Do not use last buffer TS + buffer duration because buffer duration
might be inaccurate, especially for frame rates like 30fps where a
rounding error is observed.
https://bugzilla.gnome.org/show_bug.cgi?id=773785
Havard Graff [Thu, 3 Nov 2016 14:03:59 +0000 (15:03 +0100)]
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 - erlend@pexip.com
https://bugzilla.gnome.org/show_bug.cgi?id=773891
Havard Graff [Sun, 9 Oct 2016 13:59:05 +0000 (15:59 +0200)]
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).
Havard Graff [Thu, 3 Nov 2016 15:33:53 +0000 (16:33 +0100)]
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
Tim-Philipp Müller [Thu, 3 Nov 2016 13:27:51 +0000 (13:27 +0000)]
tests: wavparse: add test for processing an actual .wav file
https://bugzilla.gnome.org/show_bug.cgi?id=773861
Sebastian Dröge [Thu, 3 Nov 2016 10:34:51 +0000 (12:34 +0200)]
wavparse: Don't set caps to NULL after setting them on the srcpad
We would like to check later on EOS if we found a known stream type or
not, to possibly post an error message.
https://bugzilla.gnome.org/show_bug.cgi?id=773861
Sebastian Dröge [Wed, 2 Nov 2016 12:33:28 +0000 (14:33 +0200)]
qtmux: Don't deref NULL pads in debug output
That tends to crash.
Jan Schmidt [Wed, 2 Nov 2016 00:46:07 +0000 (11:46 +1100)]
isomp4: Don't use gst_video_colorimetry_to_string_full()
The API was reverted. Just use the plain
gst_video_colorimetry_to_string() function.
Jan Schmidt [Wed, 2 Nov 2016 00:00:13 +0000 (11:00 +1100)]
splitmuxsink: Fix GObject warnings on shutdown.
Commit 83e718 added a pad template to splitmux request
pads, which means that GstElement now releases the pads on
dispose, but after having removed all elements in the bin
and unlinked them. Make sure we can handle cleanup in that case
without throwing assertions.
https://bugzilla.gnome.org/show_bug.cgi?id=773784
Jan Schmidt [Tue, 1 Nov 2016 15:25:51 +0000 (02:25 +1100)]
splitmuxsrc: Store seek seqnum and send it on EOS / segment events.
GES relies on the EOS event having the seqnum of the seek that
caused it.
Jan Schmidt [Tue, 1 Nov 2016 15:25:00 +0000 (02:25 +1100)]
splitmuxsrc: Forward a not-linked error on the bus
Handle not-linked as for other fatal errors and post it
onto the bus so the app knows