Commit graph

7973 commits

Author SHA1 Message Date
Sebastian Rasmussen
863ba1a598 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
2014-07-09 09:22:11 +02:00
Sebastian Dröge
125ae3acb1 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
2014-07-03 10:13:28 +02:00
Göran Jönsson
d0a808cdc8 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
2014-07-01 19:26:18 +02:00
Evan Nemerson
5abc82e9f3 introspection: Assorted minor introspection and documentation fixes
https://bugzilla.gnome.org/show_bug.cgi?id=732534
2014-07-01 09:03:41 +02:00
Guillaume Desmottes
688108431a devicemonitor: Stop using g_clear_pointer()
We dont't want to depend on GLib 2.34 for now.
2014-06-30 11:17:44 +02:00
Tim-Philipp Müller
0e0e78e8af devicemonitor: don't fail when started without any filters
Just show all devices then.
2014-06-27 10:47:50 +01:00
Tim-Philipp Müller
9b07b935a4 deviceproviderfactory: handle NULL classes argument and match any 2014-06-27 10:44:01 +01:00
Olivier Crête
67440ce084 devicemonitor: Improve documentation 2014-06-26 21:01:38 -04:00
Olivier Crête
6d12b33945 devicemonitor: Make it possible to add multiple filters
Each filter will include a GstCaps and a set of classes to match
2014-06-26 21:01:38 -04:00
Olivier Crête
d76e0be9fd device: Add pre-conditions 2014-06-26 16:31:51 -04:00
Olivier Crête
c2583cae90 GstDeviceMonitor: Rename from GstGlobalDeviceMonitor 2014-06-26 15:08:46 -04:00
Olivier Crête
7992174a1a DeviceProvider: Rename from DeviceMonitor 2014-06-26 14:45:30 -04:00
Philip Withnall
9edef56efc miniobject: Add missing (nullable) annotations
gst_mini_object_replace() can take NULL mini-objects.

https://bugzilla.gnome.org/show_bug.cgi?id=730873
2014-06-26 19:16:07 +02:00
Sebastian Dröge
fe192fe399 message: Application and element messages should not have NULL structures
It does not make sense for them.
2014-06-26 19:02:06 +02:00
Evan Nemerson
4088363aea introspection: add some missing allow-none annotations to in params
https://bugzilla.gnome.org/show_bug.cgi?id=730957
2014-06-26 19:00:58 +02:00
Evan Nemerson
5d80cf12ba introspection: add nullability annotations to out and inout params
https://bugzilla.gnome.org/show_bug.cgi?id=730957
2014-06-26 18:59:15 +02:00
Evan Nemerson
2759882379 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
2014-06-26 18:56:38 +02:00
George Kiagiadakis
780c83d5c4 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
2014-06-26 11:16:34 +03:00
Tim-Philipp Müller
8e30a9462c 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
2014-06-22 12:50:42 +01:00
Tim-Philipp Müller
2092754ed1 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.
2014-06-21 01:26:46 +01:00
Tim-Philipp Müller
89a5b89388 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.
2014-06-21 01:10:22 +01:00
Olivier Crête
77db6bf3d6 GstDevice: Document GstDevice and related classes 2014-06-20 16:55:06 -04:00
Tim-Philipp Müller
bc75a166f0 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.
2014-06-19 08:40:16 +01:00
Tim-Philipp Müller
d74708a820 gstvalue: use g_assert() in internal function for already-checked things
So these get compiled out for releases.
2014-06-19 08:40:15 +01:00
Tim-Philipp Müller
bbefd6082f gstvalue: add internal _can_compare_unchecked() 2014-06-19 08:40:15 +01:00
Tim-Philipp Müller
adcbe94aff gstvalue: add internal _list_concat() that takes ownership of input values
Avoids unnecessary copies.
2014-06-19 08:40:15 +01:00
Tim-Philipp Müller
5f6088f039 structure: simplify value type checks in getters
Just check for GType equality in common cases.
2014-06-19 08:40:15 +01:00
Sebastian Dröge
8f4b479c98 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.
2014-06-19 09:33:55 +02:00
Sebastian Dröge
9b7da39b68 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.
2014-06-19 09:33:54 +02:00
Sebastian Dröge
d84d01aad4 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.
2014-06-19 09:09:07 +02:00
Edward Hervey
37e8ffcc4f gst_private: Fix duplicate definition 2014-06-19 08:43:36 +02:00
Sebastian Dröge
db1e4422b6 gst: Store more basic type GTypes in variables
Micro optimization to change a function call to a variable access
for all our basic types.
2014-06-19 08:06:55 +02:00
Sebastian Dröge
f47a95f4cb value: Store our fundamental type GTypes in variables
Micro optimization to change a function call to a variable access
for all our basic types.
2014-06-19 08:06:55 +02:00
Edward Hervey
b0b20b44e5 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
2014-06-17 16:27:07 +02:00
Tim-Philipp Müller
87fcf1e078 bufferlist: fix buffer leak in _remove() 2014-06-16 20:29:56 +01:00
Tim-Philipp Müller
bd26fa7ccb devicemonitor: some docs additions and fixes 2014-06-14 16:30:49 +01:00
Evan Nemerson
2a14482c62 introspection: minor annotation additions
https://bugzilla.gnome.org/show_bug.cgi?id=731541
2014-06-12 09:26:38 +01:00
Evan Nemerson
ba1212f63b introspection: include gstversion.h in GIR generation
https://bugzilla.gnome.org/show_bug.cgi?id=703021
2014-06-12 08:22:20 +01:00
Tim-Philipp Müller
12088d87bb globaldevicemonitor: prettify header 2014-06-07 10:13:56 +01:00
Evan Nemerson
1fe6d3ad08 introspection: fix some minor annotation bugs
https://bugzilla.gnome.org/show_bug.cgi?id=730982
2014-06-06 15:15:12 -04:00
Tim-Philipp Müller
b65a7a7034 info: make printing datetimes work with GST_PTR_FORMAT 2014-06-03 23:49:26 +01:00
Tim-Philipp Müller
8998cf840d datetime: change internal implementation to mini object
And move type stuff from GstValue to GstDateTime.
2014-06-03 23:49:21 +01:00
Wim Taymans
36d4c4c218 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.
2014-06-03 14:47:17 +02:00
Wim Taymans
460be3e124 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.
2014-06-03 14:46:11 +02:00
Wim Taymans
e457739ac9 info: use macros to check types
Use the macros to check the type of objects instead of directly poking
at the first field.
2014-06-03 14:45:22 +02:00
Tim-Philipp Müller
64c71323a6 globaldevicemonitor: connect sync-message signal on the right object
Fixes criticals at runtime and makes stuff actually work.
2014-06-01 23:51:20 +01:00
Sebastian Dröge
066fdcd432 Revert "miniobject: Add missing (nullable) annotations"
This reverts commit 96361e9b5c.

This was not supposed to be pushed yet!
2014-05-30 09:13:16 +02:00
Sebastian Dröge
67138f4ee8 bufferpool: It's pool, not poo... even when talking about flushing 2014-05-30 09:12:50 +02:00
Philip Withnall
96361e9b5c miniobject: Add missing (nullable) annotations
gst_mini_object_replace() can take NULL mini-objects.

https://bugzilla.gnome.org/show_bug.cgi?id=730873
2014-05-30 09:12:49 +02:00
Evan Nemerson
e10266e3f3 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
2014-05-30 00:20:27 +01:00
Tim-Philipp Müller
88191aa880 docs: fix type in GstObject docs 2014-05-30 00:14:01 +01:00
Evan Nemerson
4397150d54 bufferpool: fix gst_buffer_pool_has_option() documentation
https://bugzilla.gnome.org/show_bug.cgi?id=730962
2014-05-29 23:18:18 +01:00
Thiago Santos
1911554cff element: set pads need-parent flag to false when removing
When a pad is added the need-parent flag is set to true, so when
they are removed the flag should be set back to false

This was preventing GstPads to be reused in elements (removed and
later re-added). A unit tests was added to verify that this is
working now.

The use case is tsdemux that has a program-number property and
allows the user to switch programs. In order to do that tsdemux
will remove the pads of the current program and add from the new
ones. The removed pads are kept in the demuxer for later if the
user selects the old program again.
2014-05-29 17:01:20 -03:00
Tim-Philipp Müller
ba3073ffce pad: two minor docs fixes 2014-05-27 13:37:05 +01:00
Thiago Santos
c6f92562b6 pad: store last flow return and provide acessor function
Stores the last result of a gst_pad_push or a pull on the GstPad and provides
a getter and a macro to access this field.

Whenever the pad is inactive it is set to FLUSHING

API: gst_pad_get_last_flow_return

https://bugzilla.gnome.org/show_bug.cgi?id=709224
2014-05-26 15:29:53 -03:00
Nicolas Dufresne
103a40b6ce bufferpool: Add method and virtuals to set flushing state
Currently there is no other way to unlock a buffer pool other then
stopping it. This may have the effect of freeing all the buffers,
which is too heavy for a seek. This patch add a method to enter and
leave flushing state. As a convenience, flush_start/flush_stop
virtual are added so pool implementation can also unblock their own
internal poll atomically with the rest of the pool.  This is fully
backward compatible with doing stop/start to actually flush the pool
(as being done in GstBaseSrc).

https://bugzilla.gnome.org/show_bug.cgi?id=727611
2014-05-26 13:31:21 -04:00
Tim-Philipp Müller
48b608337b pluginloader: fix compiler warning on windows
gstpluginloader.c:584:1: error: label 'beach' defined but not used

https://bugzilla.gnome.org/show_bug.cgi?id=730125
2014-05-14 13:40:03 +01:00
Edward Hervey
c7d68da704 pluginloader: Don't leak pluginloader in error cases
CID #1212154
2014-05-12 17:03:46 +02:00
Edward Hervey
25bcc2d7f6 caps: Don't leak features on error cases
If we fail to parse fields, we would end up leaking the features we
parsed just before

CID #1212152
2014-05-12 16:59:29 +02:00
Nicolas Dufresne
194db480e0 bufferpool: Add an helper to validate config
When we call gst_buffer_pool_set_config() the pool may return FALSE and
slightly change the parameters. This helper is useful to do the minial required
validation before accepting the modified configuration.

https://bugzilla.gnome.org/show_bug.cgi?id=727916
2014-05-08 13:11:14 -04:00
Nicolas Dufresne
43acfbbb86 bufferpool: Update the configure even if set_config() returned false
According to the documentation, when set_config() return false, it should be
possible to read the modified version of the config. This patch fixes the
implementation so it is now according to the documentation.

https://bugzilla.gnome.org/show_bug.cgi?id=727916
2014-05-08 13:08:21 -04:00
Nicolas Dufresne
6079666a71 bufferpool: Add support for reconfiguring a pool
If a pool config is being configured again, check if the configuration have changed.
If not, skip that step. Finally, if the pool is active, try deactivating it.

https://bugzilla.gnome.org/show_bug.cgi?id=728268
2014-05-08 13:08:21 -04:00
Nicolas Dufresne
64aa64cb80 value: Add support for GstAllocationParams comparision
This is useful to compare buffer pool configuaration.

https://bugzilla.gnome.org/show_bug.cgi?id=728268
2014-05-08 13:08:21 -04:00
Nicolas Dufresne
00614e2c2b value: Add support for GObject comparising in structures
This is useful to allow comparing pool configuration where a GstAllocator
is set.

https://bugzilla.gnome.org/show_bug.cgi?id=728268
2014-05-08 13:08:21 -04:00
Tim-Philipp Müller
035bc8b8db plugin: fix case where gst_plugin_load_file() didn't set the error on failure 2014-05-08 17:51:31 +01:00
Wim Taymans
35a1822d7a pads: update docs for request pads
We would like to encourage the use of gst_element_request_pad()
2014-05-08 09:13:04 +02:00
Tim-Philipp Müller
4e1699e030 value: init flag mask more correctly 2014-05-04 14:52:01 +01:00
Sebastian Dröge
d2e431e0ff bin: Always first post the state-changed message for PAUSED->READY before posting any pending EOS message
https://bugzilla.gnome.org/show_bug.cgi?id=727949
2014-05-01 20:11:04 +02:00
Stian Selnes
40c8208ad2 bufferpool: fix log message of buffer pointer 2014-05-01 10:03:39 +02:00
Sebastian Dröge
3b331155e1 query: Add boolean to URI query to specify if a redirect is permanent or not 2014-04-28 10:03:15 +02:00
Felipe Ortiz
c10663ba3e docs: add docs for various GstPad macros
https://bugzilla.gnome.org/show_bug.cgi?id=723652
2014-04-26 23:14:36 +01:00
Tim-Philipp Müller
b2722a45dd Revert "docs: add docs for various GstPad macros"
This reverts commit d17438d5fd.

This commit featured the wrong author, sorry.
2014-04-26 23:12:13 +01:00
Tim-Philipp Müller
6eb6d9ec38 docs: remove outdated and pointless 'Last reviewed' lines from docs
They are very confusing for people, and more often than not
also just not very accurate. Seeing 'last reviewed: 2005' in
your docs is not very confidence-inspiring. Let's just remove
those comments.
2014-04-26 21:21:51 +01:00
Nicolas Dufresne
ec69ad4e8a buffer: Only set TAG_MEMORY if the memory has been replaced
Currently we set TAG_MEMORY as soon a resize changes the size of one
of the memory. This has the side effect that buffer pool cannot know if
the memory have simply been resized, or if the memorys has been replaced.
This make it hard to actually implement _reset(). Instead, only set the
TAG_MEMORY if one or more memory has been replaced, and do a light
sanity check of the size.

