Commit graph

6636 commits

Author SHA1 Message Date
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
Tim-Philipp Müller 612abd89dd trace: don't use deprecated GStaticMutex API in (still) public header 2012-01-22 00:42:34 +00:00
Stefan Sauer dd9f0481ea controller: improve control binding handling
Change _set_control_binding to _add_control_binding and take ownership. Add a
_remove_control_binding function.
2012-01-20 14:42:31 +01:00
Stefan Sauer c227d51fa9 controller: remove convenience api for control sources
This is needed to support multiple kinds of control-bindings.
2012-01-20 11:31:23 +01:00
Wim Taymans a1d7bd02e4 memory improvements
Make the memory object simply manage the data pointer and the maxsize and move
the offset and size handling to common functionality.
Use the READONLY flag to set a readonly lock.
Remove the data and size fields from the unmap method. We need an explicit
resize operation instead of using the unmap function.
Make internal helper lock and unlock functions.
Update unit test and users of the old API.
2012-01-19 12:51:41 +01:00
Tim-Philipp Müller e349e57154 docs: fix typo in bus docs 2012-01-19 11:43:53 +00:00
Wim Taymans 252327f87a Update for new gthread API 2012-01-19 09:27:04 +01:00
Sebastian Dröge 0d2adf5a18 pad: Don't forward the allocation query by default
This has to be handled explicitely by elements to
make sure that they support all the metas passed
in the allocation query.
Metas have to supported explicitely, otherwise the
query will fail. All elements in a chain need to
support a specific meta to allow its usage.
2012-01-18 11:39:29 +01:00
Tim-Philipp Müller 10d901291e gst: suppress some more deprecated thread api until we fix it up
Which should be soon, since we already depend on an unstable glib for -base.
2012-01-18 01:31:56 +00:00
Wim Taymans c96d5a330c memory: make writability check into a method
Use a method to check for writability instead of a macro so that we can change
the implementation more easily.
2012-01-16 15:57:35 +01:00
Wim Taymans 0ca5115722 buffer: improve docs 2012-01-16 12:24:20 +01:00
Tim-Philipp Müller 66d19b65fb Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	tools/gst-inspect.c
2012-01-13 00:22:03 +00:00
Tim-Philipp Müller c721d53773 Remove GST_TYPE_DATE, our own GDate type
Which we had to add because GLib didn't have it
back in the day. Port everything to plain old
G_TYPE_DATE, which is also a boxed type. Ideally
we'd just use GDateTime for everything, but it
doesn't support not setting some of the fields
unfortuntely (which would be very useful for
tag handling in general, if we could express
2012-01 for example).

https://bugzilla.gnome.org/show_bug.cgi?id=666351
2012-01-12 20:50:53 +00:00
Vincent Penquerc'h 98c99630ad gststructure: clarify _get docs about the returned reference
https://bugzilla.gnome.org/show_bug.cgi?id=667689
2012-01-11 12:23:25 +00:00
Sebastian Dröge 148bf27ce3 Merge branch 'master' into 0.11 2012-01-10 13:00:07 +01:00
Christian Fredrik Kalager Schaller 2fb5f4a9ef Also add headerfile 2012-01-09 15:59:42 +00:00
Christian Fredrik Kalager Schaller 9fd4970089 Fix dotfile API to be exported since macros can't be GI bound 2012-01-09 15:59:42 +00:00
Matej Knopp 9092fb87f0 Fix printf format build warnings 2012-01-09 13:15:34 +00:00
Edward Hervey 77506a82b0 gstvalue: Allow NULL dest when subtracting bitmask
Happens when checking for subsets of caps
2012-01-06 15:01:24 +01:00
Wim Taymans ad9450e1c0 buffer: ensure writable memory in memset 2012-01-06 13:32:55 +01:00
Wim Taymans 80f4716a61 memory: check semantics of nested mappings
Count how many mappings are currently active and also with what access pattern.
Update the design doc with restrictions on the access patterns for nested
mappings.
Check if nested mappings obey the access mode restrictions of the design doc.
Add various unit tests to check the desired behaviour.
2012-01-06 13:10:18 +01:00
Wim Taymans 220b324d24 docs: improve memory docs 2012-01-06 10:39:46 +01:00
Wim Taymans 960c580ae2 memory: handle -1 size in unmap
handle -1 in unmap correctly when the offset is modified.
2012-01-06 07:02:36 +01:00
Wim Taymans e4a58ec71e memory: improve semantics of unmap
Make an unmap call with a different data pointer than the map call update the
offset field. This allows for both offset and size adjustements in the unmap
call.
2012-01-06 06:43:08 +01:00
Wim Taymans d483ff2db5 memory: add more checks
Add check for mapping and resizing
2012-01-05 18:15:20 +01:00
Wim Taymans 6e0024e76e memory: take offset into account
Take the offset into account whem mapping and unmapping the buffer.
2012-01-05 17:28:28 +01:00
Wim Taymans 8658b2fd68 tests: add unit test for GstMemory
Add a GstMemory unit test
Add some more asserts in GstMemory to catch invalid cases.
2012-01-05 13:11:05 +01:00
Sebastian Dröge 33f53d46ab structure: Add "bitmask" as alias for (GstBitmask) when (de-)serializing values 2012-01-05 10:24:14 +01:00
Sebastian Dröge 4294b88e35 value: Add 64-bit bitmask type 2012-01-05 10:24:14 +01:00
Tim-Philipp Müller 1aec7a3d72 gst: include locale.h before any other i18n headers
This is also how we do it in -base.

