platform/upstream/gstreamer.git
9 years agopad: Print debug output from gst_pad_link_full() if preparing linking failed
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.

9 years agosegment: small docs addition
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

9 years agodocs: design: fix some 0.10-isms in GstSegment docs
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

9 years agobasesrc: do not leak buffer pool in error case
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

9 years agouri: Silence a compiler warning
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.

9 years agodoc: Add gst_segment_to_running_time_full
Nicolas Dufresne [Fri, 3 Apr 2015 20:32:16 +0000 (16:32 -0400)]
doc: Add gst_segment_to_running_time_full

9 years agobasesrc: Fix documentation, buffer pools are unreffed and not freed
Sebastian Dröge [Fri, 3 Apr 2015 20:19:13 +0000 (13:19 -0700)]
basesrc: Fix documentation, buffer pools are unreffed and not freed

9 years agoUpdate INSTALL to the automake 1.14 version
Tim-Philipp Müller [Fri, 3 Apr 2015 19:43:15 +0000 (20:43 +0100)]
Update INSTALL to the automake 1.14 version

9 years agoAutomatic update of common submodule
Tim-Philipp Müller [Fri, 3 Apr 2015 17:57:36 +0000 (18:57 +0100)]
Automatic update of common submodule

From bc76a8b to c8fb372

9 years agowin32: fix exports
Tim-Philipp Müller [Fri, 3 Apr 2015 15:27:10 +0000 (16:27 +0100)]
win32: fix exports

9 years agosegment: add gst_segment_is_equal
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

9 years agowin32: add new API to exports
Tim-Philipp Müller [Thu, 2 Apr 2015 23:36:42 +0000 (00:36 +0100)]
win32: add new API to exports

9 years agopad: allow probes to remove the data item whilst returning PROBE_OK
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

9 years agoelement: Document when a clock is available from gst_element_get_clock()
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

9 years agopipeline: Add binding friendly gst_pipeline_get_pipeline_clock()
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

9 years agobasetransform: Add Since mark for new method
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

9 years agobasetransform: Add a method to let subclasses cleanly update srcpad caps
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

9 years agodocs: pwg: fix missing comma and 0.10-ism in code sample
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

9 years agomemory: improve docs for _copy() and _share()
Ilya Konstantinov [Thu, 2 Apr 2015 16:29:46 +0000 (19:29 +0300)]
memory: improve docs for _copy() and _share()

9 years agotest: filesink: add tests for buffers with multiple memory blocks
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

9 years agoelement: Add a FIXME for 2.0 about request_new_pad VS request_pad naming
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

9 years agoelement: Fix request_new_pad introspection
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.

9 years agotests: filesink: add check for render_list 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

9 years agodebugutils: nicer printing of caps features
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

9 years agodebugutils: plot caps features
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

9 years agopad: Fix a typo in a docstring
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

9 years agointrospection: Don't use g-ir-scanner cache at compile time
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

9 years agopad: fix outdated debug message
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

9 years agobasesrc: Flush-stop starts live task in paused
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

9 years agotests: check location isn't truncated
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

9 years agogstvalue: only unwrap string delimited with "
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

9 years agoparse: check before truncating strings
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

9 years agobus: Add guards against invalid arguments to set_flushing() and poll()
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

9 years agobaseparse: only post 'no valid frames' error if buffers were received
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

9 years agotee: Add allow-not-linked property
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

9 years agodocs: Fix typos
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

9 years agopluginloader: Fix typos
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

9 years agooutput-selector: add drain handling
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

9 years agoRevert "Fix distcheck"
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.

9 years agohelpers: remove completion-helper on uninstall
Mathieu Duponchelle [Tue, 24 Mar 2015 18:30:52 +0000 (19:30 +0100)]
helpers: remove completion-helper on uninstall

+ And add it to CLEANFILES

9 years agocompletions: remove last unnamespaced symbols.
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

9 years agocompletions: remove deprecated shell syntax.
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

9 years agocompletions: prefix shell functions with _gst
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

9 years agobash-completion: Respect the prefix
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

9 years agoinput-selector: Rename _activate_sinkpad to _get_active_sinkpad
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

