platform/upstream/gstreamer.git
10 years agoelement: Clarify docs about gst_element_get_request_pad() and remove deprecation...
Sebastian Dröge [Wed, 13 Aug 2014 09:37:08 +0000 (12:37 +0300)]
element: Clarify docs about gst_element_get_request_pad() and remove deprecation part

This function is not really pad or slow for the common case of requesting a
pad with the name of the template. It is only slower if you to name your pads
directly instead of letting the element handle it.

Also there's no reason to deprecate it in favor of a more complicated function
for the common case.

10 years agoqueue2: Post errors if we receive EOS after downstream reported an error
Sebastian Dröge [Wed, 13 Aug 2014 09:20:51 +0000 (12:20 +0300)]
queue2: Post errors if we receive EOS after downstream reported an error

There will be no further data flow that would allow us to propagate the
error upstream, causing nobody at all to post an error message.

10 years agoqueue: Post errors when receiving EOS after downstream returned an error
Sebastian Dröge [Wed, 13 Aug 2014 09:15:03 +0000 (12:15 +0300)]
queue: Post errors when receiving EOS after downstream returned an error

There might be no further data flow that would allow us to propagate the
error upstream, causing nobody to post an error at all.

10 years agomultiqueue: Post errors ourselves if they are received after EOS
Sebastian Dröge [Wed, 13 Aug 2014 09:10:39 +0000 (12:10 +0300)]
multiqueue: Post errors ourselves if they are received after EOS

After EOS there will be no further buffer which could propagate the
error upstream, so nothing is going to post an error message and
the pipeline just idles around.

10 years agopoll: Prevent false-negative from WAKE_EVENT() on W32
Руслан Ижбулатов [Sun, 27 Jul 2014 03:06:16 +0000 (03:06 +0000)]
poll: Prevent false-negative from WAKE_EVENT() on W32

SetEvent() seems to not call SetLastError(0) internally, so checking last
error after calling SetEvent() may return the error from an earlier W32 API
call. Fix this by calling SetlastError(0) explicitly.

Currently WAKE_EVENT() code is cramped into a macro and doesn't look to be
entirely correct. Particularly, it does not check the return value of
SetEvent(), only the thread-local W32 error value. It is likely that SetEvent()
actually just returns non-zero value, but the code mistakenly thinks that the
call has failed, because GetLastError() seems to indicate so.

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

10 years agobufferpool: Add missing error checking to default_alloc_buffer()
Mohammed Sameer [Wed, 30 Jul 2014 12:46:22 +0000 (15:46 +0300)]
bufferpool: Add missing error checking to default_alloc_buffer()

default_alloc_buffer() calls gst_buffer_new_allocate() but does not check for
failed allocation.

This patch makes default_alloc_buffer() return an error (GST_FLOW_ERROR) if
buffer allocation fails.

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

10 years agomultiqueue: avoid using infinite buffers limit if finite is requested
Thiago Santos [Tue, 29 Jul 2014 17:21:33 +0000 (14:21 -0300)]
multiqueue: avoid using infinite buffers limit if finite is requested

If the current max-buffers limit it infinite and a finite value is
requested, switch to the MAX (requested, current-value) to set some
limit but not below what we know that we've needed so far.

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

10 years agoparse: Unref reference to enclosing bins
Sebastian Rasmussen [Thu, 24 Jul 2014 20:02:58 +0000 (22:02 +0200)]
parse: Unref reference to enclosing bins

Previously all reference to enclosing bins of an element were leaked
when doing delaying setting a property.

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

10 years agogst: include atomicqueue.h again in gst.h
Tim-Philipp Müller [Sat, 26 Jul 2014 13:42:54 +0000 (14:42 +0100)]
gst: include atomicqueue.h again in gst.h

It's a public header of gstreamer core, so #include <gst/gst.h>
should make the API available.

10 years agofunnel: Fix for racy EOS event handling
Srimanta Panda [Wed, 9 Jul 2014 13:48:10 +0000 (15:48 +0200)]
funnel: Fix for racy EOS event handling

When eos events are forwarded simultaneouly from two sinkpads on
funnel, it doesnot forward the eos to sourcepad. The reason is
sticky events are stored after the event callbacks are returned.
Therefore while one is about to store the sticky events on the its
sinkpad, other sinkpad starts checking for the eos events on all other
sinkpads and assumes eos is not present yet.

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