https://bugzilla.gnome.org/show_bug.cgi?id=667290
2012-01-05 00:32:42 +00:00
Idar Tollefsen c8c961ac81 gstconfig.h: adds and uses SunPro visibility attribute for proper function exports
Define GST_EXPORT for SunPro.

https://bugzilla.gnome.org/show_bug.cgi?id=667289
2012-01-05 00:08:19 +00:00
Idar Tollefsen f0e121c197 poll: include correct poll.h based on autoconf test
https://bugzilla.gnome.org/show_bug.cgi?id=667286
2012-01-04 23:47:46 +00:00
Wim Taymans f9e7dad47a buffer: only reserve 6 extra flags
Only reserve 6 extra flags instead of 10 so that more media specific flags
are available.
2012-01-04 10:04:11 +01:00
Wim Taymans bc1974e962 GST_FLOW_UNEXPECTED -> GST_FLOW_EOS 2012-01-03 15:25:31 +01:00
Wim Taymans e0c610f635 compat: restore UNEXPECTED 2012-01-03 15:05:47 +01:00
Wim Taymans 6ac2371910 docs: fix some docs 2012-01-03 15:03:38 +01:00
Wim Taymans 9c312fce48 taglist: avoid exposing the lists in tags 2012-01-03 14:43:05 +01:00
Wim Taymans 713696d0c0 taglist: add missing functions
Add missing and essential functions now that we can't directly use GstStructure
methods on the taglist anymore.
2012-01-03 13:42:12 +01:00
Wim Taymans 07952da04d value: add macro to check if a gvalue holds a sample 2012-01-03 10:42:31 +01:00
Tim-Philipp Müller 8ff3102116 registry: get rid of gst_default_registry_*() convenience macros
They're not really worth it: hardly save any typing, and aren't
great for bindings or gobject-introspection.
2012-01-02 02:32:49 +00:00
Tim-Philipp Müller ed80a5cd4b registry: rename gst_registry_get_default() to gst_registry_get()
It's not really a default if there is only one that can't be changed.

Should we return a ref like e.g. g_volume_monitor_get() does?
2012-01-02 02:22:51 +00:00
Tim-Philipp Müller 2836cbee94 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	gst/gsttaglist.c
	plugins/elements/gstoutputselector.c
