platform/upstream/gstreamer.git
9 years agomessage: revive async delivery message before bus thread can run unref
Tim-Philipp Müller [Tue, 17 Feb 2015 20:47:23 +0000 (20:47 +0000)]
message: revive async delivery message before bus thread can run unref

Revive message in dispose handler before we signal the bus thread,
otherwise the bus thread might be woken up and unref the message
before we had a chance to revive it yet.

9 years agotests: bus: add unit test for async message delivery
Tim-Philipp Müller [Mon, 16 Feb 2015 23:02:40 +0000 (23:02 +0000)]
tests: bus: add unit test for async message delivery

9 years agomessage, bus: fix async message delivery
Tim-Philipp Müller [Mon, 16 Feb 2015 22:39:42 +0000 (22:39 +0000)]
message, bus: fix async message delivery

Async message delivery (where the posting thread gets blocked
until the message has been processed and/or freed) was pretty
much completely broken.

For one, don't use GMutex implementation details to check
whether a mutex has been initialized or not, esp. not
implementation details that don't hold true any more with
newer GLib versions where atomic ops and futexes are used
(spotted by Josep Torras). This led to async message
delivery no longer blocking with newer GLib versions on
Linux.

Secondly, after async delivery don't free mutex/GCond
embedded inside the just-freed message structure.

Use a new (private) mini object flag to signal GstMessage
that the message being freed is part of an async delivery
on the bus so that the dispose handler can keep the message
alive and the bus can free it once it's done cleaning up
stuff.

9 years agoinfo: nicer buffer offset printing when offsets are not set
Tim-Philipp Müller [Mon, 16 Feb 2015 19:24:44 +0000 (19:24 +0000)]
info: nicer buffer offset printing when offsets are not set

Print unset offsets as 'none' instead of humongous numbers,
for better readability.

9 years agopad: Only initialize GValue to a type once, not on every retry
Sebastian Dröge [Mon, 16 Feb 2015 09:35:41 +0000 (11:35 +0200)]
pad: Only initialize GValue to a type once, not on every retry

Otherwise we'll get warnings like this:
cannot initialize GValue with type 'gboolean', the value has already been initialized as 'gboolean'

9 years agogstutils: check uri before using it in gst_pad_create_stream_id_internal
Matthieu Bouron [Sat, 14 Feb 2015 11:15:03 +0000 (12:15 +0100)]
gstutils: check uri before using it in gst_pad_create_stream_id_internal

If an element implements wrongly the URI query and set the uri to NULL and if
the element calls gst_pad_create_stream_id at some point, it will lead to crash
as the uri is not supposed to be NULL in the gst_pad_create_stream_id_internal
function.

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

9 years agotimedvaluecontrolsource: Do not wrongly send value-removed
Thibault Saunier [Fri, 13 Feb 2015 18:43:24 +0000 (19:43 +0100)]
timedvaluecontrolsource: Do not wrongly send value-removed

And avoid freeing something we do not own

9 years agogst-uninstalled: Set GST_VALIDATE_PLUGIN_PATH
Thibault Saunier [Wed, 4 Feb 2015 14:06:17 +0000 (15:06 +0100)]
gst-uninstalled: Set GST_VALIDATE_PLUGIN_PATH

9 years agobasesrc: fix documentation and debug message after latency updates
Thiago Santos [Thu, 12 Feb 2015 16:34:49 +0000 (13:34 -0300)]
basesrc: fix documentation and debug message after latency updates

Changes docs and message according to latency handling fix

9 years agofdsrc: use g_ascii_strtoull() to convert size string in uri
Frédéric Wang [Thu, 12 Feb 2015 14:50:15 +0000 (14:50 +0000)]
fdsrc: use g_ascii_strtoull() to convert size string in uri

sscanf() doesn't handle G_GUINT64_FORMAT well on mingw64 it
appears, leading to compiler warnings.

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

9 years agopad: gst_pad_iterate_internal_links() can return NULL if there are none
Sebastian Dröge [Thu, 12 Feb 2015 12:03:15 +0000 (14:03 +0200)]
pad: gst_pad_iterate_internal_links() can return NULL if there are none