10 years agoRelease 1.4.0 1.4.0
Sebastian Dröge [Sat, 19 Jul 2014 14:46:41 +0000 (16:46 +0200)]
Release 1.4.0

10 years agoUpdate .po files
Sebastian Dröge [Sat, 19 Jul 2014 14:21:20 +0000 (16:21 +0200)]
Update .po files

10 years agopo: Update translations
Sebastian Dröge [Sat, 19 Jul 2014 10:16:58 +0000 (12:16 +0200)]
po: Update translations

10 years agobaseparse: Return FLOW_FLUSHING when pushing a frame on a pad that has been flushed
Thibault Saunier [Thu, 17 Jul 2014 13:53:53 +0000 (15:53 +0200)]
baseparse: Return FLOW_FLUSHING when pushing a frame on a pad that has been flushed

When going to READY, it is possible that we are still pusing a frame but that
our srcpad has already been set to flushing. In that case we should not
post any error on the bus but instead cleanly return FLOW_FLUSHING.

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

10 years agotypefindelement: Propagate input buffer PTS and DTS
Edward Hervey [Thu, 17 Jul 2014 05:07:36 +0000 (07:07 +0200)]
typefindelement: Propagate input buffer PTS and DTS

The initial buffers (that were used for timestamping) might have PTS
and DTS set. In order to forward those properly, get the initial
PTS/DTS from the adapter and set them on the reconstructed output
buffer.

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

10 years agodebugutils: Unref pad template after use
Sebastian Rasmussen [Sat, 12 Jul 2014 15:01:23 +0000 (17:01 +0200)]
debugutils: Unref pad template after use

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

10 years agogst: init taglist gtype to use it in gstvalue
Thiago Santos [Mon, 14 Jul 2014 21:10:45 +0000 (18:10 -0300)]
gst: init taglist gtype to use it in gstvalue

Otherwise it will have a 0 value and GstTagList won't be found
for GstValue functions (serialization/deserialization)

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

10 years agoRelease 1.3.91 1.3.91
Sebastian Dröge [Fri, 11 Jul 2014 08:46:01 +0000 (10:46 +0200)]
Release 1.3.91

10 years agoUpdate .po files
Sebastian Dröge [Fri, 11 Jul 2014 08:41:20 +0000 (10:41 +0200)]
Update .po files

10 years agopo: Update translations
Sebastian Dröge [Fri, 11 Jul 2014 06:51:08 +0000 (08:51 +0200)]
po: Update translations

10 years agodocs: Fix documentation typos and inconsistencies
Sebastian Rasmussen [Sat, 5 Jul 2014 16:29:29 +0000 (18:29 +0200)]
docs: Fix documentation typos and inconsistencies

 * GstGlobalDeviceMonitor was renamed to GstDeviceMonitor
 * Expand GST_MESSAGE_DEVICE to the full enum value names
 * Correct the incorrect references to the GstDeviceProvider interfaces
 * Describe caps arguments for gstcheck interface
 * Add missing docs for GstNetAddressMeta and its add function
 * Add docs for toc helper macros
 * Avoid refering to GstValueList type as done elsewhere

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

10 years agodocs: Cleanup interface references in docs
Sebastian Rasmussen [Sat, 5 Jul 2014 15:13:21 +0000 (17:13 +0200)]
docs: Cleanup interface references in docs

 * Delete references to removed interfaces
 * Add missing documentation sections
 * Fix duplicate interface references for GstDevice

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

10 years agodocs: There is no decodebin2 anymore, don't pretend otherwise
Sebastian Dröge [Tue, 8 Jul 2014 09:17:41 +0000 (11:17 +0200)]
docs: There is no decodebin2 anymore, don't pretend otherwise

10 years agofdsrc: fix error setting when uri is invalid
Thiago Santos [Mon, 7 Jul 2014 19:14:32 +0000 (16:14 -0300)]
fdsrc: fix error setting when uri is invalid

Elements should always set the GError

10 years agolibs: gstcheck: check that mutex is locked before g_cond_wait*() is called
Tim-Philipp Müller [Sun, 6 Jul 2014 11:13:04 +0000 (12:13 +0100)]
libs: gstcheck: check that mutex is locked before g_cond_wait*() is called

Sanity check to catch problems in unit test.

