Commit graph

3897 commits

Author SHA1 Message Date
Thiago Santos
0cb5ea4396 videodecoder: actually return the push result in backwards playback
It was always returning _OK regardless of what downstream returned
2014-05-26 23:24:56 -03:00
Thiago Santos
ff9e37ea66 videodecoder: return EOS when segment is over
if a buffer is clipped by being completely out of segment, check if this
buffer is after the end of the segment and return EOS upstream

https://bugzilla.gnome.org/show_bug.cgi?id=709224
2014-05-26 19:26:45 -03:00
Thiago Santos
09b8f902ea audiodecoder: return EOS when segment is over
if a buffer is clipped by being completely out of segment, check if this
buffer is after the end of the segment and return EOS upstream

https://bugzilla.gnome.org/show_bug.cgi?id=709224
2014-05-26 19:26:45 -03:00
Wim Taymans
9a20920aa4 rtsp-transport: clarify port usage
Comment in the docs what the client_port and server_port fields are used
for in TCP mode (if the application wants to set those values).
2014-05-20 16:01:08 +02:00
Michael Olbrich
b60888fd4b dmabuf: share the mapping with shared copies of the memory
With lots of shared memory instances (e.g. created by a RTP payloader) the
overhead of duplicating the file descriptor and creating extra mappings is
significant. To avoid this, the parent memory maps the whole region and the
shared copies just reuse the same mapping.

https://bugzilla.gnome.org/show_bug.cgi?id=730441
2014-05-20 09:42:02 -04:00
Göran Jönsson
d8a1dc5ea8 rtspconnection: Add read source on write socket.
Add a read source on write socket when lost tunnel.
To be able to detect when clint closes get channel.

This is already done in gst_rtsp_source_dispatch_write but
only when the queue is empty.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=730368
2014-05-20 12:02:13 +02:00
Edward Hervey
1ca576c240 rtspconnection: Don't use argument for local storage
By re-using the uri argument for storing local data, we could end up in
a situation where we would free uri ... which would actually be the
string passed in argument.

Instead explicitely use a local variable. Fixes double-free issues.

CID #1212176
2014-05-13 11:53:41 +02:00
Nicolas Dufresne
e0cfd6e26b video-info: Also check the stride and offset are equal
gst_video_info_is_equal() was not checking if stride and offset
had changed.

https://bugzilla.gnome.org/show_bug.cgi?id=729896
2014-05-12 18:22:32 -04:00
Edward Hervey
ec95963b1f videodecoder: Free data after removing it from the list
While it wouldn't have caused any failures (g_list_remove doesn't dereference
the provided pointer), it does make the code cleaner.

CID #1212174
2014-05-12 17:17:07 +02:00
Edward Hervey
dddb837d0d mikey: Actually replace payload ...
This function is intented to replace the payload, let's actually do that
instead of putting back the same (freed) payload

CID #1212175
2014-05-12 17:15:17 +02:00
Edward Hervey
3b84e02206 mikey: Free MikeyPayload in error cases
CID #1212135
CID #1212136
CID #1212137
CID #1212138
2014-05-12 17:13:50 +02:00
Tim-Philipp Müller
3f68f522ee tag: xmp: fix leaks in error code paths
CID 1212133
2014-05-09 15:32:18 +01:00
Göran Jönsson
446f9bf6bd rtspconnection: Reset control_stream.
Reset control_stream when gst_rtsp_connection_close.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=729632
2014-05-09 11:49:04 +02:00
Nicolas Dufresne
64d58b80c0 videodecoder: Retry setting configuration with modified config
Buffer pool set_config() may return FALSE if requested configuration needed small
changes. Reget the config and try setting it again. This ensure we have a configured
pool if possible.
2014-05-08 15:09:47 -04:00
Руслан Ижбулатов
151d156126 rtsp: Link to ws2_32 on Windows
Needed for getsockname and setsockopt

https://bugzilla.gnome.org/show_bug.cgi?id=729514
2014-05-05 09:04:28 +02:00
Thibault Saunier
622007e7db discoverer: Add APIs to simply get installer details for missing plugins
Currently the API is far from optimal and the user has to work around
our badly defined API to simply install missing plugins.