9 years agopad: Return NULL instead of FALSE for pointers
Sebastian Dröge [Thu, 12 Feb 2015 12:03:03 +0000 (14:03 +0200)]
pad: Return NULL instead of FALSE for pointers

9 years agopad: Implement more useful default handling for the LATENCY query
Sebastian Dröge [Thu, 12 Feb 2015 11:55:36 +0000 (13:55 +0200)]
pad: Implement more useful default handling for the LATENCY query

Before we just took the values from the first pad that succeded the query,
now we accumulate the results of every sinkpad properly and return that
result.

9 years agodesign/part-latency: Minor logic fix
Sebastian Dröge [Thu, 12 Feb 2015 09:26:26 +0000 (11:26 +0200)]
design/part-latency: Minor logic fix

The maximum latency will be the element's minimum latency or bigger,
not bigger than the element's minimum latency or bigger.

9 years agoImprove and fix LATENCY query handling
Sebastian Dröge [Wed, 11 Feb 2015 12:41:56 +0000 (13:41 +0100)]
Improve and fix LATENCY query handling

This now follows the design docs everywhere.

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

9 years agodesign/part-latency: Add more details about min/max latency handling
Sebastian Dröge [Wed, 11 Feb 2015 11:20:39 +0000 (12:20 +0100)]
design/part-latency: Add more details about min/max latency handling

These docs missed many details that were not obvious and because of that
handled in a few different, incompatible ways in different elements and base
classes.

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

9 years agotests: Fix clock regression test
Jan Schmidt [Fri, 6 Feb 2015 18:16:23 +0000 (05:16 +1100)]
tests: Fix clock regression test

Fix up the values the test is checking for now that
the clock regression returns parameters starting from
the end of the regression range.

9 years agonetclock: Don't update the clock when it desynch
Jan Schmidt [Fri, 6 Feb 2015 17:22:22 +0000 (04:22 +1100)]
netclock: Don't update the clock when it desynch

Add a hold off when the clock calibration suddenly loses synch,
as it may be a glitch, but also make sure we update if it stays
desynched for more than a few seconds

9 years agonetclock: Make the RTT average ignore large values more forcefully.
Jan Schmidt [Thu, 5 Feb 2015 19:07:43 +0000 (06:07 +1100)]
netclock: Make the RTT average ignore large values more forcefully.

Smooth larger RTTs a little harder, so excessively large values
perturb the average a bit less, and therefore get filtered out
more strongly

9 years agoclock: Make linear regression x/y base start from maximum observation.
Jan Schmidt [Thu, 5 Feb 2015 11:55:39 +0000 (22:55 +1100)]
clock: Make linear regression x/y base start from maximum observation.

Project the results of the linear regression to the end of the
regression range, so they're more directly comparable to results
going forward

9 years agopad: add "offset" property to go with gst_pad_set_offset()
Tim-Philipp Müller [Thu, 5 Feb 2015 13:49:47 +0000 (13:49 +0000)]
pad: add "offset" property to go with gst_pad_set_offset()

So we can set the offset via gst-launch.

9 years agoplugin: add more detail to logging when not loading a plugin
Stefan Sauer [Mon, 2 Feb 2015 07:22:47 +0000 (08:22 +0100)]
plugin: add more detail to logging when not loading a plugin

Improve the log messages and add e.g the version number we checked.

9 years agogstpad: Fix a typo in a docstring.
Jan Schmidt [Mon, 2 Feb 2015 06:37:44 +0000 (17:37 +1100)]
gstpad: Fix a typo in a docstring.

9 years agobuild: Check that _MSC_VER macro is defined
Nicolas Dufresne [Sun, 1 Feb 2015 19:23:26 +0000 (14:23 -0500)]
build: Check that _MSC_VER macro is defined

9 years agotask: Add thread name support on OS X and iOS
Ilya Konstantinov [Sun, 1 Feb 2015 01:39:03 +0000 (03:39 +0200)]
task: Add thread name support on OS X and iOS

9 years agoclock: Don't use invalid objects for GST_DEBUG_OBJECT()
Sebastian Dröge [Thu, 29 Jan 2015 15:37:07 +0000 (16:37 +0100)]
clock: Don't use invalid objects for GST_DEBUG_OBJECT()

