Commit graph

13768 commits

Author SHA1 Message Date
Thiago Santos
3202938369 videoscale: vs_image: strides are a gsize
The strides that are set from the GstVideoInfo structs are
a gsize. Using an int can cause overflows when dealing with large
enough images

https://bugzilla.gnome.org/show_bug.cgi?id=731195
2014-06-09 23:38:39 -03:00
Thiago Santos
fb3a9d1bc5 video: avoid overflows when doing int operations for size
size is a gsize, so cast the operands to it to avoid overflows
and setting wrong value to the video size.

Includes tests.

https://bugzilla.gnome.org/show_bug.cgi?id=731195
2014-06-09 23:38:39 -03:00
Edward Hervey
8810ada4cd theoraenc: Remove unneeded check
running timestamps are guaranteed to be positive and valid since the
GstVideoEncoder base class will clip incoming buffers

CID #1139797
2014-06-09 10:53:03 +02:00
Edward Hervey
23996adf5c vorbisenc: add missing va_end in variadic function
Coverity 1139944
2014-06-09 10:38:53 +02:00
Vincent Penquerc'h
0a49b7050f tests: fix uninitialized variable use in video decoder test 2014-06-06 10:42:11 +01:00
Sebastian Dröge
1f41a1606a uridecodebin: Also catch CODEC_NOT_FOUND errors and delay them until all decodebins are done 2014-06-05 15:35:31 +02:00
Sebastian Dröge
0f43e801f2 uridecodebin: Ignore missing-plugin messages unless all decodebins post one
When playing RTSP streams there will be one decodebin per stream. If some of
them fail because of a missing plugin we should not fail completely but play
the supported streams at least.

https://bugzilla.gnome.org/show_bug.cgi?id=730868
2014-06-04 17:00:43 +02:00
Sebastian Dröge
393f090197 decodebin: Do async-done on expose errors too 2014-06-04 17:00:43 +02:00
Michael Olbrich
42623c995e dmabuf: fix checking mmap flags
A simple '&' is not sufficiant. With mmapping_flags == PROT_READ and
prot == PROT_READ|PROT_WRITE the check produces the wrong result.
Change the check to make sure that prot is a subset of mmapping_flags.

https://bugzilla.gnome.org/show_bug.cgi?id=730559
2014-06-04 10:01:27 -04:00
Vincent Penquerc'h
b444d8ba97 alsasink: make gst-ident happy 2014-06-03 15:17:20 +01:00
Vincent Penquerc'h
3b2d583373 alsasink: fix occasional crash intersecting invalid values
When a pipeline using alsasink and push mode upstream fails
to preroll, the following state will be the case:
- A loop upstream will be PAUSED, pushing a first buffer
- alsasink will be READY, pending PAUSED, because async

On error, the pipeline will switch to NULL. alsasink is in
READY, so goes to NULL immediately. It zeroes its cached
caps. Meanwhile, the upstream loop can cause a caps query,
conccurent with the state change. This will use those cached
caps. If the zeroing happens between the NULL test and the
dereferencing, GStreamer will critical down in the GstValue
code.

Since it appears that such a gap between states (PAUSED
and pushing upstream, and NULL downstream) is expected, we
need to protect the read/write access to the cached caps.

This fixes the critical.

See https://bugzilla.gnome.org/show_bug.cgi?id=731121
2014-06-03 15:17:20 +01:00
Thibault Saunier
d2ea3260e9 videodecoder: Keep still meaningfull pending events on FLUSH_STOP
Only EOS and segment should be deleted in that case.

+ Add a testcase

https://bugzilla.gnome.org/show_bug.cgi?id=709868
2014-06-03 13:03:49 +02:00
Thibault Saunier
12df7fa49d audiodecoder: Keep still meaningfull pending events on FLUSH_STOP
Only EOS and segment should be deleted in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=709868
2014-06-03 13:03:21 +02:00
Thibault Saunier
2843f358d9 videoencoder: Keep still meaningfull pending events on FLUSH_STOP
Only EOS and segment should be deleted in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=709868
2014-06-03 13:03:19 +02:00
Thibault Saunier
42ecafec0c streamsplitter: Keep still meaningfull pending events on FLUSH_STOP
Only EOS and segment should be deleted in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=709868
2014-06-03 13:03:18 +02:00
Thibault Saunier
967d1fb982 audioencoder: Keep still meaningfull pending events on FLUSH_STOP
Only EOS and segment should be deleted in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=709868
2014-06-03 13:03:16 +02:00
Vincent Penquerc'h
716987063c oggstream: consider all opus packets as "keyframes"
This lets oggdemux determine they are not delta units, and removes
spurious per packet warnings about being unable to determine the
packet's keyframeness.
2014-06-02 12:40:27 +01:00
Edward Hervey
464611acc4 mikey: Free MikeyPayload in error cases
CID #1212136
2014-06-02 09:54:54 +02:00
Thiago Santos
783195ccef decodebin: aggregate buffering messages
Aggregate buffering messages to only post the lower value
to avoid setting pipeline to playing while any multiqueue
is still buffering.