9 years agoinput-selector: Remove pad's 'active' field
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

9 years agoinput-selector: Use segment-presence for running_time check
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

9 years agoinput-selector: Remove 'blocked' flag
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

9 years agoinput-selector: Remove obsolete 'block' signal
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

9 years agoinput-selector: Fix waiting on EOS
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

9 years agotests: input-selector: new tests for EOS handling
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

9 years agotests: selector: remove weird semicolons at the end of test functions
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

9 years agoqueue2: Process SEEKING query
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

9 years agocheck: Fix uninitialized variable compiler warning with gcc
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);
                               ^

9 years agocheck: Catch SIGTERM and SIGINT in the test runner and kill all currently running...
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.

9 years agovalve: Don't drop non-serialized queries when the valve is dropping
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

9 years agosegment: remove the bounds check from _to_running_time_full()
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

9 years agosegment: add option to disable clipping
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

9 years agogst: ref/unref new enum type in gst_init/deinit()
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()

9 years agotools: remove outdated completion script
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

9 years agosegment: add helper to get negative running-time
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

9 years agosegment: fix offset handling with non 0 start
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.

9 years agofunnel: Add support for buffer lists
Sebastian Dröge [Wed, 18 Mar 2015 08:36:35 +0000 (09:36 +0100)]
funnel: Add support for buffer lists

9 years agobaseparse: remove duplicate code
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

9 years agopluginloader: Fix indention
Sebastian Dröge [Tue, 17 Mar 2015 14:41:38 +0000 (15:41 +0100)]
pluginloader: Fix indention

9 years agobaseparse: reset skip on segments and discontinuities
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.

9 years agomultiqueue: Don't grow queue infinitely if only one pad is linked
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

9 years agobasesink: handle empty buffer list more gracefully
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.

9 years agoadapter: minor optimisation for gst_adapter_take_buffer_list()
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.

9 years agotests: add unit test for gst_adapter_take_buffer_list()
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()

9 years agoadapter: add 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()

9 years agoAdd new streamiddemux binaries to .gitignore
Tim-Philipp Müller [Sat, 14 Mar 2015 16:05:57 +0000 (16:05 +0000)]
Add new streamiddemux binaries to .gitignore

9 years agocollectpads: avoid multiple calls to gst_buffer_get_size() in macro
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

9 years agoadapter: 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

9 years agoelement: properly escape percent sign in documentation
Ramiro Polla [Fri, 13 Mar 2015 18:22:01 +0000 (18:22 +0000)]
element: properly escape percent sign in documentation

9 years agobuffer: Use the correct enum type to fix a compiler warning
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))
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

9 years agodefs: update defs
Wim Taymans [Sat, 14 Mar 2015 13:06:09 +0000 (14:06 +0100)]
defs: update defs

9 years agometa: Add `GstNetControlMessageMeta`
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.

9 years agoallocation: Allow allocation pool without size
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.

9 years agobufferpool: Don't stop the pool in set_config()
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

9 years agobasesink: drain on allocation query
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

9 years agobasesink: when draining, deep copy the last buffer to unref old memory
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

9 years agogstbuffer: add gst_buffer_copy_deep
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

9 years agobus: Use g_list_free_full() instead of manually unreffing and freeing
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.

9 years agobus: Fix another case where we hold the object lock while unreffing a message
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

9 years agobus: Unreferencing messages outside the lock
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

9 years agoutils: Add gst_bin_sync_children_states()
Vivia Nikolaidou [Mon, 23 Feb 2015 18:27:32 +0000 (20:27 +0200)]
utils: Add gst_bin_sync_children_states()

gst_bin_sync_children_states() will iterate over all the elements of a bin and
sync their states with the state of the bin. This is useful when adding many
elements to a bin and would otherwise have to call
gst_element_sync_state_with_parent() on each and every one of them.

https://bugzilla.gnome.org/show_bug.cgi?id=745042

9 years agoprintf: handle unsigned modifier for long long
Aurélien Zanelli [Tue, 3 Feb 2015 15:12:32 +0000 (16:12 +0100)]
printf: handle unsigned modifier for long long