2012-01-02 02:21:40 +00:00
Tim-Philipp Müller cb23beda4f tags: add GST_TAG_LANGUAGE_NAME
API: GST_TAG_LANGUAGE_NAME
2012-01-02 00:17:17 +00:00
Stefan Sauer 62a0d9dc39 controller: support control mapping for enums
Add a mapping for enum types (supporting sparse enums). Add a test.
2012-01-01 20:55:20 +01:00
Stefan Sauer 9dea3e37b1 controller: add more debug logging 2012-01-01 16:08:01 +01:00
Stefan Sauer 545c6c19a3 controller: remove obsolete FIXME comment 2011-12-31 15:26:26 +01:00
Stefan Sauer fcef8d8046 control-sources: turn into GstObjects
This is a preparation for chaining them.
2011-12-31 09:57:49 +01:00
Tim-Philipp Müller 7f1103544d registry: remove padding and signal vfuncs
And fix signal GTypes and marshaller. No one will ever
need to subclass our registry, so just remove the padding
and the signal vfuncs.
2011-12-30 19:37:31 +00:00
Tim-Philipp Müller 3e1c2f7f05 element: add LARGE padding to class structure
Four slots for expansion is not a lot.
2011-12-30 18:32:58 +00:00
Tim-Philipp Müller be04f3945c index: remove GstIndex and GstIndexFactory for now
There are many good use cases for GstIndex and we want
to add it back again in some form, but possibly not with
the current API, which is very powerful (maybe too powerful),
but also a bit confusing. At the very least we'd need to
make the API bindings-friendly.
2011-12-30 18:32:57 +00:00
Stefan Sauer 7d6e165007 gst: unref the two cotnroller types in _deinit() 2011-12-30 17:57:41 +01:00
Tim-Philipp Müller 8f7df5abac math-compat: move static variable for NAN into #ifndef NAN block
And use G_GNUC_UNUSED instead of __attribute_used__
2011-12-30 12:59:46 +00:00
Stefan Sauer eba636cc83 controller: use NAN instead of FP_NAN (which is the class)
Also add a fallback define to math-compat.h.
Fixes #666887
2011-12-30 13:33:48 +01:00
Edward Hervey e136cc334f Merge remote-tracking branch 'origin/master' into 0.11 2011-12-29 16:49:39 +01:00
Wim Taymans aca4fabfad gst: deinit meta flags too 2011-12-28 14:51:50 +01:00
Edward Hervey a51c408161 gst: Initialize new GstMetaFlags in init_post() 2011-12-28 12:25:59 +01:00
Edward Hervey 2f82c74e68 gstquery: Small doc fixups 2011-12-28 12:02:55 +01:00
Matej Knopp efdd0a2a82 win32: fix exported variables for VS 2010
https://bugzilla.gnome.org/show_bug.cgi?id=666219
2011-12-27 23:26:07 +00:00
Tim-Philipp Müller 95bd31443b registry: move private bits into private struct 2011-12-26 18:41:13 +00:00
Tim-Philipp Müller ee7f9f4228 value: micro-optimisation: avoid some unnecessary g_value_unset()
We know there's nothing to do here and can save us the function
calls and GValueTable lookups.
2011-12-26 11:27:07 +00:00
Stefan Sauer 39d6b7462f controller: move GValue handling from control-sources to -binding
ControlSources are now gdouble based. A control source is mapped to a
particullar GObject property using a ControlBinding.
2011-12-25 20:48:14 +01:00
Stefan Sauer a80401b22c controller: move GstControlledProperty into a separate class
Add a GstControlBinding class. This is a preparation for making the
controlsources generate double valued control curves and do the gparamspec
mapping in the control binding. Now the API in GstObject is again mostly
for convenience.
2011-12-25 18:50:45 +01:00
Tim-Philipp Müller f6a4af20b2 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	libs/gst/base/gstbasetransform.c
	libs/gst/controller/gstinterpolationcontrolsource.c
	libs/gst/controller/gstlfocontrolsource.c
	plugins/elements/gstfilesrc.c