https://bugzilla.gnome.org/show_bug.cgi?id=727109
2014-04-26 15:03:04 -04:00
Showayb Zahda
d17438d5fd docs: add docs for various GstPad macros
https://bugzilla.gnome.org/show_bug.cgi?id=723652
2014-04-26 17:05:41 +01:00
Sebastian Dröge
b76d336549 bin: When going to READY make sure to always deactivate pads
We might not have reached PAUSED yet because of an async error,
but nonetheless we want to make sure that the pads are always
deactivated in READY state.
2014-04-25 15:38:39 +02:00
Sebastian Dröge
ce8752c5ce bin: Don't left-shift into the sign bit, the result is undefined 2014-04-22 18:23:15 +02:00
Sebastian Dröge
3cbcfa1d7e value: Use an unsigned 64 bit integer as a mask
We shift the mask to the right later and shifting the result
of shifting over the sign bit is undefined.
2014-04-22 18:16:10 +02:00
Edward Hervey
8b51e9dc60 gstvalue: Prevent division or modulo by zero
The step can end up being zero if the underlying value isn't a valid
range GValue.

In those cases, return FALSE.

We don't use g_return*_if_fail since it will already have been triggered
by the above-mentionned _get_step() functions.

CID #1037132
2014-04-17 13:20:45 +02:00
Antoine Jacoutot
3e24bbefba libs: g-ir-scanner: do not hardcode libtool path
https://bugzilla.gnome.org/show_bug.cgi?id=726571
2014-04-17 09:26:20 +01:00
Sebastian Dröge
81f9a22228 memory/buffer: Initialise GstMapInfo to zeroes if mapping fails
This should allow for more meaningful errors. Dereferencing NULL
is more useful information than dereferencing a random address
happened to be on the stack.
2014-04-16 19:49:56 +02:00
Sebastian Dröge
dded0a4bb6 preset: Unref return value of gst_child_proxy_get_child_by_index() instead of leaking it 2014-04-16 17:49:40 +02:00
Sebastian Dröge
552864332b preset: Automatic code style fixes 2014-04-16 17:49:40 +02:00
Sebastian Dröge
dabb959747 pad: Add missing space in debug output 2014-04-15 21:16:06 +02:00
Linus Svensson
cb554772e5 pad: don't access unowned and possibly already freed event
Don't print the name of the event when ownership is given away.

https://bugzilla.gnome.org/show_bug.cgi?id=727484
2014-04-12 11:44:36 +01:00
Edward Hervey
c7295cf4b9 gstbuffer: Fix range iteration
We want to iterate over items idx to idx + length

We use the len variable as the corrected number of memory to iterate
and then properly go over all items.

Fixes the issue where specifying any idx different from 0 had no effect

Spotted by clang static analyzer
2014-04-11 13:45:21 +02:00
Vincent Penquerc'h
876af7b343 structure: error out when trying to fixate a fraction near an invalid target 2014-04-10 09:47:59 +01:00
Sebastian Dröge
1492465b89 event: Update running time in QoS based on the pad offsets
https://bugzilla.gnome.org/show_bug.cgi?id=722697
2014-04-10 08:25:50 +02:00
Sebastian Dröge
42cbb7c7c7 pad: Apply pad offsets on all events, not just segment events 2014-04-10 08:25:50 +02:00
Sebastian Dröge
d445027ec1 event: Add running-time-offset field to all events
Events passing through #GstPads that have a running time
offset set via gst_pad_set_offset() will get their offset
adjusted according to the pad's offset.

If the event contains any information that related to the
running time, this information will need to be updated
before usage with this offset.
2014-04-10 08:25:50 +02:00
Vincent Penquerc'h
3004cc5f45 utils: avoid dividing by zero when multiplying y/z by 0/x
The gcd of 0/x is 0, and this is then used as a denominator.
2014-04-09 16:41:47 +01:00
Sebastian Dröge
191ca95fd9 parse: Don't dist the bison and flex generated headers
https://bugzilla.gnome.org/show_bug.cgi?id=727253
2014-04-07 11:36:58 +02:00
Sebastian Rasmussen
e1e5183181 debugutils: Handle caps field values being NULL
GST_DEBUG_BIN_TO_DOT_FILE() would cause a segfault whenever it encountered an
element's caps that had a field value being NULL. Such fields are successfully
handled e.g. by GST_*_OBJECT(), and with this patch so does
GST_DEBUG_BIN_TO_DOT_FILE(). Even if string fields with a NULL value are
not supposed to be valid in caps, such caps can be created.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=727701
2014-04-06 14:24:21 +01:00
Edward Hervey
470f194909 gstvalue: Prevent division or modulo by zero
The step can end up being zero if the underlying value isn't a valid
range GValue.

In those cases, return FALSE.

We don't use g_return*_if_fail since it will already have been triggered
by the above-mentionned _get_step() functions.

Spotted by Coverity.
2014-04-05 11:37:53 +02:00
Haakon Sporsheim
e3388c22c2 gstvalue: Fix comparison of int/int64 range
Checking step three times seems unnecessary.
A similar bug was fixed for double range in
commit 3ea6b04c10
2014-04-05 07:03:07 +02:00
Sebastian Dröge
04a204cd4c pad: Include event type in debug output when delaying a sticky event because of not-linked 2014-03-29 10:32:25 +01:00
Wim Taymans
ee348fe7cb buffer: don't clear TAG on NULL buffer
When the buffer fails to copy, don't clear the TAG on the NULL pointer.
2014-03-24 16:11:30 +01:00
Wim Taymans
533548529b gst: init new flag types to pass make check 2014-03-21 12:16:54 +01:00
Edward Hervey
fb9ca6f7b4 devicemonitor: Use local includes and use gst_private before anything
Should fix build issues on BSD
2014-03-17 10:00:00 +01:00
Olivier Crête
e743fac26b device: Add "klass" to GstDevices 2014-03-16 18:15:18 -04:00
Olivier Crête
b8078e2656 devicemonitor: Make classes into pure strings
Instead of having strings & flags, make them just strings
2014-03-16 18:15:18 -04:00
Jan Schmidt
4d7d3a1c02 Fix extended message handling with gst_bus_pop_timed_filtered()
Make sure extended message types don't get accidentally matched
when not asked for in the mask
2014-03-17 06:29:27 +11:00
Jan Schmidt
44f0be4ee6 gstbin: Avoid pointless object lock forwarding messages.
Every instance of calling bin_do_message_forward() first took the
object lock, so that bin_do_message_forward() could drop it and
then reclaim. Instead, only take the object lock afterward where
needed.
2014-03-17 05:36:37 +11:00
Stefan Sauer
0fb6a15a65 toc: expand GstTocEntry with loop fields
Add loop_type and repeat_count fields to GstTocEntry plus setters and getters.
This allows to represent edit-lists in a toc as well as loops in instruemnts (wav, xi).

API: gst_toc_entry_set_loop
API: gst_toc_entry_get_loop
2014-03-16 16:55:55 +01:00
Tim-Philipp Müller
06ef8cd742 globaldevicemonitor: update for new message API
https://bugzilla.gnome.org/show_bug.cgi?id=678402
2014-03-16 15:24:44 +00:00
Olivier Crête
448d180cdf globaldevicemonitor: Add device monitor aggregator
https://bugzilla.gnome.org/show_bug.cgi?id=678402
2014-03-16 15:12:17 +00:00
Tim-Philipp Müller
5c47cf759a message, bus: do extended message types slightly differently
https://bugzilla.gnome.org/show_bug.cgi?id=678402
2014-03-16 14:38:07 +00:00
Tim-Philipp Müller
302484ac4f gst: fix indentation 2014-03-16 14:38:07 +00:00
Olivier Crête
e4e85fc88a devicemonitor: Add GstDeviceMonitor and related
Also add GstDevice and GstDeviceMonitorFactory
And add code to the registry to save them

https://bugzilla.gnome.org/show_bug.cgi?id=678402
2014-03-16 14:38:07 +00:00
Olivier Crête
10d53423b5 message: Add GST_MESSAGE_EXTENDED
https://bugzilla.gnome.org/show_bug.cgi?id=678402
2014-03-16 14:38:07 +00:00
Stefan Sauer
29bae0bc72 pad: actually return data.ret
The return value from gst_pad_forward() is the aggregated return value from the callback and the callback returns FALSE to continue iterating.
2014-03-16 11:09:05 +01:00
Stefan Sauer
d57bc8b5dc pad: forward return value from gst_pad_forward
Instead of ignoring the return value and always return TRUE pass the already agregated result back.
2014-03-15 18:07:44 +01:00
Tim-Philipp Müller
075cc42f88 pad: simplify gst_pad_link_get_name() and fix Since marker
Has added benefit that compiler might warn if more values
are added to the enum.
2014-03-11 21:46:30 +00:00
Stefan Sauer
4a38acaa10 pad: add debug helper for GstPadLinkReturn names
Add a helper like gst_flow_get_name() for GstPadLinkReturn. Use this in core.
API: gst_pad_link_get_name()
2014-03-11 21:50:36 +01:00
Tim-Philipp Müller
313f01ab79 buffer: invert meaning of GST_BUFFER_FLAG_TAG_MEMORY
It's nicer to only have it set when something noteworthy
happened and otherwise unset.

https://bugzilla.gnome.org/show_bug.cgi?id=725862
2014-03-07 20:43:44 +00:00
Stefan Sauer
7077d347a3 pad: fix gst_pad_add_probe() return value docs
Also fix comment typos and add more detail in the logs.
2014-03-06 22:54:17 +01:00
George Kiagiadakis
5973f8c2ca ghostpad: use gst_pad_get_peer to acquire a reference to the target pad
This ensures that the lock of the internal pad is held while referencing
it's peer (= the target pad), which ensures that the peer is not
going to be unlinked/destroyed in the meantime.

https://bugzilla.gnome.org/show_bug.cgi?id=725809
2014-03-06 20:46:28 +01:00
George Kiagiadakis
4fc671e801 ghostpad: hold a reference to the target pad while unlinking it
https://bugzilla.gnome.org/show_bug.cgi?id=725809
2014-03-06 20:46:28 +01:00
Sebastian Rasmussen
034a3ab86f docs: Fix typos and remove unknown annotations
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=725517
2014-03-02 21:47:52 +01:00
Stefan Sauer
601774386c docs: use the new markdown for ordered list.
This was plain text that had all list items one after the other (including a
repeated number). Now it will atleast look good when processed with gtk-doc
1.20.
2014-02-28 20:57:23 +01:00
Reynaldo H. Verdejo Pinochet
81c9bedda3 docs: fix problems introduced by c068b225fe
- Fix failing build
- Drop added trailing whitespace
2014-02-27 22:34:55 -03:00
Stefan Sauer
cbfafd212b buffer: add return values to g_return_if_fail
FIxes previous commit.
2014-02-27 18:28:15 +01:00
Stefan Sauer
c068b225fe docs: convert the examples to use gtk-doc markup, instead of docbook
The gtk-doc markup is less intrusive and better handled when creating docs for
language bindings. The titles (where used) where not adding much.
2014-02-27 18:11:35 +01:00
Wim Taymans
7691150c45 bufferpool: only release buffers with writable memory
Check if the memory is writable before releasing the buffer into the
pool again.
Add unit test for this scenario.
2014-02-27 16:40:34 +01:00
Wim Taymans
659785d896 buffer: add function to check writability of memory
Check if memory is writable in a buffer and thus is exclusively owned by
this buffer.
2014-02-27 16:39:50 +01:00
Wim Taymans
f22d8f08e0 bufferpool: Use TAG_MEMORY to check memory before releasing
Tag allocated buffers with TAG_MEMORY. When they are released later,
only add them back to the pool if the tag is still there and the memory
has not been changed, otherwise throw the buffer away.
Add unit test to check various scenarios.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=724481
2014-02-27 15:43:13 +01:00
Wim Taymans
5bca002f4b buffer: add a new flag to track memory changes
Add a flag to check if the memory changed in a buffer.
2014-02-27 15:43:13 +01:00
Wim Taymans
86f506e9d8 buffer: remove wrong comment
Refcount and writability are not related for memory objects.
2014-02-27 15:43:13 +01:00
Wim Taymans
301fa0e935 bufferpool: refactor free_buffer
Make a do_free_buffer method to also decrements the number of allocated
buffers. Stop will now be successful when all buffers are freed.
2014-02-27 15:43:13 +01:00
Stefan Sauer
8355a9034b debugutils: add a legend to pipeline dumps
We use a couple of symbols to represent states/flags. Add a short explanation for them.
2014-02-26 20:49:07 +01:00
Olivier Crête
e3d57dc11d debugutils: Print if there is a task started from a pad
https://bugzilla.gnome.org/show_bug.cgi?id=705189
2014-02-26 03:15:44 -05:00
Sebastian Dröge
f0bd2540c0 structure: Use get_uint64() in gst_structure_get_clock_time()
Its code is identical.
2014-02-25 16:11:20 +01:00
Sebastian Dröge
ab9fdf13a0 structure: Add getters for int64 and uint64 values 2014-02-25 15:41:45 +01:00
Stefan Sauer
b892b438cc docs: gtkdoc is not good at parsing inline functions in headers
Mark the inline function, so that gtkdoc skips them. Avoids some warnings about
unparsable declarations.
2014-02-15 21:27:23 +01:00
William Manley
be8eeabefc docs: Fix location of plugins and registry in home directories
Fixes out of date documentation left over since 0.10.  In 1.0 plugins are
stored in $XDG_DATA_HOME and the registry in $XDG_CACHE_HOME conformant
with the XDG Base Directory Specification[1].