10 years agolibs: gstcheck: init and clear global mutex and cond variables
Tim-Philipp Müller [Sun, 6 Jul 2014 11:12:20 +0000 (12:12 +0100)]
libs: gstcheck: init and clear global mutex and cond variables

10 years agotests: fix locking in gstpoll unit test
Tim-Philipp Müller [Sun, 6 Jul 2014 11:09:31 +0000 (12:09 +0100)]
tests: fix locking in gstpoll unit test

The mutex needs to be locked when g_cond_wait*() is
called.

10 years agogst-uninstalled: add video and base library paths from -bad
Matthieu Bouron [Sat, 5 Jul 2014 15:24:18 +0000 (16:24 +0100)]
gst-uninstalled: add video and base library paths from -bad

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

10 years agotools: suppress GLib warnings when gst-inspecting deprecated properties
Tim-Philipp Müller [Fri, 4 Jul 2014 18:40:28 +0000 (19:40 +0100)]
tools: suppress GLib warnings when gst-inspecting deprecated properties

GLib in git will spew a g_warning() when a property marked as
deprecated via param spec flags is accessed. Suppress this by
setting the appropriate environment variable.

10 years agomessage: Work around g-i/pygobject/gjs bug with ~0 in enums
Sebastian Dröge [Thu, 3 Jul 2014 08:11:02 +0000 (10:11 +0200)]
message: Work around g-i/pygobject/gjs bug with ~0 in enums

GST_MESSAGE_ANY was considered a long by pygobject and gjs, and thus
couldn't be used in gst_bus_poll() and similar APIs as they expect an
int-typed enum.

Just use 0xffffffff instead for now.

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

10 years agotests: don't use post-GLib 2.32 API in bufferlist test
Tim-Philipp Müller [Wed, 2 Jul 2014 07:41:18 +0000 (08:41 +0100)]
tests: don't use post-GLib 2.32 API in bufferlist test

g_ptr_array_insert() is GLib >= 2.40

10 years agopad: Don't unlock while iterating over all sticky events for removal
Göran Jönsson [Tue, 1 Jul 2014 10:22:56 +0000 (12:22 +0200)]
pad: Don't unlock while iterating over all sticky events for removal

Otherwise we might end up getting the event removed from elsewhere
at the same time while we're unlocked for g_object_notify().

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

10 years agoidentity: Proxy the accept-caps query
Sebastian Dröge [Tue, 1 Jul 2014 17:17:11 +0000 (19:17 +0200)]
identity: Proxy the accept-caps query

We always work in passthrough mode so there's no point in doing
something more clever in basetransform. Also the basetransform
code leads to problems with incomplete caps and downstream
elements that use GST_PAD_FLAG_ACCEPT_INTERSECT.

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

10 years agobasesink: reset QoS on segment event
Vincent Penquerc'h [Tue, 1 Jul 2014 10:21:53 +0000 (11:21 +0100)]
basesink: reset QoS on segment event

This avoids spurious warnings about slow machine when upstream
sends new segments without flushing.

10 years agointrospection: Assorted minor introspection and documentation fixes
Evan Nemerson [Tue, 1 Jul 2014 06:39:18 +0000 (23:39 -0700)]
introspection: Assorted minor introspection and documentation fixes

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

10 years agodevicemonitor: Stop using g_clear_pointer()
Guillaume Desmottes [Mon, 30 Jun 2014 08:59:18 +0000 (08:59 +0000)]
devicemonitor: Stop using g_clear_pointer()

We dont't want to depend on GLib 2.34 for now.

10 years agosparsefile: Initialize memory in unit test to make valgrind happy
Sebastian Dröge [Sun, 29 Jun 2014 17:16:05 +0000 (19:16 +0200)]
sparsefile: Initialize memory in unit test to make valgrind happy

We were writing unitialized stack memory to the file.

10 years agoRelease 1.3.90 1.3.90
Sebastian Dröge [Sat, 28 Jun 2014 08:45:18 +0000 (10:45 +0200)]
Release 1.3.90

10 years agoUpdate .po files
Sebastian Dröge [Sat, 28 Jun 2014 08:41:48 +0000 (10:41 +0200)]
Update .po files

10 years agodevicemonitor: don't fail when started without any filters
Tim-Philipp Müller [Fri, 27 Jun 2014 09:44:32 +0000 (10:44 +0100)]
devicemonitor: don't fail when started without any filters