Dit not merge controller or basetransform changes.
2011-12-25 11:58:12 +00:00
Wim Taymans 5125437606 bufferpool: cleanup metadata in reset_buffer
Use the reset_buffer vmethod to remove the unpooled metadata from the buffer.
2011-12-23 15:37:45 +01:00
Wim Taymans 8b202df55d bufferpool: handle metadata in the pool
Mark all metadata on the allocated buffers with a POOLED flag. When a buffer
returns to the pool, remove all metadata that did not have the POOLED flag. This
makes sure that we never leave unknown metadata to the buffers in the pool.
2011-12-22 16:02:05 +01:00
Wim Taymans 87ada5664a buffer: add foreach function for the metadata 2011-12-22 16:02:05 +01:00
Wim Taymans 974c708041 bufferlist: small doc fix 2011-12-22 16:02:05 +01:00
Wim Taymans 4bc7ff8e3e meta: add metadata flags
Add metadata flags so that we can set extra properties of the metadata
2011-12-22 16:02:05 +01:00
Mark Nauwelaerts f2d76b7e7b pipeline: only have a top-level pipeline do pipeline management
Fixes #665390.
2011-12-22 12:31:36 +01:00
Wim Taymans 0a8dd0a4e7 caps: rename variable for consistency
Rename the variable for GST_CAPS_NONE to _gst_caps_none for consistency and to
hie the fact that NONE caps are also accidentally empty caps.
2011-12-21 11:10:04 +01:00
Wim Taymans 8ff059ba59 caps: add ANY and EMPTY singletons
Add a singleton for ANY and EMPTY caps and make the GST_CAPS_ANY and
GST_CAPS_NONE point to them. This makes the API more consistent now
that the macro does not magically create a ref. It also solves some leaks in
places where the macro was used to register a padtemplate.
2011-12-20 13:24:06 +01:00
Wim Taymans 04e0912094 remove const in gst_type_find_register()
Remove the const from the GstCaps in gst_type_find_register() because the
function takes a ref to the caps.
2011-12-20 13:24:06 +01:00
Stefan Sauer a630743d43 controller: remove unused parent_class varriable from controlsource 2011-12-20 11:38:19 +01:00
Stefan Sauer 503b739b23 controller: cleanup interpolation modes
Remove deprecated/unimplemented modes. Turn interpolation mode into a gobject
property. Update docs and examples.
2011-12-19 23:36:26 +01:00
Stefan Sauer 2c7a8b924a controlsources: refactor interpolation control source
Move most of the code to a GstTimedValueControlSource. Split out the trigger
'interpolation mode' to a new control source class. Move tests and examples to
new api. Update docs.

Fixes #610338
2011-12-19 22:52:30 +01:00
Wim Taymans 079a86b78b memory: make subclasses add other flags
Add GST_MAP_FLAG_LAST so that implementations can add additional flags when
mapping memory.
2011-12-19 17:00:18 +01:00
Tim-Philipp Müller 33a566bcc5 pad: allow NULL as filter caps argument with query_caps()
https://bugzilla.gnome.org/show_bug.cgi?id=666154
2011-12-14 12:13:36 +00:00
Tim-Philipp Müller a81abdeee5 elementfactory: use new 'transfer floating' annotation for gst_element_factory_make()
Requires gobject-introspection 1.31.1 (older versions will
error out with that).

https://bugzilla.gnome.org/show_bug.cgi?id=664099
2011-12-12 12:11:40 +00:00
Tim-Philipp Müller d83d9d35ee Merge remote-tracking branch 'origin/master' into 0.11 2011-12-12 12:00:16 +00:00
Sebastian Dröge 36f999ab64 glib-compat: Add license boilerplate for LGPL 2011-12-12 11:55:52 +01:00
Wim Taymans 651e433427 pad: don't forward on NULL pads
The iterator can return NULL in some cases, avoid pushing on those
NULL pads.
2011-12-10 11:07:02 +01:00
Stefan Sauer f2b5b79eeb preset: allow applications to specify an extra preset dir
An extra application preset dir help to organize presets created for special
purposes. Fixes #660760
API: gst_preset_set_app_dir(), gst_preset_get_app_dir()
2011-12-09 16:15:27 +01:00
Tim-Philipp Müller c33b50e00f indexfactory: fix memory leak
Introduced by commit bd302bb6 pluginfeature: avoid duplicating feature->name