Not sure what "clock" actually is here, it must be something defined by one of
the headers that are included.

9 years agobuffer: Document that gst_buffer_copy_region() accepts -1 as size to copy until the end
Sebastian Dröge [Thu, 29 Jan 2015 11:10:18 +0000 (12:10 +0100)]
buffer: Document that gst_buffer_copy_region() accepts -1 as size to copy until the end

It's just a wrapper around gst_buffer_copy_into() after all.

9 years agosegment: Add new skip flags for clarifying trick mode playback.
Jan Schmidt [Tue, 9 Dec 2014 05:28:56 +0000 (16:28 +1100)]
segment: Add new skip flags for clarifying trick mode playback.

Add GST_SEEK_FLAG_TRICKMODE_KEY_UNITS and
GST_SEEK_FLAG_TRICKMODE_NO_AUDIO, and rename GST_SEEK_FLAG_SKIP
to GST_SEEK_FLAG_TRICKMODE (with backwards compat define).

Do the same for the corresponding SEGMENT flags.

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

9 years agocheck: fix another typo in the docs
Stefan Sauer [Fri, 23 Jan 2015 07:59:27 +0000 (08:59 +0100)]
check: fix another typo in the docs

9 years agouri: Fix indention
Sebastian Dröge [Thu, 22 Jan 2015 21:10:06 +0000 (23:10 +0200)]
uri: Fix indention

9 years agouri: Fix new URI parsing tests based on GNet's
David Waring [Wed, 21 Jan 2015 14:10:02 +0000 (14:10 +0000)]
uri: Fix new URI parsing tests based on GNet's

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

9 years agouri: Fix parsing issues
David Waring [Wed, 21 Jan 2015 14:09:45 +0000 (14:09 +0000)]
uri: Fix parsing issues

Make host IPs in square brackets store only the IP, i.e. strip the brackets.
Strip leading whitespace characters in URIs.
Fail parsing when host part does not match any valid formats from RFC3986.

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

9 years agouri: Add parsing unit test based on GNet's
Sebastian Dröge [Mon, 19 Jan 2015 18:15:32 +0000 (19:15 +0100)]
uri: Add parsing unit test based on GNet's

Plus some new URIs to parse.

https://git.gnome.org/browse/archive/gnet/plain/tests/check/gnet/gneturi.c

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

9 years agocheck: Fix doc of GST_CHECKS and GST_CHECKS_IGNORE
Heinrich Fink [Thu, 22 Jan 2015 10:29:18 +0000 (11:29 +0100)]
check: Fix doc of GST_CHECKS and GST_CHECKS_IGNORE

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

9 years agocheck: Add _fail_unless() compatibility function around _ck_assert_failed()
Sebastian Dröge [Wed, 21 Jan 2015 17:07:09 +0000 (18:07 +0100)]
check: Add _fail_unless() compatibility function around _ck_assert_failed()

We exported this in < 1.5 and it was automatically used by many macros
from the header. Keep it exported for now.

9 years agogstpad: Inline apply_pad_offset()
Edward Hervey [Wed, 21 Jan 2015 13:12:22 +0000 (14:12 +0100)]
gstpad: Inline apply_pad_offset()

Avoid doing a function call for something which will mostly be unused

9 years agogstpad: Fix debug message
Edward Hervey [Wed, 21 Jan 2015 13:10:06 +0000 (14:10 +0100)]
gstpad: Fix debug message

9 years agogstpad: Fix PROBE_NO_DATA macro
Edward Hervey [Wed, 21 Jan 2015 10:45:41 +0000 (11:45 +0100)]
gstpad: Fix PROBE_NO_DATA macro

The problem was that the macro was always used with 'ret' as the defaultval
argument.

This would result in the macro eventually expanding to
    if (G_UNLIKELY (ret != ret && ret != GST_FLOW_OK))

... ret != ret will always fail, and therefore we'd never call the
following line.

Instead of that, store the previous value locally for comparision

9 years agonetclock: Fix docs typo. Clock bus messages are GST_MESSAGE_ELEMENT
Jan Schmidt [Wed, 21 Jan 2015 11:44:59 +0000 (22:44 +1100)]
netclock: Fix docs typo. Clock bus messages are GST_MESSAGE_ELEMENT

