Commit graph

7100 commits

Author SHA1 Message Date
Oleksij Rempel
000ebef2f4 datetime: allow GstDateTime where not all fields are set
In order to deserialise and re-serialise dates and date times
from tags properly, we need to be able to express partial
dates (e.g. YYYY or YYYY-MM) and date times.

We only support partial date times where all the more
significant fields above the first unset field are set
(e.g. YYYY-00-DD is not supported).

Calling _get_foo() when foo is not set is not allowed
any more, callers need to check which fields are set
first.

https://bugzilla.gnome.org/show_bug.cgi?id=677757
2012-06-12 22:53:01 +01:00
Tim-Philipp Müller
d916018021 message: fix up minor inconsistency in structure name of state-changed message 2012-06-12 22:45:44 +01:00
Evan Nemerson
d13ce8b7e8 introspection: add some missing annotations 2012-06-12 20:48:50 +02:00
Stefan Sauer
92d5fb8660 childproxy: add a few more comments 2012-06-12 11:06:46 +02:00
Stefan Sauer
6f6254d2b0 childproxy: fix signal handler signatures in class
When adding the name parameter, we forgot to add it here too.
2012-06-11 20:34:00 +02:00
Stefan Sauer
19e5fc54b7 childproxy: use GstChildProxy instead of GObject on the public api
Fix usage and also cleanup gst_object api use on gobjects.
2012-06-11 18:25:18 +02:00
Wim Taymans
26682f7c7a element: remove unused UNPARENTING flag 2012-06-11 15:49:10 +02:00
Wim Taymans
85d5a29b40 bin: reorganize _remove_func to avoid races
Make the gst_bin_remove_func more like the add_func. Check if the element we try
to remove from the bin has the bin as the parent and set the parent flag to NULL
immediately, this allows us to avoid concurrent remove operations without using
the UNPARENTING element flag. After we unparented the element from the bin, we
update the bin state and remove the element from the list. Finally we unlink
all the pads.

This avoids a race condition where the element could still claim to have the
bin as the parent while the bin didn't have a pointer to the element anymore.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=647759
2012-06-11 15:41:58 +02:00
Matej Knopp
a362b844f8 gstelement: Start over if subclass removed the next pad too
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=677818
2012-06-11 10:43:34 +02:00
Tim-Philipp Müller
bfe1cf9926 datetime: remove fallback code for old GLibs 2012-06-09 18:05:14 +01:00
Edward Hervey
915ca4685c gstutils: Faster read macros
On platforms that can do unaligned read/write, we can read/write much faster
by just casting.

https://bugzilla.gnome.org/show_bug.cgi?id=599546
2012-06-08 14:58:00 +02:00
Edward Hervey
cdf1cc0cf5 registry: We name the registry after the target cpu
And not the host cpu

Conflicts:

	gst/gstregistry.c
2012-06-07 10:57:31 +02:00
Wim Taymans
6758e5f00d element: fix pad cleanup in dispose
In the dispose handler we first need to release all the request pads and then
remove the remaining pads. This is because it is possible that releasing the
request pad might also cleanly remove some of the other dynamic pads, like
what rtpsession does.

https://bugzilla.gnome.org/show_bug.cgi?id=677436
2012-06-06 15:33:57 +02:00
Sebastian Dröge
738cf12d96 event: Don't make the TOC event a multi-sticky event
Elements are supposed to merge upstream events.
2012-06-06 14:16:01 +02:00
Havard Graff
75853fa79b Make sure that unlinked pads do not cause a return false on latency events.
Context: Latency configuration should not be
messed up because of not-linked pads. In general,
one return FALSE on latency distribution causes
the "overall" pipeline latency configuration to
fail. This shows up as noise in logs (warning).

Conflicts:

	gst/gstpad.c
2012-06-06 13:42:32 +02:00
Wim Taymans
c10d39a804 event: add name to sticky_multi events
The name of the event is used to store multiple sticky events of a certain type
on a pad.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=676859
2012-06-06 12:52:09 +02:00
Wim Taymans
15d85b9edb query: improve docs 2012-06-06 09:15:04 +02:00
Wim Taymans
d907544ab1 pad: only serialized events can't pass after EOS
Only serialized events can't be sent on pads that are EOS. Otherwise a seek
event would be refused as well.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=677520
2012-06-06 09:14:58 +02:00
Tim-Philipp Müller
1f8e6b4fa5 gst_tag_list_free -> gst_tag_list_unref 2012-06-05 15:05:07 +01:00
Wim Taymans
64b5eeefa3 utils: improve debug 2012-06-05 09:39:41 +02:00
Wim Taymans
b0756827f6 pad: don't pause task on EOS
Elements should not rely on core to pause tasks on EOS.
2012-06-05 09:10:05 +02:00
Wim Taymans
bae0c4b0c6 pad: fix event type check 2012-06-05 09:00:01 +02:00
Wim Taymans
66c88c1bb1 pad: fix 'res' may be used uninitialized in this function 2012-06-04 16:19:26 +02:00
Sebastian Dröge
8cc12b05fc pad: Don't accept any buffers or events after EOS 2012-06-04 13:01:40 +02:00
Sebastian Dröge
5a8c901507 pad: Always return errors for EOS events immediately
For non-EOS events things will error out later during data
flow but after EOS events no data flow is happening.

See bug #677340.
2012-06-04 11:25:47 +02:00
Sebastian Dröge
991ac561e1 pad: Only forward caps events to a pad if it accepts the caps
Fixes bug #677335.
2012-06-04 09:27:35 +02:00
Sebastian Dröge
8e6b5c7acf Revert "pad: Return FALSE if pushing of sticky events failed"
This reverts commit 0f924b922c.

Sticky events should always return TRUE when pushing and will
only cause failures during data flow later.
2012-06-02 20:06:39 +02:00
Tim-Philipp Müller
9b308b2b5b pad: fix variable-set-but-not-used compiler warning 2012-06-02 16:18:46 +01:00
Sebastian Dröge
0ca7b85ead pad: If pushing a sticky event failed, make sure to at least push any pending EOS events
Otherwise a pipeline where one sticky event fails to be sent will
never forward EOS events downstream. This can cause pipelines to
wait forever for EOS on errors.
2012-06-02 17:00:48 +02:00
Sebastian Dröge
0f924b922c pad: Return FALSE if pushing of sticky events failed
Instead of just ignoring failure of pushing sticky events and
returning TRUE as if everything is fine.
2012-06-02 16:02:07 +02:00
Tim-Philipp Müller
d1379f1671 taglist: add guards to make sure taglist is writable when modifying it
Now that taglists are refcounted we need to check if they're
writable before modifying them.
2012-05-29 08:48:36 +01:00
Tim-Philipp Müller
d007ac4a1a taglist: avoid unnecessary string copying when registering tags
Add gst_tag_register_static() - no need to copy all those
string constants, whether translated or not.