Just show all devices then.

10 years agodeviceproviderfactory: handle NULL classes argument and match any
Tim-Philipp Müller [Fri, 27 Jun 2014 09:44:01 +0000 (10:44 +0100)]
deviceproviderfactory: handle NULL classes argument and match any

10 years agodevice: Add unit tests
Olivier Crête [Fri, 27 Jun 2014 01:00:40 +0000 (21:00 -0400)]
device: Add unit tests

10 years agodevicemonitor: Improve documentation
Olivier Crête [Thu, 26 Jun 2014 21:22:25 +0000 (17:22 -0400)]
devicemonitor: Improve documentation

10 years agodevicemonitor: Make it possible to add multiple filters
Olivier Crête [Thu, 26 Jun 2014 21:13:12 +0000 (17:13 -0400)]
devicemonitor: Make it possible to add multiple filters

Each filter will include a GstCaps and a set of classes to match

10 years agodevice: Add pre-conditions
Olivier Crête [Thu, 26 Jun 2014 20:31:51 +0000 (16:31 -0400)]
device: Add pre-conditions

10 years agoGstDeviceMonitor: Rename from GstGlobalDeviceMonitor
Olivier Crête [Thu, 26 Jun 2014 19:08:46 +0000 (15:08 -0400)]
GstDeviceMonitor: Rename from GstGlobalDeviceMonitor

10 years agoDeviceProvider: Rename from DeviceMonitor
Olivier Crête [Thu, 26 Jun 2014 18:28:09 +0000 (14:28 -0400)]
DeviceProvider: Rename from DeviceMonitor

10 years agodataqueue: Hide from bindings
Sebastian Dröge [Thu, 26 Jun 2014 17:31:33 +0000 (19:31 +0200)]
dataqueue: Hide from bindings

Other languages have their own data structures that are more convenient to
use.

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

10 years agoqueuearray: Hide from bindings
Sebastian Dröge [Thu, 26 Jun 2014 17:30:52 +0000 (19:30 +0200)]
queuearray: Hide from bindings

Other languages have their own data structures that are more convenient to use.

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

10 years agominiobject: Add missing (nullable) annotations
Philip Withnall [Wed, 28 May 2014 09:14:45 +0000 (10:14 +0100)]
miniobject: Add missing (nullable) annotations

gst_mini_object_replace() can take NULL mini-objects.

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

10 years agomessage: Application and element messages should not have NULL structures
Sebastian Dröge [Thu, 26 Jun 2014 17:02:06 +0000 (19:02 +0200)]
message: Application and element messages should not have NULL structures

It does not make sense for them.

10 years agointrospection: add some missing allow-none annotations to in params
Evan Nemerson [Wed, 11 Jun 2014 23:19:01 +0000 (16:19 -0700)]
introspection: add some missing allow-none annotations to in params

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

10 years agointrospection: add nullability annotations to out and inout params
Evan Nemerson [Wed, 11 Jun 2014 23:06:19 +0000 (16:06 -0700)]
introspection: add nullability annotations to out and inout params

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

10 years agointrospection: add missing (nullable) annotations to return values
Evan Nemerson [Wed, 11 Jun 2014 22:21:34 +0000 (15:21 -0700)]
introspection: add missing (nullable) annotations to return values

Support for (nullable) was added to G-I at the same time as nullable
return values.  Previous versions of G-I will not mark return values as
nullable, even when an (allow-none) annotation is present, so it is
not necessary to add (allow-none) annotations for compatibility with
older versions of G-I.

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

10 years agobase: assorted introspection fixes and additions
Evan Nemerson [Thu, 12 Jun 2014 00:15:39 +0000 (17:15 -0700)]
base: assorted introspection fixes and additions

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

10 years agobase: add (nullable) annotations to return values
Evan Nemerson [Thu, 12 Jun 2014 00:12:20 +0000 (17:12 -0700)]
base: add (nullable) annotations to return values

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

10 years agotests: add another buffer list test case
Tim-Philipp Müller [Thu, 26 Jun 2014 13:08:03 +0000 (14:08 +0100)]
tests: add another buffer list test case

10 years agotests: port and re-enable buffer list tests
Tim-Philipp Müller [Thu, 26 Jun 2014 12:24:08 +0000 (13:24 +0100)]
tests: port and re-enable buffer list tests