https://bugzilla.gnome.org/show_bug.cgi?id=459466
https://bugzilla.gnome.org/show_bug.cgi?id=665703
2011-12-06 23:54:59 +00:00
Wim Taymans 629a8d03ce pad: put new event probe type next to other event types 2011-12-06 18:18:26 +01:00
Matej Knopp 8e6b5f79bd Add GST_PAD_PROBE_TYPE_HANDLE_FLUSH 2011-12-06 18:18:26 +01:00
Stefan Sauer eb1259b983 controller: fix gpointer vs. gpointer* mess up 2011-12-06 14:40:35 +01:00
Wim Taymans c0e3974aa7 pad: remove GST_FLOW_RESEND
It is unused and undefined.
2011-12-06 14:24:15 +01:00
Stefan Sauer 4aafc381b2 controller: use _OBJECT logging variants more 2011-12-06 08:48:57 +01:00
Stefan Sauer 4b29d4f29a controller: remove GstValueArray
Instead pass the values as arguments. This simplifies that code and helps
bindings.
2011-12-06 08:35:57 +01:00
Stefan Sauer 4783251b2e controller: remove gst_object_get_value_arrays
One can easilly loop over the controlled properties manually. This is step 1 in
removing GstValueArray.
2011-12-06 08:35:10 +01:00
Matej Knopp 0e935321af correct return value in gst_push_sticky 2011-12-05 17:11:07 +01:00
Wim Taymans c2efd026db make some macros into inline functions 2011-12-05 11:07:24 +01:00
Wim Taymans be0e58a637 make some more macros as inline functions
Make some macros as inline functions for added type checking.
USe new gst_caps_take() in typefind
2011-12-05 10:24:34 +01:00
Tim-Philipp Müller a1daf846f3 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	gst/gstobject.h
	libs/gst/check/gstcheck.h
	libs/gst/controller/gstcontroller.c
	plugins/elements/gstidentity.c
	tools/gst-xmlinspect.c
2011-12-04 15:38:09 +00:00
Tim-Philipp Müller 2666450864 Suppress deprecation warnings in selected files, for g_static_rec_mutex_* mostly
GStaticRecMutex is part of our API/ABI, not much we can do here in 0.10.
2011-12-04 14:38:26 +00:00
Tim-Philipp Müller 5889260d5a Work around deprecated thread API in glib master
Add private replacements for deprecated functions such as
g_mutex_new(), g_mutex_free(), g_cond_new() etc., mostly
to avoid the deprecation warnings. We can't change most of
these in 0.10 because they're part of our API and ABI.
2011-12-04 13:35:38 +00:00
Edward Hervey b5792eea46 gstquery: Fix unitialized variable 2011-12-04 11:42:39 +01:00
Edward Hervey bf19148acb gstsegment: Initialize with proper type 2011-12-04 11:32:57 +01:00
Tim-Philipp Müller fef18639db g_thread_init() is deprecated in glib master
It's not needed any longer.
2011-12-03 17:40:53 +00:00
Tim-Philipp Müller ff96aeee84 tagsetter: update for thread API deprecations in glib master 2011-12-03 16:02:36 +00:00
Tim-Philipp Müller 4b18f0a5c3 taglist: update for thread API deprecations in glib master 2011-12-03 15:36:58 +00:00
Tim-Philipp Müller ad0a465f93 taglist: remove gst_tag_list_get_{char,uchar}
Those are unused and should never be used anywhere anyway
really.
2011-12-03 15:18:21 +00:00
Tim-Philipp Müller ca179625f8 g_thread_create() is deprecated in GLib master, use g_thread_try_new() instead 2011-12-03 13:58:51 +00:00
Tim-Philipp Müller 18291a6b40 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	gst/gstbus.c
	gst/gstevent.c
	libs/gst/base/gstbasetransform.c