API:
  new:
    gst_discoverer_info_get_missing_elements_installer_details

  deprecated:
    gst_discoverer_info_get_misc
    gst_discoverer_stream_info_get_misc

https://bugzilla.gnome.org/show_bug.cgi?id=720596
2014-05-03 21:48:55 +02:00
Sebastian Dröge
68f5350c66 Release 1.3.1 2014-05-03 17:50:10 +02:00
Olivier Crête
bdf8ce286d rtpbasepayload: Implement reconfigure event & renegotiation without subclass
Implement the reconfigure event, also do correct downstream caps negotiation
if the subclass doesn't implementy set_caps.

https://bugzilla.gnome.org/show_bug.cgi?id=725361
2014-05-03 10:21:04 +02:00
Olivier Crête
deb27bddf6 rtpbasepayload: Save the PT after fixating 2014-05-02 18:30:23 -04:00
Tim-Philipp Müller
b163f111c8 rtspdefs: remove outdated comments 2014-05-02 19:36:34 +01:00
Vincent Penquerc'h
db8460cbd8 rtpbuffer: avoid underflow in size calculation 2014-05-02 15:10:07 +01:00
Thiago Santos
5ac9476b40 videodecoder: do not parse caps for not using it
Saving some cpu
2014-05-01 19:31:25 -03:00
John Bassett
0fd60ac858 rtpbasepayload: restrict initial random sequence number to be <= 32767
In order to prevent SRTP roll over counter issues the initial sequence
number is restricted to <= 32767. This is recommended by RFC 4568 section 6.4.
2014-05-01 17:00:47 -04:00
Sebastian Dröge
cceb3303ab sdp: Add some more gobject-introspection annotations for bindings
https://bugzilla.gnome.org/show_bug.cgi?id=729123
2014-05-01 15:11:04 +02:00
Vincent Penquerc'h
ffdf87b121 rtcpbuffer: check claimed data size against available size
Coverity 1208773
2014-04-30 18:13:15 +01:00
Göran Jönsson
9685e7a583 rtspconnection: Empty queue when flush.
Empty the watchs queue when calling
gst_rtsp_watch_set_flushing with flushing variabel is TRUE.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=728772
2014-04-30 16:37:17 +02:00
Haakon Sporsheim
7c97a1c6cf audiodecoder: Make caps writable before fixating
https://bugzilla.gnome.org/show_bug.cgi?id=729114
2014-04-29 09:58:21 +02:00
Sebastian Dröge
05ed7d5ba7 sdpmessage: Add array length annotation to gst_sdp_message_parse_buffer
https://bugzilla.gnome.org/show_bug.cgi?id=729123
2014-04-29 09:54:38 +02:00
Stian Selnes
0011d8cbb5 rtpbuffer: fix memory leak when gst_rtp_buffer_map fails
Make sure rtp->data[3] is set before jumping to error path.

https://bugzilla.gnome.org/show_bug.cgi?id=729117
2014-04-29 08:46:29 +02:00
Tim-Philipp Müller
bcb8068e27 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:28:57 +01:00
Edward Hervey
74eb5fa995 audiodecoder: Plug caps leaks
We were returning in various places without unreffing the caps, and
we were also leaking (overwriting) the caps we got from _get_current_caps()

Spotted by Haakon Sporsheim in #gstreamer
2014-04-25 11:30:37 +02:00
Thiago Santos
03ba34f3a8 tag: exif: avoid adding empty strings
Fixes assertion with some jpeg files
2014-04-22 00:21:45 -03:00
Sebastian Dröge
9398207101 videoframe: Initialise GstVideoFrame to zeroes if mapping fails
This should allow for more meaningful errors. Dereferencing NULL
is more useful information than dereferencing a random address
happened to be on the stack.
2014-04-16 19:53:46 +02:00
Vincent Penquerc'h
22e12979ee exiftag: catch buffer mapping failure
Might be what caused:

Coverity 1139734
2014-04-16 11:43:40 +01:00
Sebastian Dröge
dce51830f4 encoding-profile: Free preset name in finalize 2014-04-15 13:48:17 +02:00
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
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
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
Wim Taymans
4a81605d02 sdp: guard against address parse errors. 2014-04-08 15:59:47 +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
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