[1]: http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html

https://bugzilla.gnome.org/show_bug.cgi?id=724132
2014-02-11 20:56:48 +01:00
Sebastian Dröge
71ad1d6fdd error: GST_RESOURCE_ERROR_NOT_AUTHORIZED will be available since 1.2.4 2014-02-11 13:27:25 +01:00
Sebastian Dröge
8a96585eee error: Add RESOURCE_NOT_AUTHORIZED error
This allows to distinguish normal read failures from read failures
where we miss authorization.
2014-02-11 13:09:11 +01:00
Chun-wei Fan
043c629e72 windows: Make GStreamer installation relocatable
Use the technique that is now done in GTK+ so that the plugins do not have
to be installed in c:\gstreamer\lib\<debug>\gstreamer-$(GSTApiVersion),
but can be installed in
<parent_folder_of_gstreamer_main_dll>\lib\<debug>\gstreamer-$(GSTApiVersion),
or as per g_win32_get_package_installation_directory_of_module() allows.

https://bugzilla.gnome.org/show_bug.cgi?id=679115
2014-02-06 23:31:23 +01:00
Brendan Long
f85c1c4648 gst: clear floating references for GstTask, GstTaskPool and GstCollectPads
https://bugzilla.gnome.org/show_bug.cgi?id=710342
2014-02-06 22:50:53 +01:00
Brendan Long
f605472230 docs: gst_pad_new_from_*_template and gst_buffer_pool_new constructors return floating references
https://bugzilla.gnome.org/show_bug.cgi?id=710342
2014-02-06 22:50:53 +01:00
Sebastian Dröge
8d7e11e307 caps: When getting capsfeatures and none are there, store sysmem capsfeatures
... instead of returning a reference to a global instance. The caller might
want to change the global instance otherwise, which causes funny effects like
all global instances being changed and at the same time nothing in the caps
being changed.

As the caps might be immutable while we do this we have to do some magic
with atomic operations.

https://bugzilla.gnome.org/show_bug.cgi?id=723236
2014-02-04 18:47:23 +01:00
Sebastian Dröge
e51e0cb0d3 caps: Don't get us sysmem capsfeatures if we just check for fixed caps 2014-02-04 18:06:26 +01:00
Sebastian Dröge
23434848d3 capsfeatures: Make sure that the static ANY/EMPTY capsfeatures are never mutable
See https://bugzilla.gnome.org/show_bug.cgi?id=723236
2014-02-04 17:51:11 +01:00
Stefan Sauer
f6d638153c docs: fix more gtk-doc warnings 2014-02-01 16:18:13 +01:00
Stefan Sauer
b06e86fb18 docs: unhide docs for allocator
Unhinde the class docs. Tech gtk-doc about GST_EXPORTS.
2014-01-31 08:36:55 +01:00
Stefan Sauer
c42780db66 bufferpool: more tests and small doc fixes 2014-01-31 08:36:55 +01:00
Stefan Sauer
1bad32b577 bufferpool: misc cleanups
Review the documentation, comments and logging. Set the initial size to 16 as
the size is rounded up to the next power of two anyway.
2014-01-30 12:43:45 +01:00
Wim Taymans
878621f6f5 bufferpool: avoid excessive GstPoll activity
Keep an extra write ref on the control socket. This ensures that we
avoid a read/write on the socket when going from non-empty->empty->not-empty.
We remove the write ref only when we actually are empty and we need to
wait for flushing or a new buffer.

This makes the bufferpool benchmark about 30% faster than the pure
malloc implementation.
2014-01-30 12:31:48 +01:00
Wim Taymans
fb44b4d2ec poll: improve debug
Add object pointer in debug lines.
2014-01-30 12:31:48 +01:00
Sebastian Dröge
ba7089cf04 pad: Minor code cleanup
!check_sticky()==GST_FLOW_OK is a bit confusing, compared to
check_sticky()!=GST_FLOW_OK.
2014-01-22 11:10:01 +01:00
Sebastian Dröge
bac1202cf7 iterator: Properly copy mutexes around when creating a copy of a filter iterator 2014-01-18 14:48:54 +01:00
Stewart Brodie
f77d79f2f8 iterator: Preserve the master lock when creating recursive iterator filters with the same lock
This way we make sure that a) the lock is always taken when checking
the cookie and calling the iterator's next functions and b) it is
not taken while calling any of the iterator filter functions.

https://bugzilla.gnome.org/show_bug.cgi?id=711138
2014-01-18 14:48:54 +01:00
Thiago Santos
75fe1004a5 pad: fix sticky event leak after sticky_events_foreach
events_foreach adds an extra ref when giving the event to the
user function. In case it was unrefed by the user, this extra ref
disappeared, but events_foreach still should unref again to
lose its own ref before removing the event from the array.

https://bugzilla.gnome.org/show_bug.cgi?id=722467
2014-01-17 23:11:49 -03:00
Stefan Sauer
0264bbdb46 info: move some env-var checks from gst to gstinfo as well
We were doing some log related initialisation in gst.c after calling
_priv_gst_debug_init(). Just move it there for consistency.
2014-01-16 20:47:53 +01:00
Fabian Kirsch
ffe072f694 parse: Some minor fixes
Fix destructor segfaulting
Expect 0 grammar-ambiguities
Fix order of bin-properties assignment

https://bugzilla.gnome.org/show_bug.cgi?id=710034
2014-01-16 15:38:51 +01:00
Sebastian Dröge
1d6136b930 segment: gst_segment_offset_running_time() will be available in 1.2.3 2014-01-15 11:13:00 +01:00
Nicolas Dufresne
abddae152d util: Add GST_ROUND_UP_N and GST_ROUND_DOWN_N
These are generic rounding macro that works for any power of two.
2014-01-14 16:22:31 -05:00
Sebastian Dröge
f15f4ec8aa parse: Make sure to create and link chains in the order as written
Make this work again:
audiotestsrc ! tee name=t  t.src_0 ! queue ! fakesink  t.src_1 ! queue ! fakesink
and this fail again:
audiotestsrc ! tee name=t  t.src_1 ! queue ! fakesink  t.src_0 ! queue ! fakesink

as tee just counts itself and does not care about the pad names we request
from it.
2014-01-14 15:52:26 +01:00
Sebastian Dröge
156d925cff parse: Remove some C99-style comments 2014-01-14 13:46:24 +01:00
Sebastian Dröge
dd086a4e6e parse: Use GSlice for allocating and freeing links and chains 2014-01-14 13:46:24 +01:00
Sebastian Dröge
748690aba1 parse: Add comment about why we disable the "tracing"
It did not print anything useful before anyway, everything
was commented out.

Also remove some unneeded struct members.
2014-01-14 13:46:24 +01:00
Fabian Kirsch
2b33d33185 parse: Refactor grammar, make it more consistent and fix conflicts
https://bugzilla.gnome.org/show_bug.cgi?id=710034
2014-01-14 13:46:22 +01:00
Stefan Sauer
46b18f7a8b gstobject: add FIXME and docs for the disabled notify on parent
We haven't found a way to re-enable emitting notify and deep-notify for parent
changes. Add a FIXME-2.0 and a doc blob on the property. See #693281.
2014-01-09 08:49:40 +01:00
Wim Taymans
f664fbd198 segment: take offset into account in _to_position()
Take the offset into account when converting between running-time and
segment positions.
2014-01-08 15:23:00 +01:00
Wim Taymans
6d3fc584d5 pad: use new segment offset method to apply the offset
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=721422
2014-01-08 15:04:00 +01:00
Wim Taymans
dc0176e4a0 segment: add method to offset the segment running-time
Add a method that can apply an offset to the calculated running-time of
a segment.
2014-01-08 15:04:00 +01:00
Wim Taymans
42d36b9495 info: debug segment offset field as well 2014-01-08 15:04:00 +01:00
Sebastian Dröge
93ce90f833 pad: Check if new probes need to be called when adding/removing some
This allows blocking a pad, add a new blocking probe, removing
the first probe and then having the second probe called. Which
could then decide that data-flow should actually continue
instead of blocking now.

https://bugzilla.gnome.org/show_bug.cgi?id=721289
2014-01-02 13:33:20 +01:00
Sebastian Dröge
d04c8b6d2e pad: Keep an extra ref of the pad when calling an IDLE probe immediately
The callback might destroy the pad.
2013-12-30 19:03:22 +01:00
Sebastian Dröge
0324358ebc pad: Only call IDLE probes if we are actually idle
Also only check the data types for non-IDLE probes. When we
are idle, we have no data type obviously.

