Sebastian Dröge
4933394d35
imagefreeze: Error out if we have no caps yet
2014-05-02 17:14:29 +02:00
Vincent Penquerc'h
218294b9f3
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
2014-05-02 14:49:27 +01:00
Vincent Penquerc'h
590e20cbc9
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
2014-05-02 14:25:01 +01:00
Vincent Penquerc'h
d917c94037
flxdec: fix integer overflow
...
Coverity 1139859
2014-05-02 14:18:08 +01:00
Vincent Penquerc'h
60ba2d7aee
rtpqdmdepay: remove pointless check
...
Besides, the pointer was dereferenced earlier anyway.
Coverity 1139853
2014-05-02 14:09:02 +01:00
Vincent Penquerc'h
a846e84349
rtspsrc: remove duplicate test
...
item was dereference previously.
While there, reorder some test for faster early out.
Coverity 1139844
2014-05-02 14:06:25 +01:00
Vincent Penquerc'h
5c22bcf6e9
matroska: blindly fix writing variable length negative values
...
Spotted while fixing something else in the area.
Nothing calls this with a negative value.
2014-05-02 13:33:02 +01:00
Vincent Penquerc'h
5b9fa4e63a
matroska: do not lose the top bits when writing a > 32 bit value
...
Coverity 1139806
2014-05-02 13:29:33 +01:00
Vincent Penquerc'h
10663decd9
videoflip: add missing break in switch
...
Coverity 1139755
2014-05-02 12:10:26 +01:00
Vincent Penquerc'h
a0bc24558e
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
2014-05-02 11:39:39 +01:00
Vincent Penquerc'h
3915884017
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)
2014-05-02 11:28:01 +01:00
Vincent Penquerc'h
f5a9f5e221
matroska: catch failure to map buffer
...
Avoids dereferencing NULL.
Coverity 1139712
2014-05-02 11:20:33 +01:00
Vincent Penquerc'h
94720fd3a1
avimux: refuse caps with invalid framerate
...
Coverity 1139701
2014-05-02 10:53:00 +01:00
Vincent Penquerc'h
1be86ebb2a
qtmux: handle 0 size packets without dividing by 0
...
Coverity 1139691
2014-05-02 10:21:09 +01:00
Vincent Penquerc'h
b692539b55
qtdemux: guard against invalid frame size to avoid division by 0
...
Coverity 1139690
2014-05-02 09:49:32 +01:00
Vincent Penquerc'h
436c8c11a0
qtdemux: trivial typo fix
2014-05-02 09:49:17 +01:00
Vincent Penquerc'h
0253db6d36
mpegaudioparse: remove dead code
...
A stricer check is already done earlier, and integer overflows
do not seem possible here.
Coverity 1139675
2014-04-30 17:48:53 +01:00
Vincent Penquerc'h
a55b8e9c00
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
2014-04-30 14:50:44 +01:00
Vincent Penquerc'h
dfa2df1c88
rtpjpegdepay: sanity check for NULL qtable
...
Can happen (at least in crafted stream)
Coverity 1208778
2014-04-30 11:52:10 +01:00
Tim-Philipp Müller
b1473491cf
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
2014-04-30 01:08:41 +01:00
Wim Taymans
eba3bba524
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.
2014-04-29 16:26:53 +02:00
Wim Taymans
b2c9646acb
rtpjitterbuffer: small optimizations
...
Small optimizations where we can.
Add some more debug.
2014-04-29 16:21:44 +02:00
Wim Taymans
df04fcbb5d
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.
2014-04-29 16:16:17 +02:00
Wim Taymans
3cd0e8ae88
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.
2014-04-29 16:12:29 +02:00
Wim Taymans
18b69419fd
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.
2014-04-29 16:02:37 +02:00
Wim Taymans
9994ff2c6c
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
2014-04-28 14:45:57 +02:00
Nicolas Dufresne
d87cc7bacf
goom: Remove french comment saying to prefix functions
...
All non-static function in this file are already prefixed with goom_.
2014-04-27 21:57:38 -04:00
Tim-Philipp Müller
02436f52c6
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
2014-04-28 00:24:16 +01:00
Luis de Bethencourt
3943c3ec08
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.
2014-04-27 18:31:48 -04:00
Luis de Bethencourt
5dc2e6bef1
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
2014-04-26 20:51:36 -04:00
Tim-Philipp Müller
c9597298f9
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.
2014-04-26 23:35:17 +01:00
Luis de Bethencourt
c073a6c779
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
2014-04-25 18:23:23 -04:00
Jan Schmidt
f2d0ddf113
rtpjitterbuffer: Clear last_pt on flush-stop.
...
Otherwise, we don't recheck the buffer caps for clock-rate
properly on the next chain.
2014-04-23 18:54:16 +10:00
Sebastian Dröge
25ed0a30a4
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.
2014-04-22 17:29:02 +02:00
Vincent Penquerc'h
f10c3f1a76
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
2014-04-21 17:21:20 +01:00
Vincent Penquerc'h
d9eb5f7fde
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
2014-04-21 17:21:20 +01:00
Vincent Penquerc'h
54c5710adb
matroskamux: fix PAR fraction sanity check
...
It was checking par_num twice, and never par_denum.
Coverity 1139634
2014-04-21 17:21:20 +01:00
Vincent Penquerc'h
25fa88f8aa
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
2014-04-21 17:21:20 +01:00
Vincent Penquerc'h
e526412afa
interlace: catch failure to create audio info from caps
...
Coverity 1139627, 1139628
2014-04-21 17:21:20 +01:00
Göran Jönsson
80967c7638
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
2014-04-21 12:07:20 +02:00
Wim Taymans
3e11ce43b9
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
2014-04-18 14:07:31 +02:00
Wim Taymans
38a486b374
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
2014-04-18 10:21:27 +02:00
Wim Taymans
42cfedde7f
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
2014-04-18 04:27:39 +02:00
Sebastian Dröge
27cf71e209
rtprtxsend: Require clock-rate in the caps and handle no ssrc in the caps properly
2014-04-17 17:58:58 +02:00
Sebastian Dröge
897c02cace
rtpjitterbuffer: Unref clock id when waiting for the clock is interrupted
2014-04-17 17:00:37 +02:00
Tim-Philipp Müller
77badda6b9
videomixer: name collectpads object based on videomixer name
...
Makes it easier to track things in debug logs when there
are multiple mixers and muxers.
2014-04-16 21:40:45 +01:00
Tim-Philipp Müller
f8d15b1e56
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.
2014-04-16 21:38:35 +01:00
Sebastian Dröge
b21b46a07a
level: Use the correct number of samples to iterate over the input array
...
Fixes invalid memory accesses and accesses to uninitialised data.
2014-04-16 18:50:50 +02:00
Sebastian Dröge
bd65c36cbb
icydemux: Unref dropped events
2014-04-16 18:50:50 +02:00
Vincent Penquerc'h
457712b933
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
2014-04-16 17:44:51 +01:00
Vincent Penquerc'h
46a39bdd4f
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
2014-04-16 17:44:51 +01:00
Vincent Penquerc'h
c6acd6368b
avidemux: remove dead code
...
sub may not be NULL in this switch, there is a bail out just
before it if so.
Coverity 206098
2014-04-16 17:44:51 +01:00
Vincent Penquerc'h
937269d02e
flacparse: remove dead code
...
The block_size == 0 was shortcut earlier, and the variable is not
modified in the meantime.
Coverity 206097
2014-04-16 17:44:50 +01:00
Vincent Penquerc'h
2e120c9440
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
2014-04-16 17:44:50 +01:00
Vincent Penquerc'h
595a9cb5c5
isomp4: fix incorrect masking for multiple tags
...
Coverity 206058
2014-04-16 17:44:50 +01:00
Vincent Penquerc'h
a5b7c12e35
isomp4: fix wrong atom flags set when adding samples
...
Coverity 206057
2014-04-16 17:44:50 +01:00
Vincent Penquerc'h
d2b682c271
audiofx: fix comparison of delta time to a threshold
...
Coverity 206055
2014-04-16 17:44:50 +01:00
Vincent Penquerc'h
7ebfdbeaf8
wavparse: do not rely on call failure keeping return data unmodified
...
This is clearer this way too.
Coverity 206029
2014-04-16 17:44:50 +01:00
Vincent Penquerc'h
b344b29ff2
isomp4: catch fseek error
...
Coverity 206028
2014-04-16 17:44:50 +01:00
Vincent Penquerc'h
88eccee88c
isomp4: report failures to caller
...
Coverity 206027
2014-04-16 17:44:50 +01:00
Wim Taymans
783b4ba2c4
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.
2014-04-16 18:16:33 +02:00
Wim Taymans
233e9e64b8
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.
2014-04-16 18:16:32 +02:00
Sebastian Dröge
74c23f0f4f
videomixer: Create hashtable only when we actually use it
...
In error cases we previously returned without freeing it.
2014-04-16 17:33:46 +02:00
Sebastian Dröge
d3a2b3c73a
videomixer: Chain up to the parent class' dispose function
2014-04-16 17:30:59 +02:00
Marc Leeman
5b4681dfe7
udpsrc: correct LOG msg for -1
...
Signed-off-by: Marc Leeman <marc.leeman@gmail.com>
2014-04-16 13:54:40 +01:00
Sebastian Dröge
b038fd4eff
interleave: Fix negotiation to work at all again
...
The caps query handling function for the sinkpads was called for
the srcpad, and the sinkpads had none. This commit moves it to the
right pad, but nonetheless the negotiation still looks wrong.
This makes the test pass again after the recent coverity fix
and also allows interleave to work again, but someone should
really review the negotiation code and fix it.
2014-04-15 21:36:30 +02:00
Josep Torra
eaee14aff4
rtph264depay: only guess AU boundaries when aren't indicated by marker
...
The marker bit isn't mandatory and we had in place code to guess AU
boundaries by detecting a new picture start. This guessing code
didn't work with interlaced content that has proper marker bits
to indicate the AU boundaries. It was leaking the first field buffer
and producing a corrupted output.
fixes: https://bugzilla.gnome.org/show_bug.cgi?id=728041
2014-04-12 04:42:36 +02:00
Jimmy Ohn
ecf188e6cd
qtdemux: replace duplicated variable when parsing trex atom
...
https://bugzilla.gnome.org/show_bug.cgi?id=727878
2014-04-10 09:03:02 +02:00
Sebastian Dröge
d47806320d
qtdemux: Properly return stream flags when parsing trex atom
...
https://bugzilla.gnome.org/show_bug.cgi?id=727867
2014-04-09 08:58:48 +02:00
Edward Hervey
9859515605
interleave: Add missing break in switch statement
...
The caps query is handled entirely already before.
CID #1139757
2014-04-08 11:31:06 +02:00
Vincent Penquerc'h
31f36d805a
avidemux: use frames, not bytes, for position query in VBR streams
...
Coverity 1139648
2014-04-07 12:58:23 +01:00
Vincent Penquerc'h
42298f65e8
smpte: fix copy/paste error causing unmap on wrong buffer
...
Coverity 1139647
2014-04-07 12:43:57 +01:00
Vincent Penquerc'h
1d7735b1d6
deinterlace: guard against finding no suitable pattern
...
The code handles a -1 pattern index, and it seems plausible
that a pattern might be found later, so it seems best to not
send an element error here.
Coverity 1139766
2014-04-07 12:20:12 +01:00
Wim Taymans
5b9945e0a6
rtspsrc: update for new MIKEY API
2014-04-04 17:38:14 +02:00
Wim Taymans
6210cbe1e2
rtspsrc: send sender SSRC in the MIKEY message
...
Allocate a new SSRC for our RTCP messages back to the server and set
this in the MIKEY message.
2014-04-03 17:40:01 +02:00
Wim Taymans
4f641ef18b
rtspsrc: make random number for the CSB
...
As recommended in the RFC
2014-04-03 17:39:30 +02:00
Wim Taymans
f932da3be6
rtspsrc: don't put spaces in keymgmt header
2014-04-03 12:21:27 +02:00
Wim Taymans
2edd450369
rtspsrc: create and send the RTCP encryption key
...
Create and make a key for encrypting the RTCP packets back to the server
and wrap this in a MIKEY message that we send as a header in the SETUP
request.
2014-04-03 12:21:27 +02:00
Wim Taymans
a52b7eadfd
rtspsrc: free the srtpdec element
2014-04-03 12:18:39 +02:00
Wim Taymans
f0f9451523
rtspsrc: cleanup stream_free function
...
There is no reason to NULL all fields, we will free the stream anyway.
2014-04-03 12:16:25 +02:00
Wim Taymans
c3de599c4f
jitterbuffer: demote warning to debug
...
For TCP, it is normal that we don't have timestamps so don't WARN on
it.
2014-04-03 12:09:24 +02:00
Thibault Saunier
b95d9cfb21
avidemux: Always set PTS=DTS on raw video streams
2014-03-31 18:38:28 +02:00
Thibault Saunier
511202d50c
avidemux: Always set pixel-aspect-ratio on raw video streams
...
That field is mandatory in caps and if it is not present in the
AVI container, it means square pixels thus 1/1.
2014-03-31 18:38:22 +02:00
Tim-Philipp Müller
821c68822b
matroska-mux: add mapping for Opus audio
...
Might want to consider adding channels/rate
requirement to template caps, but requires
fixing up of encoder and parser first.
2014-03-30 00:35:07 +00:00
Tim-Philipp Müller
b158a1c068
matroska-demux: add mapping for Opus audio codec
...
https://bugzilla.gnome.org/show_bug.cgi?id=727305
2014-03-30 00:31:11 +00:00
Tim-Philipp Müller
273f389d57
rtpmanager: copy sticky events when exposing pads in more places
...
https://bugzilla.gnome.org/show_bug.cgi?id=724712
2014-03-29 13:23:02 +00:00
Ognyan Tonchev
2143a6e452
jpegpay: consider header len when calculating payload len
...
Fixed https://bugzilla.gnome.org/show_bug.cgi?id=726777
2014-03-27 09:45:20 +01:00
Mark Nauwelaerts
3414e3d0b9
matroskademux: segment closing not needed in 1.x
...
... as sender should keep track of segment base accumulation.
Rather, it may have some adverse effects as a spurious segment event,
e.g. in collectpads.
2014-03-25 21:02:45 +01:00
Mark Nauwelaerts
9a30726226
matroskademux: early sending pending codec-data for all streams
...
... at least before syncing across all streams might cause some gap
activity on any of those streams, notably sparse streams.
See also #712134
2014-03-25 21:02:45 +01:00
Mark Nauwelaerts
1e135a38cc
matroskamux: handle both sticky and non-sticky custom event
2014-03-25 21:02:45 +01:00
Wim Taymans
e7c8fa1127
rtspsrc: only expose streams on dataflow
...
Only probe on buffers, we don't want to expose the streams on events.
2014-03-25 11:44:27 +01:00
Wim Taymans
3b497bf7d5
rtspsrc: copy sticky events to ghostpad
...
When we expose internal pads as ghostpads, first copy the sticky events
so that we have the caps and segment etc.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=724712
2014-03-25 11:36:40 +01:00
Wim Taymans
67f3113759
rtspsrc: srtp handling
2014-03-25 10:23:24 +01:00
Wim Taymans
4846be1491
rtspsrc: set SSRC on caps if known
2014-03-25 10:23:00 +01:00
Wim Taymans
5ec8c96966
rtspsrc: put caps on udpsrc instead of using the signals
...
Try to avoid using the request-pt-map to get caps but set them directly
on the udpsrc element. That way, the caps get nicely transformed as they
pass through the different elements in the rtpbin, including the AUX and
decoder/encoder elements.
2014-03-24 17:07:06 +01:00
Wim Taymans
2b59828e0b
rtspsrc: use profile to set rtcp caps
...
Use the negotiated profile to set x-rtcp or x-srtcp caps
2014-03-24 15:35:09 +01:00
Wim Taymans
a7b55d7687
rtspsrc: set udpsrc to READY
...
READY is enough to allocate ports now
2014-03-24 15:34:26 +01:00
Wim Taymans
d3c736c50f
udpsrc: improve caps handling
...
Protect caps with the lock.
Don't push the caps event from the set_property function but mark the
pad for reconfiguration so that it will renegotiate and push the new
caps event in the streaming thread.
2014-03-24 15:22:04 +01:00
Wim Taymans
5e44fa3e31
udpsrc: open/close socket in NULL<->READY state
...
We should open the socket when going to NULL<->READY and not in the
start/stop vemthod, which is called in READY<->PAUSED. This makes it
possible to allocate a socket without going to PAUSED (and starting the
negotiation).
2014-03-24 15:15:34 +01:00
Wim Taymans
a4f6f963ec
rtspsrc: free caps in ptmap array
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=726696
2014-03-24 14:35:01 +01:00