Commit graph

13355 commits

Author SHA1 Message Date
Wim Taymans f2ee068729 rtpbasedepay: add stats property
Add a stats property that holds a structure with all the current
values of the depayloader.

See https://bugzilla.gnome.org/show_bug.cgi?id=646577
2014-04-12 07:10:36 +02:00
Wim Taymans 314eee6dd1 rtpbasepayload: update docs 2014-04-12 06:43:24 +02:00
Wim Taymans f0348d7005 rtpbasepayload: add current timestamp and seqnum offset to stats
Expose the current timestamp and seqnum offset in the stats

See https://bugzilla.gnome.org/show_bug.cgi?id=646577
2014-04-12 06:27:36 +02:00
Josep Torra 40c2d3c088 textrender: push segment event after caps event
Fixes warning "Sticky event misordering, got 'segment' before 'caps'".
2014-04-11 10:43:39 +02:00
Vincent Penquerc'h 1791799d71 oggstream: use G_GUINT64_CONSTANT instead of ll suffix
Thanks slomo for pointing out it's not standard.
2014-04-10 16:08:29 +01:00
Vincent Penquerc'h 43ce84e0f4 xvimage: remove dead code
matching_attr can not be NULL here, we've tested that away a few
lines beforehand.

Coverity 1139655
2014-04-10 15:55:57 +01:00
Vincent Penquerc'h ba8220a9fd videotestsrc: bail out on unsupported caps
This avoids using uninitialized data (and properly rejects caps).

Coverity 1139898
2014-04-10 15:51:05 +01:00
Vincent Penquerc'h 577ec29245 typefind: remove pointless checks for data being NULL
It was already checked in an early out, and as it's only
incremented for at most the size of the passed buffer, it
can only become NULL in an address wraparound.

While there, don't cast away const on a pointer.

Coverity 1139845
2014-04-10 15:16:03 +01:00
Vincent Penquerc'h 9e99a1ca41 decodebin: consider "no demuxer" case to not have dynamic pads
This fixes a possible NULL dereference.

Coverity 1195146
2014-04-10 13:51:18 +01:00
Vincent Penquerc'h ea176f3865 encodebin: guard against gst_pad_get_peer returning NULL
If it does, the pad may be leaked if it's a request pad, though.

Coverity 1139799
2014-04-10 13:28:30 +01:00
Vincent Penquerc'h 1afa3040b8 encodebin: guard against pathological NULL dereference
Coverity 1139798
2014-04-10 13:26:42 +01:00
Vincent Penquerc'h f588d14cdc audioresample: reject 0 denominator when creating resampler
Coverity 1195140, 1195139, 1195138
2014-04-10 12:35:03 +01:00
Vincent Penquerc'h 3d1fdf8dd8 video-overlay-composition: guard against NULL pointer dereference on error
If gst_video_overlay_rectangle_apply_global_alpha is called with
a rectangle with unsuitable alpha, expanding the alpha plane will
fail, and thus lead to dereferencing a NULL src pointer. It's not
certain this will happen in practice, as the function is static
and callers might ensure suitable alpha before calling, but there
is no apparent explicit such check.
Add prologue asserts for proper alpha to explicitely prevent this.

Coverity 1139707
2014-04-10 12:35:03 +01:00
Vincent Penquerc'h 4a401adf38 videometa: fix texture_type memcpy size
Coverity 1139589, 1139588
2014-04-10 12:35:03 +01:00
Vincent Penquerc'h 505c803765 sdpmessage: fix multi statement macros
Wasn't playing nice with an if statement below.

Coverity 1139767
2014-04-10 12:35:03 +01:00
Vincent Penquerc'h dda777803c audiocdsrc: guard aginst overflow
An audio CD may contain about a tenth of the samples 32 bit can
represent, so it doesn't seem likely this will be hit in practice.