Otherwise, an unsigned integer will be displayed as a signed one if we
use internal print, ie HAVE_LONG_LONG_FORMAT is not defined.

https://bugzilla.gnome.org/show_bug.cgi?id=746096

9 years agostreamiddemux: Reset pad counter after removing all pads
Sebastian Dröge [Thu, 12 Mar 2015 14:39:37 +0000 (14:39 +0000)]
streamiddemux: Reset pad counter after removing all pads

9 years agostreamiddemux: Add streamiddemux element
HoonHee Lee [Tue, 4 Mar 2014 10:40:05 +0000 (19:40 +0900)]
streamiddemux: Add streamiddemux element

Demultiplex a stream to multiple source pads based on the stream ids from the
stream-start events. This basically reverses the behaviour of funnel.

https://bugzilla.gnome.org/show_bug.cgi?id=707605

9 years agowin32: update
Tim-Philipp Müller [Thu, 12 Mar 2015 13:29:35 +0000 (13:29 +0000)]
win32: update

9 years agotests: add some basic unit tests for our printf stuff
Tim-Philipp Müller [Thu, 12 Mar 2015 13:26:59 +0000 (13:26 +0000)]
tests: add some basic unit tests for our printf stuff

To test new %I32 support.

https://bugzilla.gnome.org/show_bug.cgi?id=744281

9 years agoprintf: add support for %I32
Matej Knopp [Tue, 10 Feb 2015 16:40:48 +0000 (17:40 +0100)]
printf: add support for %I32

https://bugzilla.gnome.org/show_bug.cgi?id=744281

9 years agoinfo: move category level threshold check into log function dispatcher
Tim-Philipp Müller [Thu, 12 Mar 2015 13:14:52 +0000 (13:14 +0000)]
info: move category level threshold check into log function dispatcher

Minor optimisation: check category log level earlier in the
log function dispatcher and not only in the default log
function.

https://bugzilla.gnome.org/show_bug.cgi?id=745213

9 years agotypefind: Reset segment when deactivating pull mode or not running in pull mode
Sebastian Dröge [Thu, 12 Mar 2015 12:59:57 +0000 (12:59 +0000)]
typefind: Reset segment when deactivating pull mode or not running in pull mode

We use the segment format to detect if we run the streaming thread or not.
Without resetting we might believe we do so, although we only did in the past
and are now running in e.g. push mode.

https://bugzilla.gnome.org/show_bug.cgi?id=745073

9 years agocheck: Use mkstemp instead of tempnam if possible
Michał Dębski [Sun, 8 Mar 2015 19:42:38 +0000 (20:42 +0100)]
check: Use mkstemp instead of tempnam if possible

Using tempnam() is deprecated, this gives warning and fails the build
with -Werror.

https://bugzilla.gnome.org/show_bug.cgi?id=745858

9 years agobasesink: clean up the need_preroll variable
Wim Taymans [Wed, 11 Mar 2015 15:36:29 +0000 (16:36 +0100)]
basesink: clean up the need_preroll variable

Based on patch from Song Bing <b06498@freescale.com>

Don't just set the need_preroll flag to TRUE in all cases. When we
are already prerolled it needs to be set to FALSE and when we go to
READY we should not touch it. We should only set it to TRUE in other
cases, like what the code above does.

See https://bugzilla.gnome.org/show_bug.cgi?id=736655

9 years agofunnel: handle GAP event to forwards sticky events into downstream
hoonhee.lee [Fri, 5 Dec 2014 05:16:52 +0000 (14:16 +0900)]
funnel: handle GAP event to forwards sticky events into downstream

If no data is coming and funnel receive GAP event, need to forwards sticky events
into downstream if it needs.

https://bugzilla.gnome.org/show_bug.cgi?id=738202

9 years agocheck: duplicate code branches
Luis de Bethencourt [Tue, 10 Mar 2015 16:42:44 +0000 (16:42 +0000)]
check: duplicate code branches

CID #1226446

9 years agoFix double semicolons
Tim-Philipp Müller [Tue, 10 Mar 2015 09:21:22 +0000 (09:21 +0000)]
Fix double semicolons