API: gst_tag_register_static()
2012-05-29 08:00:28 +01:00
Tim-Philipp Müller
cd3875857e gst_tag_list_free() -> gst_tag_list_unref() 2012-05-28 00:08:18 +01:00
Tim-Philipp Müller
a88dcc2ab6 taglist: make GstTagList a GstMiniObject
Which adds refcounting support, and other things.
2012-05-28 00:05:16 +01:00
Tim-Philipp Müller
b5ab3fb1dc caps: log freeing of caps at same log level as creation, i.e. TRACE 2012-05-27 20:31:30 +01:00
Tim-Philipp Müller
61dcbaab63 message, event: update for tag lists not being structures any more 2012-05-26 11:44:03 +01:00
Tim-Philipp Müller
97c2498bbe taglist: make proper struct not just a GstStructure 2012-05-26 11:44:03 +01:00
Josep Torra
d06c7dc6fd debugutils: Fix static linking on OS X
The linking behaviour of external variables that are not initialized
in the compilation unit where they are defined is undefined. On OS X
this causes a linking failure when statically linking GStreamer.
2012-05-25 10:49:47 +02:00
Edward Hervey
07a888f174 uri: Add some debug statements 2012-05-23 09:39:16 +02:00
Stefan Sauer
37f7fc165d docs: improve the seeking docs more.
Also mention it on _element_seek{,_simple} and be more precise why it happens.
2012-05-21 15:17:08 +02:00
Stefan Sauer
dca0c19d3e docs: fix a typo and clarify event handling a bit more
Tell about async_done messages for some events and review the _event_new_seek
docs.
2012-05-21 14:34:33 +02:00
Wim Taymans
146ab8a702 bin: try harder to avoid state changes in wrong direction
When the bin does an upward state change, try to avoid doing a downward state
change on the child and vice versa.
Add some more unit tests for this fix.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=621833
2012-05-21 11:58:28 +02:00
Anton Belka
6f54f36199 toc: Add boxed types for GstToc and GstTocEntry 2012-05-21 08:46:48 +02:00
Tim-Philipp Müller
04f8cd886d toc: fix type of pad parameter to gst_toc_entry_new_with_pad() 2012-05-20 18:24:38 +01:00
Tim-Philipp Müller
81e50c21cc toc: use correct GType for tag lists 2012-05-20 18:16:45 +01:00
Tim-Philipp Müller
987286ce2d toc: avoid unnecessary GValue acrobatics 2012-05-20 18:06:22 +01:00
Tim-Philipp Müller
68da2aeeed toc: use global quark table 2012-05-20 17:48:55 +01:00
Tim-Philipp Müller
1dd0708d22 toc: fix internal TOC query and event structure names
Make them consistent with all the other query and event names.
2012-05-20 17:11:37 +01:00
Tim-Philipp Müller
5b4417ff9e pluginfeature: make GstPluginFeature structure private
Make GstPluginFeature opaque until we have time to
clean it up a little. Only GstElementFactory and
GstTypefindFactory derive from it, and they are
opaque already, and we currently don't support
custom plugin features in the registry anyway.
2012-05-19 17:25:24 +01:00
Tim-Philipp Müller
ab6171373c pluginfeature: add gst_plugin_feature_get_plugin()
Add function to retrieve plugin that provides this feature.

API: gst_plugin_feature_get_plugin()
2012-05-19 17:16:35 +01:00
Tim-Philipp Müller
a9d19a6913 elementfactory: make object struct opaque for now
Make GstElementFactory opaque until we have time to
clean it up a little. It's not something anyone
would need to derive from.
2012-05-19 16:17:12 +01:00
Tim-Philipp Müller
1ee520790a elementfactory: add gst_element_factory_get_metadata_keys()
API: gst_element_factory_get_metadata_keys()
2012-05-19 14:52:29 +01:00
Anton Belka
0bdd1224d3 docs: fix gst_structure_to_string() docs 2012-05-17 12:01:51 +02:00
Sebastian Dröge
cacdea6ae6 gst: Rename gst_toc_entry_type_to_string() to gst_toc_entry_type_get_nick()
It's more consistent.
2012-05-15 16:38:30 +02:00
Anton Belka
71d1af2b66 toc: API: Add gst_toc_entry_type_to_string() 2012-05-15 16:13:55 +02:00
Sebastian Rasmussen
1c82367a0e gst: Only include init/deinit of alloc tracing when enabled
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=675806
2012-05-11 13:39:38 +02:00
Raimo Järvi
63234a9dab gst: Fix compiler warnings on mingw-w64
https://bugzilla.gnome.org/show_bug.cgi?id=675525
2012-05-09 09:35:35 +02:00
Sreerenj Balachandran
86e0f4d145 memory: add missing parameter to default_mem_map()
Fixes function signature for correctness.

https://bugzilla.gnome.org/show_bug.cgi?id=675289
2012-05-04 09:22:51 +01:00
Tim-Philipp Müller
5bcbdd83d1 typefindfactory: make object struct opaque for now
Make opaque until we have time to clean it up a little.
2012-05-01 23:23:41 +01:00
Tim-Philipp Müller
509905035d typefindfactory: fix return type of gst_type_find_factory_get_extensions() 2012-05-01 23:23:41 +01:00
Tim-Philipp Müller
ecf74cf2db typefindfactory: add gst_type_find_factory_has_function()
Add API so people don't have to poke the struct for this.
2012-05-01 23:23:41 +01:00
Thiago Santos
80fa8aa77b gstcaps: Update docs for gst_caps_is_equal
NULL caps aren't valid caps in 1.0 and aren't accepted in
gst_caps_is_equal
2012-05-01 15:57:39 -03:00
Tim-Philipp Müller
d35487e50c uri: require URI protocol bit to be at least 3 characters to be valid
We want to return FALSE when run on a windows-style file path.

https://bugzilla.gnome.org/show_bug.cgi?id=674296
2012-05-01 19:50:36 +01:00
Matej Knopp
5c50c6612a ghostpad: set result on accept caps query when there is no peer 2012-05-01 13:32:41 +02:00
Vincent Penquerc'h
477636479c event: add new seek snap flags
They can be used to select snapping behavior (to previous, next, or
nearest location, where relevant) when seeking.

The seeking implementation (eg, demuxer) may currently ignore some
or all of these flags.
2012-04-30 09:58:09 +01:00
Tim-Philipp Müller
e75f68ea57 docs: remove reference to removed API in plugin docs 2012-04-29 20:06:58 +01:00
Tim-Philipp Müller
f5918f7605 plugin: avoid some relocations 2012-04-29 20:06:38 +01:00
Tim-Philipp Müller
4889fd6b6f plugin: remove gst_plugin_name_filter
It's only used internally, most other users will likely
want to use gst_registry_find_plugin() directly instead
(and if not, they can easily walk the list and doing the
strcmp themselves).
2012-04-29 18:35:11 +01:00
Tim-Philipp Müller
c7eca5ca15 plugin: use GstObject flags for plugin flags 2012-04-29 17:46:32 +01:00
Tim-Philipp Müller
19d4c0ba73 plugin: make GstPlugin object structure opaque for now
There's no reason anyone would want to derive from this, so
just make opaque until we manage to make all the private bits
private properly (which I'm not doing right now because it's
more invasive and I have registry modifications locally which
touch all that code as well).
2012-04-29 17:03:32 +01:00
Tim-Philipp Müller
3954fdcb0d plugin: remove gst_plugin_get_module()
This is an implementation detail really, and it's not
clear what anyone would do with this. It's unused as
far as I'm aware, so just remove it for now.
2012-04-29 16:46:55 +01:00
Tim-Philipp Müller
fb158cb994 plugin: add accessor for release date time string in plugin description
API: gst_plugin_get_release_date_string()
2012-04-29 16:20:50 +01:00
Tim-Philipp Müller
467fabf6c1 gstobject: give the 20th queue element a different name than the first queue2 one
Fixes issue with the default naming scheme.
2012-04-29 13:28:09 +01:00
Руслан Ижбулатов
9542b2d073 Fix format string in grammar.y
Fixes #674849
2012-04-26 19:54:49 +02:00
Stefan Sauer
c4072744b7 controller: emulate _get_g_value_array()
Add a default implementation on the baseclass.
2012-04-25 20:19:24 +02:00
Stefan Sauer
772c58e255 controller: expand the api to offer functions for plain and GValue arrays
Rename the _get_value_array() functions to _get_g_value_array() and reintroduce
the former to operate on plain unboxed c datatypes (like in 0.10). The _g_value
variants are for bindings while the _value ones are more suited to processing
in elements.
2012-04-25 20:19:23 +02:00
Wim Taymans
b67be761e0 bufferpool: Reset the buffer before releasing into pool
Reset the buffer not after we acquire but before we release into the pool. This
makes sure that the pool only has buffers in a clean state and that we can set
extra metadata on buffers in the acquire method. this means that we need to
remove an argument from the method.
2012-04-25 09:09:01 +02:00
Wim Taymans
db59375785 buffer: MARKER is for the start of a talkspurt 2012-04-25 09:08:05 +02:00
Sebastian Dröge
f81e73a6cd message: Remove comma at end of enum list
This comma confuses some compilers.
2012-04-23 09:21:28 +02:00
Руслан Ижбулатов
0f64d406e9 registry: fix hardcoded 0.10 version in win32 pluginscanner
https://bugzilla.gnome.org/show_bug.cgi?id=674294
2012-04-18 08:14:08 +01:00
Wim Taymans
6fae137027 meta: add LOCKED flag
Add a new LOCKED flag to the metadata. Refuse removing LOCKED metadata from
a buffer.
Mark the metadata from the bufferpool LOCKED.
Add unit test for LOCKED flag
2012-04-17 15:55:10 +02:00
Wim Taymans
4f8474e113 trace: use g_parse_debug_string instead of atoi
Make the GST_TRACE env variable take a comma separated list of strings
describing the options to enable instead of a number.
2012-04-17 10:33:59 +02:00
Wim Taymans
d342871907 segment: add rude serialization
Ass serialize and deserialize functions for GstSegment so that gdp and
gst_structure_to_string show the segment values. We convert to a GstSegment
first to make things easier..

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=674100
2012-04-16 15:56:11 +02:00
Wim Taymans
ffed76f258 memory: add size to debug log 2012-04-16 10:32:17 +02:00
Wim Taymans
2503dcddfb buffer: improve debug 2012-04-14 10:23:49 +02:00
Stefan Sauer
7485b66d06 controlbinding: only take a weak ref on the object
Fixes the leaks in the tests. Added a TODO comment to eventually rework this
some more (while we can).
2012-04-13 09:37:21 +02:00
Edward Hervey
bce79fcdc0 gst: Use gst_object_{ref|unref} where applicable
Allows us to debug object life
2012-04-12 14:58:47 +02:00
Wim Taymans
82c92a9c7c buffer: improve arg checking
Allow idx == 0 and length == -1 on empty buffers for the _range methods.
2012-04-12 11:53:00 +02:00
Alexander Saprykin
feb19b6f60 toc: fix memory leaks while copying content 2012-04-11 09:58:05 +02:00
Sreerenj Balachandran
fd2ebb5365 buffer: Clean up header files 2012-04-11 09:53:45 +02:00
Wim Taymans
393c758a1c Merge remote-tracking branch 'origin/0.10'
Conflicts:
	gst/gst.c
	plugins/elements/gstqueue2.c