9 years agonetclock: Implement rate limits for polling and fix up skew limits
Jan Schmidt [Thu, 15 Jan 2015 11:32:28 +0000 (22:32 +1100)]
netclock: Implement rate limits for polling and fix up skew limits

Add the minimum-update-interval property to the clock, with a default
of 50ms and don't send polling requests faster than that. That helps to
ensure we spread the initial observations out a little - startup takes
a little longer, but tracking is more stable.

Move the discont skew limiting code inside an if statement, so that
it's only done when the linear regression succeeds and the clock
parameters might actually change.

9 years agoclock: Improve slaving regression.
Jan Schmidt [Wed, 14 Jan 2015 23:05:32 +0000 (10:05 +1100)]
clock: Improve slaving regression.

Add domain checks for the input values, and a variable precision
calculation that loops if necessary to ensure we never overflow
accumulators and then silently produce garbage results.

Make the (non-public) linear regression function available for
unit testing by putting it in a separate source file the test
can include. Add a unit test that the new regression function
produces sensible results for several inputs taken from real-world
captures.

9 years agonetclock: Add simple network clock server and client examples
Jan Schmidt [Sat, 10 Jan 2015 10:42:00 +0000 (21:42 +1100)]
netclock: Add simple network clock server and client examples

9 years agonetclock: Implement sending statistic bus messages and discont limits
Jan Schmidt [Sat, 10 Jan 2015 10:42:00 +0000 (21:42 +1100)]
netclock: Implement sending statistic bus messages and discont limits

Allow setting a GstBus on the network clock client
via a new 'bus' object property. If a bus is set, the
clock will output an element message containing statistics
about new clock observations and the clock correlation.

When the local clock is synchronised with the remote, limit the
maximum jump in the clock at any point to be one average RTT to
the server. Also, publish in the bus message whether we are
synched with the remote or not.

9 years agoclock: Add gst_clock_add_observation_unapplied()
Jan Schmidt [Sat, 10 Jan 2015 10:42:00 +0000 (21:42 +1100)]
clock: Add gst_clock_add_observation_unapplied()

gst_clock_add_observation_unapplied() adds a new master/slave clock
observation and runs the regression without activating the new
calibration results.

9 years agoclock: Add gst_clock_adjust_with_calibration()
Jan Schmidt [Tue, 16 Dec 2014 11:51:22 +0000 (22:51 +1100)]
clock: Add gst_clock_adjust_with_calibration()

gst_clock_adjust_with_calibration() uses directly passed calibration
parameters, instead of using the clock's current calibration,
allowing for calculations using pending or old calibration params

9 years agooutput-selector: Constify negotiation mode GEnumValue table
Sebastian Dröge [Wed, 21 Jan 2015 08:45:16 +0000 (09:45 +0100)]
output-selector: Constify negotiation mode GEnumValue table

9 years agodocs: fix typo in GstEvent docs
Thiago Santos [Tue, 20 Jan 2015 13:35:47 +0000 (10:35 -0300)]
docs: fix typo in GstEvent docs

send -> sent

9 years agoscripts: Remove gnonlin from the scripts
Thibault Saunier [Tue, 20 Jan 2015 08:19:10 +0000 (09:19 +0100)]
scripts: Remove gnonlin from the scripts

It is not maintain anymore and its feature are now inside the GStreamer
Editing Services (for the time being).

9 years agobin: Pass structs we plan to modify around by pointer, not value
Sebastian Dröge [Fri, 16 Jan 2015 18:17:31 +0000 (19:17 +0100)]
bin: Pass structs we plan to modify around by pointer, not value

Otherwise the struct is going to be copied, which is not very efficient. And
also has the nice side effect that modifications of the struct might be
done in a copy, and we later use the original struct without the changes.

Caused LATENCY queries to always return the initialization values in one of my
tests, instead of the actual values reported by child elements.

9 years agoidentity: send gap events when dropping buffers
Vincent Penquerc'h [Wed, 14 Jan 2015 10:52:11 +0000 (10:52 +0000)]
identity: send gap events when dropping buffers