Coverity 1139805
2014-04-10 12:35:03 +01:00
Tim-Philipp Müller 374e756eee pbutils: descriptions: default to systemstream=false for partial video/mpeg caps
Assume systemstream=false for video/mpeg caps where that field
is missing.
2014-04-10 12:30:50 +01:00
Vincent Penquerc'h 7618699ffd audiobasesink: avoid possible sample count overflow
At 48 kHz, 2<<31 samples is reached before 13 hours so it
sounds plausible this would be hit.

Coverity 1139800, 1139801
2014-04-10 11:06:00 +01:00
Vincent Penquerc'h e7c261ff31 theoraenc: fix comparison to unset timestamp
Also rejects negative timestamps that aren't GST_CLOCK_TIME_NONE.

Coverity 1139797
2014-04-10 11:06:00 +01:00
Vincent Penquerc'h 55f98974a8 oggstream: fix a few left shifts operations on 32 bits cast to 64 bits
This should not cause any actual bug since Theora and Daala have
a maximum shift of 31, and a packet duration of 2^31 seems very
implausible. But it fixes:

Coverity 1139804, 1139803, 1139802
2014-04-10 11:06:00 +01:00
Vincent Penquerc'h 2c07c54b8a oggstream: remove NULL test after dereference
And add NULLness asserts at top of function. The only call
to this passes local variable pointers, so non NULL.

Coverity 206375
2014-04-10 11:06:00 +01:00
Vincent Penquerc'h 1b0f13ebf2 oggmux: test for failure to return tag
It should really not happen unless the tag list it corrupt,
but the API returns a failure code so we may as well use it.

Coverity 1139595
2014-04-10 11:06:00 +01:00
Vincent Penquerc'h 54f38edd15 oggdemux: do not dereference NULL pad in warning message
Coverity 1197695
2014-04-10 11:06:00 +01:00
Sebastian Dröge 8c7cbeed5b video-event: Update the running times in the force-keyunit events from the pad offsets 2014-04-10 09:18:05 +02:00
Sebastian Dröge 2c2e286c38 decodebin: In adaptive streaming mode, only have a fixed buffer limit for the non-buffering multiqueue 2014-04-09 16:06:06 +02:00
Wim Taymans 4a81605d02 sdp: guard against address parse errors. 2014-04-08 15:59:47 +02:00
Mathieu Duponchelle 6954d2167c adder: rework the logic to check if eos has to be sent.
Checking the size available was incorrect, and the infos
for per-pad EOS are available.

Same logic as audiomixer.

fixes: https://bugzilla.gnome.org/show_bug.cgi?id=727025
2014-04-08 13:48:27 +02:00
Josep Torra 6ce7ade7c6 audioringbuffer: parse channels field from compressed audio caps
Also parse channels as an optional field in the caps for compressed
audio formats.
2014-04-08 12:54:04 +02:00
Jan Schmidt 968e28a818 subtitleoverlay: Consider all caps for overlays, not just the first.
Check all supported caps on the overlay video pad, not just the
first of (possibly) many.
2014-04-06 22:28:27 +10:00
Tim-Philipp Müller b04675a1dc tools: update gst-play-1.0 man page 2014-04-05 13:25:46 +01:00
Thiago Santos 05e957106f videodecoder: do not deactivate the bufferpool, just unref
Videodecoder does late renegotiation, it will wait for the next
buffer before renegotiating its caps and bufferpool. It might happen
that downstream element switched from passthrough to non-passthrough
and sent a reconfigure upstream (that caused this renegotiation).
This downstream element will ask the video sink below for the bufferpool
with an allocation query and will get the same bufferpool that
videodecoder is holding, too.

When renegotiating, if videodecoder deactivates its bufferpool it
might be deactivating the bufferpool that some element downstream
is using and cause the pipeline to fail.

https://bugzilla.gnome.org/show_bug.cgi?id=727498
2014-04-04 13:50:03 -03:00
Vincent Penquerc'h 169166d0a2 audiobasesink: clip start samples to match clipped start time
Clock slaving can clip start time to zero, giving us a shorted
duration than we originally got. To keep in sync, we must then
discard the samples falling before that zero timestamp.

