summaryrefslogtreecommitdiff
path: root/gst/gstcaps.h
Commit message (Collapse)AuthorAgeFilesLines
* docs: fix docsWim Taymans2011-09-261-3/+3
|
* init: add _get_type() functionsWim Taymans2011-08-291-0/+2
| | | | | | | | | | Remove gst_mini_object_register() and add a GST_DEFINE_MINI_OBJECT macro to define a _get_type() function for the boxed miniobject. Remove a bunch of custom _get_type() functions and replace them with the miniobject macro. Rename some _init method to _priv_*_initialize() like the rest of them. Inspired by patch from Johan Dahlin and see bug #657603
* caps: add fixate functionWim Taymans2011-08-151-0/+2
| | | | Add a fixate function and use it in gstpad.c
* caps: Hide implementation detailsWim Taymans2011-06-221-5/+3
| | | | | | | | Make the Array of structures private. This should allow us to implement the array more efficiently or with some preallocated structures when we want to later. Add a new method to clean up a static structure so that we can remove some code that pokes into the private bits of the caps.
* caps: remove some custom refcounting methodsWim Taymans2011-06-021-5/+50
| | | | Remove some custom made refcounting methods and use the miniobject ones instead.
* Merge branch 'master' into 0.11Sebastian Dröge2011-05-271-0/+2
|\
| * caps: Add gst_caps_is_subset_structure()Sebastian Dröge2011-05-271-0/+2
| | | | | | | | | | | | | | API: gst_caps_is_subset_structure() This allows to check if a structure is a subset of given caps without allocating a new caps instance for it.
* | caps: fix the macros a littleWim Taymans2011-05-101-2/+3
| |
* | Merge branch 'master' into 0.11Sebastian Dröge2011-05-051-4/+5
|\ \ | |/ | | | | | | | | | | Conflicts: docs/gst/gstreamer-sections.txt gst/gstelementfactory.c gst/gstminiobject.c
| * docs: improve the syntax for the capsintersectmode docsStefan Kost2011-05-031-4/+5
| |
* | Merge branch 'master' into 0.11-fdoWim Taymans2011-03-281-0/+34
|\ \ | |/ | | | | | | | | Conflicts: gst/gst.c libs/gst/base/gstcollectpads.c
| * gstcaps: new API : gst_caps_intersect_fullEdward Hervey2011-03-241-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Just like gst_caps_intersect, but adds a new parameter 'mode' that allows selecting the intersection algorithm to use. Currently we have GST_CAPS_INTERSECT_MODE_ZIG_ZAG (default) and GST_CAPS_INTERSECT_MODE_FIRST. API: gst_caps_intersect_full API: GstCapsIntersectMode API: GST_CAPS_INTERSECT_MODE_ZIG_ZAG API: GST_CAPS_INTERSECT_MODE_FIRST https://bugzilla.gnome.org/show_bug.cgi?id=617045
* | caps: warn when make_writable result is ignoredWim Taymans2011-02-231-1/+1
| |
* | improve type registrationWim Taymans2011-02-231-2/+3
| |
* | fix macrosWim Taymans2011-02-231-1/+1
| |
* | miniobject: make queries a boxed typeWim Taymans2011-02-231-1/+3
| | | | | | | | More minionject stuff.
* | messages: make message a simple boxed typeWim Taymans2011-02-231-11/+78
| |
* | miniobject: work on making caps a boxed typeWim Taymans2011-02-231-3/+36
| | | | | | | | More work on making miniobject a simple allocated struct.
* | miniobject: make miniobject a boxed typeWim Taymans2011-02-231-11/+2
| | | | | | | | First attempt at making miniobject a simple boxed type.
* | remove deprecated symbols and methodsWim Taymans2010-12-061-21/+0
|/
* gstxml: Deprecate GstXml and related functionsSebastian Dröge2010-06-251-1/+1
| | | | | | | | | Pipeline serialisation to and from XML is horribly broken for all but the most simple use cases, and will likely never be fixed. Make sure everyone playing around with these tools is aware of this, to avoid frustration. See countless bug reports in bugzilla. Fixes bug #622685.
* gstcaps: New gst_caps_steal_structure() methodEdward Hervey2010-06-141-0/+2
| | | | | | | | | | This allows removing structures from caps without them being freed. Helpful when plugins need to move around structures without having to do an expensive structure copy. API:gst_caps_steal_structure https://bugzilla.gnome.org/show_bug.cgi?id=621527
* caps: Use G_GNUC_WARN_UNUSED_RESULT for make_writable()Benjamin Otte2010-04-291-1/+1
| | | | | | | | | | People often call gst_caps_make_writable (caps); instead of caps = gst_caps_make_writable (caps); and cause a bug. Warning about an unused return value helps here. See https://bugzilla.gnome.org/show_bug.cgi?id=616541#c2 for an example.
* Improve caps setters APIBenjamin Otte2009-10-151-0/+3
| | | | | | | | | | | | | | | | | | | | This patch adds gst_caps_set_value() and allows gst_caps_set_simple() to work on non-simple caps. See the API documentation for the functions about what they do. The intention of these changes is to ease working with caps in caps transform functions. An example for this would be ffmpegcolorspace, where the caps transform function could be changed to look roughly like this (pseudocode ahead): result = gst_caps_copy (template_caps); value = gst_structure_get_value (gst_caps_get_structure (caps, 0), "widh"); gst_caps_set_value (result, value); /* same for height, framerate and par */ return caps; which is much cleaner and easier to understand than the current code. https://bugzilla.gnome.org/show_bug.cgi?id=597690
* caps: add gst_caps_can_intersect()Stefan Kost2009-08-061-0/+2
| | | | | | Often we don't need the result of the intersection. Add a variant that only tries to intersect. It can break out earlier and does less GValue copying. API: gst_caps_can_intersect()
* gst/gstcaps.*: Constify the field gchar * params in set_simple and friends.José Alburquerque2008-03-241-2/+2
| | | | | | | | | | Original commit message from CVS: Patch by: José Alburquerque <jaalburqu at svn dot gnome dot org> * gst/gstcaps.c: (gst_caps_set_simple), (gst_caps_set_simple_valist), (gst_caps_intersect): * gst/gstcaps.h: Constify the field gchar * params in set_simple and friends. Fixes #522326.
* gst/gstcaps.h: Add extra initialisers for Caps things, to fix some plugin ↵Jan Schmidt2006-09-201-1/+2
| | | | | | | | | warnings when using -Wextra Original commit message from CVS: * gst/gstcaps.h: Add extra initialisers for Caps things, to fix some plugin warnings when using -Wextra
* gst/gstcaps.*: Fix docs and indentation again.Wim Taymans2006-08-281-33/+33
| | | | | | | | | Original commit message from CVS: * gst/gstcaps.c: (gst_caps_merge_structure): * gst/gstcaps.h: Fix docs and indentation again. * tests/check/gst/gstquery.c: (GST_START_TEST): Fix leak in tests and add some more tests.
* implement caps merging (fixes #352580)Stefan Kost2006-08-241-0/+2
| | | | | | | | | | | | | Original commit message from CVS: * docs/gst/gstreamer-sections.txt: * gst/gstcaps.c: (gst_caps_structure_is_subset_field), (gst_caps_structure_is_subset), (gst_caps_merge), (gst_caps_merge_structure): * gst/gstcaps.h: * libs/gst/base/gstbasetransform.c: (gst_base_transform_transform_caps): * tests/check/gst/gstcaps.c: (GST_START_TEST), (gst_caps_suite): implement caps merging (fixes #352580)
* API: Add gst_caps_merge() and use it in basetransform, fixes #345444 in a ↵Stefan Kost2006-08-211-56/+58
| | | | | | | | | | | | | | better way Original commit message from CVS: * docs/gst/gstreamer-sections.txt: * gst/gstcaps.c: (gst_structure_is_equal_foreach), (gst_caps_merge): * gst/gstcaps.h: * libs/gst/base/gstbasetransform.c: (gst_base_transform_transform_caps): API: Add gst_caps_merge() and use it in basetransform, fixes #345444 in a better way
* docs/gst/gstreamer-sections.txt: Add GstClockClass vmethod docs.Wim Taymans2006-08-111-1/+2
| | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: * docs/gst/gstreamer-sections.txt: Add GstClockClass vmethod docs. * gst/gstcaps.h: Mark #endif with comment for associated #if * gst/gstclock.c: (gst_clock_id_wait): * gst/gstclock.h: Add vmethod wait_jitter to avoid an unneeded _get_time() for most clock implementations. Document vmethods. Flesh out docs about resolution methods. API: GstClockClass::wait_jitter * gst/gstsystemclock.c: (gst_system_clock_class_init), (gst_system_clock_async_thread), (gst_system_clock_id_wait_jitter_unlocked), (gst_system_clock_id_wait_jitter): Use base class wait_jitter variant for improved performance due to less clock polling.
* gst/gstcaps.*: Added gpointer GType for GstStaticCaps so we can wrap them in ↵Edward Hervey2005-12-201-0/+3
| | | | | | | | | | | | | bindings. Original commit message from CVS: * gst/gstcaps.c: (gst_static_caps_get_type): * gst/gstcaps.h: Added gpointer GType for GstStaticCaps so we can wrap them in bindings. * gst/gstpadtemplate.c: (gst_static_pad_template_get_type): * gst/gstpadtemplate.h: Added gpointer GType for GstStaticPadTemplate so we can wrap them in bindings.
* gst/: Add glib-compat.h.Andy Wingo2005-11-211-0/+1
| | | | | | | | | Original commit message from CVS: 2005-11-21 Andy Wingo <wingo@pobox.com> * gst/gsttaglist.h: * gst/gstcaps.h: * gst/gststructure.h: Add glib-compat.h.
* gst/: Sprinkle NULL_TERMINATED to taste.Andy Wingo2005-11-211-1/+1
| | | | | | | | | | | Original commit message from CVS: 2005-11-21 Andy Wingo <wingo@pobox.com> * gst/gsttagsetter.h: * gst/gsttaglist.h: * gst/gststructure.h: * gst/gstcaps.h: * gst/gstutils.h: Sprinkle NULL_TERMINATED to taste.
* Make a proper enum of the flag.Wim Taymans2005-11-201-6/+12
| | | | | | | Original commit message from CVS: * docs/design/part-TODO.txt: * gst/gstcaps.h: Make a proper enum of the flag.
* docs/design/part-TODO.txt: Some more items for the TODOWim Taymans2005-11-091-2/+20
| | | | | | | | | | Original commit message from CVS: * docs/design/part-TODO.txt: Some more items for the TODO * gst/gstcaps.c: * gst/gstcaps.h: Document GstCaps.
* more docs addedStefan Kost2005-11-041-0/+12
| | | | | | | | | | | Original commit message from CVS: * docs/gst/gstreamer-sections.txt: * gst/gstcaps.h: * gst/gstinfo.c: * gst/gstminiobject.h: * gst/gstobject.h: * gst/gstutils.h: more docs added
* signedness fixesThomas Vander Stichele2005-10-151-3/+3
| | | | | Original commit message from CVS: signedness fixes
* various doc fixesThomas Vander Stichele2005-09-111-18/+10
| | | | | Original commit message from CVS: various doc fixes
* docs/design/part-messages.txt: update infoStefan Kost2005-08-271-0/+60
| | | | | | | | | | | | | | | | | Original commit message from CVS: * docs/design/part-messages.txt: update info * docs/gst/tmpl/.cvsignore: * docs/gst/tmpl/gstcaps.sgml: * docs/gst/tmpl/gstclock.sgml: * gst/gstbus.c: * gst/gstcaps.c: * gst/gstcaps.h: * gst/gstclock.c: * gst/gstclock.h: * gst/gstmessage.c: added descriptions for bus and message inline caps and clock docs
* check/: add a test that does a bunch of state changes on elements needs some ↵Thomas Vander Stichele2005-08-241-0/+3
| | | | | | | | | | | | | | | | | | fixing for valgrind Original commit message from CVS: * check/Makefile.am: * check/generic/states.c: (GST_START_TEST), (states_suite), (main): add a test that does a bunch of state changes on elements needs some fixing for valgrind * check/states/sinks.c: (gst_object_suite): whitespace * gst/gstcaps.h: add prototype for gst_caps_is_equal_fixed * gst/gstplugin.c: * gst/gstregistrypool.c: doc fixes
* gst/gstbuffer.c: some debuggingThomas Vander Stichele2005-08-231-6/+6
| | | | | | | | | | | | | | | Original commit message from CVS: * gst/gstbuffer.c: (gst_buffer_new_and_alloc): some debugging * gst/gstcaps.h: whitespace fixes * gst/gstpad.c: (gst_pad_activate_push), (gst_pad_alloc_buffer): more debugging * gst/gststructure.c: (gst_caps_structure_fixate_field_boolean): * gst/gststructure.h: add a fixate function for booleans; add a FIXME that these func names should probably be gst_structure_fixate_*
* gst/gstcaps.h (gst_caps_is_simple): Removed deprecated macro (#157311).Andy Wingo2005-07-151-1/+0
| | | | | | | | Original commit message from CVS: 2005-07-15 Andy Wingo <wingo@pobox.com> * gst/gstcaps.h (gst_caps_is_simple): Removed deprecated macro (#157311).
* tools/gst-typefind.c: Update, add copyright block.Andy Wingo2005-07-151-0/+1
| | | | | | | | | | | | | | Original commit message from CVS: 2005-07-15 Andy Wingo <wingo@pobox.com> * tools/gst-typefind.c: Update, add copyright block. * gst/base/gstbasesrc.c (gst_base_src_default_negotiate): Normalize and truncate caps before fixation. * gst/gstcaps.h: * gst/gstcaps.c (gst_caps_truncate): New function, destructively discards all but the first structure from its argument.
* tests/network-clock.scm: Commentary update.Andy Wingo2005-07-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: 2005-07-01 Andy Wingo <wingo@pobox.com> * tests/network-clock.scm: Commentary update. * gst/elements/gstidentity.c (PROP_DUPLICATE): Gone daddy gone. Didn't really make sense, not implementable with basetransform, etc. (gst_identity_transform): Unref inbuf via make_writable. Feeble attempt at implementing the sync property, needs an unlock method. * gst/base/gstbasetransform.c (gst_base_transform_transform_caps): New func, by default returns the same caps (the identity transformation). (gst_base_transform_getcaps): Uses transform_caps to return something sensible. (gst_base_transform_setcaps): Complicated logic to get caps on both pads, even if they are different, and to call set_caps once for every time both pads get their caps set. (gst_base_transform_handle_buffer): Give the ref to the transform function. Allows in-place modification of the buffer. * gst/base/gstbasetransform.h (transform_caps): New class method. Given caps on one side, what can I do on the other. (set_caps): Take two caps, one for each side of the element. * gst/gstpad.h: * gst/gstpad.c (gst_pad_fixate_caps): Change prototype to modify caps in place. This is safe because we can check the mutability of the caps, and a good idea because fixate functions are just called as a matter of last resort. (Not actually implemented.) (gst_pad_set_caps): If the caps we're setting is actually the same as the existing pad caps, just update the pointer without calling setcaps. Assert that caps is either NULL or fixed, as per the docs. * gst/gstghostpad.c: Update for fixate changes.
* Convert everything from GstAtomicInt to g_atomic_int_*, and remove gstatomic.David Schleef2005-04-241-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: Convert everything from GstAtomicInt to g_atomic_int_*, and remove gstatomic. * gst/Makefile.am: * gst/gstatomic.c: * gst/gstatomic.h: * gst/gstatomic_impl.h: * gst/gstbuffer.c: * gst/gstcaps.c: * gst/gstcaps.h: * gst/gstclock.c: * gst/gstclock.h: * gst/gstdata.c: * gst/gstdata.h: * gst/gstdata_private.h: * gst/gstevent.c: * gst/gstinfo.c: * gst/gstinfo.h: * gst/gstmessage.c: * gst/gstobject.c: * gst/gstobject.h: * gst/gststructure.c: * gst/gststructure.h: * gst/gstutils.c: Add gst_atomic_int_set() compaitibility function. * gst/gstutils.h:
* Next big merge.Wim Taymans2005-03-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: Next big merge. Added GstBus for mainloop integration. Added GstMessage for sending notifications on the bus. Added GstTask as an abstraction for pipeline entry points. Removed GstThread. Removed Schedulers. Simplified GstQueue for multithreaded core. Made _link threadsafe, removed old capsnego. Added STREAM_LOCK and PREROLL_LOCK in GstPad. Added pad blocking functions. Reworked scheduling functions in GstPad to prepare for scheduling updates soon. Moved events out of data stream. Simplified GstEvent types. Added return values to push/pull. Removed clocking from GstElement. Added prototypes for state change function for next merge. Removed iterate from bins and state change management. Fixed some elements, disabled others for now. Fixed -inspect and -launch. Added check for GstBus.
* Doc updates.Wim Taymans2005-03-101-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: * docs/design/part-MT-refcounting.txt: * docs/design/part-clocks.txt: * docs/design/part-gstelement.txt: * docs/design/part-gstobject.txt: * docs/design/part-standards.txt: * gst/gstbin.c: (gst_bin_add_func), (gst_bin_add), (gst_bin_remove_func), (gst_bin_remove): * gst/gstbin.h: * gst/gstbuffer.c: * gst/gstcaps.h: * testsuite/clock/clock1.c: (main): * testsuite/clock/clock2.c: (gst_clock_debug), (element_wait), (main): * testsuite/dlopen/loadgst.c: (do_test): * testsuite/refcounting/bin.c: (add_remove_test1), (add_remove_test2), (main): * testsuite/refcounting/element.c: (main): * testsuite/refcounting/element_pad.c: (main): * testsuite/refcounting/pad.c: (main): * tools/gst-launch.c: (sigint_handler_sighandler): * tools/gst-typefind.c: (main): Doc updates. Added doc about clock. removed gst_bin_iterate_recurse_up(), marked methods for removal. Fix more testsuites.
* First THREADED backport attempt, focusing on adding locks and making sure ↵Wim Taymans2005-03-071-14/+20
| | | | | | | | | the API is threadsafe. Needs more work. Mor... Original commit message from CVS: First THREADED backport attempt, focusing on adding locks and making sure the API is threadsafe. Needs more work. More docs follow this week.
* revert preferred capsThomas Vander Stichele2004-09-261-19/+3
| | | | | Original commit message from CVS: revert preferred caps