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
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.
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
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
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
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
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.
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
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.
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.
Sebastian Dröge [Sat, 28 Jun 2014 08:45:18 +0000 (10:45 +0200)]
Release 1.3.90
Sebastian Dröge [Sat, 28 Jun 2014 08:41:48 +0000 (10:41 +0200)]
Update .po files
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.
Tim-Philipp Müller [Fri, 27 Jun 2014 09:44:01 +0000 (10:44 +0100)]
deviceproviderfactory: handle NULL classes argument and match any
Olivier Crête [Fri, 27 Jun 2014 01:00:40 +0000 (21:00 -0400)]
device: Add unit tests
Olivier Crête [Thu, 26 Jun 2014 21:22:25 +0000 (17:22 -0400)]
devicemonitor: Improve documentation
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
Olivier Crête [Thu, 26 Jun 2014 20:31:51 +0000 (16:31 -0400)]
device: Add pre-conditions
Olivier Crête [Thu, 26 Jun 2014 19:08:46 +0000 (15:08 -0400)]
GstDeviceMonitor: Rename from GstGlobalDeviceMonitor
Olivier Crête [Thu, 26 Jun 2014 18:28:09 +0000 (14:28 -0400)]
DeviceProvider: Rename from DeviceMonitor
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
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
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
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.
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
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
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
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
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
Tim-Philipp Müller [Thu, 26 Jun 2014 13:08:03 +0000 (14:08 +0100)]
tests: add another buffer list test case
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.
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.
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
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
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.
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
Sebastian Dröge [Sun, 22 Jun 2014 17:36:14 +0000 (19:36 +0200)]
Back to development
Sebastian Dröge [Sun, 22 Jun 2014 16:07:42 +0000 (18:07 +0200)]
Release 1.3.3
Sebastian Dröge [Sun, 22 Jun 2014 15:15:40 +0000 (17:15 +0200)]
Update .po files
Sebastian Dröge [Sun, 22 Jun 2014 12:23:03 +0000 (14:23 +0200)]
po: Update translations
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
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
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.
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.
Tim-Philipp Müller [Fri, 20 Jun 2014 16:14:52 +0000 (17:14 +0100)]
benchmark: capsnego: use GOptionContext for option parsing
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.
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.
Olivier Crête [Fri, 20 Jun 2014 20:55:06 +0000 (16:55 -0400)]
GstDevice: Document GstDevice and related classes
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
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.
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.
Tim-Philipp Müller [Thu, 19 Jun 2014 07:05:40 +0000 (08:05 +0100)]
gstvalue: add internal _can_compare_unchecked()
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.
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.
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.
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.
Tim-Philipp Müller [Thu, 19 Jun 2014 06:57:11 +0000 (07:57 +0100)]
win32: update exports
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.
Edward Hervey [Thu, 19 Jun 2014 06:43:02 +0000 (08:43 +0200)]
gst_private: Fix duplicate definition
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.
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.
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
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.
Tim-Philipp Müller [Mon, 16 Jun 2014 19:30:13 +0000 (20:30 +0100)]
tests: add test for gst_buffer_list_remove()
Tim-Philipp Müller [Mon, 16 Jun 2014 19:29:56 +0000 (20:29 +0100)]
bufferlist: fix buffer leak in _remove()
Tim-Philipp Müller [Mon, 16 Jun 2014 08:18:45 +0000 (09:18 +0100)]
flowcombiner: fix g-i transfer annotations
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"
Tim-Philipp Müller [Sat, 14 Jun 2014 15:30:49 +0000 (16:30 +0100)]
devicemonitor: some docs additions and fixes
Tim-Philipp Müller [Sat, 14 Jun 2014 15:28:48 +0000 (16:28 +0100)]
win32: add exports for new get_type() function
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
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
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
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
Nicolas Dufresne [Tue, 10 Jun 2014 14:23:13 +0000 (10:23 -0400)]
bytereader: Use concistant derefence method
This is minor style fix to not mix *var and var[N].
Sungho Bae [Tue, 10 Jun 2014 13:35:38 +0000 (09:35 -0400)]
bytereader: Use pointer instead of index access
Currently the scan uses Boyer-moore method and its performance is good.
but, it can be optimized from an implementation of view.
The original scan code is implemented by byte array and index-based access.
In _scan_for_start_code(), the index is increasing from start to end and the
base address of the byte array is referred to as return value.
In the case, index-based access can be replaced by pointer access, which
improve the performance by removing index-related operations.
Its performace is enhanced by approximately 8% on arm-based embedded devices.
Although it seems trivial, it can affect the overall performance because the
_scan_for_start_code() function is very often called when H.264/H.265 video is
played.
In addition, the technique can apply for all architectures and it is good in
view of readability and maintainability.
https://bugzilla.gnome.org/show_bug.cgi?id=731442
Tim-Philipp Müller [Sat, 7 Jun 2014 09:13:56 +0000 (10:13 +0100)]
globaldevicemonitor: prettify header
Tim-Philipp Müller [Sat, 7 Jun 2014 08:46:42 +0000 (09:46 +0100)]
tests: add unit test for queuearray expansion from 1
https://bugzilla.gnome.org/show_bug.cgi?id=731349
Evan Nemerson [Fri, 6 Jun 2014 23:36:00 +0000 (16:36 -0700)]
queuearray: fix expanding size of queue from 1
Without we would not actually expand and access
memory beyond the allocated region for the array.
https://bugzilla.gnome.org/show_bug.cgi?id=731349
Evan Nemerson [Thu, 5 Jun 2014 23:55:15 +0000 (16:55 -0700)]
dataqueue: clear up documentation of gst_data_queue_new
The gpointer argument is passed to all three callbacks, not just one.
https://bugzilla.gnome.org/show_bug.cgi?id=731302
Evan Nemerson [Fri, 30 May 2014 07:17:06 +0000 (00:17 -0700)]
introspection: fix some minor annotation bugs
https://bugzilla.gnome.org/show_bug.cgi?id=730982
Evan Nemerson [Thu, 5 Jun 2014 19:38:20 +0000 (12:38 -0700)]
base: use correct syntax in documentation more consistently
Previously, many constants were prefixed with # or unprefixed,
some functions and macros were prefixed with # instead of suffixed
with (), etc.
https://bugzilla.gnome.org/show_bug.cgi?id=731293
zhouming [Wed, 7 May 2014 10:26:38 +0000 (18:26 +0800)]
baseparse: Pass rate of input segment to output segment
https://bugzilla.gnome.org/show_bug.cgi?id=729701
Vincent Penquerc'h [Mon, 7 Apr 2014 13:49:59 +0000 (14:49 +0100)]
gstbuffer: factor three flags-to-string loops
Tim-Philipp Müller [Tue, 3 Jun 2014 22:42:45 +0000 (23:42 +0100)]
info: make printing datetimes work with GST_PTR_FORMAT
Tim-Philipp Müller [Tue, 3 Jun 2014 22:38:28 +0000 (23:38 +0100)]
datetime: change internal implementation to mini object
And move type stuff from GstValue to GstDateTime.
Wim Taymans [Tue, 3 Jun 2014 20:19:33 +0000 (22:19 +0200)]
downloadbuffer: fix uninitialized variable
Wim Taymans [Tue, 3 Jun 2014 20:12:13 +0000 (22:12 +0200)]
downloadbuffer: improve start/stop in buffering query
The start and stop should represent the currently downloading region.
The estimated-total should represent the remaining time to download
the currently downloading region. This makes it a lot more useful
for applications because they can then use those values to update
the fill region and use the estimated time to delay playback.
Update the docs with this clarification.
Vincent Penquerc'h [Mon, 7 Apr 2014 13:35:04 +0000 (14:35 +0100)]
identity: add static and const where appropriate
Vincent Penquerc'h [Mon, 7 Apr 2014 13:31:17 +0000 (14:31 +0100)]
identity: fix potential buffer overflow
Coverity 1037155
Wim Taymans [Tue, 3 Jun 2014 12:49:44 +0000 (14:49 +0200)]
downloadbuffer: reset read and write positions
Reset the read and write positions right after we open the file or flush
it. We are also in the buffering state with 0 percent buffered when we
start.
Wim Taymans [Tue, 3 Jun 2014 12:47:17 +0000 (14:47 +0200)]
info: first handle all miniobjects, then GObjects
First handle all miniobjects before we attempt to dereference the first
field pointer and look at the GType. With the recent glib change to
speed up G_IS_OBJECT, this causes crashes on miniobjects otherwise.
Wim Taymans [Tue, 3 Jun 2014 12:46:11 +0000 (14:46 +0200)]
info: GstDateTime does not have a GType as first field
GstDateTime does not have the GType as the first field so we can't use
it to detect its type.
Wim Taymans [Tue, 3 Jun 2014 12:45:22 +0000 (14:45 +0200)]
info: use macros to check types
Use the macros to check the type of objects instead of directly poking
at the first field.
Tim-Philipp Müller [Sun, 1 Jun 2014 22:51:20 +0000 (23:51 +0100)]
globaldevicemonitor: connect sync-message signal on the right object
Fixes criticals at runtime and makes stuff actually work.
Sebastian Dröge [Sat, 31 May 2014 15:35:52 +0000 (17:35 +0200)]
typefind: Keep still meaningfull pending events on FLUSH_STOP
Only EOS and segment should be deleted in that case.
https://bugzilla.gnome.org/show_bug.cgi?id=709868
Sebastian Dröge [Fri, 30 May 2014 07:13:12 +0000 (09:13 +0200)]
Revert "miniobject: Add missing (nullable) annotations"
This reverts commit
96361e9b5c5d00dc7712ff3a9acfbe10df7cd9fe.
This was not supposed to be pushed yet!
Sebastian Dröge [Fri, 30 May 2014 07:12:14 +0000 (09:12 +0200)]
bufferpool: It's pool, not poo... even when talking about flushing
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
Thiago Santos [Fri, 30 May 2014 04:42:17 +0000 (01:42 -0300)]
tests: multiqueue: fix leaks
Evan Nemerson [Thu, 29 May 2014 21:54:34 +0000 (14:54 -0700)]
docs: convert NULL, TRUE, and FALSE to %NULL, %TRUE, and %FALSE
This should help improve documentation generated for
languages other than C.
https://bugzilla.gnome.org/show_bug.cgi?id=730961