2011-12-01 23:35:26 +00:00
Wim Taymans f95e77afc6 taglist: make some tags of type GstSample
Make the image and attachment tags of type GstSample so that we can include
extra caps and info along with the buffer data.
2011-12-01 18:50:32 +01:00
Wim Taymans 5477399881 sample: remove const
The writability of the structure is ensured by the refcount of the parent
miniobject and we're fine if the parent is writable.
2011-12-01 18:49:34 +01:00
Wim Taymans facf937276 sample: add new sample miniobject
Add a new simple miniobject that is a combination of a GstBuffer, GstCaps,
GstSegment and other arbitrary info organized in a GstStructure. This object can
be used to exchange samples between an element and the application or for
storing album art in tags etc.
2011-12-01 16:37:46 +01:00
Stefan Sauer e34d796e41 bus: use GST_MESSAGE_SOURCE_NAME() which also takes care of src=NULL. 2011-12-01 16:25:07 +01:00
Wim Taymans dc23684b12 buffer: add copy flag for meta
Add a flag to control if the meta should be copied or not instead of always
copying.
2011-12-01 15:34:06 +01:00
Tim-Philipp Müller 4b57054ae2 info: move FIXME log level after WARNING
So it's now ERROR < WARNING < FIXME < INFO and *:5 becomes *:6.
2011-11-30 12:46:10 +00:00
Tim-Philipp Müller c9bd4e4e96 event: warn and fail instead of creating newsegment events in GST_FORMAT_UNDEFINED 2011-11-30 00:24:32 +00:00
Wim Taymans 09514f251e bin: keep the element flags up-to-date
Keep the require/provide_clock flags up to date.
2011-11-29 15:53:01 +01:00
Wim Taymans 1754ee91ad element: add indexable flag
Remove the is_indexable method check and use an element flag to check if the
element can use an index.
2011-11-28 18:13:27 +01:00
Wim Taymans 40616aeb63 element: use flags for require/provide clock
Remove the _require/_provide_clock() methods and use element flags to mark
elements instead of looking at the implementation of the vmethod.
2011-11-28 17:22:44 +01:00
Wim Taymans d65773b5fa element: clean up element flags
Clean up the element flags
2011-11-28 16:54:55 +01:00
Wim Taymans 06b08e9877 event: add sticky custom quark 2011-11-28 15:35:21 +01:00
Wim Taymans 5a4957eef6 caps: _CAPS_FLAGS_ -> CAPS_FLAG_ 2011-11-28 14:24:16 +01:00
Vincent Penquerc'h c0ba7985bd gstelement: add gst_element_class_add_pad_template_from_static
This function helps ensure the pad template is unreffed
without having to complicate the calling code.

https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:09:07 +00:00
Wim Taymans da74724fd5 pad: Handle sticky event errors
Use GstFlowReturn to internally pass events between pads.
When we sticky events cause an error, translate this error into a GstFlowReturn.
Caps events will, for example, generate a NOT_NEGOTIATED return when the event
function returns an error.
This allows us then to refuse sending buffers if one of the sticky events is
refused and generate a correct error return value.
2011-11-28 14:07:24 +01:00
Edward Hervey 4839131502 gstmeta: Some more docs 2011-11-28 11:15:27 +01:00
Wim Taymans 9cbb135954 event: add custom downstream sticky event 2011-11-28 10:55:28 +01:00
Matej Knopp 62dce62e00 caps: fix compilation warning
GST_STATIC_CAPS is missing initializer for GstMiniObject's n_weak_refs and
weak_refs resulting in compilation warning (llvm-gcc  -Wall)

https://bugzilla.gnome.org/show_bug.cgi?id=664927
2011-11-27 22:34:54 +00:00
Stefan Sauer 52e3861e91 warnings: avoid set-but-unused warnings with load-save disabled 2011-11-27 20:39:42 +01:00
Tim-Philipp Müller 7eb796d447 uri: fix wrong G_GNUC_MALLOC
_get_protocols() points to const memory in 0.10
despite the non-const return value.
2011-11-26 19:45:48 +00:00
Tim-Philipp Müller 2d7f9cfe92 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	gst/gstbuffer.h
	gst/gstbufferlist.h
	gst/gstcaps.h
	gst/gstdatetime.h
	gst/gstelementfactory.h
	gst/gstevent.h
	gst/gstghostpad.h
	gst/gstindexfactory.h
	gst/gstiterator.h
	gst/gstmessage.h
	gst/gstminiobject.h
	gst/gstpipeline.h
	gst/gstquery.h
	gst/gstsegment.h
	gst/gststructure.h
	gst/gsttaglist.h
	gst/gsturi.h
	gst/gstvalue.h
	libs/gst/base/gstbitreader.h
	libs/gst/base/gstbytereader.h
	libs/gst/base/gstbytewriter.h