There are 3 scenarios where the entries should be removed from
the list:

1) When decodebin is set to READY
2) When an element posts a 100% buffering (already implemented)
3) When a multiqueue is removed from decodebin.

For item 3 we don't need to handle it because this should only
happen when either 1 is hapenning or when it is playing a
chained file, for which number 2 should have happened for the
previous stream to finish

https://bugzilla.gnome.org/show_bug.cgi?id=726423
2014-05-29 18:59:30 -03:00
Philip Withnall
ba87655628 audio: Add a missing precondition to gst_audio_format_from_string()
https://bugzilla.gnome.org/show_bug.cgi?id=730874
2014-05-28 11:34:01 +02:00
Thiago Santos
5d35675a74 tests: videodecoder: audiodecoder: add tests for eos after segment
Tests that pushing a buffer after the segment returns EOS
2014-05-26 23:24:56 -03:00
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
Thiago Santos
d3ca7271dc oggdemux: use new gstutils helper GstFlowCombiner
Fixes the handling of GST_FLOW_EOS by using the helper object
from gstutils that does the correct combination of flow returns.

https://bugzilla.gnome.org/show_bug.cgi?id=709224
2014-05-26 19:26:43 -03:00
Tim-Philipp Müller
64b4b2a20a tools: play: use cubic volume factor when adjusting volume
This is more natural and better-suited for a playback application.
2014-05-23 19:21:35 +01:00
Sebastian Dröge
cf4c70265b Back to development 2014-05-21 13:23:24 +02:00
Sebastian Dröge
1917400691 Release 1.3.2 2014-05-21 13:06:34 +02:00
Sebastian Dröge
ab756a6844 Update .po files 2014-05-21 12:01:15 +02:00
Sebastian Dröge
0b36e6960b Automatic update of common submodule
From 211fa5f to 1f5d3c3
2014-05-21 10:50:56 +02:00
Sebastian Dröge
7bdaa49fa3 video: And check comparison for real 2014-05-21 10:43:49 +02:00
Sebastian Dröge
f8b367212d video: Fix broken comparison in unit test
libs/video.c:540:50: error: comparison of constant 2 with boolean expression is always false
      [-Werror,-Wtautological-constant-out-of-range-compare]
            && !GST_VIDEO_INFO_N_PLANES (&vinfo) > 2) {
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~
2014-05-21 10:40:32 +02: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
Sebastian Dröge
0760fe8625 playsink: Always take the playsink lock when adding or removing pad probes
Otherwise we might end up inside the callback without having stored
the probe id... then try to remove that probe (not!) from the callback
and wait forever for the pad to unblock.
2014-05-20 09:51:07 +02:00
Vincent Penquerc'h
74e9640a22 alsasink: pass correct error to g_strerror
The error we get is a negated errno.

While there, fix a couple typos in messages.
2014-05-19 13:57:41 +01:00
Sebastian Dröge
86c698a46f gst-play: Free playlist_file string if only printing the version 2014-05-19 11:17:33 +02:00
Anuj Jaiswal
59131a4ceb audio_sink and video_sink leakage fixed
https://bugzilla.gnome.org/show_bug.cgi?id=730010
2014-05-19 11:16:35 +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
Thibault Saunier
7f9aac386f pango: Do not try to add a feature to a caps features ANY
It does not makes sense and asserts
2014-05-11 00:12:30 +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
Wim Taymans
0e8b47443e uridecodebin: use downloadbuffer for download buffering
Use the new downloadbuffer element to implement the download buffering
feature

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680183
2014-05-08 17:12:54 +02:00
Luis de Bethencourt
43ae5a17ce oggmux: push eos event when empty pad data
If gst_ogg_mux_queue_pads returns NULL it means we are at EOS, because we get a
NULL buffer and this function never sets bestpad.

https://bugzilla.gnome.org/show_bug.cgi?id=729315
2014-05-06 16:21:18 -04:00