2012-04-10 12:55:31 +02:00
Wim Taymans
fd9c328260 gst: add toc entry ref/unref 2012-04-10 12:49:04 +02:00
Sebastian Dröge
91e13d4970 Merge remote-tracking branch 'origin/0.10' 2012-04-09 16:04:22 +02:00
Sebastian Dröge
1484a211f1 element: Fail if a pad for a non-request template is requested 2012-04-09 16:01:02 +02:00
Tim-Philipp Müller
4f1df6d094 element: use quarks when storing standard metadata in structures 2012-04-09 13:40:35 +01:00
Tim-Philipp Müller
bca1ae8fb0 element: add gst_element_class_{set,add}_static_metadata()
Add gst_element_class_{add,set}_metadata() variants for static strings,
so we can avoid unnecessary g_strdup()s.

API: gst_element_class_add_static_metadata()
API: gst_element_class_set_static_metadata()
2012-04-09 12:49:38 +01:00
Tim-Philipp Müller
0cfc3cf8a2 task: remove gst_task_set_priority()
It doesn't actually do anything.
2012-04-08 21:17:46 +01:00
Tim-Philipp Müller
94696f4bd9 gst: don't export private TOC functions 2012-04-07 16:04:14 +01:00
Wim Taymans
f251e3073b atomicqueue: fix race
After a writer has written to its reserved write location, it can only make the
location available for reading if all of the writers with lower locations have
finished.
2012-04-07 15:30:12 +01:00
Wim Taymans
930c019721 atomicqueue: fix subtle race
Fix a race where the reader would see the updated the tail pointer before the
write could write the data into the queue. Fix this by having a separate reader
tail pointer that is only incremented after the writer wrote the data.
2012-04-07 15:24:53 +01:00
Stefan Sauer
7709f5514e controlbinding: chain up on dispose and finalize 2012-04-05 21:56:05 +02:00
Stefan Sauer
3e92876b84 gstobject: unparent the controlbinding on dispose 2012-04-05 21:55:07 +02:00
Sebastian Dröge
aca083c56d gst: Change name parameter of GST_PLUGIN_DEFINE() to not take a string anymore
This will be needed when we later add support for static linking
of plugins without introducing new API or changing existing API.
2012-04-05 14:17:16 +02:00
Sebastian Dröge
079b2cb0c7 gstplugin: Add hack for handling 0.11.9X and 0.11.89.X with X>0 the same as 1.0.0
Also update the version number to 0.11.89.1
2012-04-05 13:25:09 +02:00
Mark Nauwelaerts
515a1ad0f7 tocsetter: clear mutex upon free 2012-04-05 12:22:23 +02:00
Sebastian Dröge
f6848ad337 registry: Set registry version to 1.0.0 too 2012-04-05 10:57:29 +02:00
Alessandro Decina
e603d08e87 gstbuffer: fix compile warning 2012-04-05 09:07:18 +02:00
Sebastian Dröge
b0d89da6b6 gst: Change versioning
Remove GST_MAJORMINOR and replace it by GST_API_VERSION
Also set GST_VERSION_{MAJOR,MINOR,MICRO,NANO} explicitely
now.

All versions are at 1.0.0 now for the release soon but
API/ABI can still change until the 1.0.0 release.

Next release versions until 1.0.0 will be 0.10.9X and
these will be release candidates. GST_VERSION_* will
nonetheless stay at 1.0.0.0.
2012-04-04 14:28:55 +02:00
Wim Taymans
b15bcb66b4 buffer: improve _set_size() 2012-04-04 09:33:13 +02:00
Wim Taymans
8428d3e295 buffer: make get_sizes and _resize with ranges
Make the _get_sizes and _resize methods work on a range of memory to make them
more powerfull.
2012-04-04 09:33:13 +02:00
Stefan Sauer
e0ab66cf55 tocsetter: use new glib mutex api 2012-04-03 15:59:18 +02:00
Tim-Philipp Müller
fcaa6e3c48 gst: ref new entry enum types
Fixes 'make check', again.
2012-04-02 23:28:15 +01:00
Tim-Philipp Müller
730c263842 toc: don't export private functions 2012-04-02 23:23:46 +01:00
Stefan Sauer
3b0af8df9e toc: port to 0.11 2012-04-02 22:09:07 +02:00
Alexander Saprykin
3f30c73443 Add new GstTocSetter interface 2012-04-02 21:50:55 +02:00
Alexander Saprykin
6e65daa4d1 Add new TOC query 2012-04-02 21:50:55 +02:00
Alexander Saprykin
03d0f569b3 Add new TOC message 2012-04-02 21:50:55 +02:00
Alexander Saprykin
c3f97992c4 Add new TOC and TOC select events 2012-04-02 21:50:55 +02:00
Alexander Saprykin
1f7096b52a Add generic table of contents (TOC) support 2012-04-02 21:50:55 +02:00
Stefan Sauer
1074a4e99a Merge branch '0.10'
Conflicts:
	docs/gst/gstreamer-sections.txt
	gst/Makefile.am
	gst/gst.c
	gst/gst.h
	gst/gstevent.c
	gst/gstevent.h
	gst/gstmessage.h
	gst/gstquark.c
	gst/gstquark.h
	gst/gstquery.c
	gst/gstquery.h
	tests/check/Makefile.am