9 years agopreset: fix incorrect preset version comparison
Phillip Wood [Tue, 13 Jan 2015 18:11:39 +0000 (18:11 +0000)]
preset: fix incorrect preset version comparison

Use app_version if there are no system presets, so that if the
application presets are newer than the user presets they are merged.

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

9 years agoinputselector: Don't dereference NULL pointer
Sebastian Dröge [Mon, 12 Jan 2015 15:03:02 +0000 (16:03 +0100)]
inputselector: Don't dereference NULL pointer

CID 1262286

9 years agoAutomatic update of common submodule
Stefan Sauer [Mon, 12 Jan 2015 14:55:47 +0000 (15:55 +0100)]
Automatic update of common submodule

From f2c6b95 to bc76a8b

9 years agopreset: fix sorting presets
Stefan Sauer [Sun, 11 Jan 2015 22:00:29 +0000 (23:00 +0100)]
preset: fix sorting presets

The glib docs are not clear on this, but the qsort man-page is - the
GCompareDataFunc does not get the strings, but pointers to them.

9 years agoinputselector: fix silly GQueue iteration code
Tim-Philipp Müller [Wed, 31 Dec 2014 18:52:34 +0000 (18:52 +0000)]
inputselector: fix silly GQueue iteration code

Not active by default though.

9 years agopreset: don't return empty preset lists
Stefan Sauer [Sun, 4 Jan 2015 22:24:53 +0000 (23:24 +0100)]
preset: don't return empty preset lists

Add a shortcut for the cases where an element implements the preset iface but
has no presets and return NULL instead of an empty list in that case.

9 years agogst-inspect: only print presets line if num-presets > 0
Stefan Sauer [Sun, 4 Jan 2015 22:08:47 +0000 (23:08 +0100)]
gst-inspect: only print presets line if num-presets > 0

Also check for an empty strv.

9 years agogst-inspect: fix output for -a
Stefan Sauer [Sun, 4 Jan 2015 21:51:09 +0000 (22:51 +0100)]
gst-inspect: fix output for -a

Use n_print to ensure all lines are prefixed with the element name.

9 years agodocs: ignore libcheck headers that use doxygen comments
Stefan Sauer [Mon, 29 Dec 2014 10:54:00 +0000 (11:54 +0100)]
docs: ignore libcheck headers that use doxygen comments

9 years agodocs: fix two gtk-doc warnings
Stefan Sauer [Mon, 29 Dec 2014 10:52:22 +0000 (11:52 +0100)]
docs: fix two gtk-doc warnings

One by correcting the end-of-comment marker and one by making sure the function
prototype in the header is in sync with the c file and doc-blob.

9 years agodocs: Add missing interfaces to documentation
Sebastian Rasmussen [Fri, 26 Dec 2014 22:22:30 +0000 (23:22 +0100)]
docs: Add missing interfaces to documentation

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

9 years agoiterator: Fix outdated example code and accompanying documentation
Nirbheek Chauhan [Sat, 27 Dec 2014 09:45:30 +0000 (15:15 +0530)]
iterator: Fix outdated example code and accompanying documentation

GstIterator no longer returns a refcounted gpointer

9 years agoinputselector: Use the same waiting function for EOS and non-EOS waiting
Sebastian Dröge [Wed, 24 Dec 2014 12:46:28 +0000 (13:46 +0100)]
inputselector: Use the same waiting function for EOS and non-EOS waiting

9 years agoinputselector: Wake up all waitings pads directly if we forward the EOS event
Sebastian Dröge [Wed, 24 Dec 2014 12:44:09 +0000 (13:44 +0100)]
inputselector: Wake up all waitings pads directly if we forward the EOS event

Otherwise they might wait a bit longer unnecessarily.

Also do some minor cleanup.

9 years agoinputselector: Block when receiving an EOS event on a deactivated pad
Song Bing [Wed, 24 Dec 2014 02:13:51 +0000 (10:13 +0800)]
inputselector: Block when receiving an EOS event on a deactivated pad

... and only unblock when either a) the pad becomes active and the event
should be forwarded or b) the active pad went EOS itself.

