platform/upstream/gstreamer.git
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 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 agotypefindelement: remove prototype for function that no longer exists
Tim-Philipp Müller [Fri, 25 Jul 2014 10:45:56 +0000 (11:45 +0100)]
typefindelement: remove prototype for function that no longer exists

10 years agobytereader: add gst_byte_reader_masked_scan_uint32_peek
Thiago Santos [Thu, 24 Jul 2014 17:39:11 +0000 (14:39 -0300)]
bytereader: add gst_byte_reader_masked_scan_uint32_peek

Adds gst_byte_reader_masked_scan_uint32_peek just like
GstAdapter has a _peek and non _peek version

Upgraded tests to check that the returned value is correct in the
_peek version

API: gst_byte_reader_masked_scan_uint32_peek

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

10 years agobufferlist: pre-allocate buffer array in one go with the buffer list
Tim-Philipp Müller [Thu, 26 Jun 2014 13:09:25 +0000 (14:09 +0100)]
bufferlist: pre-allocate buffer array in one go with the buffer list

We can now create and free a buffer list with one slice alloc/free
call in most cases, instead of one slice alloc/free for the list,
one slice alloc/free for the GArray, and one malloc/free for the
GArray array. In practice we know the max size of our buffer list
from the start, so can avoid reallocs.

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

10 years agoprivate: allow internal access to the debug base-time
Stefan Sauer [Wed, 23 Jul 2014 19:27:48 +0000 (21:27 +0200)]
private: allow internal access to the debug base-time

Moving the extern to the head lets us access this from other parts as well. This
is neeed in the tracer branch.

10 years agoscripts: Use git pull --rebase
Arun Raghavan [Tue, 22 Jul 2014 18:45:17 +0000 (00:15 +0530)]
scripts: Use git pull --rebase

No point introducing redundant merge commits.

10 years agoRevert "tests: taglist: add basic test for taglists serialization"
Thiago Santos [Mon, 21 Jul 2014 15:41:08 +0000 (12:41 -0300)]
Revert "tests: taglist: add basic test for taglists serialization"

This reverts commit 85d23d19b7de40541d63b0bc76d8b646c321af26.

There was already a gsttag.c tests file, this test has been merged
in it in the previous commit

10 years agotests: tag: add the empty taglist serialization test
Thiago Santos [Mon, 21 Jul 2014 15:40:47 +0000 (12:40 -0300)]
tests: tag: add the empty taglist serialization test

Adds the test to the appropriate and already existing file.

10 years agotests: taglist: add basic test for taglists serialization
Thiago Santos [Mon, 14 Jul 2014 21:46:54 +0000 (18:46 -0300)]
tests: taglist: add basic test for taglists serialization

Make sure it works with empty taglists

10 years agotests: gststructure: serialization of tag event structure
Thiago Santos [Mon, 14 Jul 2014 21:25:50 +0000 (18:25 -0300)]
tests: gststructure: serialization of tag event structure

Adds a test that checks that the serialization of a tag event structure
works without problems

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

10 years agogstvalue: add GstTagList compare function
Thiago Santos [Mon, 14 Jul 2014 21:23:43 +0000 (18:23 -0300)]
gstvalue: add GstTagList compare function

When serializing GstStructures from events in GDP it will add a taglist
as a GstStructure field, having the compare function allows comparison of
GstStructures to check if the serialized/deserialized version matches the
original one, among other cases.

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

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 agopipeline: Add unit test for resetting of the start time
Sebastian Dröge [Thu, 17 Jul 2014 14:05:00 +0000 (16:05 +0200)]
pipeline: Add unit test for resetting of the start time

Also check if this properly affects basesink elements to not
report the old start time but the real current position when
setting to PAUSED again.

10 years agopipeline: Reset the start time when going from PAUSED to READY too
Sebastian Dröge [Tue, 15 Jul 2014 16:19:24 +0000 (18:19 +0200)]
pipeline: Reset the start time when going from PAUSED to READY too

10 years agopipeline: Reset start time in READY->PAUSED before chaining up
Sebastian Dröge [Tue, 15 Jul 2014 15:19:10 +0000 (17:19 +0200)]
pipeline: Reset start time in READY->PAUSED before chaining up

Otherwise bin will change the state of the child elements without
distributing the new start time.

10 years agoelements: improve buffer flags to string utility function
Tim-Philipp Müller [Sat, 28 Jun 2014 16:58:26 +0000 (17:58 +0100)]
elements: improve buffer flags to string utility function

Avoid relocations and refactor so that we don't calculate
the fixed and known at compile time maximum string size
every time. Also skip the mini object flags which we are
not going to print anyway.

10 years agoBack to development
Sebastian Dröge [Sat, 19 Jul 2014 16:04:31 +0000 (18:04 +0200)]
Back to development

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()