Note: can't use G_GNUC_MALLOC with GstCaps return
values in 0.11 because of the EMPTY+ANY singletons.
2011-11-26 19:44:23 +00:00
Tim-Philipp Müller c8380cb0d2 gst: sprinkle some G_GNUC_MALLOC
Maybe gcc can do something clever with that, or at least
warn us if we don't save the return value somewhere.
2011-11-26 18:57:44 +00:00
Tim-Philipp Müller 33078aaeb7 buffer: add gst_buffer_{set,get}_qdata()
Allows people/us to attach arbitrary metadata to buffers.

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

API: gst_buffer_set_qdata()
API: get_buffer_get_qdata()
2011-11-25 17:42:07 +00:00
Wim Taymans 933e8b230c pad: fix blocking probe emission
If we are dealing with a blocking probe, only then check if one the
blocking flags of the hook matches.
Add some more debug.
Make the pad unit test less racy.
2011-11-25 07:11:24 +01:00
Wim Taymans fef887639c utils: fix debug of query result 2011-11-25 05:54:09 +01:00
René Stadler 4865607011 query: fix typo in doc
Causes a warning from the introspection scanner.
2011-11-24 22:53:09 +01:00
Sebastian Dröge 0280a3c29f pad: Remove g_warning() if pad accepted caps that are not a subset of the pad caps
This check is correct but unfortunately it's impossible to implement
in a threadsafe way because the caps could have changed in the meantime.