Otherwise it can happen that we switch from a longer track that is not EOS yet
to a shorter track that already is EOS, but the shorter track won't have any
possibility to send its EOS event downstream anymore.

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

9 years agoinputselector: Keep a ref of the currently active sinkpad around
Sebastian Dröge [Tue, 23 Dec 2014 11:54:50 +0000 (12:54 +0100)]
inputselector: Keep a ref of the currently active sinkpad around

Otherwise we can't be sure that the pointer points to a still existing
pad instance after releasing the lock.

9 years agoinputselector: Get the active sinkpad again after taking the lock when handling events
Song Bing [Tue, 23 Dec 2014 11:53:58 +0000 (12:53 +0100)]
inputselector: Get the active sinkpad again after taking the lock when handling events

It might have changed in the meantime.

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

9 years agobasetransform: Short-circuit CAPS query handling if transform_caps returns EMPTY...
Sebastian Dröge [Mon, 22 Dec 2014 12:08:37 +0000 (13:08 +0100)]
basetransform: Short-circuit CAPS query handling if transform_caps returns EMPTY caps

Both for the peer filter caps and the converted caps based on the peer caps.

If the peer filter caps are EMPTY, the peer caps query will also return
EMPTY. There's no ned to both downstream/upstream with this query.

9 years agoMAINTAINERS: Update my mail address
Sebastian Dröge [Mon, 22 Dec 2014 10:45:13 +0000 (11:45 +0100)]
MAINTAINERS: Update my mail address

9 years agodebugutils: use a constant for the max param length
Stefan Sauer [Sun, 21 Dec 2014 13:12:29 +0000 (14:12 +0100)]
debugutils: use a constant for the max param length

Improve readability by using a define for the max-chars. Also use the unicode
ellipsis as dot files are utf-8.

9 years agogst-inspect: print preset names
Stefan Sauer [Mon, 15 Dec 2014 13:03:54 +0000 (14:03 +0100)]
gst-inspect: print preset names

If the element supports presets and ships some, print them.
Fixes #741427

9 years agogstinfo: Add new maximum level debugging
Edward Hervey [Fri, 19 Dec 2014 10:35:24 +0000 (11:35 +0100)]
gstinfo: Add new maximum level debugging

API: GST_LEVEL_MAX

By compiling gstreamer (or plugins) with GST_LEVEL_MAX defined, only
the debugging statements at or below that level will be compiled in.

This allows compiling in some debugging (like errors and warnings) which
helps in debugging, but without the full cpu/memory overhead of all debugging
enabled.

9 years agogstcheck: fix GI annotation
Thiago Santos [Thu, 18 Dec 2014 15:04:22 +0000 (12:04 -0300)]
gstcheck: fix GI annotation

Add missing : to annotation

9 years agobaseparse: jump over large skips in pull mode
Vincent Penquerc'h [Thu, 13 Nov 2014 14:53:59 +0000 (14:53 +0000)]
baseparse: jump over large skips in pull mode

This bypasses the dumping of buffers we still have to do in push mode.

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

9 years agodebugutils: Truncate parameter values that are too long
Arun Raghavan [Sat, 25 Oct 2014 11:46:25 +0000 (17:16 +0530)]
debugutils: Truncate parameter values that are too long

This removes some information from the dumps, but improves readability.

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

9 years agoAutomatic update of common submodule
Sebastian Dröge [Thu, 18 Dec 2014 09:53:02 +0000 (10:53 +0100)]
Automatic update of common submodule

From ef1ffdc to f2c6b95

9 years agostructure/caps: Add gst_{structure,caps}_filter_and_map_in_place()
Sebastian Dröge [Tue, 16 Dec 2014 15:31:21 +0000 (16:31 +0100)]
structure/caps: Add gst_{structure,caps}_filter_and_map_in_place()

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

9 years agostructure: Add simple unit test for foreach() and map_in_place()
Sebastian Dröge [Tue, 16 Dec 2014 17:14:22 +0000 (18:14 +0100)]
structure: Add simple unit test for foreach() and map_in_place()

9 years agocaps: Add gst_caps_foreach() and gst_caps_map_in_place()
Sebastian Dröge [Fri, 7 Nov 2014 10:15:09 +0000 (11:15 +0100)]
caps: Add gst_caps_foreach() and gst_caps_map_in_place()

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