2012-04-02 21:33:10 +02:00
Alexander Saprykin
566025b993 Add new GstTocSetter interface 2012-04-02 10:49:38 +02:00
Alexander Saprykin
105330784c Add new TOC query 2012-04-02 10:49:38 +02:00
Alexander Saprykin
af85bd8dbf Add new TOC message 2012-04-02 10:49:38 +02:00
Alexander Saprykin
2cb82d42fb Add new TOC and TOC select events 2012-04-02 10:49:38 +02:00
Alexander Saprykin
63256d271d Add generic table of contents (TOC) support 2012-04-02 10:49:38 +02:00
Wim Taymans
f3aad8b430 buffer: reuse more code 2012-04-01 12:02:40 +02:00
Wim Taymans
0e9241cfc6 buffer: make function to find memory in a buffer
Make a function to find the memory blocks for a region in a buffer.
2012-04-01 12:02:40 +02:00
Stefan Sauer
7f628113e4 childproxy: fix more missing GST_OBJECT -> G_OBJECT use 2012-03-31 21:26:56 +02:00
Wim Taymans
113b9dc535 buffer: add peek_memory method
Add a peerk_memory method that simply fetches the memory at an offset without
refcounting or merging.
2012-03-31 17:10:35 +02:00
Wim Taymans
3db0ce476f grammar.y: fix childproxy code
It takes GObject and not GstObject now
2012-03-31 12:00:56 +02:00
Stefan Sauer
e7b9b68361 childproxy: include the child name in the signal 2012-03-30 22:46:02 +02:00
Stefan Sauer
d93c5c5fd0 parser: update for childproxy api changes 2012-03-30 22:45:04 +02:00
Stefan Sauer
e96c312847 childproxy: fix signal parameter types 2012-03-30 22:36:35 +02:00
Stefan Sauer
f35267bb92 childproxy: use GObject instead of GstObject
This makes it prossible to be used more widely. Fix implementations for the API
change.
2012-03-30 22:24:26 +02:00
Stefan Sauer
ef48cff3d0 childproxy: make get_child_by_name virtual
Allows implementations to use custom name->object mappings.
2012-03-30 22:13:51 +02:00
Stefan Sauer
bd625b8152 childproxy: fix indentation 2012-03-30 22:01:26 +02:00
Wim Taymans
38b96e6c8c buffer: improve the buffer memory methods
gst_buffer_take_memory -> gst_buffer_insert_memory because insert is what the
method does.
Make all methods deal with ranges so that we can replace, merge, remove and map
a certain subset of the memory in a buffer. With the new methods we can make
some code nicer and reuse more code. Being able to deal with a subset of the
buffer memory allows us to optimize more cases later (most notably RTP headers
and payload that could be in different memory objects).
Make some more convenient macros that call the more generic range methods.
2012-03-30 18:15:24 +02:00
Edward Hervey
16bf133566 gstquery: Fix annotation 2012-03-29 17:53:47 +02:00
Mark Nauwelaerts
617a8b3811 query: parsing allocation query need not provide reffed caps
... in line with other query parsing function.
2012-03-29 17:08:57 +02:00
Fabrizio (Misto) Milo
31c450a5d5 caps: spelling fixes 2012-03-29 15:46:15 +02:00
Edward Hervey
2d95de113e gstelement: lower GST_ELEMENT_FLAG_LAST
It wouldn't leave that much room for subclass users
2012-03-29 15:28:44 +02:00
Edward Hervey
31ca9f9216 gstbuffer: Fix unitialized variable
gcc 4.5 complains otherwise :(
2012-03-29 15:18:33 +02:00
Wim Taymans
ce67b0e539 docs: update more documentation 2012-03-29 13:34:50 +02:00
Wim Taymans
9aa9751938 review some docs 2012-03-28 18:12:23 +02:00
Wim Taymans
3e6238135d buffer: simplify and refactor _span and _merge
Unify the _span and _merge code paths and simplify now that we only use this
internally.
2012-03-28 16:48:51 +02:00
Wim Taymans
315e77bf81 buffer: we always call _span with the buffer size 2012-03-28 16:48:51 +02:00
Wim Taymans
127074986c buffer: move some code around 2012-03-28 16:48:51 +02:00
Wim Taymans
8fc290a27f buffer: we call _span always with 0 offset 2012-03-28 16:48:51 +02:00
Wim Taymans
a4c861a4d3 buffer: remove always FALSE function argument 2012-03-28 16:48:50 +02:00
Mark Nauwelaerts
1af261169c buffer: delay buffer unref until buffer no longer needed 2012-03-28 16:39:54 +02:00
Wim Taymans
bb876588ac buffer: unify buffer merge methods
Add gst_buffer_append() which appends the memory blocks from one buffer to
another. Remove the old inefficient _merge() and _join() methods which forced a
premature memcpy in most cases.
Remove the _is_span() and _span() methods they are not needed anymore now that
we can _append(). Merging and spanning will be delayed until mapping or maybe
not at all when the element can deal with the different memory blocks.
2012-03-28 12:51:58 +02:00
Olivier Crête
fd675fa385 gstpad: Fix typo in docstring 2012-03-27 15:25:58 -04:00
Olivier Crête
37db4eefbf gstpad: Fix typo in docstring 2012-03-27 15:24:49 -04:00
Wim Taymans
a137002ef1 buffer: re-enable _span offset calculations
when we _span two complete buffers, we can copy offsets and timestamps.
2012-03-27 15:16:55 +02:00
Wim Taymans
a080b81808 trace: add refcount to trace debug 2012-03-27 15:00:38 +02:00
Wim Taymans
8ff7a0978d buffer: add more _is_writable checks
Add some checks to assert on writability for functions that modify metadata.
2012-03-27 14:59:06 +02:00
Wim Taymans
08f33d8d93 bufferpool: remove const from get/set_param
Remove the const from the GstCaps in get/set_param. set_param modifies
the refcount of the caps.
Don't increment the refcount of the caps result of get_param like we
do with other objects.
Update some annotiations.
2012-03-27 12:48:59 +02:00
Wim Taymans
f09ab3b007 bufferpool: fix annotation for _release
_release takes ownership of the buffer
2012-03-27 12:48:59 +02:00
Sebastian Dröge
9c4c9e3b6b bus: Change the timeout argument type of gst_bus_poll() from GstClockTimeDiff to GstClockTime
This is more consistent with the other GstBus methods that have a timeout.
2012-03-27 12:31:18 +02:00
Wim Taymans
e08956907c caps: remove old code
Remove attempt to delay _make_writable
2012-03-26 19:13:21 +02:00
Mark Nauwelaerts
7a7119ec99 caps: ensure writable caps prior to modification 2012-03-26 18:08:10 +02:00
Wim Taymans
3776eb9e25 bufferpool: check min/max_buffers 2012-03-26 17:38:50 +02:00
Wim Taymans
ce90970be2 query:fix copy-and-paste problem 2012-03-26 17:35:18 +02:00
Mark Nauwelaerts
5077f4c958 utils: add and improve debug messages
... so they end up in a more expected debug category rather than oblivion.
2012-03-23 18:52:11 +01:00
Sebastian Dröge
73e91b2ce3 query: Only allow fixed caps in the accept-caps query 2012-03-21 09:00:45 +01:00
Wim Taymans
f9c85a53dc pad: improve docs of get/pull_range
Improve the docs of the get/pull_range functions, define the lifetime of the
buffer in case of errors and short reads.
Make sure the code does what the docs say.
2012-03-20 13:14:55 +01:00
Wim Taymans
7bcc3baf64 buffer: improve gst_buffer_new_wrapped_full()
Make it possible to wrap all kinds of memory by exposing all properties to
gst_buffer_new_wrapped_full(). This makes it possible to also create writable
memory without a free function or memory with extra padding.
2012-03-20 10:20:29 +01:00
Wim Taymans
db1318ab4a pad: change the semantics of get/pull_range a little
Make it so that one can specify a buffer for get/pull_range where the downstream
element should write into. When passing NULL, upstream should allocate a buffer,
like in 0.10.
We also need to change the probes a little because before the pull probe, there
could already be a buffer passed. This then allows us to use the same PROBE
macro for before and after pulling.
While we're at the probes, make the query probe more powerful by handling the
GST_PAD_PROBE_DROP return value. Returning _DROP from a query probe will now
return TRUE upstream and will not forward the probe to the peer or handler.
Also handle _DROP for get/pull_range properly by not dispatching to the
peer/handler or by generating EOS when the probe returns DROP and no buffer.
Make filesrc handle the non-NULL buffer passed in the get_range function and
skip the allocation in that case, writing directly into the downstream provided
buffer.
Update tests because now we need to make sure to not pass a random value in the
buffer pointer to get/pull_range
2012-03-16 21:37:10 +01:00
Wim Taymans
6b90850257 event: fix docs a little, alloc_buffer is gone 2012-03-16 18:39:08 +01:00
Wim Taymans
a7e6c7d2a8 bufferpool: split bufferpool configuration
Make separate methods to control the bufferpool and the allocator used by the
bufferpool.
Make it possible to change the allocator of a pool.
2012-03-15 22:09:02 +01:00
Wim Taymans
83af60019e query: rework the ALLOCATION query
Separate the bufferpool and allocator hints in the allocation query, some
of the values don't always make sense together.
Keep the bufferpool and its configuration together.
Keep the allocator and its parameters together.
Allow for multiple bufferpool configurations in the query.
2012-03-15 20:23:59 +01:00
Wim Taymans
c8acf02f23 pad: comment and debug improvement 2012-03-15 16:50:31 +01:00
Wim Taymans
f0084ac8e9 utils: improve debug
also fix a potential memory leak
2012-03-15 16:49:33 +01:00
Wim Taymans
9a1cd17136 GstBufferPoolParams -> GstBufferPoolAcquireParams
Because those flags are not from the bufferpool but for the acquire function.
2012-03-15 14:01:44 +01:00
Wim Taymans
85c9543841 memory: group allocation parameters in a struct
Group the extra allocation parameters in a GstAllocationParams structure to make
it easier to deal with them and so that we can extend them later if needed.
Make gst_buffer_new_allocate() take the GstAllocationParams for added
functionality.
Add boxed type for GstAllocationParams.
2012-03-15 13:42:17 +01:00
Wim Taymans
69e3639c96 query: fix copy function
Copy the structure too.
2012-03-15 13:42:17 +01:00
Wim Taymans
592b5bec39 memory: fix maxsize after align
when we align the data pointer, make sure to update the maxsize.
Add some more debug
2012-03-15 13:42:17 +01:00
Wim Taymans
edd2ffe4d4 memory: Add 0 padding
Change gst_allocator_alloc() so that we can also spicify flags and padding.
Add 2 new flags to mark the memory 0 prefixed/padded. This allows us to
remove some resizes in the base classes.
When allocating memory, memset prefix and padding with 0 when the flags tell
us to.
On resize, clear the zero padding flags if we can't guarantee the memory is
still 0 filled.
Update tests.
2012-03-14 21:32:22 +01:00
Wim Taymans
3d76e6011c query: also include padding in ALLOCATION query
Negotiating padding is needed on second thought so include it in the
ALLOCATION query.
Make the bufferpool take padding into account when allocating.
Make basesrc take padding into account.
Use padding and prefix when allocating in basetransform.
2012-03-14 19:47:10 +01:00
Mark Nauwelaerts
f2d81f4c3d bufferpool: free owned discarded pool config 2012-03-14 17:20:01 +01:00
Wim Taymans
e332862985 pad: implement DRAIN handling
When we forward the DRAIN query and there is nothing to forward it to, assume we
are drained.
When a basesink receives a drain query, reply with TRUE.
2012-03-14 16:27:31 +01:00
Wim Taymans
318baf4cd9 query: add new drain query
With the new serialized downstream queries we can implement a drain query that
makes an element waits until a downstream element replies to the query.
2012-03-14 16:18:02 +01:00
Wim Taymans
05cd564bea pad: make serialized queries push sticky events first
Before we can proceed with a serialized query, we need to be sure that all
sticky events were pushed.
2012-03-14 16:01:15 +01:00
Wim Taymans
fb2fc331de pad: take stream lock on serialized queries 2012-03-14 15:29:12 +01:00
Wim Taymans
cd6693fdc9 pad: enforce correct query direction 2012-03-14 15:16:56 +01:00
Wim Taymans
5a21eb36c7 query: register queries like events
Also register queries with a QueryType that allows us to check if the event is
sent in the right direction. Add a serialized query type because we will need
this for the allocation query.
Remove the QueryTypeDefinition stuff, it is not used anymore and we now use
custom queries and separate API for them.
Update defs.
2012-03-14 14:51:16 +01:00
Wim Taymans
d2d7be7b75 bin: remove old compat mode 2012-03-13 15:40:37 +01:00
Wim Taymans
bcf115a620 caps: small docs update 2012-03-13 15:40:23 +01:00
Wim Taymans
272142089e caps: remove gst_caps_union()
Remove gst_caps_union(), use gst_caps_merge(). This function was not used
anymore and it is unclear what the difference is with _merge().
2012-03-13 10:04:36 +01:00
Wim Taymans
5e719a293a caps: delay _make_writable() until needed in _normalize()
Delay _make_writable() until we actually found a list and need to update the
caps.
2012-03-12 18:34:30 +01:00
Wim Taymans
4cdddd2bb1 caps: shortcut simplify earlier
A simple caps is already simplified, no need to check for fixedness.
2012-03-12 18:25:38 +01:00
Wim Taymans
f4aa1b1011 caps: small cleanup, remove const 2012-03-12 18:22:05 +01:00
Wim Taymans
4bbc3b6f04 caps: small cleanups 2012-03-12 18:02:27 +01:00
Wim Taymans
1bc93bbf8f caps: small doc improvement 2012-03-12 16:40:38 +01:00
Wim Taymans
4feb6c3989 caps: fix some 0.11 FIXMEs 2012-03-12 12:35:07 +01:00
Wim Taymans
67931bfded caps: make _normalize take ownership of input
Make gst_caps_normalize() take ownership of the input so that it can more
intelligently decide when to copy or not.
2012-03-12 12:21:34 +01:00
Wim Taymans
8a76c3269a caps: _do_simplify() -> _simplify()
Rename _do_simplify() to _simplify(). The name was introduced as a replacement
method for a deprecated method but we can now rename it again.
Fix some docs.
2012-03-12 11:38:37 +01:00
Wim Taymans
9cdbffea94 caps: improve _do_simplify
Make gst_caps_do_simplify() take ownership of the input caps and produce a
simplified output caps. This removes the requirement of having writable input
caps and the method can make the caps writable only when needed.
2012-03-12 10:42:23 +01:00
Wim Taymans
43abf99a8a caps: avoid using in-place oprations
Rework some caps operations so they don't rely on writable caps but instead take
ownership of the input caps and do _make_writable() only when needed.
Remove some const from caps functions, it does not make much sense for
refcounted objects and does not allow us to return a refcount to the const input
caps.
Rework the base classes fixate vmethods to not operate on the caps in-place.
All this saves us around 30% of caps and structure copy and new operations.
2012-03-11 18:57:44 +01:00
Wim Taymans
89d0316895 structure: add allocation debug 2012-03-11 17:22:01 +01:00
Wim Taymans
fe5fe438d3 typefind: remove const from refcounted GstCaps
Having const on refcounted objects require us to make copies instead of simply
taking a ref, don't do that.
2012-03-10 09:25:43 +01:00
Wim Taymans
6426145fc9 registry: avoid copy when caps are fixed
Avoid doing a useless copy when the caps are fixed and simplify will not do
anything.
2012-03-10 09:15:43 +01:00
Wim Taymans
6ffba69d65 buffer: small optimizations
shortcut heavy work when buffer_resize does nothing.
Avoid an extra _ref when mapping a buffer.
Add some G_LIKELY.
2012-03-09 16:14:02 +01:00
Wim Taymans
35241f35c0 pad: also push sticky events on new event
Make a helper function check_sticky to check and push pending sticky events.
Move the handling of the result of pushing the sticky event inside the
push_event function, we need to mark the event as received when it was pushed
correctly.
Move the sticky events code outside of gst_pad_push_event_unchecked and
make it purely handle sending the event to the peer.
when pushing a sticky event, first store it on the pad. Then check and push any
pending sticky events when we get a serialized or sticky event on a srcpad. This
fixes the issue where sticky events are not pushed when an event is pushed.
2012-03-09 11:53:54 +01:00
Wim Taymans
0054e6da9e pad: store the received result from _foreach
If the foreach function changes the received state of the sticky event, make
sure we remember that.
2012-03-09 11:52:29 +01:00
Wim Taymans
a80581831e pad: add comment 2012-03-09 11:52:11 +01:00
Tim-Philipp Müller
e09fe53a22 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	common
	gst/gstpad.h
	gst/gsttask.c
	libs/gst/base/gstcollectpads2.h
2012-03-08 19:55:30 +00:00
Tim-Philipp Müller
4d2adb0249 pad, task: improve debug logging 2012-03-08 16:30:49 +00:00
Tim-Philipp Müller
c683e39429 pads, collectpads2: get rid of superfluous brackets around static rec mutex calls
Makes it possible to define those calls to something for tracing.
2012-03-08 16:27:48 +00:00
Tim-Philipp Müller
3e8d6d6064 value: remove gst_value_register_{subtract,union,intersect}_func() API
There isn't really any need to provide public API for that. It's not
used anywhere in practice, and we aim to provide an API that works
for GstCaps, not some kind of generic set manipulation API based on
GValue. Making this private also makes it easier to optimise this
later. We can always put it back if someone actually needs it.
2012-03-08 11:21:37 +00:00
Wim Taymans
7b8263de93 pad: return ANY for a pad without template
Because gst_pad_get_pad_template_caps() returns ANY when there is no template,
the query caps function should also return ANY when there is no template (and no
pad current caps) instead of EMPTY.
2012-03-08 10:34:42 +01:00
Wim Taymans
4232b47685 pad: small cleanup 2012-03-08 10:34:41 +01:00
Wim Taymans
185b3c6a0d memory: add comment 2012-03-08 10:34:41 +01:00
Sebastian Dröge
6b4091a30d Merge branch 'master' into 0.11
Conflicts:
	libs/gst/base/gstbaseparse.c
	libs/gst/base/gstbasetransform.c
	plugins/elements/gsttee.c
2012-03-08 10:19:52 +01:00
Sebastian Dröge
c8cde669b7 gst: Fix 'comparison of unsigned enum expression >= 0 is always true' compiler warning 2012-03-06 12:16:19 +01:00
Wim Taymans
0d9f22d212 gst: include gstmeta.h 2012-03-02 17:04:05 +01:00
Wim Taymans
b3c8264a14 bufferpool: add more debug info 2012-03-02 17:03:49 +01:00
Wim Taymans
5cd35d6386 meta: add boolean to signal a region copy
Add a boolean to the metadata copy transform that signals if a only a
region is copied.
2012-03-02 12:45:23 +01:00
Wim Taymans
36b6204811 meta: transform docs
Use gst- prefix for metadata transform types.
2012-03-02 11:57:52 +01:00
Sebastian Dröge
cfe71423f0 gst: Remove gstmarshal.[ch] completely and use the generic marshaller
Fixes bug #671130.
2012-03-02 11:05:48 +01:00
Sebastian Dröge
441402f9d5 gst: Don't install gstmarshal.h
The generic, FFI based marshaller should be used instead of these
and we definitely shouldn't export the marshallers in our public API.
2012-03-02 10:51:42 +01:00
Wim Taymans
391b4309f9 meta: improve debugging
Add category for metadata debug
2012-03-01 17:41:57 +01:00
Wim Taymans
fe0d89f73b pad: improve debugging 2012-03-01 17:41:57 +01:00
Wim Taymans
faae1d9ff2 meta: add tag for memory metadata 2012-03-01 17:41:57 +01:00
Wim Taymans
b1dfe92f5c query: add method to remove allocation_meta
Also g_return_if_fail for out-of-bounds access instead of silently failing.
2012-03-01 17:41:57 +01:00
Sebastian Dröge
99a8cd1048 Merge branch 'master' into 0.11
Conflicts:
	libs/gst/base/gstcollectpads2.c
	libs/gst/check/gstconsistencychecker.c
2012-03-01 14:43:01 +01:00
Mark Nauwelaerts
70b5fc7ff0 pad: fix some debug message typos 2012-03-01 10:49:45 +01:00
Wim Taymans
e80296cf46 meta: split registration of API and implementation
Split out the registration of the metadata API and its implementation. Make a
GType for each metadata API. This allows us to store extra information with the
API type such as the tags.
Change the buffer API so that we can get the metadata using the API GType.
Change the query API so that we use the metadata API GType in the allocation
query instead of a string.
Update netaddress and unit tests
2012-02-29 17:37:09 +01:00
Wim Taymans
fc01e757cf minobject: small .h indent fix 2012-02-29 17:37:09 +01:00
Tim-Philipp Müller
ebe525be4c structure: print a g_warning() if someone tries to construct 0.10-style raw audio/video caps 2012-02-29 12:41:44 +00:00
Wim Taymans
f0105dd81f meta: add return vale to transform
Add a boolean return value so that we can see when a transform fails.
2012-02-28 16:17:47 +01:00
Wim Taymans
6e0e782025 meta: add method to check for a tag 2012-02-28 12:52:00 +01:00
Wim Taymans
166cfadb71 meta: add support to tagging the metadata
Add support for adding tags to the metadata. with some standard keys, this
should make it possible to describe what the metadata refers to. We should be
able to use this information to decide if a transformation destroys the metadata
or not.
2012-02-28 11:34:48 +01:00
Edward Hervey
823807c5f0 Suppress deprecation warnings in selected files, for g_value_array_* mostly 2012-02-27 13:43:59 +01:00
Wim Taymans
b95ceeb09b remove some useless includes in .h 2012-02-27 09:48:06 +01:00
Wim Taymans
eb84682e92 clock: make more stuff private
Expose methods to get and set the timeout because subclasses uses this.
2012-02-27 09:11:36 +01:00
Wim Taymans
8909205b85 systemclock: make more stuff private 2012-02-27 09:11:36 +01:00
Wim Taymans
10056f1833 bufferpool: make more stuff private 2012-02-27 09:11:36 +01:00
Wim Taymans
cd25c05b02 bus: make more fields private 2012-02-27 09:11:36 +01:00
Tim-Philipp Müller
1fbcc71dbd Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	NEWS
	RELEASE
	configure.ac
	docs/plugins/gstreamer-plugins.hierarchy
	docs/plugins/inspect/plugin-coreelements.xml
	libs/gst/base/gstcollectpads.c
	libs/gst/base/gstcollectpads2.c
	plugins/elements/gstfdsink.c
	win32/common/config.h
	win32/common/gstenumtypes.c
	win32/common/gstversion.h
2012-02-27 00:08:39 +00:00
Tim-Philipp Müller
031514faeb registry: fix lseek() return code handling
lseek() returns the offset if successful, and this is != 0 and
does not indicate an error. And if it does actually fail, don't
return FALSE (0) as an int, but -1. None of these things are
likely to have made a difference, ever. I don't think the offset
seek can ever actually happen, the current file position and the
current offset should always be increased in lock step, unless
there was an error in which case we'd just error out.
2012-02-24 23:49:54 +00:00
Tim-Philipp Müller
c25b8e153d registry: don't forget to clean up registry temp file in another error case
Also clean up temp file if we get an error during write() rather
than just when doing fsync() or close().
2012-02-24 23:49:54 +00:00
Wim Taymans
ed29f33ddb atomicqueue: fix race
After a writer has written to its reserved write location, it can only make the
location available for reading if all of the writers with lower locations have
finished.
2012-02-24 15:24:42 +01:00
Wim Taymans
61e8fa0dc5 atomicqueue: fix subtle race
Fix a race where the reader would see the updated the tail pointer before the
write could write the data into the queue. Fix this by having a separate reader
tail pointer that is only incremented after the writer wrote the data.
2012-02-24 12:51:24 +01:00
Wim Taymans
6b22a63f1b meta: flesh out the metadata transform
Flesh out the transform method. Add a type and extra info to the transform
function so that implementation can transform the metadata.
Remove the copy function and replace with the more generic transform.
2012-02-24 10:28:56 +01:00
David Schleef
bc186f85ed spelling fix 2012-02-23 08:48:40 -08:00
David Schleef
fb0b63d8fd poll: fix spelling of writable 2012-02-23 08:48:40 -08:00
Wim Taymans
69d56a2927 memory: add user_data to GstMapInfo
Add extra pointers to GstMapInfo so that implementations can use these to store
extra info.
2012-02-23 15:32:33 +01:00
Wim Taymans
1a8a371bce bufferpool: improve docs 2012-02-23 15:32:19 +01:00
Wim Taymans
7b0e4f27fb memory: make _new_wrapped take user_data and notify
Make it possible to configure a GDestroyNotify and user_data for
gst_memory_new_wrapped() this allows for more flexible wrapping of foreign
memory blocks.
2012-02-22 02:10:21 +01:00
Wim Taymans
c105b467fa pad: handle NULL callbacks
When we have a matching NULL callback, also consider the 'callback' marshalled,
this way blocking probes with a NULL callback actually work.
2012-02-21 16:37:11 +01:00
Wim Taymans
afba547722 segment: don't use duration in clipping
Don't use the duration in the segment for calculating clipping values.
The duration is expressed in stream time and clipping is done on unrelated
timestamp values.
This used to be interesting for elements that used the segment structure to
implement seeking because then they would use stream-time for the segment
start/stop values and the duration could be used as a fallback when the stop
position was not set. Now that the complete segment event is passed between
elements we cannot do this anymore because some elements might store the
duration and start/stop values with different time bases in the segment.
2012-02-20 14:39:26 +01:00
Wim Taymans
3eeb6e6c05 info: debug segment duration as well 2012-02-20 14:28:57 +01:00
Wim Taymans
d09073b755 memory: fix more docs 2012-02-18 01:04:18 +01:00
Edward Hervey
f730ab02a4 doc fixups 2012-02-17 15:53:58 -08:00
Edward Hervey
60be53fabf gstvalue: Remove useless assignment 2012-02-17 15:11:38 -08:00
Edward Hervey
963267643e gstvalue: Gracefully handle NULL Gvalue
Avoids unreferencing NULL pointer
2012-02-17 15:11:38 -08:00
Wim Taymans
386562f7e4 pad: make some errors critical
When we have no chain function or when we are operating the pad in the wrong
mode, emit a critical instead of posting an error message. This is certainly a
programming error and we cannot always post a message (like when the pad has no
parent)
2012-02-18 00:03:41 +01:00
Wim Taymans
7fc783f723 info: also debug position of segment 2012-02-18 00:03:13 +01:00
Wim Taymans
592ead764c task: add more debug 2012-02-15 12:18:38 +01:00
Wim Taymans
c6a1bed1ad memory: more work on refcount and writability
Rename _is_writable() with _is_exclusive because the writability does not depend
on the amount of references to the memory object anymore.
Add accessor macros for the memory flags.
Rename the GstBuffer _peek_memory() method to _get_memory() and return a
reference to the memory now that we can do this without affecting writability
of the memory object. Make it possible to also make this function merge the
buffer memory.
Add methods to replace memory in a buffer. Make some convience macros for the
buffer memory functions.
Fix unit tests.
2012-02-13 18:04:03 +01:00
Wim Taymans
c32456224e meta: fix typos 2012-02-13 16:42:56 +01:00
Tim-Philipp Müller
7329843fe6 event: make _parse_nth_stream_config_header() and _parse_setup_data() return a boolean
As they can fail (only one of stream headers or setup data
is usually present).
2012-02-12 21:05:45 +00:00
Tim-Philipp Müller
4d937fafbb event: rename gst_event_{set,parse}_stream_config_codec_data() to _setup_data()
More generic.
2012-02-12 20:51:39 +00:00
Wim Taymans
151d7faca3 clean up object init
Make an _init method where the parent mini-object and other fields are
initialized.
Check that the passed structure doesn't already have a parent.
Use the _new_custom () constructors
2012-02-10 15:02:23 +01:00
Wim Taymans
c9a3051b37 pad: silence probe debug a litte 2012-02-10 12:05:18 +01:00
Wim Taymans
34f770a900 gst: add some performance logging
Add some performance logging for caps copy and the slow default acceptcaps
implementation
2012-02-10 11:09:01 +01:00
Wim Taymans
3d4a1a98b5 docs: update and improve docs 2012-02-09 11:48:02 +01:00
Tim-Philipp Müller
552d726c3a utils: remove gst_element_class_install_std_props()
It's only used in one place (rtmp), and there not very well.
2012-02-09 00:14:58 +00:00
Wim Taymans
7ab1d62c24 GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING 2012-02-08 16:18:04 +01:00
Wim Taymans
92de0b6143 Merge branch 'master' into 0.11 2012-02-08 14:45:25 +01:00
Wim Taymans
bcf3daebd4 pad: error when activation mode is wrong
Post an error when we try to push on a pad activated in pull mode and pull on a
pad in push mode.
2012-02-08 12:57:11 +01:00
Wim Taymans
7cb4828e93 clock: remove method declaration too 2012-02-08 09:30:02 +01:00
Stefan Sauer
110e7c2d3c clock: remove unimplemented stats property while we can 2012-02-07 13:41:20 +01:00
Wim Taymans
a46f0862cd gst: improve debugging 2012-02-06 09:46:47 +01:00
Havard Graff
609e618e70 registry: fix compilation with --disable-registry
__registry_reuse_plugin_scanner is only defined when
GST_DISABLE_REGISTRY is not defined.

gstregistry.c: In function 'gst_registry_scan_plugin_file':
gstregistry.c:1131:8: error: '__registry_reuse_plugin_scanner' undeclared (first use in this function)

https://bugzilla.gnome.org/show_bug.cgi?id=667284
2012-02-04 15:52:21 +00:00
Vincent Penquerc'h
ec7a7c318a bin: reset the EOS detection machinery after sending an EOS message
This will allow detecting further EOS, for instance after looping
a stream without changing states.

https://bugzilla.gnome.org/show_bug.cgi?id=668289
2012-02-03 11:23:28 +00:00
Wim Taymans
da793d7255 trace: print caps in dump 2012-02-02 16:59:12 +01:00
Wim Taymans
18ddee3b45 memory: add debug and trace for GstMemory 2012-02-02 15:57:48 +01:00
Wim Taymans
5d6999f804 trace: don't check random pointers for objects
Only see if the traced pointer is a GObject when it was registered with the
special offset of -2.
2012-02-02 15:55:44 +01:00
Wim Taymans
e60b67f907 Update debug categories
Remove some categories marked for deletion.
Add a category for GstMemory.
2012-02-02 15:54:28 +01:00
Wim Taymans
f5886a17f5 remove TRACE_NAME from headers 2012-02-02 15:52:19 +01:00
Wim Taymans
d8c12ceb2b memory: add some performce debug info
Add some PERFORMANCE debug lines where we copy and do other suboptimal things.
2012-02-02 12:07:28 +01:00
Wim Taymans
d54fbe677f pad: add flag to proxy allocation query
Add a flag to force the default query handler to forward the allocation query
instead of discarding it.
Reorder the pad flags a bit.
2012-02-02 12:05:37 +01:00
Tim-Philipp Müller
83002ac63e typefind: pass extensions as comma-separated list in a simple string
Fix annoying gst_type_find_register() function signature. A simple
string with comma-separated extensions works just as well and saves
lines of code, casts, relocations and ultimately kittens.
2012-02-02 01:32:07 +00:00
Wim Taymans
76a60c4c42 element: don't crash on missing template
Some request pads don't have a padtemplate (mostly those from encodebin). Avoid
crashing in this case.
2012-01-31 16:27:55 +01:00
Wim Taymans
39c5f0b28a don't do logic in g_assert... 2012-01-31 12:10:21 +01:00
Stefan Sauer
4deaf9b8be controller: rename control-bindings
gst_control_binding_xxx -> gst_xxx_control_binding for consistency.
2012-01-30 21:18:57 +01:00
João Paulo Pizani Flor
3af9544f95 Fixes the lack of an include directive in gst/gstpreset.h
It blocked the build of external libraries depending on gstreamer-core (namely, gstreamermm).
Complete bug report at https://bugzilla.gnome.org/show_bug.cgi?id=669036
2012-01-30 17:22:59 +00:00
Stefan Sauer
c4bee19a25 controlsource: sink the floating ref
control sources can be used on several control bindings.
2012-01-30 18:18:28 +01:00
Wim Taymans
c35a41bb54 buffer; remove IN_CAPS buffer flag
The IN_CAPS buffer flag is deprecated and should be replaced with the HEADER
flag.
2012-01-30 17:15:21 +01:00
Wim Taymans
0bd5a78701 query: pass allocator in query
Place the allocator object in the ALLOCATION query instead of the name. This
allows us to exchange allocators that are not in the global pool of allocators.
Update elements for the new api
2012-01-30 16:13:31 +01:00
Wim Taymans
16d9a9efbe memory: add memory type
Add memory type when registering memory allocators. Add getter for the memory
type.
2012-01-30 16:13:31 +01:00
Wim Taymans
f8c6cd196e memory: add boxed GType for the allocator 2012-01-30 13:28:34 +01:00
Wim Taymans
af2fc026fc memory: make the allocator refcounted
Add refcounting to the GstAllocator object.
Remove const from functions because the allocator is refcounted now.
Rename the vmethods for consistency
Expose the constructor for GstAllocator and add a destroy notify for the
user_data. This should make it possible to create allocators that are not
registered and shared globally along with the possibility to destroy them
properly.
Update defs with new symbols.
2012-01-30 13:20:36 +01:00
Philippe Normand
bd9d196700 core: don't ship gsttrace.h private header
Include it explicitely in gst.c and no longer include it in gst.h.
That header was made private in 1969b94267.
2012-01-30 10:15:33 +01:00
Tim-Philipp Müller
51f6f5addf event: require a valid duration for the GAP event 2012-01-28 18:50:23 +00:00
Tim-Philipp Müller
e115c28ae4 gst: ref new enum type in gst_init() 2012-01-28 18:49:44 +00:00
Tim-Philipp Müller
783a9d61b9 docs: add some (out) annotations for stream config parser functions 2012-01-28 18:10:30 +00:00
Tim-Philipp Müller
068d9ecf5a event: add constructor and parse function for new GAP event
(Whatever you do, don't mention the filler event.)
2012-01-28 18:09:01 +00:00
Tim-Philipp Müller
0b5734557e docs: GST_EVENT_STREAM_CONFIG is implemented now 2012-01-28 18:09:00 +00:00
Olivier Crête
e234a10c63 Use macros to register boxed types thread safely 2012-01-28 16:42:38 +00:00
Sebastian Dröge
705d17c8a8 segment: Add padding to the public struct 2012-01-27 18:47:13 +01:00
Tim-Philipp Müller
f1f11098fe gst: don't ref GType for private enum for which there's no GType any more 2012-01-27 17:45:39 +00:00
Tim-Philipp Müller
75e17f0002 event: add construct and parse API for the new STREAM CONFIG event
codec data and stream headers don't belong into caps, since they
are not negotiated. We signal them using the STREAM CONFIG event
instead.
2012-01-27 17:42:07 +00:00
Wim Taymans
1969b94267 trace: remove from public headers 2012-01-27 18:27:16 +01:00
Andoni Morales Alastruey
ded0ea049e caps: fix documenation typo 2012-01-27 18:14:50 +01:00
Wim Taymans
321ee10bd6 trace: rework alloc tracing
Remove trace, we use debug log for that
Make alloc trace simpler, removing some methods.
Activate alloc trace with a GST_TRACE=3 environment variable.
Dump leaked objects atexit.
Provide an offset in the object where the GType can be found so that more
verbose info can be given for objects.
Remove -T option from gst-launch because tracing is now triggered with the
environment variable.
2012-01-27 17:54:43 +01:00
Wim Taymans
166f6e1cc5 trace: make alloc trace work for miniobject again 2012-01-27 15:33:48 +01:00
Sebastian Dröge
753a1125dd Merge branch 'master' into 0.11
Conflicts:
	libs/gst/base/gstcollectpads2.c
	libs/gst/base/gstcollectpads2.h
2012-01-27 15:09:35 +01:00
Wim Taymans
21455d35b1 tests: fix some more leaks 2012-01-27 12:52:01 +01:00
Vincent Penquerc'h
68a091303f gstplugin: add a few consts to read only data 2012-01-27 11:32:12 +00:00
Wim Taymans
2ed36d91a6 memory: avoid memory leak
Unref the old memory in make_mapped.
Add some debug info
2012-01-27 11:41:33 +01:00
Sebastian Dröge
ad28f9fb68 event: Mark the new GAP event as non-sticky 2012-01-27 10:56:52 +01:00
Sebastian Dröge
f5545e3323 event rebase 2012-01-27 10:42:09 +01:00
Sebastian Dröge
9318934cf0 event: Add constructor and docs for the new STREAM_START event 2012-01-27 10:30:43 +01:00
Wim Taymans
2a8c98fe23 pad: add user data to chain functions 2012-01-26 19:28:46 +01:00
Vincent Penquerc'h
9152c01fcf taglist: restore date/time type to GstDateTime
The change to GDateTime was apparently accidental, and
breaks plugins trying to feed a GstDateTime to the taglist APi.
2012-01-26 18:23:46 +00:00
Peteris Krisjanis
42a6e487c8 gst: gst_parse_launch now returns a floating reference 2012-01-26 18:55:30 +01:00
Edward Hervey
479b7ff5f1 gststructure: Set "transfer none" to return values that shouldn't be freed 2012-01-26 18:54:50 +01:00
David Schleef
9048b4dc2a element: call ->release_pad() to clean up pad
https://bugzilla.gnome.org/show_bug.cgi?id=636011
https://bugzilla.gnome.org/show_bug.cgi?id=402562
2012-01-26 15:44:10 +00:00
Wim Taymans
2d4edcf83f event: add some more events
Add some more new events that we want to implement later.
2012-01-26 16:32:46 +01:00
Andoni Morales Alastruey
ade5b3b917 gstmemory: add missing parameter 2012-01-26 15:17:04 +01:00
Sebastian Dröge
a7b96d0503 caps: Fix compiler warning 2012-01-26 14:57:14 +01:00
Sebastian Dröge
28f5b86637 caps: Use correct size for caps allocation 2012-01-26 14:55:30 +01:00
Sebastian Dröge
b4066a6c95 caps: Make GstCaps public struct more opaque by moving the private pointer into the implementation 2012-01-26 14:45:30 +01:00
Sebastian Dröge
5d1d7d95b2 caps: Store a pointer to GstCaps in GstStaticCaps
...instead of using hackish subclass of GstCaps, which also
had some thread-safety problems.
2012-01-26 14:37:02 +01:00
Wim Taymans
dc4d96d54c event: remove the sticky event index
We don't use the sticky event index anymore, ordering of the events are how they
were sent initially.
Add some more padding between the event numbers so that we can insert new events
later.
2012-01-26 13:24:44 +01:00
Tim-Philipp Müller
78ccf77fa3 bufferpool: use GstValueArray instead of GValueArray for storing options in the config
Since GValueArray is deprecated. It's all only internal anywhere here,
but if we use GstValueArray the option strings get serialized nicely
in the debug logs at least.
2012-01-26 10:44:11 +00:00
Wim Taymans
3844f80266 pad: add probe id to the info 2012-01-26 11:04:01 +01:00
Jason DeRose
b8f5d7a39f gst_pad_template_new() now returns a floating reference 2012-01-25 18:51:44 +01:00
Peteris Krisjanis
a8e9ed82d9 gst_pipeline_new now returns a floating reference. 2012-01-25 18:51:42 +01:00
Peteris Krisjanis
f09b23ee07 gst: gst_parse_bin_from_description returns a new reference 2012-01-25 16:46:40 +01:00
Tim-Philipp Müller
1d3d1a6e03 query: use GArray for internal arrays instead of the now-deprecated GValueArray 2012-01-25 15:15:57 +00:00
Peteris Krisjanis
02f721f7ea gst: Changed introspection transfer flag to (transfer floating)
for gst_pad_new, gst_ghost_pad_new and gst_bin_new constuctors. Fixes
segfaults due of transfer full and floating ref problem.
2012-01-25 15:05:21 +01:00
Wim Taymans
9c9848e952 memory: add flags to the mapinfo 2012-01-25 11:54:23 +01:00
Wim Taymans
203dd6fbe1 memory: make guint8 * for easy usage 2012-01-25 11:54:23 +01:00
Wim Taymans
93074b899c memory: add method to create mapped memory
Add a method to create a GstMemory with the desired mapping. Makes a copy of the
memory if it is currently in use.
2012-01-25 11:54:23 +01:00
Wim Taymans
a521252845 Add new GstMapInfo
Use a structure to hold info about the mapping. The application then keeps track
of this state and we can use it to unmap the memory again later.
2012-01-25 11:54:23 +01:00
Edward Hervey
ea7c1225c1 controlbindings: name is not a const
It gets modified during the life of the object. Fixes build.
2012-01-25 11:50:49 +01:00
Stefan Sauer
660d9c071a controller: cleanup the control-binding construction
This is now bindings firendly as _new is just a classic c convenience and all
the work is done in a constructor. As a side effect _new never fails.
Fix the tests.
2012-01-24 21:57:44 +01:00
Vincent Penquerc'h
fc1fab8a15 gstvalue: handle NULL dest in bitmask/bitmask intersection 2012-01-24 14:40:33 +00:00
Vincent Penquerc'h
39533f4364 gstvalue: add stepped ranges
int and int64 ranges can now have an optional step (defaulting to 1).
Members of the range are those values within the min and max bounds
which are a multiple of this step.

https://bugzilla.gnome.org/show_bug.cgi?id=665294
2012-01-24 12:11:44 +00:00
Vincent Penquerc'h
7319b52a2e gstutils: add a 64 bit version of GCD calculation
https://bugzilla.gnome.org/show_bug.cgi?id=665294
2012-01-24 12:11:44 +00:00
Vincent Penquerc'h
b6abb9794c gstvalue: enforce identical basic types in lists, arrays
https://bugzilla.gnome.org/show_bug.cgi?id=322587
2012-01-24 12:11:44 +00:00
Stefan Sauer
4453c2cebe object: register all properties in one go 2012-01-23 11:03:43 +01:00
Stefan Sauer
b23977cb93 controller: allow different controlbindings
Make controlbinding an abstract baseclass. Move implementation to control-
binding-direct and add a control-binding-argb. Add an example.
2012-01-23 11:03:43 +01:00
Tim-Philipp Müller
2c8c44976f Replace deprecated GStaticMutex with GMutex
https://bugzilla.gnome.org/show_bug.cgi?id=662207
2012-01-22 22:44:59 +00:00
Tim-Philipp Müller
1654b7f1d7 Use GLib's type for GError instead of our own
We introduced our own when GLib didn't want to add a GType
for GError. But now that there is one, we can use GLib's
unconditionally and remove our version.
2012-01-22 15:16:14 +00:00
Tim-Philipp Müller
13d91d1f6c Use recent GLib API unconditionally now that we depend on the latest GLib 2012-01-22 01:25:22 +00:00