Previously we were calling IDLE probes during data flow whenever
a non-blocking probe would be called. The pad was usually not idle
at that time.
2013-12-30 18:53:36 +01:00
Stefan Sauer
b571f3ad7d taglist: fix since marker again (1.3 -> 1.4)
Since markers should point to the appropriate stable version.
2013-12-30 14:47:19 +01:00
Stefan Sauer
e8023bf470 taglist: fix since-marker in docs (we're in 1.3.X) 2013-12-30 14:40:40 +01:00
Stefan Sauer
cb218f2827 taglist: add a tag for midi base note numbers
Audio files containing sampled instruments can have metadata describing the note
that was played on the instrument.
2013-12-30 14:22:37 +01:00
Sebastian Dröge
901cd5560c pad: Don't ignore probe callback return value when immediately calling IDLE probe
https://bugzilla.gnome.org/show_bug.cgi?id=721096
2013-12-30 10:53:09 +01:00
Sebastian Dröge
c3181fa5df parse: Use GLib malloc/free/realloc functions
https://bugzilla.gnome.org/show_bug.cgi?id=720100
2013-12-27 12:55:40 +01:00
Wim Taymans
62932b17d7 utils: Add round down 128 macro for completeness 2013-12-20 14:43:57 +01:00
Nicolas Dufresne
59bb1f58bb utils: Add round up 128 macro 2013-12-20 14:43:57 +01:00
Sebastian Dröge
a400dd2f47 parse: Don't define yyscan_t twice
https://bugzilla.gnome.org/show_bug.cgi?id=720316
2013-12-14 19:09:05 +01:00
Edward Hervey
3ea6b04c10 gstvalue: Fix comparision of double range
Checking twice the lower bound is great (you never know, it might change
between the two calls by someone using emacs butterfly-mode), but it's a bit
more useful to check the higher bound are also identical.

Detected by Coverity
2013-12-10 18:01:52 -05:00
Víctor Manuel Jáquez Leal
24a766a13b info: return existing category if a debug category is registered twice
If a category with the same name is found when creating a new
one, the found category is returned instead of an invalid pointer.
Fixes issue with gst-vaapi (which uses an internal copy of the
codec parsers) caused by commit ccba9130.

https://bugzilla.gnome.org/show_bug.cgi?id=720036
2013-12-07 19:03:23 +00:00
Sebastian Rasmussen
53ae1b2c9c docs: Fix typos in function/object descriptions
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=720029
2013-12-07 17:11:12 +00:00
Sebastian Rasmussen
e8ecf3c407 Fix some typos in code comments and debug messages
https://bugzilla.gnome.org/show_bug.cgi?id=720029
2013-12-07 17:09:39 +00:00
Stewart Brodie
e7f514efbc docs: clarify encoding of strings in GstStructures and taglists
https://bugzilla.gnome.org/show_bug.cgi?id=709262
2013-12-06 20:50:19 +00:00
Olivier Crête
ccba91308d info: Make sure the same category is not added twice 2013-12-04 17:35:18 -05:00
Olivier Crête
e0317288ba info: Protect __categories list in get_category with lock too 2013-12-04 17:35:02 -05:00
Wim Taymans
34db352879 pad: add ACCEPT_INTERCEPT flag
Make a new flag on the pad that tweaks the default behaviour of the
accept-caps function. By default it will check for a subset of the
query-caps result but this is not always desirable. The query-caps
result contains all the constraints to make a good caps decision
upstream but sometimes, like for parsers, not all the constrained caps
fields are known upstream and then a subset check would fail. Switching
to an intersection makes this work again.

See https://bugzilla.gnome.org/show_bug.cgi?id=705024
    https://bugzilla.gnome.org/show_bug.cgi?id=677401
2013-12-03 22:28:09 +01:00
Sebastian Rasmussen
49950e57ad docs: add missing docs, fixing doc errors
* add many missing declarations to sections
 * GstController has been removed, update docs
 * skip GstIndex when generating documentation
 * rephrase so gtkdoc doesn't imagine return value
 * add missing argument description for gst_context_new()
 * document GstOutputSelectorPadNegotiationMode and move to header-file

https://bugzilla.gnome.org/show_bug.cgi?id=719614
2013-12-03 00:11:59 +00:00
Sebastian Rasmussen
b40fa2b8c3 docs: cosmetic changes in references/decriptions
* fix typo GstBufferFlag -> GstBufferFlags
 * fix typo GstFeatures -> GstCapsFeatures
 * fix typo GstAllocatorParams -> GstAllocationParams
 * fix typo GstContrlSources -> GstControlSource
 * do not refer to gstcheck as an object
 * make references gtk_init() and tcase_set_timeout() not be references
 * gst_element_get_pad() renamed gst_element_get_static_pad()
 * gst_clock_id_wait_async_full() renamed gst_clock_id_wait_async()
 * _drop_element() is really gst_queue_array_drop_element()
 * gst_pad_accept_caps() was removed, do not refer to it
 * separate GST_META_TAG_MEMORY_STR declaration from description
 * do not describe removed gst_collect_pads_collect()
 * correctly link to GstElementClass' virtual set_context()

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=719614
2013-12-02 21:01:08 +00:00
Olivier Crête
3c4d54fd88 parse: Manually insert priv_gst_parse_yyget/set_column prototypes for older flex
Older versions of flex (before 2.5.36) don't add the prototype, so it must
be added manually. We can't check by the version number, because Debian/Ubuntu
patched it into their 2.5.35 at some point.
2013-11-29 14:02:24 -05:00
Thiago Santos
06737aa972 gstpad: drop assertion on gst_pad_peer_query_position
It is a 'both' query, so it can be sent both ways
2013-11-29 15:03:44 -03:00
Wim Taymans
fe36be1c03 Revert "ghostpad: copy sticky events to SRC ghostpads"
This reverts commit 8162a583a4.

Automatically copying the sticky events makes it impossible for apps
and elements to filter the events with event probes. This causes
regressions (See #719437). The best option is to let the app/element
copy and filter the events themselves after the ghostpad target is
set.
2013-11-29 17:02:41 +01:00
Fabian Kirsch
56d74ddb64 parse: fix segfaulting prototype-mismatch
Now YYDEBUG is always set, so check it's value

https://bugzilla.gnome.org/show_bug.cgi?id=712679
2013-11-28 19:05:23 -05:00
Olivier Crête
2a720d2e55 query: Fix gi annotations of gst_structure_new_custom() 2013-11-25 19:07:15 -05:00
Sebastian Rasmussen
7a073cdcda gstutils: Escape stream id format in comments
These must be escaped for gtk-doc to parse the comments without warnings.

https://bugzilla.gnome.org/show_bug.cgi?id=714989
2013-11-22 19:04:32 +00:00
Tim-Philipp Müller
4afa63a8ba gst: g_memmove() is deprecated
Just use plain memmove(), g_memmove() is deprecated in
recent GLib versions.

https://bugzilla.gnome.org/show_bug.cgi?id=712811
2013-11-21 15:04:04 +00:00
Wim Taymans
8162a583a4 ghostpad: copy sticky events to SRC ghostpads
Update the sticky events on SRC ghostpads when retargeting. This ensures
that the ghostpad has the exect same sticky events as the target pad. We
don't want to do this for SINK ghostpads, they got the events from
downstream and we don't want to overwrite them with the target pad
events.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=707621
2013-11-21 14:13:16 +01:00
Wim Taymans
e5c5d3de7e pad: move debug function closer to the enum it debugs 2013-11-21 12:28:00 +01:00
Wim Taymans
f8dd5550c2 pluginloader: check read/write before closed
first try to read or write on the socket before checking the closed state. This
makes sure we handle all data on the socket before erroring out.
2013-11-18 21:46:11 +01:00
Wim Taymans
388f0ec069 poll: improve debug
So that we can see the return values of functions in the log.
2013-11-18 21:46:10 +01:00
Tim-Philipp Müller
9f669e5ea5 docs: cosmetic since marker fixes 2013-11-16 16:09:40 +00:00
Sebastian Dröge
38f368e48e bin: Resync iterator if necessary 2013-11-15 07:32:48 +01:00
Sebastian Dröge
5286479467 value: Lists with all equal elements are equal to a single value
Otherwise caps containing f={X, X} are not compatible with f=X

https://bugzilla.gnome.org/show_bug.cgi?id=709253
2013-11-13 19:57:23 +01:00
Tim-Philipp Müller
e30eab99a2 systemclock: add Since markers for new API 2013-11-11 16:47:06 +00:00
Wim Taymans
02b64ee03b systemclock: Add gst_system_clock_set_default
Used for setting the default system clock that is obtained through
gst_system_clock_obtain(), which is sometimes needed for unit
testing.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711269
2013-11-11 12:25:14 +01:00
Alessandro Decina
2b84b4bd97 memory: explicitly cast to GstLockFlags to avoid compiler warnings 2013-11-04 11:53:56 +01:00
Mark Nauwelaerts
ebca6aa84f segment: resurrect sanitizing start and stop for seeking 2013-11-02 16:13:27 +01:00
Olivier Crête
789eda5a37 parse: Make the FATAL_ERRORS flag also work without a GError
Also add a unit tests
2013-11-01 17:02:25 +00:00
Sebastian Dröge
7e5dc030f5 utils: Add some attributes and reorganize code to fix compiler warnings
gstutils.c:3659:41: error: format string is not a string literal
[-Werror,-Wformat-nonliteral]
    gchar *expanded = g_strdup_vprintf (stream_id, var_args);

https://bugzilla.gnome.org/show_bug.cgi?id=710621
2013-10-30 21:53:36 +01:00
Stefan Sauer
a6f60fcf2e registry: small cleanups and use object log variants more 2013-10-25 21:29:01 +02:00
Stefan Sauer
1e58699376 private: remove left-over comment
The caps are saved in the registry.
2013-10-25 21:28:30 +02:00
Stefan Sauer
ecbe3d4f2e registry: use g_slice_free for slice memory
Avoid memory list corruption, but g_free'ing slice memory.
2013-10-25 20:05:03 +02:00
Luis de Bethencourt
bbc26fffc2 docs: fix typos in gstobject 2013-10-25 11:02:19 -04:00
Sebastian Dröge
2231721ddd datetime: Make sure to include gst_private.h before glib-compat-private.h
We need to define the GLib log domain before including glib.h, which is
included by glib-compat-private.h.
2013-10-15 11:44:48 +02:00
Jan Schmidt
75b7387f8b parse: Fix transfer annotations for parse_launch functions.
gst_parse_launchv, gst_parse_launchv_full and gst_parse_launch_full
all return floating refs, the same as gst_parse_launch, which just
calls gst_parse_launch_full internally anyway.

Add a unit test assertion to check it's true.

Spotted by nemequ on IRC.
2013-10-12 16:20:50 +11:00
Reynaldo H. Verdejo Pinochet
94a3394edf core: Fix max DEBUG_LEVEL incongruence on 5 vs 9
In the docs and the autocompletion logic the maximum
value jumped incongruently between 5 and 9.
2013-10-10 13:06:14 -07:00
Thiago Santos
007c0e5fe1 value: fix caps serialization when there are caps inside caps
Wrap caps strings so that it can handle serialization and deserialization
of caps inside caps. Otherwise the values from the internal caps are parsed
as if they were from the upper one

https://bugzilla.gnome.org/show_bug.cgi?id=708772
2013-09-30 16:20:48 -03:00
Edward Hervey
3892e4dd61 pluginloader: Check errors on the proper fd
Most likely a copy-paste error from the block before.

If we're going to check for error/closed on the write fd... do it
on the write fd
2013-09-28 08:42:44 +02:00
Wim Taymans
62b7d17c2e pad: only check event order when something changed
Check the event order in dataflow only when something changed instead
of for each buffer.
2013-09-26 11:32:50 +02:00
Sebastian Dröge
ccfca8f66f bin: Make sure to cache context types that we did not store yet
https://bugzilla.gnome.org/show_bug.cgi?id=708668
2013-09-24 12:46:52 +02:00
Edward Hervey
c4539db3c1 gstcontext: Fix return values some more
Return value is a boolean not a pointer
2013-09-19 12:07:56 +02:00
Sebastian Dröge
291991dac2 context: Fix return values for gst_context_has_context_type() in assertions 2013-09-19 11:49:26 +02:00
Sebastian Dröge
f09b122453 context: Add convenience function gst_context_has_context_type() 2013-09-19 09:49:40 +02:00
Sebastian Dröge
8c09649de2 message: Implement getting the name of the context message types 2013-09-18 23:07:31 +02:00
Sebastian Dröge
921ab73340 context: Fix unit test for GstContext changes 2013-09-18 21:42:42 +02:00
Sebastian Dröge
640a05ff60 bin: Implement context caching and propagation again 2013-09-18 21:42:42 +02:00
Sebastian Dröge
51982d158a message/query: Simplify CONTEXT messages/queries to only contain a single type 2013-09-17 13:50:08 +02:00
Sebastian Dröge
2ae9809ae8 context: Update documentation 2013-09-17 13:36:49 +02:00
Sebastian Dröge
4d367dc1b0 context: Change GstContext to contain only a single context
It was unintuitive that GstContext was actually a list of different
contexts. GstContext now is only a type string and a structure to
contain the actual context.
2013-09-17 13:28:42 +02:00
Sebastian Dröge
014690326f element: Remove GstContext caching 2013-09-17 13:16:40 +02:00
Sebastian Dröge
e3ce799217 context: Add persistent qualifier for a context
Non-persistent contexts are removed when elements go back
to NULL state, persistent contexts are not. Applications
most likely want to set persistent contexts.
2013-09-17 13:10:53 +02:00
Sebastian Dröge
a7f5dc8b8a query: Make CONTEXT query upstream and downstream 2013-09-17 13:10:16 +02:00
Sebastian Dröge
113c9fa277 event: Remove CONTEXT downstream event
This is going to be implemented with an upstream query instead
for consistency and simplicity.
2013-09-17 13:09:34 +02:00
Jonas Holmberg
8501fbd216 gst: Stop all unused threads in GThreadPool in gst_deinit()
Since the default number of max unused threads in GThreadPool has been
changed from 0 to 2 it needs to be set to 0 to stop all threads or
valgrind will report them as memory leaks.
2013-09-13 14:42:55 +02:00
Sebastian Dröge
dae27ba3d3 meta: Deprecate GST_META_TAG_MEMORY
The GQuarks are not exported by any public API
2013-09-09 15:40:42 +02:00
Mathieu Duponchelle
ff05a4698e meta: Add a #define for memory metadata 2013-09-09 15:33:54 +02:00
Mathieu Duponchelle
8d24c4e451 basetransform: implement a default transform_meta.
If a metadata has no dependency as shown by the tags, copy it.
2013-09-09 15:32:18 +02:00
Mathieu Duponchelle
4c7dbde791 meta: API: Add gst_meta_api_type_get_tags() to get all meta tags. 2013-09-09 15:32:18 +02:00
Tim-Philipp Müller
aa1890a4b4 docs: flesh out gst_sample_get_buffer() a little
https://bugzilla.gnome.org/show_bug.cgi?id=706478
2013-08-21 12:21:43 +01:00
Kerrick Staley
bd2a01cfe2 parse: make grammar.y work with Bison 3
YYLEX_PARAM is no longer supported in Bison 3.

https://bugzilla.gnome.org/show_bug.cgi?id=706462
2013-08-21 10:02:26 +01:00
Wonchul Lee
facf73ad8d sample: Add gst_sample_copy()
https://bugzilla.gnome.org/show_bug.cgi?id=706454
2013-08-21 08:51:34 +02:00
Olivier Crête
f90f3cde5f buffer: Fix gst_buffer_memcmp() where the buffer is smaller than size
Also add unit tests for gst_buffer_memcmp

https://bugzilla.gnome.org/show_bug.cgi?id=706162
2013-08-20 14:41:27 -04:00
Tim-Philipp Müller
bd2ece0c48 docs: flesh out gst_element_query_{duration,position} docs a bit 2013-08-20 17:06:49 +01:00
Matthieu Bouron
d10dab0884 taglist: handle publisher and interpreted-by tags
https://bugzilla.gnome.org/show_bug.cgi?id=705999
2013-08-20 14:43:32 +02:00
Sebastian Dröge
c3e2bf8086 pluginloader: Don't call memcpy() with NULL src and 0 length 2013-08-20 13:58:24 +02:00
Brendan Long
48319d4be2 parse: Add GST_FLAG_NO_SINGLE_ELEMENT_BINS
This makes gst_parse_bin_from_description() return an element instead of
a bin if there's only one element. Also changed gstparse.c to use this,
so gst-launch won't create superfluous bins.

https://bugzilla.gnome.org/show_bug.cgi?id=703405
2013-08-19 11:30:15 +02:00
Arnaud Vrac
9819e48b92 query: return NULL when parsing uri redirection that was not set
https://bugzilla.gnome.org/show_bug.cgi?id=706160
2013-08-19 10:11:24 +02:00
Sebastian Dröge
98d8cdfda4 buffer: Update since marker for gst_buffer_extract_dup() to 1.0.10 2013-08-18 11:49:08 +02:00
Jonas Holmberg
e3a386e9cf Free thread pools in gst_deinit() 2013-08-16 10:32:25 +01:00
Tim-Philipp Müller
a4f2720be4 clock: simplify internal gst_clock_return_get_name() helper 2013-08-14 21:41:23 +01:00
Edward Hervey
29353c1b59 gst: minor docstring fixups to make g-i happy
note: the #ifndef move is actually a move of the "SECTION" docstring
2013-08-14 07:05:04 +02:00
Sebastian Dröge
5d26d67ba7 sysmem: Only copy the requested part of memory instead of the complete source memory
https://bugzilla.gnome.org/show_bug.cgi?id=705678
2013-08-13 15:48:07 +02:00
Tim-Philipp Müller
104db59706 query: add Since markers for new API and add to exports file 2013-08-13 12:11:19 +01:00
Andoni Morales Alastruey
0d82493894 query: fix annotation for gst_query_parse_uri 2013-08-12 16:34:54 +02:00
Andoni Morales Alastruey
a70b5fc16a query: add new redirection uri the URI query 2013-08-12 16:34:54 +02:00
Thiago Santos
210aaabb60 query: add some missing 'transfer none' gi annotations
The current documentation is controverse, while it states that the
returned value is valid only while the query is is valid, which presumes
a 'transfer none' policy. But the tooltip for the 'out' annotation
states the default is 'transfer-full'.

Add the missing 'transfer none' annotations to fix this.
2013-08-12 09:41:10 -03:00
Tim-Philipp Müller
d97aa274c2 pipeline: g-i: allow clock to be NULL in gst_pipeline_use_clock()
https://bugzilla.gnome.org/show_bug.cgi?id=705751
2013-08-10 11:33:58 +01:00
Kjartan Maraas
280f557380 docs: some small gtk-doc markup fixes
https://bugzilla.gnome.org/show_bug.cgi?id=705156
2013-07-30 23:33:28 +01:00
Kjartan Maraas
f9d62f6a53 gst: register new color mode enum, fixing 'make check'
https://bugzilla.gnome.org/show_bug.cgi?id=705156
2013-07-30 23:32:49 +01:00
Sjoerd Simons
cf3cbe76af query: Clarify the estimated-total documentation
Tweak the documentation slightly to clarify that the estimated-total in
a a Buffering query the total remaining time of a download, not the
total time for the complete download. Also indicate the unit used.

https://bugzilla.gnome.org/show_bug.cgi?id=704934
2013-07-29 15:08:18 +02:00
Tim-Philipp Müller
6e107e90ed buffer: fix Since: marker for new gst_buffer_extract_dup() 2013-07-26 18:36:04 +01:00
Wim Taymans
d73b4edc99 clock: debug the clock return values 2013-07-26 12:20:05 +02:00
David Schleef
f599019a99 info: parse debug levels > 9 2013-07-24 10:30:09 -07:00
Sebastian Dröge
d55893fb96 value: Fix copy&paste mistakes in the bitmask function docs 2013-07-24 16:57:46 +02:00
Tim-Philipp Müller
0c513e3d97 value: handle deserialisation of nonexistant enum value more gracefully 2013-07-22 17:25:47 +01:00
Sebastian Dröge
7c936a4cc2 bin: Use the new group-id field of the stream-start message for stream-start message aggregation
If all stream-start messages had a group id (for backwards compatibility),
we only consider a stream started if all had the same group id.

In 2.0 we should make the group id mandatory.
2013-07-22 15:30:10 +02:00
Sebastian Dröge
75d9454bf4 gst: Add new group-id field to the stream-start event
All streams that have the same group id are supposed to be played
together, i.e. all streams inside a container file should have the
same group id but different stream ids. The group id should change
each time the stream is started, resulting in different group ids
each time a file is played for example.
2013-07-22 15:30:10 +02:00
Sebastian Dröge
9ddcfcf8f4 gst: Add some more Since: 1.2 2013-07-18 14:39:42 +02:00
Sebastian Dröge
b9841335ed info: Add some Since: 1.2 2013-07-18 14:34:31 +02:00
Руслан Ижбулатов
797fcd1d49 info: Add debug color mode option
This allows to explicitely set the debug output color
mode to UNIX on every platform, enable it (use platform
default color mode) or enable it.

https://bugzilla.gnome.org/show_bug.cgi?id=674320
2013-07-18 14:30:44 +02:00
Руслан Ижбулатов
46106ebe8f info: Fix black and underline coloring on W32
Fixes #674320
2013-07-18 14:21:22 +02:00
Руслан Ижбулатов
143f30bfcb info: Cut down src file names for MinGW too
Fixes #674320
2013-07-18 14:21:06 +02:00
Sebastian Dröge
3821cee574 query: Don't assert if no context is set in the query 2013-07-16 17:35:50 +02:00
Tim-Philipp Müller
472a64418a query: sprinkle some Since 1.2 markers in docs 2013-07-16 14:48:19 +01:00
Sebastian Dröge
e47270ee24 element: Return an empty GstContext if none was set yet 2013-07-16 15:34:57 +02:00
Sebastian Dröge
356ef049d3 query: Add gst_query_has_context_type() 2013-07-16 15:16:16 +02:00
Sebastian Dröge
c279bdb663 pad: A newly activated pad should be marked as needing reconfiguration 2013-07-15 11:36:44 +02:00
Sebastian Dröge
942d905e19 Revert "pad: Don't consider flushing pads as needing reconfiguration"
This reverts commit 948a9d2f2b.

This is racy and trying to reconfigure and fail is still better
than not trying to reconfigure at all.

https://bugzilla.gnome.org/show_bug.cgi?id=704100
2013-07-15 11:32:54 +02:00
Sebastian Dröge
ba4ec10aa5 bin: Always forward clock-lost message if we're not a top-level bin
This makes sure that no bin misses the clock-lost messages, independent
of the state, and could return an old, non-working clock from
gst_bin_provide_clock_func().

https://bugzilla.gnome.org/show_bug.cgi?id=701997
2013-07-10 15:57:34 +02:00
Tim-Philipp Müller
05bbd1b11a allocator: fix type of gst_memory_alignment to match declaration
Fixes compiler warnings such as
gstallocator.c:61:8: error: conflicting types for 'gst_memory_alignment'
../gst/gstallocator.h:52:18: note: previous declaration of 'gst_memory_alignment' was here
2013-07-08 15:26:38 +01:00
Nicolas Dufresne
4656d18fd5 Add few missing allow-none annotation 2013-07-03 14:25:07 -04:00
Sebastian Dröge
948a9d2f2b pad: Don't consider flushing pads as needing reconfiguration
Renegotiation and reconfiguration will fail because all queries
and events won't be accepted by the pad if it's flushing. In the
best case this just causes unneeded work and spurious warnings in
the debug logs, in the worst case it causes elements to fail completely.
2013-06-30 18:40:47 +02:00
Sjoerd Simons
1815e6067a pad: Add a filter to the caps_query done by acceptcaps
Use the caps that the pad is asked to accept as filter for the query

https://bugzilla.gnome.org/show_bug.cgi?id=702632
2013-06-19 15:12:18 +02:00
Edward Hervey
0d57bd3198 taglist: Avoid combinatorial explosion when merging tags
When appending/prepending tags, avoid re-creating (and copying) lists if we already
have one and instead just append/prepend the GValue to the list.

https://bugzilla.gnome.org/show_bug.cgi?id=702545
2013-06-19 11:58:37 +02:00
Paul HENRYS
db80044513 buffer: Fix wrong size/index handling when merging memory
https://bugzilla.gnome.org/show_bug.cgi?id=702617
2013-06-19 10:39:30 +02:00
Sebastian Dröge
bd48ba333d structure: Add gst_structure_new_from_string()
Convenience API for bindings, gst_structure_from_string() returns
a tuple (structure, end_ptr) in bindings and is unintuitive to use
because of that.
2013-06-14 13:05:38 +02:00
Hans de Goede
7fc2602761 gst: Don't intercept --help in gst_init()
Before this patch gst_init would intercept --help, causing for example
cheese's --help to look like this:

[hans@shalem cheese]$ cheese --help
Usage:
  cheese [OPTION...] - GStreamer initialization

Help Options:
  -h, --help                        Show help options
  --help-all                        Show all help options
  --help-gst                        Show GStreamer Options

gst_init is the only gfoo_init function which does this.

https://bugzilla.gnome.org/show_bug.cgi?id=702089
2013-06-13 08:37:28 +02:00
Edward Hervey
2e1db58e11 gstvalue: Add _append_and_take_value() public variants
API: gst_value_array_append_and_take_value
API: gst_value_list_append_and_take_value

We were already using this internally, this makes it public for code
which frequently appends values which are expensive to copy (like
structures, arrays, caps, ...).

Avoids copies of the values for users. The passed GValue will also
be 0-memset'ed for re-use.

New users can replace this kind of code:
gst_value_*_append_value(mycontainer, &myvalue);
g_value_unset(&myvalue);

by:

gst_value_*_append_and_take_value(mycontainer, &myvalue);

https://bugzilla.gnome.org/show_bug.cgi?id=701632
2013-06-05 12:58:05 +02:00
Edward Hervey
e1f520f27c gstbuffer: Use internal function for buffer_new_wrapped
Shaves ~10% instruction calls from the total cost

https://bugzilla.gnome.org/show_bug.cgi?id=701633
2013-06-05 11:15:34 +02:00
Sebastian Dröge
cc7113b619 elementfactory: Add support for checking subtitle/metadata factory types 2013-05-28 12:44:19 +02:00
Sebastian Dröge
ee21c26cea elementfactory: Add support for checking only the media type of a factory
And while at it also add Metadata and Subtitle media types.
2013-05-28 12:41:27 +02:00
Sebastian Dröge
73895c05b1 pad: Store sticky events even if the pad is flushing
But do this only for events that are not dropped by flushing,
i.e. do it only for everything except SEGMENT and EOS.

Without this we might drop a CAPS event if flushing happens
at an unfortunate time and nobody is resending the CAPS event.

https://bugzilla.gnome.org/show_bug.cgi?id=700806
2013-05-27 12:40:50 +02:00
Sebastian Dröge
3d44f542ed pad: Only check if we get buffers before stream-start/segment if compiling without G_DISABLE_ASSERT
In releases this is set usually.
2013-05-10 16:03:34 +02:00
Sebastian Dröge
d500ffc300 pad: Fix uninitialized variable compiler warning 2013-05-09 17:55:21 +02:00
Sebastian Dröge
1b87f0c36a pad: Make sure pending, older sticky events are sent downstream in dynamic linking scenarios
If a pad block was triggered from sending a sticky event downstream, it
could happen that the pad block is relinking pads, which then requires
to resend previous sticky events.
2013-05-09 17:55:21 +02:00
Sebastian Dröge
8bedcf450f pad: Warn if data flow happens before stream-start or segment event 2013-05-09 11:05:50 +02:00
Sebastian Dröge
430285b5c8 pad: Only let gst_pad_sticky_events_foreach() iterate over existing events 2013-05-09 10:59:41 +02:00
Sebastian Dröge
e0f59d22eb pad: If we push sticky events because of another sticky event, only push those that come before the new event
https://bugzilla.gnome.org/show_bug.cgi?id=699937
2013-05-09 10:29:11 +02:00
Sebastian Dröge
ae47133360 pad: No sticky events must arrive after EOS 2013-05-09 09:51:13 +02:00
Nicolas Dufresne
e8a9ffa092 pad: Improve warning message naming events type name
With this patch, message should look like ¨Sticky event misordering, got
'caps' before 'stream-start'¨ making it faster to debug.

https://bugzilla.gnome.org/show_bug.cgi?id=688188
2013-05-09 09:35:30 +02:00
Nicolas Dufresne
f6aa4d85c1 pad: Only inforce STREAM_START, CAPS and SEGMENT ordering
Previous patch was inforcing a complete ordering of the sticky events, while
in fact, only STREAM_START, CAPS and SEGMENT events need proper ordering.

See: https://bugzilla.gnome.org/show_bug.cgi?id=688188
2013-05-09 09:35:19 +02:00
Nicolas Dufresne
a68e33712e pad: Detect, fix and warn when sticky events are in wrong order
We can prevent buggy element from causing other elements to fail or crash
by sorting sticky event at insertion. In this case, we also warn as this
is not supposed to happen.

See: https://bugzilla.gnome.org/show_bug.cgi?id=688188
2013-05-08 13:48:59 +02:00
Tim-Philipp Müller
65c2ecb4f3 buffer: allow calling _fill() with a NULL data pointer if size is 0 bytes 2013-05-08 10:25:36 +01:00
Alessandro Decina
543b92a856 gstpad: run probes for FLUSH events sent with gst_pad_send_event
Move probe handling in gst_pad_send_event_unchecked so that probes are run for
FLUSH events too.
2013-04-25 06:43:29 +02:00
Wim Taymans
43620e1642 pad: notify caps property on NULL as well
Also notify the caps property when it changes to NULL
2013-04-23 11:17:05 +02:00
Wim Taymans
49c9d2f229 pad: clarify locking 2013-04-23 11:16:16 +02:00
Sebastian Dröge
ce8cb1f1b3 part-context: Write some design documentation about GstContext 2013-04-19 15:01:20 +02:00
Sebastian Dröge
7ae54c34e5 capsfeatures: Add documentation about ANY GstCapsFeatures 2013-04-19 11:24:38 +02:00
Andre Moreira Magalhaes (andrunko)
a8300a4891 gstvalue: Add compare function for caps 2013-04-18 14:45:47 -03:00
Sebastian Dröge
03c3738b67 context: Add gst_context_writable_structure() and let get_structure() return const again 2013-04-18 10:18:22 +02:00
Tim-Philipp Müller
e8a9f7acdf printf: fix handling of old printf extension specifiers for ABI compatibility
Fixes abort when the old specifiers are used. Fix up the conversion
specifier, it would get overwritten with 'c' below to the extension
format char, which then later is unhandled, leading to the abort.
Also fix up and enable unit test for this.

https://bugzilla.gnome.org/process_bug.cgi
2013-04-18 00:46:58 +01:00
Sebastian Dröge
0d6440b8d9 context: Return a non-const GstStructure to make code simpler and update docs 2013-04-17 12:17:49 +02:00
Philippe Normand
54c678a21e query: new _BANDWIDTH_LIMITED flag
Source elements with limited bandwidth capabilities and supporting
buffering for downstream elements should set this flag when answering
a scheduling query. This is useful for the on-disk buffering scenario
of uridecodebin to avoid checking the URI protocol against a list of
hardcoded protocols.

Bug 693484
2013-04-16 16:52:08 +02:00
Sebastian Dröge
18a7a1d062 gst: Add better support for static plugins
API: GST_PLUGIN_STATIC_DECLARE()
API: GST_PLUGIN_STATIC_REGISTER()

Based on a patch by Håvard Graff <havard.graff@tandberg.com>.

This now allows GST_PLUGIN_DEFINE() to create a static plugin if
GST_PLUGIN_BUILD_STATIC is defined. The resulting plugin can be
statically linked or dynamically linked during compilation but
can't be dynamically loaded during runtime.

Also adds GST_PLUGIN_STATIC_DECLARE() and GST_PLUGIN_STATIC_REGISTER(),
which allows to register a static linked plugin easily.
It is still required to manually register every single statically linked
plugin from inside the application as this can't be automated in a portable
way.

A new configure parameter --enable-static-plugins was added that allows
to build all plugins we build here as static plugins.

Fixes bug #667305.
2013-04-15 15:52:18 +02:00
Sreerenj Balachandran
899bbf310b pluginfeature: Fix the GstPluginFeature name comparison.
The gst_plugin_feature_rank_compare_func() should return
negative value, if the rank of both PluginFeatures are equal and
the name of first PluginFeature comes before the second one.

https://bugzilla.gnome.org/show_bug.cgi?id=697990
2013-04-15 09:24:08 +02:00
Tim-Philipp Müller
109be629b7 printf: disable some unused printf variants 2013-04-14 11:33:41 +01:00
Tim-Philipp Müller
91c42b9380 printf: use sprintf() to work around glibc complaining about %n in a writable format string
Don't use snprintf(), but use sprintf instead and do our own
length calculations, because glibc may complain about us passing
%n in a format string if the string is in writable memory, and
here the format string is always in writable memory since we
construct it on the fly. This happens if glibc has been compiled
with _FORTIFY_SOURCE=2, which seems to be the case on some
distros/systems). On the upside, we now use the sprintf code path
on all systems which should be better from a maintenance point
of view.

https://bugzilla.gnome.org/show_bug.cgi?id=697970
2013-04-14 11:23:10 +01:00
Gwenole Beauchesne
f43b756f39 plugin: fix name expansion for GST_PLUGIN_DEFINE macro
Make GST_PLUGIN_DEFINE use G_STRINGIFY() to convert the name argument
into a meaningful string. The advantage of this is that `name' can be
expanded from other macros defined in the plug-in element.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>

https://bugzilla.gnome.org/show_bug.cgi?id=697872
2013-04-13 11:40:26 +01:00
Tim-Philipp Müller
0e1dd050a5 printf: don't build if debugging subsystem was disabled 2013-04-13 01:19:41 +01:00
Tim-Philipp Müller
5299a0cd65 printf: deal with some of the HAVE_FOO used in the printf code
Probably needs some more work for MSVC.
2013-04-12 23:05:59 +01:00
Tim-Philipp Müller
3c1d9c6d41 printf: fix alloca use for windows with mingw32
Don't use just GLIB_HAVE_ALLOCA_H to check if alloca is available,
that's just for the header. GLib may define alloca for us otherwise
too irrespective of GLIB_HAVE_ALLOCA_H.

Fixes compiler warning with mingw32:
gst/printf/vasnprintf.c:73:0: warning: "alloca" redefined
2013-04-12 23:05:58 +01:00
Tim-Philipp Müller
ff292d530c printf: enable and fix compiler warnings
But suppress -Wformat-nonliteral warnings since sprintf
is used with a runtime-generated format string in our
vasnprintf implementation.
2013-04-12 23:05:58 +01:00
Tim-Philipp Müller
97b3948a9f printf: fix up dodgy use of #if HAVE_FOO and #if !HAVE_FOO
Should use #ifdef and #ifndef.
2013-04-12 23:05:58 +01:00
Tim-Philipp Müller
79d6b91e27 printf: mark internal functions as internal 2013-04-12 23:05:57 +01:00
Tim-Philipp Müller
3778c1878c printf: skip pointer extension signifier chars after %p
So they don't get printed after the serialised pointer string.
2013-04-12 23:05:57 +01:00
Tim-Philipp Müller
6d8a6470d5 printf: don't leak serialised pointer extension strings 2013-04-12 23:05:57 +01:00
Tim-Philipp Müller
9a9b449c5f printf: handle old GST_PTR_FORMAT %P and GST_SEGMENT_FORMAT %Q defines too
For binary backwards compatibility.
2013-04-12 23:05:57 +01:00
Tim-Philipp Müller
5803da553c printf: make printf parser recognise our pointer extension format
and call the hook to get a string for the pointer instead.

https://bugzilla.gnome.org/show_bug.cgi?id=613081
2013-04-12 23:05:57 +01:00
Tim-Philipp Müller
fe7f7135e0 printf: add infrastructure for pointer extensions hook
Does not do anything yet. On a sidenote, we can't just use
%p\001 or so to signal the extension because g-i complains
about an invalid ascii character then, so have to resort to
something more elaborate, such as %p\aA etc.

https://bugzilla.gnome.org/show_bug.cgi?id=613081
2013-04-12 23:05:57 +01:00
Tim-Philipp Müller
7b19944280 info: use new internal printf for debug message printing
and remove all the printf extension/specifier stuff for
the system printf. Next we need to add back the custom
specifiers to our own printf implementation.

https://bugzilla.gnome.org/show_bug.cgi?id=613081
2013-04-12 23:05:57 +01:00
Tim-Philipp Müller
8fc876f09f printf: add our own printf implementation for debug logging
We will add support for our own printf modifiers, so we can
get nice debug log output on all operating systems irrespective
of the specific libc version used.

https://bugzilla.gnome.org/show_bug.cgi?id=613081
2013-04-12 23:05:56 +01:00
Wim Taymans
f45c84db02 taglist: avoid triggering an assertion
When deserialization of the structure fails, return a NULL taglist instead of
asserting.
2013-04-12 16:17:46 +01:00
Wim Taymans
396b49ec4d buffer: add _gst_max_memory() function
Add the a function to query the maximum amount of memory blocks that can be
added to a buffer. Also improve the docs for _insert_memory().
2013-04-11 14:31:01 +01:00
Stefan Sauer
8d816e9527 bus: fix the precondition for gst_bus_disable_sync_message_emission()
Use the right variable and invert the test. The precondition should catch
someone calling to once too often.
2013-04-10 21:50:53 +02:00
Olivier Crête
787d973fb2 capsfeatures: Init debug category before ever using it 2013-04-09 19:37:06 -04:00
Руслан Ижбулатов
e745a2bcf0 clock: Do use HAVE_CLOCK_GETTIME
Fixes #697549
2013-04-09 20:33:27 +02:00
Sebastian Dröge
f7532a7e13 capsfeatures: Copy ANY flag when copying caps features too 2013-04-06 22:10:58 +02:00
Sebastian Dröge
91b3890d70 caps: Handle ANY caps features properly in more places 2013-04-06 21:49:25 +02:00
Sebastian Dröge
db6ee700f2 caps: Properly handle ANY caps features in caps operations 2013-04-06 21:09:49 +02:00
Stefan Sauer
627d111eb6 bus: update signal docs for gst_bus_enable_sync_message_emission() 2013-04-05 21:24:19 +02:00
Tim-Philipp Müller
cf69475aeb caps: fix caps feature leak
Fixes leaks in 14 core unit tests including
gst/gstcaps.
2013-04-04 23:14:13 +01:00
Wim Taymans
6c62146031 structure: simplify is_subset check
Iterate over the fields of the superset instead of those of the subset.
This way we can check the presence of the subset field and do the subset check
in one iteration.
2013-04-04 17:59:10 +02:00
Wim Taymans
d92ce924e6 caps: update docs, is_subset() works now 2013-04-04 17:46:09 +02:00
Wim Taymans
ff0deeed9a bufferpool: fix docs 2013-04-04 16:39:23 +02:00
Wim Taymans
3e1a430c22 pad: add gst_pad_store_sticky_event()
Rewire some internal functions and expose a new
gst_pad_store_sticky_event() function.

API: gst_pad_store_sticky_event()
2013-04-04 16:36:26 +02:00
Wim Taymans
1457c9c499 pad: clarify docs 2013-04-04 15:45:23 +02:00
Wim Taymans
e857030232 pad: improve debug 2013-04-04 15:45:15 +02:00
Wim Taymans
95c6cd37a8 segment: don't WARN, just DEBUG
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=696911
2013-04-04 10:17:30 +02:00
Nicolas Dufresne
ab44e14c52 segment: Fix seeking when position is slightly outside the segment
Very often, when the end of a segment is detected by demuxer, the position
is slightly outside the segment boundaries. Currently, if that is the case
the base will be set to NONE instead of normal accumulation. This would
break non-flushing seeks in oggdemux and most likely other demuxers.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=696899
2013-04-04 10:10:24 +02:00
Wim Taymans
e9c48043d1 gst: add stream flags 2013-04-03 16:45:46 +02:00
Tim-Philipp Müller
24cac0afa3 docs: more since markers and other docs fixes 2013-04-02 23:51:06 +01:00
Tim-Philipp Müller
ce77032133 docs: add since markers to capsfeatures docs 2013-04-02 23:21:39 +01:00
Sebastian Dröge
65c650d7d4 capsfeatures: Add GST_CAPS_FEATURES_ANY
This is equal to any other caps features but results in unfixed caps. It
would be used by elements that only look at the buffer metadata or are
currently working in passthrough mode, and as such don't care about any
specific features.
2013-04-02 22:17:22 +02:00
Tim-Philipp Müller
0dd761101c info: minor cosmetic changes
Let's not use ugly leading underscores for
static functions.
2013-04-01 22:17:20 +01:00
Tim-Philipp Müller
cef9018eaf info: fix object printing of caps features in debug log 2013-04-01 21:23:21 +01:00
Stefan Sauer
6465dbd647 info: refactor pretty printing objects
Extract formatters into local functions. Change the structure filtering so that
it works for taglists too.
2013-04-01 16:39:18 +02:00
Stefan Sauer
28b0cb5721 element: make post_message and query more alike 2013-04-01 16:39:17 +02:00
Sebastian Dröge
a838e5aa75 capsfeatures: For copying features it's not required to have no parent refcount 2013-04-01 10:19:25 +02:00
Sebastian Dröge
efcb4023e6 caps: Set features' parent refcount in gst_caps_set_features() too 2013-04-01 10:19:01 +02:00
Sebastian Dröge
ccd2966f7a caps: Set sysmem features if explicitely requested 2013-04-01 10:18:39 +02:00
Sebastian Dröge
7477b25df5 caps: Add new data type for handling caps features to the caps
These are meant to specify features in caps that are required
for a specific structure, for example a specific memory type
or meta.

Semantically they could be though of as an extension of the media
type name of the structures and are handled exactly like that.
2013-03-31 18:15:52 +02:00
Tim-Philipp Müller
caa06788c3 event: add SELECT and UNSELECT stream flags for stream-start event
So demuxers can signal which audio/video/subtitle streams should
be selected by default and which should not be selected
automatically.

API: GST_STREAM_FLAG_SELECT
API: GST_STREAM_FLAG_UNSELECT

https://bugzilla.gnome.org/show_bug.cgi?id=695968
https://bugzilla.gnome.org/show_bug.cgi?id=690911
2013-03-31 15:30:19 +01:00
Tim-Philipp Müller
0e5c1dcf64 event: add stream flags to stream-start event
API: gst_event_set_stream_flags()
API: gst_event_parse_stream_flags()
API: GST_STREAM_FLAG_NONE
API: GST_STREAM_FLAG_SPARSE

https://bugzilla.gnome.org/show_bug.cgi?id=600648
2013-03-31 11:47:40 +01:00
Sebastian Dröge
dd831b8114 element: Add API to get the last set context from an element
Elements should override GstElement::set_context() and also call
gst_element_set_context() to keep this context up-to-date with
the very latest context they internally use.
2013-03-31 11:26:32 +02:00
Sebastian Dröge
f23db94fef pad: Let gst_pad_get_allowed_caps() pass the caps own caps as filter
This will reduce the number of caps created downstream and we don't
need to intersect in the very end with the pad's own caps.
2013-03-30 11:48:27 +01:00
Stefan Sauer
ba8c0f5e4b childproxy: fix gir warning 2013-03-29 19:16:45 +01:00
Edward Hervey
418dcd7277 pad: Remove SEGMENT sticky events when flushing
When flushing, it is expected that upstream will send a SEGMENT
event afterwards.
This also avoids stray SEGMENT events from coming through after a
flush.
2013-03-29 18:43:21 +01:00
Sebastian Dröge
b909061031 gst: Add new GstContext miniobject for sharing contexts in a pipeline 2013-03-29 16:40:21 +01:00
Olivier Crête
ec16d6b0a4 buffer: Add annotations and pygi friendly extraction function
API: gst_buffer_extract_dup
2013-03-27 13:07:03 -04:00
David Schleef
700be18f11 Update docs for gst_pad_create_stream_id_printf()
To indicate that format strings should be alpha sortable.
2013-03-25 18:50:41 -07:00
Sebastian Dröge
7decc9bef7 caps: Fix gst_static_caps_get(GST_STATIC_CAPS_NONE)
https://bugzilla.gnome.org/show_bug.cgi?id=696435
2013-03-25 09:22:49 +01:00
Tim-Philipp Müller
a76885f333 toc: some documentation updates 2013-03-24 17:53:35 +00:00
Tim-Philipp Müller
1750620752 utils: make sure slow GST_READ_UINT* variants don't have unexpected side effects
Fixes unit test on systems where unaligned memory access is not possible.

https://bugzilla.gnome.org/show_bug.cgi?id=695599
2013-03-12 14:41:01 +00:00
Sebastian Dröge
0936b506ab query: gst_query_get_n_allocation_params() returns a new ref to the allocator 2013-03-07 11:47:04 +01:00
Stefan Sauer
ec55363da3 controlbinding: relax the pspec for the control-source
We can change control sources on controlbindings.
2013-03-07 09:18:26 +01:00
Sebastian Dröge
64affd3e61 buffer: Fix memory copying logic in copy_into()
https://bugzilla.gnome.org/show_bug.cgi?id=695035
2013-03-03 12:06:36 +01:00
Sebastian Dröge
3360299ef4 registrychunks: Use correct print format specifiers to fix compiler warnings 2013-03-03 11:28:32 +01:00
David Schleef
ac8ccf2c50 Fix misspellings of 'continuous' 2013-03-02 10:43:56 -08:00
Stefan Sauer
82f7bdd7bb seeking: add more logging for seeking
Especially add logging to error code paths.
2013-02-27 22:17:17 +01:00
Sebastian Dröge
ce1c1cf214 buffer: Gracefully handle gst_memory_copy() returning NULL without crashing
gst_buffer_copy_into() and gst_buffer_resize_range() can now fail.
2013-02-27 10:11:23 +01:00
Wim Taymans
e52aa65ab7 allocator: small internal cleanups
Rename System memory allocator to GstAllocatorSysmem and the memory to
GstMemorySystem.
2013-02-26 17:33:30 +01:00
Wim Taymans
4df4fd33b1 memory: add method to check memory type
Add a method to check if a memory was allocated from an allocator of
a given type.

API: gst_memory_is_type()
2013-02-26 15:37:24 +01:00
Wim Taymans
d7f15f542a use GST_MESSAGE_DURATION_CHANGED in docs and code 2013-02-26 15:32:25 +01:00
Wim Taymans
f37fc1d299 memory: don't unref allocator too soon
Unref the allocator *after* we have freed the memory. We also need to keep
a ref to the allocator around because following the now freed memory would
lead to crashes.
2013-02-26 14:40:38 +01:00
Sebastian Dröge
2ca0046934 buffer: Fix inverted logic for deciding if memory should be shared or copied
https://bugzilla.gnome.org/show_bug.cgi?id=694717
2013-02-26 09:09:25 +01:00
Stefan Sauer
24df8b92ea docs: s/start/done/ copy'n'paste mistake 2013-02-26 08:36:51 +01:00
Sebastian Dröge
008b35f6ae query: Add new API to remove allocation params and pools from the allocation query 2013-02-25 13:57:43 +01:00
Sebastian Dröge
e460be622d query: Document that the first allocator in the allocation query should allow mapping to system memory 2013-02-25 13:24:33 +01:00
Sebastian Dröge
d50190ba55 memory: Keep a reference to the allocator
Otherwise the allocator might get freed while it's still used
by the memory
2013-02-24 09:46:01 +01:00
Sebastian Dröge
209f081ab8 buffer: If sharing a GstMemory fails, fall back to copying it 2013-02-24 09:46:01 +01:00
Sebastian Dröge
a093d8a8cd memory: It's contiguous, not continous 2013-02-23 08:19:48 +01:00
Sebastian Dröge
5327545d56 memory: Add new memory flag to specify that memory can't be mapped 2013-02-22 12:41:09 +01:00
Sebastian Dröge
221b6fc479 memory: Add memory flag to mark physically continous memory 2013-02-22 09:04:57 +01:00
Tim-Philipp Müller
0cbe23995f utils: avoid unexpected side-effects of GST_WRITE_* macros
Make sure the data argument is only evaluated once.
2013-02-19 18:00:48 +00:00
Stefan Sauer
f9ce7e711b docs: link to the appropriate messages from gst_elements_set_state() docs
For an async state change return one would wait for ASYNC_DONE or STATE_CHANGED.
2013-02-17 13:21:36 +01:00
Tim-Philipp Müller
e3a9e66985 buffer: add since marker for new COPY_DEEP buffer flag 2013-02-16 14:20:54 +00:00
Wim Taymans
1fcef378bd buffer: add option to deep copy a buffer
Add a buffer copy flag to force a memory copy in all cases.
2013-02-16 14:59:02 +01:00
Tim-Philipp Müller
6c7573226e Revert "utils: Use gst_pad_get_pad_template() in gst_element_get_compatible_pad_template()"
This reverts commit 1a1a9e143f.

This breaks the pipelines/tagschecking unit test for some reason
(fakesrc ! capsfilter ! qtmux linking fails now). It might be
a bug in the unit test of course, but someone will need to
investigate this. Reverting for now.

https://bugzilla.gnome.org/show_bug.cgi?id=692508
2013-02-15 12:40:39 +00:00
Wim Taymans
7e222212a8 allocator: improve fallback copy function
Only use the allocator of the copied memory when we can use the default
_alloc function on it. Otherwise we will have to use the default
allocator for the copy.
2013-02-15 13:13:40 +01:00
Niv Sardi
1a1a9e143f utils: Use gst_pad_get_pad_template() in gst_element_get_compatible_pad_template()
motivation comes from: /* FIXME: why not gst_pad_get_pad_template (pad); */
this code path is quite nicer, we now only revert to creating the template
if gst_pad_get_pad_template fails.

with this fork, we gain a non-allocation of GstCaps *templcaps

https://bugzilla.gnome.org/show_bug.cgi?id=692508
2013-02-14 10:21:54 +01:00
Tim-Philipp Müller
5fc34add25 message: accept NULL error argument in gst_message_parse_{error,warning,info}
And simplify code a bit while at it.

https://bugzilla.gnome.org/show_bug.cgi?id=693704
2013-02-13 16:52:13 +00:00
Sebastian Dröge
fb3b53328f value: Remove set-style bitmask intersection/union/subtraction functions
Set operations on the bitmasks don't make much sense and result
in invalid caps when used as a channel-mask. They are now handled
exactly like integers.

This functionality was not used anywhere except for tests.

https://bugzilla.gnome.org/show_bug.cgi?id=691370
2013-02-13 17:07:47 +01:00
Sebastian Dröge
e479d22040 bin: The latency query should return TRUE by default, different to other queries
Fixes unit test failures caused by f3d268de7f
2013-02-13 11:19:06 +01:00
Sebastian Dröge
171c79c9a7 structure: Make sure that subsets have all fields of the superset
"video/x-h264,parsed=(boolean)true" is not a superset of
"video/x-h264,stream-format=(string)byte-stream,alignment=(string)nal"
for example.

https://bugzilla.gnome.org/show_bug.cgi?id=693365
2013-02-13 10:46:37 +01:00
Philippe Normand
f3d268de7f bin: query sink elements and source pads of the bin
gst_bin_query() now forwards the query to the source pads as well if
none of the sinks of the bin satisfied the query. This helps in the
case of DURATION queries done a bin containing a source element.

Fixes bug 638749
2013-02-12 10:33:40 +01:00
Alexander Schrab
983fb0f5da bin: Let gst_bin_send_event() send events to ghost pads as well 2013-02-12 10:22:53 +01:00
Stefan Sauer
d211a2a67c compat: kill more uses of gst_pad_set_caps() 2013-02-11 22:54:22 +01:00
Tim 'mithro' Ansell
bd65fc0036 gstvalue: Adding offset to GstSegment serialize/deserialize.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=693587
2013-02-11 14:19:27 +01:00
Stefan Sauer
56f6f022e2 controlbinding: error handling for binding controlsources to wrong properties
Add warning if property is not suitable for controlling. When adding a control-
binding check that pspec!=NULL.
2013-02-08 21:38:22 +01:00
Wim Taymans
474610b191 element: remove old docs about iterators 2013-02-07 13:08:49 +01:00
Wim Taymans
ed35f62458 bin: remove old comment
The iterators now return a GValue and not the object directly anymore.
2013-02-07 12:52:26 +01:00
Wim Taymans
209631789a bin: reset GValue from iterator after usage 2013-02-07 12:50:08 +01:00
Nate Bogdanowicz
6b717600b5 gstpipeline: fix failed assertion caused by seeking pipeline with NULL clock
Under certain GST_STATE_CHANGED_PAUSED_TO_PLAYING transitions, a pipeline with
a NULL clock will fail an assertion due to an unchecked call to gst_object_ref().
This is fixed by simply adding a check and only ref-ing if the clock is not NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=693065
2013-02-05 14:23:20 +01:00
Wim Taymans
ea6b05d126 structure: change argument name for docs 2013-02-05 13:44:06 +01:00
Stefan Sauer
f989e6f2d7 debugutils: fix order of caps on an unnegotiated link
headlabel is the sink_pad (where the link points to) and not the other way around.
2013-02-04 10:31:46 +01:00
Stefan Sauer
fba696eb05 docs: update the controller docs
Add the control bindings to the docs. Add a little more detail.
2013-02-01 22:00:18 +01:00
Simon Feltman
d2b03a4537 g-i: add built enumtypes headers and sources to gir creation
Add gstenumtypes.h/c for inclusion with g-ir-scanner. This fixes
problems where introspection based bindings think GstState is
typeless due to the GType not being included as an annotation.

https://bugzilla.gnome.org/show_bug.cgi?id=691185
2013-01-27 20:55:38 +00:00
Niv Sardi
4b3aee5698 gst_pad_check_reconfigure: only remove flag if set.
the code ifed a debug statement, that can't be right. anyway, the way it is,
we don't really need that branch, as we set the flag to unset only if set
(and that can't fail) hence the end result is always to unset the flag.

Signed-off-by: Niv Sardi <xaiki@evilgiggle.com>

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=691985
2013-01-24 15:41:35 +01:00
Tim-Philipp Müller
c0926dc7cc pad: add gst_pad_get_stream_id() utility function
API: gst_pad_get_stream_id()
2013-01-19 12:51:56 +00:00
Tim-Philipp Müller
64eee27ebc Use GST_*_1_0 environment variables everywhere
The _1_0 suffixed environment variables override the
non-suffixed ones, so if we're in an environment that
sets the _1_0 suffixed ones, such as jhbuild, we need
to set those to make sure ours actually always get
used.
2013-01-15 13:47:32 +00:00
Tim-Philipp Müller
b836ddf8c6 pipeline: add allow-none annotation for gst_pipeline_new()'s name property 2013-01-15 09:42:20 +00:00
Stefan Sauer
5898042610 controlbinding: hide one unused typedef
This is not used internally.
2013-01-10 11:34:14 +01:00
Stefan Sauer
06cf9deafe docs: improve api docs for controlsource and -binding 2013-01-10 11:33:42 +01:00
Tim-Philipp Müller
1506784215 docs: minor systemsclock doc fix 2013-01-04 12:27:38 +00:00
Tim-Philipp Müller
22036ef1c4 caps, structure, taglist: micro-optimisations
Avoid some unnecessary GValue copying by making use of
gst_structure_id_take_value() where possible.
2012-12-22 16:55:26 +00:00
Tim-Philipp Müller
172011d1f5 gstvalue: some micro-optimisations
Avoid unnecessary value copying, and unnecessary init/unset
cycles which all go through the value table. There's a bunch
of places where we copy a value and then unset it in the next
line, instead of just taking over the source value.
2012-12-22 16:38:58 +00:00
Wim Taymans
b163c09104 bin: add flag to disable resync state change
Add a GST_BIN_FLAG_NO_RESYNC that disables a resync when an element is added,
removed or linked in the bin. This is interesting for complex bins that
dynamically add elements to themselves and want to manage the state of those
elements without interference from resyncs.

See https://bugzilla.gnome.org/show_bug.cgi?id=690420
2012-12-21 16:36:37 +01:00
Wim Taymans
49344ecad4 systemclock: add OTHER clock type
Add an OTHER clock type so that subclasses are able to mark themselves as
using some other clock source than the realtime or monotonic clock.
2012-12-20 16:40:04 +01:00
Wim Taymans
5f2fbb6370 add debug category
Adding a debug category is nicer than logging to the default category
2012-12-14 11:09:30 +01:00
Wim Taymans
63cc762626 element: improve debug 2012-12-14 11:08:57 +01:00
Wim Taymans
21830d66c6 plugin: protect against NULL filename in debug
See https://bugzilla.gnome.org/show_bug.cgi?id=689948
2012-12-10 12:00:40 +01:00
Wim Taymans
064145c097 bufferpool: clarify docs 2012-12-06 09:48:08 +01:00
Wim Taymans
12f835ca43 caps: fix docs 2012-12-05 14:56:48 +01:00
Wim Taymans
c33be7ec77 message: add reset-time type string 2012-11-30 10:41:51 +01:00
Wim Taymans
b7e7c9108a bin: remove some casts 2012-11-30 10:41:36 +01:00
Tim-Philipp Müller
8c08af2345 gst: don't require gthread-2.0
We don't need to link to gthread-2.0 any longer, since all
the normal thread-related stuff is in GLib proper, and we
don't use g_thread_init() any more.

https://bugzilla.gnome.org/show_bug.cgi?id=689043
2012-11-26 00:26:34 +00:00
Tim-Philipp Müller
0378c40ed3 docs: remove all mention of g_thread_init()
It's been deprecated since GLib 2.32 and isn't needed any
longer.
2012-11-25 23:26:47 +00:00
Alessandro Decina
b6c13c7557 event: fix annotation for gst_event_parse_stream_start 2012-11-23 21:10:55 +01:00
Tim-Philipp Müller
374cc3ff06 pad: document more pad probe values 2012-11-23 13:36:09 +00:00
Tim-Philipp Müller
32f96b922b pad: don't use parenthesis for ORed pad probe flag enums
glib-mkenum doesn't like them for some reason.

https://bugzilla.gnome.org/show_bug.cgi?id=688804
2012-11-23 12:47:25 +00:00
Olivier Crête
fba984c350 pad: Put all of the probe types in the enum so they work with bindings
https://bugzilla.gnome.org/show_bug.cgi?id=688804
2012-11-23 13:30:15 +01:00
Sebastian Dröge
cf6cfdc058 value: Make G-I happy by hiding gst_g_thread_get_type() 2012-11-20 15:39:35 +01:00
Sebastian Dröge
da0f9977f0 value: Use the GLib GType for GThread if compiling against GLib 2.35.3 or newer 2012-11-20 15:06:14 +01:00
Sebastian Dröge
9326124581 gst: Don't set the locale in gst_init()
The function init_pre() in gstreamer/gst/gst.c calls setlocale(LC_ALL, ""),
which sets the locale to the values specified in the environment.  This is
wrong for two reasons:

1. It is absolutely not the task of a library to decide on the correct locale
for a program.  Some programs change the locale for various (good or bad)
reasons, and libraries should respect that.  Programs where GStreamer's
overwriting of the locale causes bugs include Emacs [1, 2], Sublime Text [3],
and Lua [4].

[1] http://debbugs.gnu.org/cgi/bugreport.cgi?bug=12392
[2] http://bugzilla.novell.com/show_bug.cgi?id=779426
[3] http://www.sublimetext.com/forum/viewtopic.php?f=3&t=8543
[4] https://github.com/pavouk/lgi/issues/19

Note that setting the locale can cause problems for programs that are not even
linked against GStreamer.  In the case of Emacs, for example, GStreamer seems
to be initialized through GTK via libcanberra.

2. Setting the locale is not thread-safe, and therefore should not be done in a
library.

https://bugzilla.gnome.org/show_bug.cgi?id=685650
2012-11-20 12:56:12 +01:00
Tim-Philipp Müller
af3a273c08 gstcompat.h: move more deprecated API into the deprecated section
https://bugzilla.gnome.org/show_bug.cgi?id=675598
2012-11-17 00:21:37 +00:00
Philippe Normand
de58036de5 task: documentation update
GStaticRecMutex usage has been replaced by GRecMutex, reflect this
change in the documentation.
2012-11-14 12:25:30 +01:00
Tim-Philipp Müller
abc805ca95 tests: gst_adapter_prev_timestamp -> gst_adapter_prev_pts
https://bugzilla.gnome.org/show_bug.cgi?id=675598
2012-11-13 23:11:34 +00:00
Tim-Philipp Müller
cf59bacf6d structure: re-indent header file
Tabs to spaces.
2012-11-13 20:45:48 +00:00
Sebastian Dröge
08e0fcd7b2 value: API: Add boxed type for GThread 2012-11-12 11:40:59 +01:00
Sebastian Rasmussen
7691a82f3a info: fix compiler warning when debugging disabled
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688130
2012-11-12 09:29:58 +01:00
Matthew Waters
718b6b2471 bufferpool: lock before unlock in _get_config
Fixes deadlock on Windows

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=687896
2012-11-08 09:08:09 +01:00
Tim-Philipp Müller
666c8c11c6 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 20:44:48 +00:00
Tim-Philipp Müller
37e405763c pad: downgrade 'creating random stream-id' debug log message
No need for it to be a warning.
2012-10-29 11:30:30 +00:00
Tim-Philipp Müller
bab8ed6b8a pluginfeature: add gst_plugin_feature_get_plugin_name()
API: gst_plugin_feature_get_plugin_name()

https://bugzilla.gnome.org/show_bug.cgi?id=571832
2012-10-28 15:53:19 +00:00
Tim-Philipp Müller
3d5f6202af info: allow setting of GST_DEBUG levels by name
e.g. GST_DEBUG=*:INFO,*src:LOG
2012-10-27 14:40:14 +01:00
Thibault Saunier
58560931db gst: make us of the new gst_debug_set_threshold_from_string function
https://bugzilla.gnome.org/show_bug.cgi?id=679152
2012-10-27 13:43:00 +01:00
Thibault Saunier
e513ed1810 info: add a function to set debug threshold from a GST_DEBUG-style string
Use the same format as with the GST_DEBUG environment variable.

API: gst_debug_set_threshold_from_string()

https://bugzilla.gnome.org/show_bug.cgi?id=679152
2012-10-27 13:42:51 +01:00
Sebastian Dröge
e683cf0596 event: Allow GST_CLOCK_TIME_NONE as duration for GAP events 2012-10-24 11:46:39 +02:00
Miguel Angel Cabrera Moya
3ae671fb9b allocator: fix memory leak in _fallback_mem_copy
https://bugzilla.gnome.org/show_bug.cgi?id=686658
2012-10-22 19:59:29 +01:00
Miguel Angel Cabrera Moya
ef552507fa preset: remove variable not read
https://bugzilla.gnome.org/show_bug.cgi?id=686659
2012-10-22 19:55:43 +01:00
Sebastian Dröge
32d7d5923b info: Don't use GST_DEBUG() in gst_debug_add_log_function() and related functions unconditionally
If GStreamer was not initialized yet this will cause g_warnings().
2012-10-22 10:26:49 +02:00
Tim-Philipp Müller
bf2452d776 g_type_init() is no longer required and deprecated in glib >= 2.35.0
https://bugzilla.gnome.org/show_bug.cgi?id=686456
2012-10-20 12:56:30 +01:00
Michael Smith
017b34079e GstSample: fix typo in G-I annotations, allows creating GstSamples from bindings. 2012-10-19 13:37:08 -07:00
Sebastian Dröge
3690f9a830 poll: Fix compiler warning about constness
passing argument 1 of 'g_mutex_lock' discards 'const' qualifier from pointer target type
passing argument 1 of 'g_mutex_unlock' discards 'const' qualifier from pointer target type
2012-10-18 15:31:49 +02:00
Tim-Philipp Müller
28604c197b bin, pipeline: use gst_element_class_set_static_metadata()
So the strings aren't copied.
2012-10-17 16:49:19 +01:00
Sebastian Dröge
1c4fe1bf1a element: API: Add GstElement::post_message() vfunc
Conflicts:
	gst/gstelement.h
2012-10-16 12:35:56 +02:00
Wim Taymans
67a575ba08 query: buffering time left is in milliseconds 2012-10-11 17:09:29 +02:00
Sebastian Dröge
3f9516cef8 pad: Downgrade GST_WARNING to GST_INFO
It's usually not a problem if a query fails if there's no peer,
especially as it will happen during pad linking (caps query)
quite often and spams the logs.
2012-10-10 11:34:27 +02:00
Wim Taymans
1d6ae92be7 pad: small docs fixes and remove a 0.11 fixme 2012-10-09 10:24:34 +02:00
Wim Taymans
d630a115f9 pad: resend dropped events
If we try to push sticky events but a probe dropped them, we don't mark
the event as received and mark the pad as PENDING_EVENTS. This ensures
that we resend the event the next time. For this we need to let the
custom flow return from the probe trickle up to
gst_pad_push_event_unchecked() so that we can differentiate between
OK and DROPPED probe returns.
2012-10-05 09:51:58 +02:00
Wim Taymans
0ae3492f6b pad: don't store sticky events on flushing/EOS pads
Don't store sticky events on flushing or EOS pads. This was done
correctly for source pads but not for sink pads.
2012-10-05 09:51:29 +02:00
Wim Taymans
ebacdfbaa6 meta: don't put essential logic in g_return_val_* 2012-10-03 13:49:34 +02:00
Wim Taymans
10c8586902 meta: handle multiple implementation registration
First check that we can actually register the implementation before
making a GstMetaInfo. If we can't register we would otherwise end
up with an undefined type and an invalid GstMetaInfo.

It's possible that type registration fails because another metadata
with the same implementation name was already registered.
2012-10-03 13:35:20 +02:00
Wim Taymans
5d64c5ce5a docs: some 0.10 -> 1.0 changes 2012-10-02 13:22:35 +02:00
Tim-Philipp Müller
507fc9cea7 value: avoid duplicates when intersecting lists
Fixes negotiation taking a ridiculous amount of
time (multiple 10s of seconds on a core2) when
there are duplicate entries in lists.

Could have a negative performance impact on other
scenarios because we now have to iterate the
dest list to avoid duplicates, but we don't
have a lot of lists any more these days, and
they tend to be small anyway. The negatives
are hopefully countered by the positive effects
of reducing the list length early on in the
process. And in any case, it's the right thing
to do.

Based on patch by Andre Moreira Magalhaes.

https://bugzilla.gnome.org/show_bug.cgi?id=684981
2012-09-29 14:35:58 +01:00
Olivier Crête
fd846a7c64 miniobject: Always reject WRITE locks on READONLY miniobjects
Verify that mapping a read-only memory as read doesnt make it writable
2012-09-28 17:12:14 -04:00
Wim Taymans
ef012f8e58 pad: fix activate docs 2012-09-28 10:41:54 +02:00
Olivier Blin
4710b36bda info: do not register printf extension for %p
This happened when glib was not using system printf, and caused the
internal gstreamer printf extensions to be used for all %p printfs,
causing crashes.

https://bugzilla.gnome.org/show_bug.cgi?id=684970
2012-09-27 23:58:32 +01:00
Wim Taymans
2cf4689503 ghostpad: also ref the internal pad for activate functions
Also take a ref to the internal pad in the activate functions
2012-09-27 11:06:06 +02:00
Olivier Crête
e60ee132ce proxypad: Hold a reference to the internal pad while pushing through it
https://bugzilla.gnome.org/show_bug.cgi?id=684809
2012-09-27 10:53:45 +02:00
Mark Nauwelaerts
5e928fa56e uri: use proper 'transfer floating' annotation
https://bugzilla.gnome.org/show_bug.cgi?id=664099
2012-09-26 14:15:01 +02:00
Mark Nauwelaerts
cc41130664 segment: mark GstSegmentFlags as flags rather than enum
... which really makes a difference when trying to serialize
a flags value which is a combination of flags, which is hard
to do as an enum type.
2012-09-26 10:55:48 +02:00
Sebastian Dröge
24cad1a91c elementfactory: Fail if no valid element factory metadata is set 2012-09-25 15:10:32 +02:00
Sebastian Dröge
cfc7661f65 plugin: Fail if no valid plugin metadata is set 2012-09-25 15:10:32 +02:00
Tim-Philipp Müller
e7a77927ff taglist: fix typo in translated string
Spotted by Chris Leonard.

https://bugzilla.gnome.org/show_bug.cgi?id=684755
2012-09-25 13:14:53 +01:00
Sebastian Dröge
4638a49db8 pluginfeature: Remove 0.11.9X->1.0.0 version mangling 2012-09-25 09:27:59 +02:00
Mark Nauwelaerts
a722212dc9 object: update controller documentation 2012-09-21 21:13:13 +02:00
Olivier Crête
945e0d2be9 pad: Remove pad probes only once
Also add test to make sure that if a pad probe is removed while it's
callback is running, the cleanup_hook isn't called again if it
returns GST_PAD_PROBE_REMOVE
2012-09-20 15:24:33 -04:00
Olivier Crête
25b3e02b94 pad: Add functions to safely access GstProbeInfo data pointer
This is so that introspection based bindings can access it.

https://bugzilla.gnome.org/show_bug.cgi?id=684402
2012-09-20 15:24:33 -04:00
Sebastian Dröge
8f51345296 pad: Fix refcount bug by unreffing the correct variable 2012-09-18 12:46:37 +02:00
Tim-Philipp Müller
ca90ea6e55 Remove GST_USE_UNSTABLE_API guard and defines 2012-09-17 13:35:26 +01:00
Sebastian Dröge
de635d089f pad: Add parent parameter to the link and unlink functions
Fixes part of bug #683995.
2012-09-17 13:24:36 +02:00
Tim-Philipp Müller
c2175db889 sample: add serialisation/deserialisation functions for GstSample
Since these things are inside taglists now, it would be good to be
able to print them and deserialise them.

https://bugzilla.gnome.org/show_bug.cgi?id=681322
2012-09-16 23:20:46 +01:00
Olivier Crête
bc5cc2eb07 pad: don't try to pretty-print event after we've given away ownership
Might cause crashes with debug logging enabled.

https://bugzilla.gnome.org/show_bug.cgi?id=683996
2012-09-14 01:28:46 +01:00
Tim-Philipp Müller
19d4ec4aca gstcompat: fix backwards compat macro for gst_message_new_duration
Name it properly, so it, like, works. Clearly no one actually
used that..
2012-09-14 00:30:37 +01:00
Tim-Philipp Müller
c2a25bcd0f taglist: add warning when we get something else than a sample for a sample tag
Facilitate GstBuffer -> GstSample transition for some tags,
could be hard to catch otherwise when creating tags, since
it'll only be apparent later when someone tries to read the
tags.
2012-09-13 00:38:21 +01:00
Andreas Frisch
0bc87ee5d9 elementfactory: don't crash if no element klass has been set
https://bugzilla.gnome.org/show_bug.cgi?id=683865
2012-09-12 22:53:41 +01:00
Tim-Philipp Müller
bc758c9330 error: don't tell people to file a bug for negotiation errors 2012-09-12 21:23:22 +01:00
Tim-Philipp Müller
221d46f438 pad: expose gst_pad_mode_get_name() and use it in baseparse 2012-09-11 19:51:02 +01:00
Mark Nauwelaerts
4af5e05309 query: adjust test logic for scheduling mode with flagS 2012-09-11 17:27:03 +02:00
Mark Nauwelaerts
d1567a82ac query: add convenience API to query for scheduling mode and flags 2012-09-11 17:00:09 +02:00