9 years agopo: update for new translatable strings
Tim-Philipp Müller [Tue, 16 Dec 2014 15:53:06 +0000 (15:53 +0000)]
po: update for new translatable strings

9 years agocheck: Have autotools generate internal-check.h
Sebastian Rasmussen [Sun, 14 Dec 2014 11:54:32 +0000 (12:54 +0100)]
check: Have autotools generate internal-check.h

Previously GStreamer got access to the libcheck interface by including
libs/gst/check/check.h which in turn included internal-check.h in the
same directory. internal-check.h was generated by copying
libs/gst/check/libcheck/check.h which in turn was generated from
check.h.in in the same directory. In this case generating
libs/gst/check/libcheck/check.h is unnecessary, in addition this file
was accidentally distributed in generated project tarballs.

Now libs/gst/check/internal-check.h is generated directly from
libs/gst/check/libcheck/check.h.in by configure. This means that the
libcheck source must include internal-check.h instead of the previously
generated libs/gst/check/libcheck/check.h. However the unnecessary
intermediate step is now skipped.

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

9 years agobufferpool: Don't check size in config validation
Nicolas Dufresne [Tue, 16 Dec 2014 15:13:03 +0000 (10:13 -0500)]
bufferpool: Don't check size in config validation

Pools are allowed to change the size in order to adapt padding. So
don't check the size. Normally pool will change the size without
failing set_config(), but it they endup changing the size before
the validate method may fail on a false positive.

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

9 years agobufferpool: log reason for discarded buffers
Wim Taymans [Tue, 16 Dec 2014 11:21:59 +0000 (12:21 +0100)]
bufferpool: log reason for discarded buffers

PERFORMANCE log the reason why a buffer could not be recycled in the
bufferpool.

9 years agocheck: Update version number of included libcheck
Sebastian Rasmussen [Mon, 15 Dec 2014 13:53:28 +0000 (14:53 +0100)]
check: Update version number of included libcheck

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

9 years agowin32: update exports
Tim-Philipp Müller [Fri, 12 Dec 2014 21:02:22 +0000 (21:02 +0000)]
win32: update exports

9 years agodocs: add new preset api
Stefan Sauer [Fri, 12 Dec 2014 20:54:01 +0000 (21:54 +0100)]
docs: add new preset api

9 years agopreset: add gst_preset_is_editable()
Stefan Sauer [Fri, 12 Dec 2014 20:38:26 +0000 (21:38 +0100)]
preset: add gst_preset_is_editable()

Add a function to check if the preset iface implementation is editable and
document this from the implementers perspective.
API: gst_preset_is_editable()

9 years agowin32: Update def file
Edward Hervey [Fri, 12 Dec 2014 13:23:19 +0000 (14:23 +0100)]
win32: Update def file

9 years agodebugutils: Fix compiler warning
Sebastian Dröge [Fri, 12 Dec 2014 12:57:39 +0000 (13:57 +0100)]
debugutils: Fix compiler warning

gstdebugutils.c: In function 'gst_debug_bin_to_dot_data':
gstdebugutils.c:683:530: error: 'return' with no value, in function returning non-void [-Werror]
   g_return_if_fail (GST_IS_BIN (bin));

9 years agodebugutils: Add a gst_debug_bin_to_dot_data() method
Arun Raghavan [Fri, 12 Dec 2014 07:45:02 +0000 (13:15 +0530)]
debugutils: Add a gst_debug_bin_to_dot_data() method

This provides the dot file as a string, rather than dumping to a file.

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

9 years agotypefind: minor cosmetic change
Tim-Philipp Müller [Wed, 10 Dec 2014 11:17:11 +0000 (11:17 +0000)]
typefind: minor cosmetic change

No nee to abbrev variab nam here, nicer to read if full.

9 years agotypefind: use GST_BUFFER_OFFSET_NONE for buffer offset
Tim-Philipp Müller [Wed, 10 Dec 2014 11:16:09 +0000 (11:16 +0000)]
typefind: use GST_BUFFER_OFFSET_NONE for buffer offset