This possibly fixes random distortion caused by constant PA
underflows which are never resynced.
2014-04-04 17:04:06 +01:00
Wim Taymans 675d0400e1 mikey: Fix the KEMAC payload
The KEMAC payload actually needs to have subpayloads and the key should
go into the KEY_DATA subpayload. Add support for subpayloads and
implement the KEY_DATA payload.
Add some pointers to the conversion functions that allow us to add
encryption and decryption later.
2014-04-04 17:40:58 +02:00
Jan Schmidt 98482c3a0e playbin: Drop reference to any source element in NULL state
Drop the reference instead of waiting for either finalize(), or
for a new source when reused. Everyone else already forgot about
the old source.
2014-04-04 02:15:53 +11:00
Göran Jönsson a483e90955 rtspconnection: Added gst_rtsp_watch_set_flushing to list.
Added gst_rtsp_watch_set_flushing to list in file
libgstrtsp.def
2014-04-03 13:30:33 +02:00
Sebastian Dröge 6189847ed0 videodecoder: Always drain the decoder after a discont group in reverse playback mode 2014-03-30 18:26:59 +02:00
Sebastian Dröge 5a4fbb1638 videodecoder: Flush the decoder once per discont group, not once per keyframe 2014-03-30 18:00:53 +02:00
Sebastian Dröge f1f8731ff5 videodecoder: Handle reverse playback with multiple GOPs per discont group properly
baseparse will reverse each GOP for us already, so the segment events can
be after our keyframe. Make sure to get it and all other relevant sticky
events before starting to decode.
2014-03-30 17:59:55 +02:00
Sebastian Dröge 50c2218d4d videodecoder: Log event types of events that are pushed downstream 2014-03-29 10:33:01 +01:00
Sebastian Dröge 1c26e5734c videodecoder: In reverse playback mode we need to finish the subclass after passing all frames to it 2014-03-29 10:33:01 +01:00
Wim Taymans 8d439edd7a rtspconnection: add flush method
Add a method to set/unset the flushing state that makes _wait_backlog()
unlock.

See https://bugzilla.gnome.org/show_bug.cgi?id=725898
2014-03-28 09:34:33 +01:00
Nicolas Dufresne f270b267c5 ximagesink: only extrapolate alpha mask for 32-bit depth
Instead of passing bogus alpha mask values when there's no alpha.

https://bugzilla.gnome.org/show_bug.cgi?id=727188
2014-03-27 16:47:30 -04:00
Wim Taymans 0348ee66f1 mikey: fix return values of g_return_* 2014-03-25 11:14:51 +01:00
Wim Taymans 183e441d88 rtsptransport: UDP is also default for SAVP and AVPF 2014-03-25 11:07:34 +01:00
Wim Taymans 51ca0bdf7b docs: add MIKEY docs 2014-03-24 17:12:52 +01:00
Wim Taymans 83888d6b13 mikey: add MIKEY parsing helpers
MIKEY is defined in RFC 3830 and is used to exchange SRTP encryption
parameters between a sender and a receiver in a secure way.
This library implements a subset of the features, enough to implement
RFC 4567, using MIKEY in SDP and RTSP.
2014-03-24 17:12:52 +01:00
Ognyan Tonchev d7857325c5 rtspconnection: Fix minor memory leaks in error handling
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=726642
2014-03-24 12:45:14 +01:00
Ognyan Tonchev e0af857445 rtspconnection: Fix connection_poll()
* Only check for conditions we are interested in.
* Makes no sense to specify G_IO_ERR and G_IO_HUP in condition, they
  will always be reported if they are true.
* Do not create timed source if timeout is NULL.
* Correctly wait for sources to be dispatched, context_iteration() is
  not guaranteed to always block even if set to do so.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=726641
2014-03-24 12:43:38 +01:00
Wim Taymans bf4079277d rtpbasepayload: add pt and ssrc to stats 2014-03-20 09:19:46 +01:00
Thiago Santos b7cf2fa571 tests: decodebin: port old decodebin2 test for parser and decoder linking
They were in the old decodebin2.c tests file and were never ported.
Now we can get rid of decodebin2.c
2014-03-16 14:36:51 -03:00