Fixes bug #659606.
2011-11-24 11:15:29 +01:00
Wim Taymans 407f45dc7f event: add STICKY_MULTY events
Add a new event flag for sticky events so that multiple events of that type can
be stored on a pad at the same time. Change the _get_sticky_event() function to
loop over the multiple events of a type.
Change the foreach function to make it possible to removed and modify the sticky
events on a pad.
Use an variable size array now to store the events. This could later be
optimized some more.
2011-11-23 18:05:00 +01:00
Wim Taymans b7e4eeb0b0 bus: handle NULL message src in debug 2011-11-23 18:05:00 +01:00
Wim Taymans 03cdd32b33 bufferlist: avoid reading past the array
When the foreach function told us to remove the buffer from the list, decrease
the length of the array or else we might read past the last item in the array.
2011-11-23 18:05:00 +01:00
Wim Taymans 31b79556b8 pad: take peerpad correctly
Don't take the peerpad too early, it might change because of the
probes.
2011-11-23 08:17:36 +01:00
Wim Taymans dd65aae9a1 pad: rework sticky events
Rewrite sticky events, trying to make it a bit more simple.
When sticky events are pushed on a srcpad, store them in the sticky event
array and mark the event with received = FALSE.
When the sticky event is successfully sent to the peer pad, make
received = TRUE.
Keep a PENDING_EVENTS pad flag that is set when one of the events is in
the received = FALSE state for some reason.
when activating a sinkpad, mark all events received = FALSE on the peer
srcpad.
When pushing a buffer, check the PENDING_EVENTS flag and if it is set, push all
events to the peer pad first.
2011-11-22 18:40:49 +01:00
Wim Taymans 165af7c903 gst: add new flags 2011-11-22 18:40:49 +01:00
Wim Taymans 9c8d323d07 padd return value from _mini_object_replace() 2011-11-22 12:45:41 +01:00
Matej Knopp 6ea74a0572 Fix printf format compiler warnings on OSX/64bit
https://bugzilla.gnome.org/show_bug.cgi?id=664491
2011-11-22 00:51:06 +00:00
Wim Taymans d890017021 pad: fix locking order error 2011-11-21 17:43:51 +01:00
Wim Taymans fda5685a15 ghostpad: fix print format 2011-11-21 17:43:04 +01:00
Wim Taymans 6e0a724394 pad: Add destroy notify to pad functions
Add _full variants of the pad function setters that take a destroy notify.
Make some macros that make the old method name pass NULL to this new
function.
2011-11-21 15:47:01 +01:00
Wim Taymans 2f1ed65339 pad: Merge pad mode activation functions
Add the pad mode to the activate function so that we can reuse the same function
for all activation modes. This makes the core logic smaller and allows for some
elements to make their activation code easier. It would allow us to add more
scheduling modes later without having to add more activate functions.
2011-11-21 13:29:05 +01:00
Wim Taymans 9e3aa102d7 docs: update design doc
also fix default alignment value (0 == no-alignment)
2011-11-18 18:08:21 +01:00
Wim Taymans 770159fb1c query: improve scheduling query
Turns some boolean arguments in the scheduling query to flags, which are easier
to extend and makes the code easier to read.
Make extra methods for configuring and querying the supported scheduling modes.
This should make it easier to add new modes later.
2011-11-18 17:27:16 +01:00
Wim Taymans 016d404ccf query: move flags closer to buffering query 2011-11-18 14:08:45 +01:00
Wim Taymans 39a5e26ea9 pad: add parent to activate functions 2011-11-18 13:54:29 +01:00
Wim Taymans 12d5f03453 pad: fix scheduling mode enums
GstPadActivateMode -> GstPadMode
GST_PAD_ACTIVATE_* -> GST_PAD_MODE_*
2011-11-18 12:39:55 +01:00
Wim Taymans 612b1fbb14 pad: add parent to other functions
Add parent to chain, chain_list, getrange and event functions.
2011-11-17 12:40:45 +01:00
Wim Taymans 361a7ae44d add parent to internal links 2011-11-16 17:49:46 +01:00
Wim Taymans 09a8294d36 pad: add parent to the query function 2011-11-16 17:22:56 +01:00
Wim Taymans 54e1174060 GstPadFlags: rename flags GST_PAD_* -> GST_PAD_FLAG_* 2011-11-16 12:36:51 +01:00
Wim Taymans fe3af1d67b pad: keep the parent alive when requested
Add a new pad flag NEED_PARENT that ensures that the parent of a pad is
reffed and not NULL when the event, query and internal links functions
are called.
When a pad is added to an element automatically make sure the NEED_PARENT flag
is enabled.
2011-11-16 12:08:22 +01:00
Wim Taymans a641b0ce39 don't require parent element to proxy 2011-11-16 10:31:40 +01:00
Wim Taymans f746174c10 pad: move query convenience functions together
Move the caps convenience functions to the other query functions.
2011-11-15 18:16:24 +01:00
Wim Taymans e85198bc32 _query_peer_*() -> _peer_query_*() 2011-11-15 17:50:34 +01:00
Wim Taymans 2358938dbd _accept_caps() -> _query_accept_caps() 2011-11-15 17:40:19 +01:00
Wim Taymans c55962c2d3 _peer_get_caps() -> peer_query_caps() 2011-11-15 17:11:46 +01:00
Wim Taymans d805f0f034 pad: _get_caps() -> _query_caps() 2011-11-15 16:46:37 +01:00
Wim Taymans 28b14092d2 utils: fix docs 2011-11-15 16:16:53 +01:00
Wim Taymans 0796586fce utils: fix the proxy functions
fix the proxy functions for query_accept_caps and query_caps to use the pad
forward helper functions which correctly forwards on the internally linked pads.
2011-11-15 16:13:59 +01:00
Wim Taymans 9b98ef4fed pad: improve some flag macros 2011-11-15 16:13:28 +01:00
Wim Taymans 9f00a24b5e pad: fix debug line 2011-11-15 16:13:15 +01:00
Wim Taymans b5c3e254b1 pad: remove getcaps and use caps query
Remove the getcaps function on the pad and use the CAPS query for
the same effect.
Add PROXY_CAPS to the pad flags. This instructs the default caps event and query
handlers to pass on the CAPS related queries and events. This simplifies a lot
of elements that passtrough caps negotiation.
Make two utility functions to proxy caps queries and aggregate the result. Needs
to use the pad forward function instead later.
Make the _query_peer_ utility functions use the gst_pad_peer_query() function to
make sure the probes are emited properly.
2011-11-15 11:20:48 +01:00
Wim Taymans d162d97e1f query: add caps query 2011-11-14 11:26:17 +01:00