9 years agocheck: Avoid requring (u)intmax_t in macros
Sebastian Rasmussen [Sun, 7 Dec 2014 11:55:26 +0000 (12:55 +0100)]
check: Avoid requring (u)intmax_t in macros

Previously embedded libcheck versions did not depend on (u)intmax_t and
doing so would require projects using GStreamer's check framework to add
AX_CREATE_STDINT_H to their configure.ac. A workaround is to fallback to
glib types. This patch assumes that glib.h is always included before
internal-check.h which is ok since everything Gstreamer would include
gst/gstcheck.h instead of directly including internal-check.h.

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

9 years agocheck: Fix compilation error for iOS
Sebastian Rasmussen [Sat, 6 Dec 2014 18:03:04 +0000 (19:03 +0100)]
check: Fix compilation error for iOS

libcheck includes CoreServices for its compat for clock_gettime(),
even though it never uses anything it declares. Let's remove it.

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

9 years agocheck: Apply GStreamer-specific patches
Sebastian Rasmussen [Sat, 15 Nov 2014 12:26:47 +0000 (13:26 +0100)]
check: Apply GStreamer-specific patches

Reintroduced patches:

 * Make sure that fail_if(1) actually fails
   from commit 9f99d056a263e71a5e6181224829def906cf0226

New patches due to updated libcheck (based on 0.9.14):

 * Checks in m4/check-checks.m4 to cater for new dependencies
 * Conditional compile-time compat POSIX fallbacks for libcheck
 * Avoid relative paths for libcheck header files
 * Make timer_create() usage depend on posix timers, not librt
 * Rely on default AX_PTHREAD behavior to allow HAVE_PTHREAD to be used
   when checking for types and functions (like clock_gettime())
 * Avoid double declaration of clock_gettime() when availabe outside of
   librt by making compat clock_gettime() declaration conditional
 * check 0.9.9 renamed _fail_unless() and 0.9.12 later renamed it again
   to _ck_assert_failed(), so ASSERT_{CRITICAL,WARNING}() now calls this
   function
 * Remove libcheck fallback infrastructure for malloc(), realloc(),
   gettimeofday() and snprintf() since either they appear to be
   available or they introduce even more dependencies.

The result is an embedded check in gstreamer that has been tested by
running check tests in core, -base, -good, -bad, -ugly and rtsp-server
on Linux, OSX and Windows.

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

9 years agocheck: Import version 0.9.14
Sebastian Rasmussen [Sat, 15 Nov 2014 11:53:32 +0000 (12:53 +0100)]
check: Import version 0.9.14

This lifts the files almost verbatim (the changes being running though
gst-indent and fixing the FSF address) from the upstream respository.
Therefore this commit reverts some GStreamer-specific patches to check
that will be reintroduced next.

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

9 years agotypefind: Propagate input buffer offset
Edward Hervey [Tue, 4 Nov 2014 18:11:50 +0000 (19:11 +0100)]
typefind: Propagate input buffer offset

The initial buffers might have non-default offsets, make sure they get
propagated if present.

9 years agobasesink: clamp reported position based on direction
Edward Hervey [Tue, 7 Oct 2014 14:44:45 +0000 (16:44 +0200)]
basesink: clamp reported position based on direction

When using a negative rate (rate being segment.rate * segment.applied_rate),
we will end up reporting decreasing positions, therefore adjust the clamping
against last reported value accordingly.

Fixes positions getting properly reported with applied_rate < 0.0

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

9 years agoDon't compare booleans for equality to TRUE and FALSE
Sebastian Dröge [Fri, 28 Nov 2014 13:17:54 +0000 (14:17 +0100)]
Don't compare booleans for equality to TRUE and FALSE

TRUE is 1, but every other non-zero value is also considered true. Comparing
for equality with TRUE would only consider 1 but not the others.

Also normalize booleans in a few places.

9 years agoplugins: fix build on windows
Tim-Philipp Müller [Sun, 30 Nov 2014 23:50:53 +0000 (23:50 +0000)]
plugins: fix build on windows

gstelements_private.c: In function 'gst_writev_buffers':
gstelements_private.c:236:51: error: 'EWOULDBLOCK' undeclared