And remove some which don't apply any more.

10 years agotests: enhance the gstcaps test_features to also test gst_caps_set_features()
George Kiagiadakis [Thu, 26 Jun 2014 08:58:04 +0000 (11:58 +0300)]
tests: enhance the gstcaps test_features to also test gst_caps_set_features()

Compliments my previous patch for gst_caps_set_features, which would
previously assert and leak the old GstCapsFeatures if the caps already
had a GstCapsFeatures and you were trying to replace it with a new one.

10 years agocaps: unset the parent refcount of the old features before freeing them in gst_caps_s...
George Kiagiadakis [Thu, 26 Jun 2014 08:16:34 +0000 (11:16 +0300)]
caps: unset the parent refcount of the old features before freeing them in gst_caps_set_features()

Otherwise gst_caps_features_free() asserts and the features structure is leaked

10 years agobaseparse: avoid returning _OK for _NOT_LINKED
Thiago Santos [Mon, 16 Jun 2014 22:30:06 +0000 (19:30 -0300)]
baseparse: avoid returning _OK for _NOT_LINKED

When the parser receives non-aligned packets it can push a buffer
and get a not-linked return while still leaving some data still to
be parsed. This remaining data will not form a complete frame and
the subclass likely returns _OK and baseparse would take that
as the return, while it the element is actually not-linked.

This patch fixes this by storing the last flow-return from a push
and using that if a parsing operation doesn't result in data being
flushed or skipped.

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

10 years agoelements: fix copyright and remove gtk-doc chunk
Tim-Philipp Müller [Wed, 25 Jun 2014 10:40:57 +0000 (11:40 +0100)]
elements: fix copyright and remove gtk-doc chunk

Trivial as it may be, this code was mostly copied from
somewhere else. The gtk-doc chunk is not needed, since
it's not public API.

10 years agofilesrc: Ignore seek error on non-seekable files
Olivier Crête [Tue, 3 Jun 2014 02:07:52 +0000 (22:07 -0400)]
filesrc: Ignore seek error on non-seekable files

This make it works with FIFOs.

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

10 years agoBack to development
Sebastian Dröge [Sun, 22 Jun 2014 17:36:14 +0000 (19:36 +0200)]
Back to development

10 years agoRelease 1.3.3 1.3.3
Sebastian Dröge [Sun, 22 Jun 2014 16:07:42 +0000 (18:07 +0200)]
Release 1.3.3

10 years agoUpdate .po files
Sebastian Dröge [Sun, 22 Jun 2014 15:15:40 +0000 (17:15 +0200)]
Update .po files

10 years agopo: Update translations
Sebastian Dröge [Sun, 22 Jun 2014 12:23:03 +0000 (14:23 +0200)]
po: Update translations

10 years agotests: add unit test for gst_caps_is_any() and _is_empty()
Tim-Philipp Müller [Sun, 22 Jun 2014 11:52:01 +0000 (12:52 +0100)]
tests: add unit test for gst_caps_is_any() and _is_empty()

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

10 years agocaps: gst_caps_is_any() should return TRUE or FALSE
Tim-Philipp Müller [Sun, 22 Jun 2014 11:50:42 +0000 (12:50 +0100)]
caps: gst_caps_is_any() should return TRUE or FALSE

Not some flag value instead of TRUE. Fixes code like
gst_caps_is_any() == TRUE.

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

10 years agodevice: rename "klass" and get_klass() to "device-class" and _get_device_class()
Tim-Philipp Müller [Sun, 1 Jun 2014 15:56:41 +0000 (16:56 +0100)]
device: rename "klass" and get_klass() to "device-class" and _get_device_class()

There's some precedent in GstElementFactory, but a
"klass" property just seems weird.

10 years agobenchmarks: capsnego: add --loops command line option
Tim-Philipp Müller [Fri, 20 Jun 2014 17:34:44 +0000 (18:34 +0100)]
benchmarks: capsnego: add --loops command line option

And default to 50 loops.

10 years agobenchmark: capsnego: use GOptionContext for option parsing
Tim-Philipp Müller [Fri, 20 Jun 2014 16:14:52 +0000 (17:14 +0100)]
benchmark: capsnego: use GOptionContext for option parsing

10 years agotests: fix compiler warnings in gstvalue tests
Tim-Philipp Müller [Thu, 19 Jun 2014 11:10:23 +0000 (12:10 +0100)]
tests: fix compiler warnings in gstvalue tests

