Vincent Penquerc'h [Mon, 5 May 2014 13:32:06 +0000 (14:32 +0100)]
matroskamux: ensure we don't dereference a NULL pointer
while working out the codec ID.
Coverity 1195148
Tim-Philipp Müller [Mon, 5 May 2014 11:07:25 +0000 (12:07 +0100)]
v4l2: minor fix for closing the fd
The fd returned by open() could theoretically be 0 as well.
Coverity CID 1211823.
Olivier Crête [Mon, 5 May 2014 00:23:29 +0000 (20:23 -0400)]
rtpaux/rtprtx: Make tests non-racy
Fix the raciness by iterating on a condition instead of using the gmainloop.
Don't use the EOS as the target, otherwise the retransmission of the last
packets are lost. Also count the retranmissions requests that are dropped.
Check the condition before blocking on the GCond
https://bugzilla.gnome.org/show_bug.cgi?id=728501
Olivier Crête [Mon, 5 May 2014 02:32:54 +0000 (22:32 -0400)]
rtprtxreceive: Wait until timeout to clear association requests
If two streams request a retranmission for the same SSRC, ignore the second
one if the first oen is less than one second old, otherwise time out the first
one and ignore the second.
Olivier Crête [Sun, 4 May 2014 22:59:33 +0000 (18:59 -0400)]
rtpmux: Always let upstream chose the ssrc if it wishes
Mark Nauwelaerts [Sun, 4 May 2014 11:37:46 +0000 (13:37 +0200)]
rtpjitterbuffer: avoid stall by corrupted seqnum accounting
Olivier Crête [Sun, 4 May 2014 05:14:33 +0000 (01:14 -0400)]
pulsedevicemonitor: Index are per facility, not global
So need to keep the type of device in the device object
Olivier Crête [Sun, 4 May 2014 05:13:24 +0000 (01:13 -0400)]
pulsedevicemonitor: pa_subscription_event_t are enums, not flags
Coverity 1195132
Nicolas Dufresne [Sat, 3 May 2014 02:42:54 +0000 (22:42 -0400)]
v4l2devicemonitor: Port to use GstV4l2Iterator
https://bugzilla.gnome.org/show_bug.cgi?id=727925
Nicolas Dufresne [Sat, 3 May 2014 01:38:30 +0000 (21:38 -0400)]
v4l2: Use single pass iterator for M2M probe
Instead of having each M2M class do their own probing, use the
GstV4l2Iterator and probe all devices in a single pass.
https://bugzilla.gnome.org/show_bug.cgi?id=727925
Nicolas Dufresne [Fri, 2 May 2014 20:55:05 +0000 (16:55 -0400)]
v4l2: Add a common device enumerator
This will allow removing code duplication (hence bugs duplication).
https://bugzilla.gnome.org/show_bug.cgi?id=727925
Nicolas Dufresne [Sun, 16 Mar 2014 10:38:07 +0000 (11:38 +0100)]
v4l2videodec: Simplify sub-instanciation mechanism
Simplify sub-instanciation by defining an absract type and using subtype
class and instance init callback. This also fixes a bug where the template
pads get initialized too late.
https://bugzilla.gnome.org/show_bug.cgi?id=727925
Nicolas Dufresne [Fri, 2 May 2014 22:18:26 +0000 (18:18 -0400)]
v4l2: Cleanup plugin registration
There is no plan to introduce special sources for jpeg, te v4l2src works fine
for this.
https://bugzilla.gnome.org/show_bug.cgi?id=727925
Olivier Crête [Sat, 3 May 2014 22:30:20 +0000 (18:30 -0400)]
rtpsession: Keep local conflicting addresses in the session
As we now replace the local RTPSource on a conflict, it's no longer possible
to keep local conflicts in the RTPSource, so they instead need to be kept
in the RTPSession.
Also fix the rtpcollision test to generate multiple collisions instead of
one by change the address, as otherwise we detected that it was a single one.
Sebastian Dröge [Sat, 3 May 2014 18:48:30 +0000 (20:48 +0200)]
Back to development
Sebastian Dröge [Sat, 3 May 2014 16:02:23 +0000 (18:02 +0200)]
Release 1.3.1
Sebastian Dröge [Sat, 3 May 2014 16:02:01 +0000 (18:02 +0200)]
Update .po files
Sebastian Dröge [Sat, 3 May 2014 15:22:45 +0000 (17:22 +0200)]
po: Update translations
Sebastian Dröge [Sat, 3 May 2014 09:43:21 +0000 (11:43 +0200)]
shapewipe: Send initial events after setting the elements to PLAYING
Otherwise we send them too early, and setting the elements to PLAYING
afterwards will drop all the events again.
Sebastian Dröge [Sat, 3 May 2014 08:15:03 +0000 (10:15 +0200)]
Automatic update of common submodule
From bcb1518 to 211fa5f
Sebastian Dröge [Fri, 2 May 2014 15:12:29 +0000 (17:12 +0200)]
imagefreeze: Set segment position to the stop position of the buffer
Sebastian Dröge [Fri, 2 May 2014 15:10:18 +0000 (17:10 +0200)]
imagefreeze: Properly report errors before stopping the srcpad task
Sebastian Dröge [Fri, 2 May 2014 15:02:02 +0000 (17:02 +0200)]
imagefreeze: Error out if we have no caps yet
Vincent Penquerc'h [Fri, 2 May 2014 13:49:27 +0000 (14:49 +0100)]
wavparse: avoid dividing by a 0 blockalign
This can be 0. In that case, do not try to cut off the last few
bytes from the last buffer.
Coverity 1146971
Vincent Penquerc'h [Fri, 2 May 2014 13:25:01 +0000 (14:25 +0100)]
matroskamux: do not use uinitialized clut on error
If we're missing part of the clut, do not try to use it. It seems
very likely the break was meant to break out of the switch rather
than from the loop.
Coverity 1139878
Vincent Penquerc'h [Fri, 2 May 2014 13:18:08 +0000 (14:18 +0100)]
flxdec: fix integer overflow
Coverity 1139859
Vincent Penquerc'h [Fri, 2 May 2014 13:09:02 +0000 (14:09 +0100)]
rtpqdmdepay: remove pointless check
Besides, the pointer was dereferenced earlier anyway.
Coverity 1139853
Vincent Penquerc'h [Fri, 2 May 2014 13:06:25 +0000 (14:06 +0100)]
rtspsrc: remove duplicate test
item was dereference previously.
While there, reorder some test for faster early out.
Coverity 1139844
Vincent Penquerc'h [Fri, 2 May 2014 13:02:52 +0000 (14:02 +0100)]
vp8enc: guard against NULL pointer dereference
Coverity 1139838
Vincent Penquerc'h [Fri, 2 May 2014 12:59:07 +0000 (13:59 +0100)]
flacdec: fix theoretical integer overflow
This code isn't actually used at the moment, unsure if I should
just remove it or not...
Coverity 1139811
Vincent Penquerc'h [Fri, 2 May 2014 12:33:02 +0000 (13:33 +0100)]
matroska: blindly fix writing variable length negative values
Spotted while fixing something else in the area.
Nothing calls this with a negative value.
Vincent Penquerc'h [Fri, 2 May 2014 12:29:33 +0000 (13:29 +0100)]
matroska: do not lose the top bits when writing a > 32 bit value
Coverity 1139806
Vincent Penquerc'h [Fri, 2 May 2014 11:10:26 +0000 (12:10 +0100)]
videoflip: add missing break in switch
Coverity 1139755
Vincent Penquerc'h [Fri, 2 May 2014 10:39:39 +0000 (11:39 +0100)]
matroska: do not try to call gst_pad_query_default on a NULL pad
gst_matroska_parse_query can be called explicitely with a NULL pad.
If we reach this point with a NULL pad, fail the query.
Coverity 1139715
Vincent Penquerc'h [Fri, 2 May 2014 10:28:01 +0000 (11:28 +0100)]
matroska: do not return GST_FLOW_OK if we did not get a buffer
Coverity 1139714 (which will likely come back in another guise,
as the _read_init call can have a failing _map)
Vincent Penquerc'h [Fri, 2 May 2014 10:20:33 +0000 (11:20 +0100)]
matroska: catch failure to map buffer
Avoids dereferencing NULL.
Coverity 1139712
Vincent Penquerc'h [Fri, 2 May 2014 09:52:44 +0000 (10:52 +0100)]
avimux: refuse caps with invalid framerate
Coverity 1139701
Vincent Penquerc'h [Fri, 2 May 2014 09:21:09 +0000 (10:21 +0100)]
qtmux: handle 0 size packets without dividing by 0
Coverity 1139691
Vincent Penquerc'h [Fri, 2 May 2014 08:49:32 +0000 (09:49 +0100)]
qtdemux: guard against invalid frame size to avoid division by 0
Coverity 1139690
Vincent Penquerc'h [Fri, 2 May 2014 08:49:17 +0000 (09:49 +0100)]
qtdemux: trivial typo fix
Vincent Penquerc'h [Fri, 2 May 2014 08:43:54 +0000 (09:43 +0100)]
speexdec: remove dead code
fpp can never equal 0 here, or the loop would not execute at all.
Zero fpp was possible before as the loop condition was allowing
it specifically, but no more.
Coverity 1139681
Vincent Penquerc'h [Fri, 2 May 2014 08:41:19 +0000 (09:41 +0100)]
oss4: remove dead mixer code
This was partly removed in the port to 0.11. If still needed,
it's still there in the history.
Coverity 1139687
Vincent Penquerc'h [Fri, 2 May 2014 08:33:51 +0000 (09:33 +0100)]
oss4: fix a missing unlock and a return-only-when-assertions-enabled
Spotted on the side while looking at another issue.
Nicolas Dufresne [Fri, 7 Mar 2014 22:31:29 +0000 (17:31 -0500)]
v4l2: Correctly map RGB32 format
In v4l2 specification, RGB32 has the alpha, or pading, first, not last.
See http://linuxtv.org/downloads/v4l-dvb-apis/packed-rgb.html .
https://bugzilla.gnome.org/show_bug.cgi?id=540941
Vincent Penquerc'h [Wed, 30 Apr 2014 17:06:40 +0000 (18:06 +0100)]
flacdec: remove dead code
For 8 bit width, we always have depth==gdepth==width==8.
Coverity 1139678
Vincent Penquerc'h [Wed, 30 Apr 2014 16:48:53 +0000 (17:48 +0100)]
mpegaudioparse: remove dead code
A stricer check is already done earlier, and integer overflows
do not seem possible here.
Coverity 1139675
Vincent Penquerc'h [Wed, 30 Apr 2014 13:50:44 +0000 (14:50 +0100)]
rtpvrawpay: guard against pathological "no space" condition
Even if one woul hope one pixel can fit in a MTU, ensure we do not
overwrite a buffer if this is not the case.
Spotted while looking at Coverity 1208786
Vincent Penquerc'h [Wed, 30 Apr 2014 10:52:10 +0000 (11:52 +0100)]
rtpjpegdepay: sanity check for NULL qtable
Can happen (at least in crafted stream)
Coverity 1208778
Tim-Philipp Müller [Wed, 30 Apr 2014 00:08:41 +0000 (01:08 +0100)]
wavparse: pass on tags from upstream if there are any
Don't just ignore upstream tags from e.g. an ID3 tag before
the .wav data, pass them on downstream.
https://bugzilla.gnome.org/show_bug.cgi?id=729223
Wim Taymans [Tue, 29 Apr 2014 14:26:53 +0000 (16:26 +0200)]
rtpjitterbuffer: optimize timer update
When we are not doing retransmission, we just need to find the current
seqnum so we can stop when we found it.
Wim Taymans [Tue, 29 Apr 2014 14:21:44 +0000 (16:21 +0200)]
rtpjitterbuffer: small optimizations
Small optimizations where we can.
Add some more debug.
Wim Taymans [Tue, 29 Apr 2014 14:16:17 +0000 (16:16 +0200)]
rtpjitterbuffer: signal when next_seqnum changed
Signal the pushing thread when the next_seqnum changed and we might be
able to push a buffer now.
Wim Taymans [Tue, 29 Apr 2014 14:12:29 +0000 (16:12 +0200)]
rtpjitterbuffer: only signal event when head changed
After adding a buffer, only signal the pushing thread when the head
buffer changed or else we cause a useless wakeup.
Wim Taymans [Tue, 29 Apr 2014 13:29:31 +0000 (15:29 +0200)]
rtpjitterbuffer: rework packet insert
Rework the packet queue so that the most common action (insert a packet
at the tail of the queue) goes very fast.
Report if a packet was inserted at the head instead of the tail so that
we can know when to retry _pop or _peek.
Wim Taymans [Mon, 28 Apr 2014 12:41:10 +0000 (14:41 +0200)]
rtpvraw: use plane pointers when needed
Pack/unpack planar formats to/from the first plane.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=729058
Sebastian Dröge [Mon, 28 Apr 2014 07:47:10 +0000 (09:47 +0200)]
souphttpsrc: Remember if a redirect is permanent or not and store it in the query
Nicolas Dufresne [Mon, 28 Apr 2014 01:57:31 +0000 (21:57 -0400)]
goom: Remove french comment saying to prefix functions
All non-static function in this file are already prefixed with goom_.
Tim-Philipp Müller [Sun, 27 Apr 2014 23:20:47 +0000 (00:20 +0100)]
goom: fix compilation on ios-arm7-10.9 and osx-x86_64
uint is not a standard type, and the rest of the code uses
Uint which is locally typedefed to unsigned int.
https://bugzilla.gnome.org/show_bug.cgi?id=729067
Luis de Bethencourt [Sun, 27 Apr 2014 22:29:11 +0000 (18:29 -0400)]
goom: fix undefined behaviour of left-shift
Don't left-shift into the sign bit, the result is undefined and potentially
an overflow could flip the sign.
Luis de Bethencourt [Sun, 27 Apr 2014 00:51:36 +0000 (20:51 -0400)]
qtdemux: check return from qt_demux_video_caps
Now qtdemux_video_caps() can return NULL. We need to check this return before
using it's value.
https://bugzilla.gnome.org/show_bug.cgi?id=728987
Tim-Philipp Müller [Sat, 26 Apr 2014 22:35:17 +0000 (23:35 +0100)]
docs: remove outdated and pointless 'Last reviewed' lines from docs
They are very confusing for people, and more often than not
also just not very accurate. Seeing 'last reviewed: 2005' in
your docs is not very confidence-inspiring. Let's just remove
those comments.
Luis de Bethencourt [Fri, 25 Apr 2014 21:58:42 +0000 (17:58 -0400)]
qtdemux: initialize caps pointer to null
Make sure the caps pointer returns initialized when using it in
qtdemux_parse_tree ().
https://bugzilla.gnome.org/show_bug.cgi?id=728987
Jan Schmidt [Tue, 22 Apr 2014 07:07:38 +0000 (17:07 +1000)]
rtpjitterbuffer: Clear last_pt on flush-stop.
Otherwise, we don't recheck the buffer caps for clock-rate
properly on the next chain.
Sebastian Dröge [Tue, 22 Apr 2014 15:29:02 +0000 (17:29 +0200)]
deinterlace: Fix compiler warning
gstdeinterlace.c: In function 'gst_deinterlace_output_frame':
gstdeinterlace.c:1537:57: error: 'pattern.length' may be used uninitialized in this function [-Werror=maybe-uninitialized]
This actually is always initialized before it is used there, but
let's just silence gcc here.
Vincent Penquerc'h [Mon, 21 Apr 2014 14:58:45 +0000 (15:58 +0100)]
rtpmux: fix buffer list drop check
While porting to 0.11, the check was mistakenly made constant,
instead of testing for the return value of process_buffer_locked.
Coverity 1139663
Vincent Penquerc'h [Mon, 21 Apr 2014 12:44:15 +0000 (13:44 +0100)]
matroska: fix content encoding scope validity check
It's 3 bits, and http://matroska.org/technical/specs/index.html
says it can't be 0.
Coverity 1139660
Vincent Penquerc'h [Mon, 21 Apr 2014 12:34:37 +0000 (13:34 +0100)]
matroskamux: fix PAR fraction sanity check
It was checking par_num twice, and never par_denum.
Coverity 1139634
Vincent Penquerc'h [Mon, 21 Apr 2014 12:32:40 +0000 (13:32 +0100)]
multiidpsink: warn when setsockopt fails
This doesn't seem to be fatal, but it's good to let the user know
in the logs.
Coverity 1139630
Vincent Penquerc'h [Mon, 21 Apr 2014 12:27:24 +0000 (13:27 +0100)]
interlace: catch failure to create audio info from caps
Coverity 1139627, 1139628
Göran Jönsson [Thu, 13 Mar 2014 08:37:48 +0000 (09:37 +0100)]
gstrtph264pay: Reset sps pps variable when state change.
Reset last_spspps and sps/pps arrays when state transition
GST_STATE_CHANGE_PAUSED_TO_READY.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=726015
Wim Taymans [Fri, 18 Apr 2014 09:11:14 +0000 (11:11 +0200)]
jitterbuffer: improve EOS handling
Make a new method to disable the jitterbuffer buffering.
Rework the update_estimated_eos() method. Calculate how much time
there is left to play. If we have less than the delay of the
jitterbuffer, we disabled buffering because we might never be able to
fill the complete jitterbuffer again.
If we receive an EOS event, disable buffering. We will drain the
buffer and eventually push the EOS event out.
When we reach the estimated NPT timeout and we didn't receive an EOS
event, make one and queue it so that it can be pushed.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=728017
Wim Taymans [Fri, 18 Apr 2014 08:21:27 +0000 (10:21 +0200)]
rtpsession: send reconfigure when internal-ssrc changes
When the internal-ssrc property changes, we want to send a reconfigure
upstream to make payloaders use the new suggested ssrc.
Using the internal-ssrc property to change the SSRC of a stream is not a
good idea and doesn't work when there are multiple senders, we want to
set the SSRC directly on the payloaders. Therefore, deprecate this
property.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=725361
Wim Taymans [Fri, 18 Apr 2014 02:23:26 +0000 (04:23 +0200)]
jitterbuffer: assume a full buffer when eos
Rework the logic to make buffering messages a little, make sure we
don't make the same message multiple times.
Consider the buffer full when EOS was received.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=728017
Sebastian Dröge [Thu, 17 Apr 2014 16:07:09 +0000 (18:07 +0200)]
rtprtx: Don't forget to unmap rtp buffer in the test
Sebastian Dröge [Thu, 17 Apr 2014 15:58:58 +0000 (17:58 +0200)]
rtprtxsend: Require clock-rate in the caps and handle no ssrc in the caps properly
Sebastian Dröge [Thu, 17 Apr 2014 15:43:12 +0000 (17:43 +0200)]
rtprtx: Provide an ssrc in the test
And increase timeout to allow all tests to run in valgrind.
Sebastian Dröge [Thu, 17 Apr 2014 15:33:46 +0000 (17:33 +0200)]
rtpsession: Fix memory leaks in test
Sebastian Dröge [Thu, 17 Apr 2014 15:26:36 +0000 (17:26 +0200)]
rtpjitterbuffer: Fix hundreds of memory leaks in the test
Sebastian Dröge [Thu, 17 Apr 2014 15:00:37 +0000 (17:00 +0200)]
rtpjitterbuffer: Unref clock id when waiting for the clock is interrupted
Sebastian Dröge [Thu, 17 Apr 2014 14:39:59 +0000 (16:39 +0200)]
rtpcollision: Fix memory leaks in unit test
Tim-Philipp Müller [Wed, 16 Apr 2014 20:40:45 +0000 (21:40 +0100)]
videomixer: name collectpads object based on videomixer name
Makes it easier to track things in debug logs when there
are multiple mixers and muxers.
Tim-Philipp Müller [Wed, 16 Apr 2014 20:37:12 +0000 (21:37 +0100)]
videomixer: better logging of incoming events
The pad and parent names are already logged as part of logging
the object. Instead log the full event details.
Sebastian Dröge [Wed, 16 Apr 2014 17:03:47 +0000 (19:03 +0200)]
videomixer: Fix memory leak in unit test
Sebastian Dröge [Wed, 16 Apr 2014 16:49:43 +0000 (18:49 +0200)]
level: Use the correct number of samples to iterate over the input array
Fixes invalid memory accesses and accesses to uninitialised data.
Sebastian Dröge [Wed, 16 Apr 2014 16:00:49 +0000 (18:00 +0200)]
icydemux: Unref dropped events
Vincent Penquerc'h [Wed, 16 Apr 2014 16:29:30 +0000 (17:29 +0100)]
matroska: fix check for amount of data to read
History shows length==0 should set data to NULL and return,
so we do that too instead of trying to read nothing.
Coverity 206205
Vincent Penquerc'h [Wed, 16 Apr 2014 16:25:44 +0000 (17:25 +0100)]
deinterlace: fix sign comparison
history_count is unsigned, so the whole comparison will be made
as unsigned, and fail to reject what it was meant to.
Coverity 206204
Vincent Penquerc'h [Wed, 16 Apr 2014 16:04:50 +0000 (17:04 +0100)]
avidemux: remove dead code
sub may not be NULL in this switch, there is a bail out just
before it if so.
Coverity 206098
Vincent Penquerc'h [Wed, 16 Apr 2014 15:59:43 +0000 (16:59 +0100)]
flacparse: remove dead code
The block_size == 0 was shortcut earlier, and the variable is not
modified in the meantime.
Coverity 206097
Vincent Penquerc'h [Wed, 16 Apr 2014 15:56:54 +0000 (16:56 +0100)]
videomixer: remove dead code
While it seems to keep a compile time selection, I traced it
to some code copied from videoconvert, where it was removed,
with the following comment:
Also remove the high-quality I420 to BGRA fast-path as it needs
the same fix, which causes an additional instruction, which causes
orc to emit more than 96 variables, which then just crashes.
This can only be fixed in orc by breaking ABI and allowing more
variables.
Thus, I remove it here as well.
Coverity 206064
Vincent Penquerc'h [Wed, 16 Apr 2014 15:50:30 +0000 (16:50 +0100)]
isomp4: fix incorrect masking for multiple tags
Coverity 206058
Vincent Penquerc'h [Wed, 16 Apr 2014 15:45:08 +0000 (16:45 +0100)]
isomp4: fix wrong atom flags set when adding samples
Coverity 206057
Vincent Penquerc'h [Wed, 16 Apr 2014 15:40:02 +0000 (16:40 +0100)]
audiofx: fix comparison of delta time to a threshold
Coverity 206055
Vincent Penquerc'h [Wed, 16 Apr 2014 15:32:26 +0000 (16:32 +0100)]
wavparse: do not rely on call failure keeping return data unmodified
This is clearer this way too.
Coverity 206029
Vincent Penquerc'h [Wed, 16 Apr 2014 15:28:49 +0000 (16:28 +0100)]
isomp4: catch fseek error
Coverity 206028
Vincent Penquerc'h [Wed, 16 Apr 2014 15:25:44 +0000 (16:25 +0100)]
isomp4: report failures to caller
Coverity 206027
Wim Taymans [Wed, 16 Apr 2014 16:05:46 +0000 (18:05 +0200)]
rtpjitterbuffer: refuse serialied query when buffering
When we are buffering, we can't block and wait for the serialized query
to complete because the jitterbuffer will not try to forward the query
while buffering. Instead, just refuse the query.
Wim Taymans [Wed, 16 Apr 2014 14:51:15 +0000 (16:51 +0200)]
rtpjitterbuffer: don't free the serialized query
We should never free a serialized query in the queue, it is the upstream
caller that will free it.
Sebastian Dröge [Wed, 16 Apr 2014 15:35:42 +0000 (17:35 +0200)]
aacparse: Fix memory leak in the test
Sebastian Dröge [Wed, 16 Apr 2014 15:33:46 +0000 (17:33 +0200)]
videomixer: Create hashtable only when we actually use it
In error cases we previously returned without freeing it.