Hyunjun Ko [Sat, 11 Apr 2015 11:44:02 +0000 (20:44 +0900)]
gstvalue: reset errno before g_ascii_strtoull call
"errno" already has meaningless value before g_ascii_strtoull call.
This causes invalid error check without reset.
https://bugzilla.gnome.org/show_bug.cgi?id=747690
Sebastian Dröge [Sun, 12 Apr 2015 11:13:32 +0000 (13:13 +0200)]
basesrc: Only set DTS to segment.start on the first buffer if subclass did not provide PTS
Otherwise we're going to set a rather arbitrary DTS of segment.start (usually
0) for live sources, which confuses synchronization if the source started
capturing at a later time. And it's especially wrong for raw media, for which
we should not set any DTS at all.
https://bugzilla.gnome.org/show_bug.cgi?id=747731
Sebastian Dröge [Tue, 2 Sep 2014 14:40:28 +0000 (17:40 +0300)]
typefind: Run the default have-type handler after all application handlers
Otherwise the CAPS event will already be forwarded downstream and
the application has no way to intervene anymore.
https://bugzilla.gnome.org/show_bug.cgi?id=735896
Duncan Palmer [Tue, 10 Mar 2015 02:57:44 +0000 (12:57 +1000)]
multiqueue: Don't automatically enter the buffering state when use-buffering is set.
There is no reason I can see to set mq->buffering = TRUE when
use_buffering is set; the code here also calls update_buffering(), which
will set mq->buffering = TRUE if this is warranted because of low buffer
levels.
https://bugzilla.gnome.org/show_bug.cgi?id=745937
Guillaume Desmottes [Fri, 10 Apr 2015 10:32:27 +0000 (12:32 +0200)]
inputselector: fix cached buffer leak in chain function
gst_selector_pad_chain() was popping cached buffers out of the queue without
freeing those. Make sure we don't steal the GstBuffer as the cached buffer ref
has been passed to the pad chain function.
This can be reproduced by running the
validate.file.playback.switch_subtitle_track_while_paused.test5_mkv scenario
with Valgrind.
https://bugzilla.gnome.org/show_bug.cgi?id=747611
Signed-off-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Edward Hervey [Wed, 8 Apr 2015 14:04:11 +0000 (16:04 +0200)]
tests: Use AM_TESTS_ENVIRONMENT
Needed by the new automake test runner
Prashant Gotarne [Tue, 7 Apr 2015 09:30:46 +0000 (15:00 +0530)]
bufferlist: make sure list is writable before adding or removing buffers
https://bugzilla.gnome.org/show_bug.cgi?id=747439
Prashant Gotarne [Tue, 7 Apr 2015 09:04:58 +0000 (14:34 +0530)]
bufferlist: minor docs addition for gst_buffer_list_get()
Return buffer remains valid as long as list is valid
and buffer is not removed from list.
https://bugzilla.gnome.org/show_bug.cgi?id=747438
Vincent Penquerc'h [Tue, 7 Apr 2015 10:38:31 +0000 (11:38 +0100)]
basesrc: fix pool leak on allocation query error path
It could be triggered by:
gst-launch-1.0 videotestsrc num-buffers=20 ! videcrop bottom=
214748364 ! videoconvert ! autovideosink
Spotted while testing:
https://bugzilla.gnome.org/show_bug.cgi?id=743910
Sebastian Dröge [Tue, 7 Apr 2015 01:45:37 +0000 (18:45 -0700)]
baseparse: Forward SEGMENT_DONE events immediately
There might be no more data coming afterwards, and we just drained everything
that was left to be pushed anyway.
Tim-Philipp Müller [Mon, 6 Apr 2015 17:56:25 +0000 (18:56 +0100)]
docs: fix cross-reference to environment variables in GstInfo
https://bugzilla.gnome.org/show_bug.cgi?id=747416
Prashant Gotarne [Mon, 6 Apr 2015 04:48:15 +0000 (10:18 +0530)]
memory: add check for writablity in resize
Add guard to gst_memory_resize() to make sure the
memory to be resized is actually writable.
https://bugzilla.gnome.org/show_bug.cgi?id=747392
Tim-Philipp Müller [Sun, 5 Apr 2015 15:47:26 +0000 (16:47 +0100)]
tests: multiqueue: add test to make sure initial events go through without buffers
Tim-Philipp Müller [Sun, 5 Apr 2015 15:06:44 +0000 (16:06 +0100)]
tests: queue: check that the initial events are sent on immediately
Add a check that makes sure stream-start, caps, and segment events
are passed on by queue without delay, i.e. even if no buffer is
sent.
Sebastian Dröge [Sun, 5 Apr 2015 01:33:18 +0000 (18:33 -0700)]
pad: Print debug output from gst_pad_link_full() if preparing linking failed
Makes it easier to find linking failures in debug logs.
Tim-Philipp Müller [Sat, 4 Apr 2015 18:29:51 +0000 (19:29 +0100)]
segment: small docs addition
https://bugzilla.gnome.org/show_bug.cgi?id=690564
Tim-Philipp Müller [Sat, 4 Apr 2015 17:18:03 +0000 (18:18 +0100)]
docs: design: fix some 0.10-isms in GstSegment docs
1) segment.accum -> segment.base
2) Refer to GstSegment members as S.foo instead of
NS.foo, the event is now called a segment event
rather than newsegment event.
3) There's no more abs_rate field in GstSegment,
and there never was an abs_applied_rate field.
https://bugzilla.gnome.org/show_bug.cgi?id=690564
Ilya Konstantinov [Sat, 4 Apr 2015 01:14:50 +0000 (04:14 +0300)]
basesrc: do not leak buffer pool in error case
https://bugzilla.gnome.org/show_bug.cgi?id=747321
Nicolas Dufresne [Fri, 3 Apr 2015 23:12:48 +0000 (19:12 -0400)]
uri: Silence a compiler warning
This is a false positive for use initialized. The variable is set and
used enclosed in the safe if condition.
Nicolas Dufresne [Fri, 3 Apr 2015 20:32:16 +0000 (16:32 -0400)]
doc: Add gst_segment_to_running_time_full
Sebastian Dröge [Fri, 3 Apr 2015 20:19:13 +0000 (13:19 -0700)]
basesrc: Fix documentation, buffer pools are unreffed and not freed
Tim-Philipp Müller [Fri, 3 Apr 2015 19:43:15 +0000 (20:43 +0100)]
Update INSTALL to the automake 1.14 version
Tim-Philipp Müller [Fri, 3 Apr 2015 17:57:36 +0000 (18:57 +0100)]
Automatic update of common submodule
From bc76a8b to c8fb372
Tim-Philipp Müller [Fri, 3 Apr 2015 15:27:10 +0000 (16:27 +0100)]
win32: fix exports
Vincent Penquerc'h [Thu, 19 Mar 2015 10:45:56 +0000 (10:45 +0000)]
segment: add gst_segment_is_equal
It beats memcmp due to the 'reserved' fields.
API: gst_segment_is_equal()
Found via, but probably not directly linked to,
https://bugzilla.gnome.org/show_bug.cgi?id=738216
Tim-Philipp Müller [Thu, 2 Apr 2015 23:36:42 +0000 (00:36 +0100)]
win32: add new API to exports
Tim-Philipp Müller [Wed, 6 Aug 2014 09:32:39 +0000 (10:32 +0100)]
pad: allow probes to remove the data item whilst returning PROBE_OK
Use case: we want to block the source pad of a leaky queue and
drop the buffer that causes the block. If we return PROBE_DROP
then the buffer gets dropped, but we get called again. If we
return PROBE_OK we can't easily drop the buffer. If we just
replace the item into the GstPadProbeInfo structure with NULL,
GStreamer will push a NULL buffer to the next element when we
unblock the pad probe. This patch ensures it doesn't do that.
https://bugzilla.gnome.org/show_bug.cgi?id=734342
Olivier Crête [Fri, 13 Feb 2015 00:39:44 +0000 (19:39 -0500)]
element: Document when a clock is available from gst_element_get_clock()
https://bugzilla.gnome.org/show_bug.cgi?id=744442
Olivier Crête [Fri, 13 Feb 2015 00:40:06 +0000 (19:40 -0500)]
pipeline: Add binding friendly gst_pipeline_get_pipeline_clock()
Also skip gst_pipeline_get_clock() and gst_pipeline_set_clock() from the
bindings as they are confused with gst_element_*_clock().
API: gst_pipeline_get_pipeline_clock()
https://bugzilla.gnome.org/show_bug.cgi?id=744442
Nicolas Dufresne [Thu, 2 Apr 2015 21:32:42 +0000 (17:32 -0400)]
basetransform: Add Since mark for new method
https://bugzilla.gnome.org/show_bug.cgi?id=734424
Thibault Saunier [Fri, 20 Feb 2015 16:50:48 +0000 (17:50 +0100)]
basetransform: Add a method to let subclasses cleanly update srcpad caps
API:
gst_base_transform_update_src
https://bugzilla.gnome.org/show_bug.cgi?id=734424
Tim-Philipp Müller [Thu, 2 Apr 2015 20:18:39 +0000 (21:18 +0100)]
docs: pwg: fix missing comma and 0.10-ism in code sample
https://bugzilla.gnome.org/show_bug.cgi?id=747267
https://bugzilla.gnome.org/show_bug.cgi?id=747266
Ilya Konstantinov [Thu, 2 Apr 2015 16:29:46 +0000 (19:29 +0300)]
memory: improve docs for _copy() and _share()
Prashant Gotarne [Thu, 2 Apr 2015 06:12:20 +0000 (11:42 +0530)]
test: filesink: add tests for buffers with multiple memory blocks
Update test_seeking testcase to verify the render and render_list
virtual method handle buffers and buffer list containing multiple
memory blocks correctly.
https://bugzilla.gnome.org/show_bug.cgi?id=747223
Thibault Saunier [Thu, 2 Apr 2015 07:44:33 +0000 (09:44 +0200)]
element: Add a FIXME for 2.0 about request_new_pad VS request_pad naming
Thibault Saunier [Thu, 2 Apr 2015 07:34:00 +0000 (09:34 +0200)]
element: Fix request_new_pad introspection
Marking gst_element_request_pad as the caller of the ->request_new_pad
virtual method.
Prashant Gotarne [Wed, 1 Apr 2015 03:50:24 +0000 (09:20 +0530)]
tests: filesink: add check for render_list virtual method
GstFileSink implements the render_list virtual method to render
a list of buffers. Update the test_seeking test case to also
check the render_list method implementation.
https://bugzilla.gnome.org/show_bug.cgi?id=747100
Tim-Philipp Müller [Wed, 1 Apr 2015 11:13:17 +0000 (12:13 +0100)]
debugutils: nicer printing of caps features
Only print interesting caps features, don't
append (memory:SystemMemory) to all caps,
which makes them much more unwieldy and
harder to read. Also use internal function
to get caps features so that our printing
has no side effects on the caps.
https://bugzilla.gnome.org/show_bug.cgi?id=746809
Lubosz Sarnecki [Thu, 26 Mar 2015 12:05:57 +0000 (13:05 +0100)]
debugutils: plot caps features
https://bugzilla.gnome.org/show_bug.cgi?id=746809
Wonchul Lee [Tue, 31 Mar 2015 14:48:22 +0000 (23:48 +0900)]
pad: Fix a typo in a docstring
https://bugzilla.gnome.org/show_bug.cgi?id=747119
Edward Hervey [Tue, 31 Mar 2015 09:15:10 +0000 (11:15 +0200)]
introspection: Don't use g-ir-scanner cache at compile time
It pollutes user directories and we don't need to cache it
https://bugzilla.gnome.org/show_bug.cgi?id=747095
Tim-Philipp Müller [Sat, 28 Mar 2015 14:45:35 +0000 (14:45 +0000)]
pad: fix outdated debug message
Buffer lists don't have groups any more in 1.0
Nicolas Dufresne [Fri, 27 Mar 2015 22:20:37 +0000 (18:20 -0400)]
basesrc: Flush-stop starts live task in paused
The flush-stop event should not restart the task for live sources unless
the element is playing. This was breaking seeks in pause with the rtpsrc.
https://bugzilla.gnome.org/show_bug.cgi?id=635701
Luis de Bethencourt [Fri, 27 Mar 2015 16:23:40 +0000 (16:23 +0000)]
tests: check location isn't truncated
Test covering the recent commit where location='".abc' won't get truncated
to '.ab' anymore
https://bugzilla.gnome.org/show_bug.cgi?id=688625
Luis de Bethencourt [Thu, 26 Mar 2015 17:01:06 +0000 (17:01 +0000)]
gstvalue: only unwrap string delimited with "
Don't unwrap strings that start but don't finish with a double quote. If a
string is delimited by two quotes we unescape them and any special characters
in the middle (like \" or \\). If the first character or the last character
aren't a quote we assume it's part of an unescaped string.
Moved some deserialize_string unit tests because we don't try to unwrap strings
missing that second quote anymore.
https://bugzilla.gnome.org/show_bug.cgi?id=688625
Luis de Bethencourt [Fri, 27 Mar 2015 17:16:03 +0000 (17:16 +0000)]
parse: check before truncating strings
Don't truncate the last character of a string if it isn't necessary.
https://bugzilla.gnome.org/show_bug.cgi?id=688625
Sebastian Dröge [Fri, 27 Mar 2015 09:15:16 +0000 (10:15 +0100)]
bus: Add guards against invalid arguments to set_flushing() and poll()
https://bugzilla.gnome.org/show_bug.cgi?id=746871
Thiago Santos [Wed, 25 Mar 2015 13:49:08 +0000 (10:49 -0300)]
baseparse: only post 'no valid frames' error if buffers were received
Otherwise baseparse will consider empty streams to be an error while
an empty stream is a valid scenario. With this patch, errors would
only be emitted if the parser received data but wasn't able to
produce any output from it.
This change is only for push-mode operation as in pull mode an
empty file can be considered an error for the one driving the
pipeline
Includes a unit test for it
https://bugzilla.gnome.org/show_bug.cgi?id=733171
Jose Antonio Santos Cadenas [Thu, 19 Mar 2015 09:36:11 +0000 (10:36 +0100)]
tee: Add allow-not-linked property
This property avoids not linked error when all the pads are unlinked
or when there are no source pads. This is useful in dynamic pipelines
where it can happen that for a short time there are no pads at all or
all downstream pads are not linked yet.
https://bugzilla.gnome.org/show_bug.cgi?id=746436
Michael Catanzaro [Sat, 21 Mar 2015 22:13:18 +0000 (17:13 -0500)]
docs: Fix typos
https://bugzilla.gnome.org/show_bug.cgi?id=746585
Michael Catanzaro [Sat, 21 Mar 2015 20:46:50 +0000 (15:46 -0500)]
pluginloader: Fix typos
https://bugzilla.gnome.org/show_bug.cgi?id=746585
Thiago Santos [Tue, 24 Mar 2015 19:04:16 +0000 (16:04 -0300)]
output-selector: add drain handling
Release the latest buffer, if any, and then just let
the drain be pushed downstream
Mathieu Duponchelle [Tue, 24 Mar 2015 18:32:49 +0000 (19:32 +0100)]
Revert "Fix distcheck"
This reverts commit
56dd2d89c4eac460cbc37e2a51c1dd9e792999e8.
Installing completions to a custom prefix is now fixed.
Mathieu Duponchelle [Tue, 24 Mar 2015 18:30:52 +0000 (19:30 +0100)]
helpers: remove completion-helper on uninstall
+ And add it to CLEANFILES
Mathieu Duponchelle [Wed, 18 Mar 2015 18:38:15 +0000 (19:38 +0100)]
completions: remove last unnamespaced symbols.
https://bugzilla.gnome.org/show_bug.cgi?id=744877
Mathieu Duponchelle [Wed, 18 Mar 2015 13:44:21 +0000 (14:44 +0100)]
completions: remove deprecated shell syntax.
https://bugzilla.gnome.org/show_bug.cgi?id=744877#c21
Mathieu Duponchelle [Wed, 18 Mar 2015 13:37:11 +0000 (14:37 +0100)]
completions: prefix shell functions with _gst
+ To make it more difficult for them to conflict in the
global namespace.
https://bugzilla.gnome.org/show_bug.cgi?id=744877#c21
Nicolas Dufresne [Tue, 24 Mar 2015 17:13:29 +0000 (13:13 -0400)]
bash-completion: Respect the prefix
Don't try and install the bash helpers outside the defined prefix.
https://bugzilla.gnome.org/show_bug.cgi?id=744877
Jan Alexander Steffens (heftig) [Wed, 19 Nov 2014 12:08:45 +0000 (13:08 +0100)]
input-selector: Rename _activate_sinkpad to _get_active_sinkpad
Removes the now unused 'pad' parameter and renames the function
to something more appropriate.
https://bugzilla.gnome.org/show_bug.cgi?id=739620
Jan Alexander Steffens (heftig) [Wed, 19 Nov 2014 12:03:21 +0000 (13:03 +0100)]
input-selector: Remove pad's 'active' field
This is now never read.
https://bugzilla.gnome.org/show_bug.cgi?id=739620
Jan Alexander Steffens (heftig) [Wed, 19 Nov 2014 11:59:12 +0000 (12:59 +0100)]
input-selector: Use segment-presence for running_time check
When determining whether the running_time of a pad can be
calculated, check if the segment is in TIME format instead
of using the 'active' field.
Since the latter is set through *any* activity, it's not a
reliable indicator of segment presence.
https://bugzilla.gnome.org/show_bug.cgi?id=739620
Jan Alexander Steffens (heftig) [Mon, 23 Mar 2015 12:20:34 +0000 (13:20 +0100)]
input-selector: Remove 'blocked' flag
With the disappearance of the 'block' signal, this
flag cannot be set to TRUE.
gst_input_selector_wait disappears as it never waits
and just returns self->flushing.
https://bugzilla.gnome.org/show_bug.cgi?id=736891
Jan Alexander Steffens (heftig) [Mon, 23 Mar 2015 11:12:51 +0000 (12:12 +0100)]
input-selector: Remove obsolete 'block' signal
This signal blocks the input-selector with no means of unblocking
other than a state change back to READY. It seems this signal was
part of an old way of synchronously switching the selector,
together with the already-removed 'switch' signal.
Removing the signal is safe, as attempting to use it could only
end in deadlocks. Attempting to emit an unknown signal just causes
g_criticals.
https://bugzilla.gnome.org/show_bug.cgi?id=736891
Jan Alexander Steffens (heftig) [Mon, 23 Mar 2015 12:05:30 +0000 (13:05 +0100)]
input-selector: Fix waiting on EOS
This apparently got broken by bc1ec4e. Since self->blocked is always
FALSE, gst_input_selector_wait never actually waits.
Using (!self->eos || self->blocked) && ... as the loop condition would
be incorrect as well, because then the other call to the function in
_chain would block until EOS, so the functions cannot be merged trivially.
Since blocking is obsolete, gst_input_selector_wait will get removed anyway.
As such, just inline the loop.
https://bugzilla.gnome.org/show_bug.cgi?id=746518
Thiago Santos [Fri, 20 Mar 2015 10:23:53 +0000 (07:23 -0300)]
tests: input-selector: new tests for EOS handling
3 new tests:
1) Tests that a stream that is empty (just an EOS event)
on inactive pad doesn't get through and tamper
with the active pad that still has data
2) Tests that a stream that is shorter than the active one
(pushes EOS earlier) doesn't has its EOS pushed
3) Tests that switching to an inactive stream that has received
EOS will make input-selector push EOS
https://bugzilla.gnome.org/show_bug.cgi?id=746518
Thiago Santos [Thu, 19 Mar 2015 12:11:19 +0000 (12:11 +0000)]
tests: selector: remove weird semicolons at the end of test functions
Even though it works, it is not needed and seems more natural
to not have semicolons at the end of function declarations
https://bugzilla.gnome.org/show_bug.cgi?id=746518
Jan Alexander Steffens (heftig) [Thu, 17 Jul 2014 14:33:29 +0000 (16:33 +0200)]
queue2: Process SEEKING query
Add QUERY_SEEKING handling to queue2, so RTMP live streams become
seekable when a queue2 in download or ringbuffer mode is inserted:
rtmpsrc ! queue2 ! flvdemux
https://bugzilla.gnome.org/show_bug.cgi?id=733351
Sebastian Dröge [Sat, 21 Mar 2015 18:37:30 +0000 (19:37 +0100)]
check: Fix uninitialized variable compiler warning with gcc
check_run.c: In function 'sig_handler':
check_run.c:127:13: warning: 'child_sig' may be used uninitialized in this function [-Wmaybe-uninitialized]
killpg(group_pid, child_sig);
^
check_run.c:130:31: warning: 'idx' may be used uninitialized in this function [-Wmaybe-uninitialized]
sigaction(sig_nr, &old_action[idx], NULL);
^
Sebastian Dröge [Sat, 21 Mar 2015 14:19:43 +0000 (15:19 +0100)]
check: Catch SIGTERM and SIGINT in the test runner and kill all currently running tests
Otherwise e.g. ctrl+c in the test runner exits the test runner, while the test
itself is still running in the background, uses CPU and memory and potentially
never exits (e.g. if the test ran into a deadlock or infinite loop).
The reason why we have to manually kill the actual tests is that after
forking they will be moved to their own process group, and as such are
not receiving any signals sent to the test runner anymore. This is supposed
to be done to make it easier to kill a test, which it only really does if
the test itself is forking off new processes.
This fix is not complete though. SIGKILL can't be caught at all, and error
signals like SIGSEGV, SIGFPE are currently not caught. The latter will only
happen if there is a bug in the test runner itself, and as such seem less
important.
Sebastian Dröge [Thu, 19 Mar 2015 12:51:38 +0000 (13:51 +0100)]
valve: Don't drop non-serialized queries when the valve is dropping
Otherwise we end up dropping e.g. CAPS queries, and then upstream just
negotiates to whatever format it wants to. Once the valve is not-dropping
anymore this can easily result in negotiation failing completely.
https://bugzilla.gnome.org/show_bug.cgi?id=746448
Wim Taymans [Fri, 20 Mar 2015 08:00:47 +0000 (09:00 +0100)]
segment: remove the bounds check from _to_running_time_full()
Do not do any checks for the start/stop in the new
gst_segment_to_running_time_full() method, we can let this be done by
the more capable gst_segment_clip() method. This allows us to remove the
enum of results and only return the sign of the calculated running-time.
We need to put the old clipping checks in the old
gst_segment_to_running_time() still because they work slightly
differently than the _clip methods.
See https://bugzilla.gnome.org/show_bug.cgi?id=740575
Wim Taymans [Thu, 19 Mar 2015 16:36:36 +0000 (17:36 +0100)]
segment: add option to disable clipping
Add a clip argument to gst_segment_to_running_time_full() to disable
the checks against the segment boundaries. This makes it possible to
generate an extrapolated running-time for timestamps outside of the
segment.
See https://bugzilla.gnome.org/show_bug.cgi?id=740575
Tim-Philipp Müller [Wed, 18 Mar 2015 16:27:36 +0000 (16:27 +0000)]
gst: ref/unref new enum type in gst_init/deinit()
Mathieu Duponchelle [Wed, 18 Mar 2015 13:16:48 +0000 (14:16 +0100)]
tools: remove outdated completion script
+ Remove the associated test
https://bugzilla.gnome.org/show_bug.cgi?id=744877#c21
Wim Taymans [Wed, 18 Mar 2015 10:31:51 +0000 (11:31 +0100)]
segment: add helper to get negative running-time
Add a helper method to get a running-time with a little more features
such as detecting if the value was before or after the segment and
negative running-time.
API: gst_segment_to_running_time_full()
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=740575
Wim Taymans [Wed, 18 Mar 2015 09:53:30 +0000 (10:53 +0100)]
segment: fix offset handling with non 0 start
The position in the segment is relative to the start but the offset
isn't, so subtract the start from the position when setting the offset.
Add unit test for this as well.
Sebastian Dröge [Wed, 18 Mar 2015 08:36:35 +0000 (09:36 +0100)]
funnel: Add support for buffer lists
Olivier Crête [Fri, 29 Nov 2013 21:28:41 +0000 (16:28 -0500)]
baseparse: remove duplicate code
These are already freed by gst_base_parse_clear_queues()
https://bugzilla.gnome.org/show_bug.cgi?id=679768
Sebastian Dröge [Tue, 17 Mar 2015 14:41:38 +0000 (15:41 +0100)]
pluginloader: Fix indention
Vincent Penquerc'h [Fri, 13 Mar 2015 11:08:25 +0000 (11:08 +0000)]
baseparse: reset skip on segments and discontinuities
Large scale skip is an optimization, and thus it is safer to
stop skipping than to continue. Clear skip on segments and
discontinuities, as these are points where it is possible that
the original idea of "bytes to skip" changes.
Sebastian Dröge [Sun, 15 Mar 2015 14:19:17 +0000 (14:19 +0000)]
multiqueue: Don't grow queue infinitely if only one pad is linked
This was introduced by
https://bugzilla.gnome.org/show_bug.cgi?id=719893
https://bugzilla.gnome.org/show_bug.cgi?id=722891
but it doesn't make any sense at all and causes huge memory leaks.
https://bugzilla.gnome.org/show_bug.cgi?id=744253
Tim-Philipp Müller [Sat, 14 Mar 2015 21:07:01 +0000 (21:07 +0000)]
basesink: handle empty buffer list more gracefully
Don't abort, just ignore it. It's like a buffer
without memories.
Tim-Philipp Müller [Sat, 14 Mar 2015 17:39:39 +0000 (17:39 +0000)]
adapter: minor optimisation for gst_adapter_take_buffer_list()
Try to allocate buffer list with a suitable size from the
beginning to avoid having to re-alloc the buffer list array.
Tim-Philipp Müller [Sat, 14 Mar 2015 17:23:03 +0000 (17:23 +0000)]
tests: add unit test for gst_adapter_take_buffer_list()
Tim-Philipp Müller [Sat, 14 Mar 2015 17:20:33 +0000 (17:20 +0000)]
adapter: add gst_adapter_take_buffer_list()
API: gst_adapter_take_buffer_list()
Tim-Philipp Müller [Sat, 14 Mar 2015 16:05:57 +0000 (16:05 +0000)]
Add new streamiddemux binaries to .gitignore
Tim-Philipp Müller [Sat, 14 Mar 2015 16:00:47 +0000 (16:00 +0000)]
collectpads: avoid multiple calls to gst_buffer_get_size() in macro
Tim-Philipp Müller [Sat, 14 Mar 2015 15:58:00 +0000 (15:58 +0000)]
adapter: avoid multiple calls to gst_buffer_get_size() in macro
Ramiro Polla [Fri, 13 Mar 2015 18:22:01 +0000 (18:22 +0000)]
element: properly escape percent sign in documentation
Sebastian Dröge [Sat, 14 Mar 2015 13:37:09 +0000 (13:37 +0000)]
buffer: Use the correct enum type to fix a compiler warning
gstbuffer.c:522:58: error: implicit conversion from enumeration type 'GstBufferFlags' to
different enumeration type 'GstBufferCopyFlags' [-Werror,-Wenum-conversion]
if (!gst_buffer_copy_into (copy, (GstBuffer *) buffer, flags, 0, -1))
~~~~~~~~~~~~~~~~~~~~ ^~~~~
gstbuffer.c:534:46: error: implicit conversion from enumeration type 'GstBufferCopyFlags' to
different enumeration type 'GstBufferFlags' [-Werror,-Wenum-conversion]
return gst_buffer_copy_with_flags (buffer, GST_BUFFER_COPY_ALL);
~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~
./gstbuffer.h:433:31: note: expanded from macro 'GST_BUFFER_COPY_ALL'
...((GstBufferCopyFlags)(GST_BUFFER_COPY_METADATA | GST_BUFFER_COPY_MEMORY))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Wim Taymans [Sat, 14 Mar 2015 13:06:09 +0000 (14:06 +0100)]
defs: update defs
William Manley [Thu, 30 Oct 2014 15:39:21 +0000 (15:39 +0000)]
meta: Add `GstNetControlMessageMeta`
GstNetAddress can be used to store ancillary data which was received with
or is to be sent alongside the buffer data. When used with socket sinks
and sources which understand this meta it allows sending and receiving
ancillary data such as unix credentials (See `GUnixCredentialsMessage`)
and Unix file descriptions (See `GUnixFDMessage`).
This will be useful for implementing protocols which use file-descriptor
passing in payloaders/depayloaders without having to re-implement all the
socket handling code already present in elements such as multisocketsink,
etc. This, in turn, will be useful for implementing zero-copy video IPC.
This meta uses the platform independent `GSocketControlMessage` API
provided by GLib as a part of GIO. As a result this new meta does not
require any new dependencies or any conditional compliation for
portablility, although it is unlikely to do anything useful on non-UNIX
platforms.
Nicolas Dufresne [Sat, 14 Mar 2015 11:57:33 +0000 (11:57 +0000)]
allocation: Allow allocation pool without size
This allow proposing a number of buffers required even if the size
of buffer is unfixed. This is often the case for encoded formats.
Nicolas Dufresne [Sun, 1 Mar 2015 18:15:40 +0000 (13:15 -0500)]
bufferpool: Don't stop the pool in set_config()
Don't stop the pool in set_config(). Instead, let the controlling
element manage it. Most of the time, when an active pool is being
configured is because the caps didn't change.
https://bugzilla.gnome.org/show_bug.cgi?id=745377
Thiago Santos [Fri, 13 Mar 2015 18:53:11 +0000 (18:53 +0000)]
basesink: drain on allocation query
Allows buffers to be reclaimed when caps is to be renegotiated so
that bufferpools can be stopped. As the allocation query is
serialized all buffers have been already drained from the pipeline,
except this last_sample one.
https://bugzilla.gnome.org/show_bug.cgi?id=682770
Thiago Santos [Fri, 13 Mar 2015 18:35:14 +0000 (18:35 +0000)]
basesink: when draining, deep copy the last buffer to unref old memory
Use gst_buffer_copy_deep() to force the copy of the underlying
memory instead of possibly doing a shallow copy of the buffer
and just referencing the memory
https://bugzilla.gnome.org/show_bug.cgi?id=745287
Thiago Santos [Fri, 13 Mar 2015 18:35:01 +0000 (18:35 +0000)]
gstbuffer: add gst_buffer_copy_deep
A variant of gst_buffer_copy that forces the underlying memory
to be copied.
This is added to avoid adding an extra reference to a GstMemory
that might belong to a bufferpool that is trying to be drained.
The use case is when the buffer copying is done to release the
old buffer and all its resources.
https://bugzilla.gnome.org/show_bug.cgi?id=745287
Sebastian Dröge [Fri, 13 Mar 2015 15:31:30 +0000 (15:31 +0000)]
bus: Use g_list_free_full() instead of manually unreffing and freeing
Also unref the messages, not the GList nodes.
Sebastian Dröge [Fri, 13 Mar 2015 13:42:46 +0000 (13:42 +0000)]
bus: Fix another case where we hold the object lock while unreffing a message
Vivia Nikolaidou [Fri, 13 Mar 2015 13:28:42 +0000 (15:28 +0200)]
bus: Unreferencing messages outside the lock
Shouldn't take the lock while unreferencing messages, because that may cause
more messages to be sent, which will try to take the lock and cause the app to
hang.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=728777