Calling GST_VALUE_HOLDS_*(&v) now results in a compiler
warning about value!=NULL always being false, so check
type directly in those cases.

10 years agovalue: simplify GST_VALUE_HOLDS for our boxed and fundamental types
Tim-Philipp Müller [Tue, 17 Jun 2014 21:45:57 +0000 (22:45 +0100)]
value: simplify GST_VALUE_HOLDS for our boxed and fundamental types

Boxed types can't be derived from, and we don't support
deriving from our special fundamental types (the code
checks for GType equality in most places.

10 years agoGstDevice: Document GstDevice and related classes
Olivier Crête [Fri, 20 Jun 2014 20:55:06 +0000 (16:55 -0400)]
GstDevice: Document GstDevice and related classes

10 years agoFix funnel EOS handling and wrong unittest
Srimanta Panda [Mon, 16 Jun 2014 11:47:55 +0000 (13:47 +0200)]
Fix funnel EOS handling and wrong unittest

When no data is coming from sinkpads and eos events
arrived at one of the sinkpad, funnel forwards the EOS
event to downstream. It forwards the EOS because lastsink pad
is NULL. Also the unit testcase of the funnel is not checking
the correct behavior as it should. The unit test case should
fail if one of the sink pad has already EOS present on it and
we are trying to push one more EOS.

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

10 years agogstvalue: optimise checks for lists
Tim-Philipp Müller [Thu, 19 Jun 2014 07:09:55 +0000 (08:09 +0100)]
gstvalue: optimise checks for lists

Our fundamental types are non-derivable, so we can
just check for equality. Also avoid doing the same
check multiple times in a couple of places.

10 years agogstvalue: use g_assert() in internal function for already-checked things
Tim-Philipp Müller [Thu, 19 Jun 2014 07:06:31 +0000 (08:06 +0100)]
gstvalue: use g_assert() in internal function for already-checked things

So these get compiled out for releases.

10 years agogstvalue: add internal _can_compare_unchecked()
Tim-Philipp Müller [Thu, 19 Jun 2014 07:05:40 +0000 (08:05 +0100)]
gstvalue: add internal _can_compare_unchecked()

10 years agogstvalue: add internal _list_concat() that takes ownership of input values
Tim-Philipp Müller [Thu, 19 Jun 2014 07:03:37 +0000 (08:03 +0100)]
gstvalue: add internal _list_concat() that takes ownership of input values

Avoids unnecessary copies.

10 years agostructure: simplify value type checks in getters
Tim-Philipp Müller [Wed, 18 Jun 2014 18:06:58 +0000 (19:06 +0100)]
structure: simplify value type checks in getters

Just check for GType equality in common cases.

10 years agovalue: Add a FIXME 2.0 for a fraction ranges optimization
Sebastian Dröge [Thu, 19 Jun 2014 07:29:18 +0000 (09:29 +0200)]
value: Add a FIXME 2.0 for a fraction ranges optimization

Currently we leak the internal representation of them as two GValues that
contain a fraction. Without this we could store fraction ranges as
  data[0] = (min_n << 32) | (min_d)
  data[1] = (max_n << 32) | (max_d)
and wouldn't require an additional allocation per range.

10 years agovalue: Make sure to cast int range values to guints before storing them
Sebastian Dröge [Thu, 19 Jun 2014 07:23:56 +0000 (09:23 +0200)]
value: Make sure to cast int range values to guints before storing them

Otherwise negative values will sets all of the 64 bits due to two's
complement's definition of negative values.

Also add a test for negative int ranges.

10 years agowin32: update exports
Tim-Philipp Müller [Thu, 19 Jun 2014 06:57:11 +0000 (07:57 +0100)]
win32: update exports

10 years agovalue: Store integer ranges directly in a GValue without additional allocation
Sebastian Dröge [Thu, 19 Jun 2014 07:05:18 +0000 (09:05 +0200)]
value: Store integer ranges directly in a GValue without additional allocation

Micro optimization to save some allocations. Next step to do this
with fraction ranges too.

10 years agogst_private: Fix duplicate definition
Edward Hervey [Thu, 19 Jun 2014 06:43:02 +0000 (08:43 +0200)]
gst_private: Fix duplicate definition

10 years agogst: Store more basic type GTypes in variables
Sebastian Dröge [Thu, 19 Jun 2014 06:05:03 +0000 (08:05 +0200)]
gst: Store more basic type GTypes in variables

Micro optimization to change a function call to a variable access
for all our basic types.

10 years agovalue: Store our fundamental type GTypes in variables
Sebastian Dröge [Thu, 19 Jun 2014 06:04:01 +0000 (08:04 +0200)]
value: Store our fundamental type GTypes in variables

Micro optimization to change a function call to a variable access
for all our basic types.

10 years agogstvalue: Speed up gst_value_intersect/_subtract
Edward Hervey [Tue, 17 Jun 2014 05:31:48 +0000 (07:31 +0200)]
gstvalue: Speed up gst_value_intersect/_subtract

Both gst_value_intersect and gst_value_subtract will call
gst_value_compare if one of their arguments isn't a list.

gst_value_compare will then re-do a check to see if one of
the arguments is a list (for the special case of comparing a unitary
value with a list of length 1).

The problem is that the various G_VALUE_HOLDS represent an expensive
amount of calling gst_value_compare (almost half of it) to see if
the provided arguments are list. These checks can be done without
when we know that the arguments aren't lists.

* Create a new "nolist" gst_value_compare which avoids that special
  case comparision

Benchmarks:
 valgrind/callgrind: average speedup in instruction calls for
 gst_value_intersect and gst_value_subtract is around 56% (Makes 63%
 of the calls it used to take previously)

 tests/benchmarks/capsnego: With default settings (depth 4, children 3
 607 elements), time taken for transition from READY to PAUSED:
   Before : 00.391519153
   After  : 00.220397492
    56% of the time previously used, +77% speedup

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

10 years agotests: remove some cruft from the bufferlist test
Tim-Philipp Müller [Tue, 17 Jun 2014 13:39:00 +0000 (14:39 +0100)]
tests: remove some cruft from the bufferlist test

Buffers no longer carry caps, and bufferlists don't have
groups where buffers may need to be merged into one any more.

10 years agotests: add test for gst_buffer_list_remove()
Tim-Philipp Müller [Mon, 16 Jun 2014 19:30:13 +0000 (20:30 +0100)]
tests: add test for gst_buffer_list_remove()

10 years agobufferlist: fix buffer leak in _remove()
Tim-Philipp Müller [Mon, 16 Jun 2014 19:29:56 +0000 (20:29 +0100)]
bufferlist: fix buffer leak in _remove()

10 years agoflowcombiner: fix g-i transfer annotations
Tim-Philipp Müller [Mon, 16 Jun 2014 08:18:45 +0000 (09:18 +0100)]
flowcombiner: fix g-i transfer annotations

10 years agoflowcombiner: Fixed GBoxedCopyFunc
Edward Hervey [Mon, 16 Jun 2014 06:41:48 +0000 (08:41 +0200)]
flowcombiner: Fixed GBoxedCopyFunc

I'll just quote the most interesting man in the world:

"I don't usually push commits, but when I do I don't compile it
first"

10 years agodevicemonitor: some docs additions and fixes
Tim-Philipp Müller [Sat, 14 Jun 2014 15:30:49 +0000 (16:30 +0100)]
devicemonitor: some docs additions and fixes

10 years agowin32: add exports for new get_type() function
Tim-Philipp Müller [Sat, 14 Jun 2014 15:28:48 +0000 (16:28 +0100)]
win32: add exports for new get_type() function

10 years agoflowcombiner: keep a ref to the pads we're using
Tim-Philipp Müller [Sat, 14 Jun 2014 10:31:44 +0000 (11:31 +0100)]
flowcombiner: keep a ref to the pads we're using

Needed for use via the boxed type.

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

10 years agoflowcombiner: add boxed type for bindings
Tim-Philipp Müller [Sat, 14 Jun 2014 09:54:41 +0000 (10:54 +0100)]
flowcombiner: add boxed type for bindings

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

10 years agointrospection: minor annotation additions
Evan Nemerson [Wed, 11 Jun 2014 23:28:51 +0000 (16:28 -0700)]
introspection: minor annotation additions

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

10 years agointrospection: include gstversion.h in GIR generation
Evan Nemerson [Thu, 12 Jun 2014 02:08:04 +0000 (19:08 -0700)]
introspection: include gstversion.h in GIR generation

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