Commit graph

158 commits

Author SHA1 Message Date
Benjamin Otte
31832d3c21 caps: Use G_GNUC_WARN_UNUSED_RESULT for make_writable()
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.
2010-04-29 22:41:36 +02:00
Benjamin Otte
0ff4086507 Improve caps setters API
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
2009-10-15 19:10:50 +02:00
Stefan Kost
568202cb47 caps: add gst_caps_can_intersect()
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()
2009-08-06 15:30:33 +03:00
José Alburquerque
126b82fc47 gst/gstcaps.*: Constify the field gchar * params in set_simple and friends.
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.
2008-03-24 10:33:41 +00:00
Jan Schmidt
60fa209cbd gst/gstcaps.h: Add extra initialisers for Caps things, to fix some plugin 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
2006-09-20 16:17:26 +00:00
Wim Taymans
a0dbcd9ee4 gst/gstcaps.*: Fix docs and indentation again.
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.
2006-08-28 16:39:20 +00:00
Stefan Kost
fc8d184bba implement caps merging (fixes #352580)
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)
2006-08-24 10:40:31 +00:00
Stefan Kost
38d2d33f22 API: Add gst_caps_merge() and use it in basetransform, fixes #345444 in a 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
2006-08-21 14:54:31 +00:00
Wim Taymans
f0eeee3342 docs/gst/gstreamer-sections.txt: Add GstClockClass vmethod docs.
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.
2006-08-11 15:24:03 +00:00
Edward Hervey
bd97cc0541 gst/gstcaps.*: Added gpointer GType for GstStaticCaps so we can wrap them in 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.
2005-12-20 11:12:53 +00:00
Andy Wingo
f641e8a9fe gst/: Add glib-compat.h.
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.
2005-11-21 19:58:23 +00:00
Andy Wingo
fd6ca0191b gst/: Sprinkle NULL_TERMINATED to taste.
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.
2005-11-21 18:41:39 +00:00
Wim Taymans
deacfd8e89 Make a proper enum of the flag.
Original commit message from CVS:
* docs/design/part-TODO.txt:
* gst/gstcaps.h:
Make a proper enum of the flag.
2005-11-20 13:28:11 +00:00
Wim Taymans
692ec0dd30 docs/design/part-TODO.txt: Some more items for the TODO
Original commit message from CVS:
* docs/design/part-TODO.txt:
Some more items for the TODO

* gst/gstcaps.c:
* gst/gstcaps.h:
Document GstCaps.
2005-11-09 12:01:46 +00:00
Stefan Kost
fd15eb56af more docs added
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
2005-11-04 20:12:01 +00:00
Thomas Vander Stichele
58db19c2e7 signedness fixes
Original commit message from CVS:
signedness fixes
2005-10-15 00:12:22 +00:00
Thomas Vander Stichele
9b3e3a2613 various doc fixes
Original commit message from CVS:
various doc fixes
2005-09-11 12:57:36 +00:00
Stefan Kost
c73b03243a docs/design/part-messages.txt: update info
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
2005-08-27 10:57:00 +00:00
Thomas Vander Stichele
6ed334f0f8 check/: add a test that does a bunch of state changes on elements needs some 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
2005-08-24 16:09:50 +00:00
Thomas Vander Stichele
4b0a255e95 gst/gstbuffer.c: some debugging
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_*
2005-08-23 11:38:28 +00:00
Andy Wingo
1ac0654d11 gst/gstcaps.h (gst_caps_is_simple): Removed deprecated macro (#157311).
Original commit message from CVS:
2005-07-15  Andy Wingo  <wingo@pobox.com>

* gst/gstcaps.h (gst_caps_is_simple): Removed deprecated macro
(#157311).
2005-07-15 16:10:41 +00:00
Andy Wingo
ad1970eae2 tools/gst-typefind.c: Update, add copyright block.
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.
2005-07-15 11:04:18 +00:00
Andy Wingo
c1d34b8acf tests/network-clock.scm: Commentary update.
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.
2005-07-01 16:46:59 +00:00
David Schleef
46e13eb5e2 Convert everything from GstAtomicInt to g_atomic_int_*, and remove gstatomic.
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:
2005-04-24 22:49:45 +00:00
Wim Taymans
c2f41a8906 Next big merge.
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.
2005-03-21 17:34:02 +00:00
Wim Taymans
007cff6d75 Doc updates.
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.
2005-03-10 12:51:45 +00:00
Wim Taymans
c47dc4d853 First THREADED backport attempt, focusing on adding locks and making sure 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.
2005-03-07 18:27:42 +00:00
Thomas Vander Stichele
3cd8266b12 revert preferred caps
Original commit message from CVS:
revert preferred caps
2004-09-26 17:35:08 +00:00
David Schleef
aa6049eb61 docs/gst/Makefile.am: Remove --ignore-fail-on-non-empty (#150331)
Original commit message from CVS:
* docs/gst/Makefile.am: Remove --ignore-fail-on-non-empty (#150331)
* docs/libs/Makefile.am: same
* docs/gst/tmpl/gstxml.sgml: Remove GstXMLNs
* docs/random/ds/0.9-planning: random additions
* docs/random/ds/0.9-suggested-changes: same
* gst/gstxml.h: remove vestigal GstXMLNs definition
Preferred caps: (#147789)
* docs/gst/gstreamer-sections.txt: Add symbols
* docs/gst/tmpl/gstcaps.sgml: Add symbols
* gst/gstcaps.c: (gst_caps_copy), (gst_caps_free),
(gst_caps_append), (gst_caps_copy_1), (gst_caps_intersect),
(gst_caps_union), (gst_caps_save_thyself), (gst_caps_load_thyself),
(gst_caps_get_preferred), (gst_caps_set_preferred),
(gst_caps_get_structure_by_id), (gst_caps_prefer_foreach),
(gst_caps_use_preferred): Handle caps preferences
* gst/gstcaps.h: Add caps preferences
* gst/gstpad.c: (gst_pad_link_get_preferred),
(gst_pad_link_fixate), (gst_pad_link_call_link_functions),
(gst_pad_renegotiate), (gst_pad_guess_preferred),
(gst_pad_get_caps), (gst_pad_push):  Use caps preferences for
negotiation.
2004-08-18 21:46:55 +00:00
David Schleef
5f370a6455 gst/gstcaps.c: Patch from Tim-Philipp Müller to fix GST_CAPS() and GST_IS_CAPS(). (bug #141304)
Original commit message from CVS:
* gst/gstcaps.c: (gst_caps_copy), (gst_caps_free),
(gst_caps_append), (gst_caps_append_structure),
(gst_caps_get_size), (gst_caps_get_structure), (gst_caps_copy_1),
(gst_caps_set_simple), (gst_caps_set_simple_valist),
(gst_caps_is_any), (gst_caps_is_empty), (gst_caps_is_chained),
(gst_caps_is_fixed), (gst_caps_is_always_compatible),
(gst_caps_intersect), (gst_caps_normalize),
(gst_caps_transform_to_string):  Patch from Tim-Philipp Müller
to fix GST_CAPS() and GST_IS_CAPS(). (bug #141304)
* gst/gstcaps.h: use GST_IS_CAPS().
2004-04-28 20:19:46 +00:00
Benjamin Otte
bb1302b533 gst/gstcaps.c: fix simplifying and subtracting not working correctly with optional properties solve assorted problems...
Original commit message from CVS:
* gst/gstcaps.c: (gst_caps_structure_subtract_field),
(gst_caps_structure_subtract), (gst_caps_subtract),
(gst_caps_structure_figure_out_union),
(gst_caps_structure_simplify), (gst_caps_do_simplify):
fix simplifying and subtracting not working correctly with optional
properties
solve assorted problems that make it now simplify ebven more
* docs/gst/tmpl/gstcaps.sgml:
* gst/gstcaps.h:
make gst_caps_do_simplify return a bool to indicate if it simplified
* testsuite/caps/simplify.c: (main):
add more checks. The tests is quite a bit useless right now because
the core is heavily simplifying itself.
* testsuite/caps/caps.h:
fix caps to contain all optional properties
2004-04-22 23:50:46 +00:00
Benjamin Otte
d7c64c071b gst/gstcaps.c: fix bug when converting from empty string.
Original commit message from CVS:
* gst/gstcaps.c: (gst_caps_from_string_inplace):
fix bug when converting from empty string.
* gst/gstcaps.c: (gst_caps_new_any), (gst_caps_new_simple),
(gst_caps_new_full_valist), (gst_caps_copy), (gst_caps_copy_1):
use gst_caps_new_empty to allocate a new caps. Only that function
allocates memory for caps now.
* gst/gstcaps.c: (gst_caps_remove_and_get_structure),
(gst_caps_remove_structure):
add ability to remove one structure (but not to header yet)
* gst/gstcaps.c: (gst_caps_compare_structures),
(gst_caps_simplify), (gst_caps_structure_figure_out_union),
(gst_caps_structure_simplify), (gst_caps_do_simplify),
* gst/gstcaps.h:
add gst_caps_do_simplify that tries to simplify a caps in place.
Deprecate old gst_caps_simplify function.
* testsuite/caps/caps.h:
add caps.h containing a common set of caps to test against.
* testsuite/caps/sets.c: (check_caps), (main):
use it.
* testsuite/caps/.cvsignore:
* testsuite/caps/Makefile.am:
* testsuite/caps/simplify.c: (check_caps), (main):
add test to check correctness and efficency of caps simplification.
2004-04-22 02:35:13 +00:00
Benjamin Otte
614b4d1627 gst/gstcaps.c: check for ANY caps before appending/unioning
Original commit message from CVS:
* gst/gstcaps.c: (gst_caps_append), (gst_caps_union):
check for ANY caps before appending/unioning
* gst/gstcaps.c: (gst_caps_is_subset),
(gst_caps_is_equal), (gst_caps_structure_subtract_field),
(gst_caps_structure_subtract), (gst_caps_subtract):
* gst/gstcaps.h:
add gst_caps_is_equal, gst_caps_is_subset and gst_caps_subtract to
the API. deprecate gst_caps_is_equal_fixed
* gst/gstpad.c: (gst_pad_try_set_caps):
* gst/gstqueue.c: (gst_queue_link):
s/gst_caps_is_equal_fixed/gst_caps_is_equal/
* gst/gststructure.c: (gst_structure_get_name_id):
* gst/gststructure.h:
add function gst_structure_get_name_id
* gst/gstvalue.c: (gst_value_subtract_int_int_range),
(gst_value_create_new_range), (gst_value_subtract_int_range_int),
(gst_value_subtract_int_range_int_range),
(gst_value_subtract_double_double_range),
(gst_value_subtract_double_range_double),
(gst_value_subtract_double_range_double_range),
(gst_value_subtract_from_list), (gst_value_subtract_list),
(gst_value_can_intersect), (gst_value_subtract),
(gst_value_can_subtract), (gst_value_register_subtract_func),
(_gst_value_initialize):
* gst/gstvalue.h:
add support for subtracting values from each other. Note that
subtracting means subtracting as in set theory. Required for caps
stuff above.
* testsuite/caps/.cvsignore:
* testsuite/caps/Makefile.am:
* testsuite/caps/erathostenes.c: (erathostenes), (main):
* testsuite/caps/sets.c: (check_caps), (main):
* testsuite/caps/subtract.c: (check_caps), (main):
add tests for subtraction and equality code.
2004-04-21 03:25:13 +00:00
David Schleef
8ce063f780 docs/gst/Makefile.am: Disable a bunch of headers from being scanned
Original commit message from CVS:
* docs/gst/Makefile.am:  Disable a bunch of headers from being scanned
* docs/gst/gstreamer-docs.sgml:  More hacking
* docs/gst/gstreamer-sections.txt:
* docs/gst/tmpl/cothreads_compat.sgml:
* docs/gst/tmpl/gstcaps.sgml:
* docs/gst/tmpl/gstclock.sgml:
* docs/gst/tmpl/gstelement.sgml:
* docs/gst/tmpl/gstevent.sgml:
* docs/gst/tmpl/gstpad.sgml:
* docs/gst/tmpl/gstutils.sgml:
* docs/gst/tmpl/gstxml.sgml:
* docs/gst/tmpl/gthread-cothreads.sgml:
* docs/random/ds/0.9-suggested-changes:
* gst/elements/gstfakesink.h: doc fixes
* gst/elements/gstfakesrc.h: doc fixes
* gst/gstcaps.c: doc fixes
* gst/gstcaps.h: doc fixes
* gst/gstelement.c: doc fixes
* gst/gstelement.h: doc fixes
* gst/gstindex.c: doc fixes
* gst/gstinfo.c: doc fixes
* gst/gstpad.c: doc fixes
* gst/gstpad.h: doc fixes
* gst/gstplugin.c: doc fixes
* gst/gsttypefind.h: doc fixes
* gst/gsturi.c: doc fixes
* gst/gstvalue.c: doc fixes
2004-03-30 07:36:19 +00:00
Thomas Vander Stichele
982e1f69c1 add padding
Original commit message from CVS:
add padding
2004-03-15 22:42:34 +00:00
Johan Dahlin
ecd88e381d Revert again, this time without post-commit reindent hooks to put back the indentation :-)
Original commit message from CVS:
Revert again, this time without post-commit reindent hooks
to put back the indentation :-)
2004-03-15 14:43:35 +00:00
Thomas Vander Stichele
a967370df5 gst-indent run on core
Original commit message from CVS:
gst-indent run on core
2004-03-13 15:27:01 +00:00
David Schleef
365e091451 gst/gstcaps.h: jdahlin, what are you smoking? We can't just change API right now! Readd gst_caps_is_simple() macro.
Original commit message from CVS:
* gst/gstcaps.h: jdahlin, what are you smoking?  We can't just
change API right now!  Readd gst_caps_is_simple() macro.
* gst/gstelement.c: (gst_element_base_class_finalize): Fix
uninitialized variable.  I'd bet this caused crashes.
* gst/gstinfo.c: (gst_debug_print_object):  Fix 64-bit cleanliness.
2004-03-13 00:14:46 +00:00
Johan Dahlin
37d2e6d087 gst/gst.c (init_post): call gst_caps_get_type() instead of _gst_caps_initalize()
Original commit message from CVS:
* gst/gst.c (init_post): call gst_caps_get_type() instead of
_gst_caps_initalize()

* gst/gstcaps.c: Style fixes, stay closer to glib and friends
(_gst_caps_initialize): Remove, in favor for gst_caps_get_type()

* gst/gstcaps.h (GST_CAPS_IS_SIMPLE): Capitalize macro
* gst/gstcaps.h: Clean up
2004-03-12 19:32:26 +00:00
Johan Dahlin
82d5ac58c4 gst/gstcaps.h (GST_CAPS_IS_SIMPLE): Capitalize macro
Original commit message from CVS:
* gst/gstcaps.h (GST_CAPS_IS_SIMPLE): Capitalize macro
* gst/gstcaps.h: Clean up
2004-03-12 18:25:07 +00:00
Ramon Garcia Fernandez
1f920b1def Reverted changes made to fix unsigned-signed warnings after hearing comments on IRC. Thans to teus
Original commit message from CVS:
Reverted changes made to fix unsigned-signed warnings after hearing comments on IRC. Thans to teus
2004-02-07 15:37:21 +00:00
Ramon Garcia Fernandez
4d5e52a00f fixed compilation warnings of comparison between signed and unsigned
Original commit message from CVS:
fixed compilation warnings of comparison between signed and unsigned
2004-02-07 13:34:27 +00:00
Benjamin Otte
f3c9c3493d gst/: put reverted patch back in
Original commit message from CVS:
2004-02-06  Benjamin Otte  <in7y118@public.uni-hamburg.de>

* gst/gstcaps.h:
* gst/gstelement.c: (gst_element_base_class_init),
(gst_element_class_set_details), (gst_element_clear_pad_caps):
* gst/gstpad.c: (gst_pad_link_intersect), (gst_pad_link_fixate),
(gst_pad_try_set_caps), (gst_pad_can_link_filtered),
(gst_real_pad_dispose):
* gst/gststructure.c: (gst_structure_free),
(gst_structure_from_string):
put reverted patch back in
* gst/gstelement.c: (gst_element_remove_pad):
free explicit caps if they're set
* gst/gstpad.c: (_gst_pad_default_fixate_func):
copy the structure when fixating
2004-02-05 23:46:13 +00:00
Thomas Vander Stichele
6fb4c764af revert patch that breaks applications revert this patch after release so everything can be fixed properly
Original commit message from CVS:
revert patch that breaks applications
revert this patch after release so everything can be fixed properly
2004-02-05 13:32:09 +00:00
David Schleef
ad3863ac5e docs/random/ds/0.9-suggested-changes: random notes
Original commit message from CVS:
* docs/random/ds/0.9-suggested-changes: random notes
* gst/elements/gstfakesrc.c: (gst_fakesrc_get_formats),
(gst_fakesrc_get_query_types), (gst_fakesrc_get_event_mask):
Replace GST_PAD_EVENT_MASK_FUNCTION() (et al.) with its
expansion.
* gst/elements/gstfilesink.c: (gst_filesink_get_formats),
(gst_filesink_get_query_types): same
* gst/elements/gstfilesrc.c: (gst_filesrc_get_event_mask),
(gst_filesrc_get_query_types), (gst_filesrc_get_formats): same
* gst/gstcaps.h: deprecate GST_DEBUG_CAPS(), and fix the macro
to use new GST_PTR_FORMAT.
* gst/gstelement.h: deprecate function factory macros
GST_ELEMENT_QUERY_TYPE_FUNCTION(), GST_ELEMENT_EVENT_MASK_FUNCTION().
These are our last variadic macros that can't be replaced with
inlines.  Celebrate!  Also fix a typo in an #ifdef that was
attempting to deprecate gst_element_clock_wait().
* gst/gstevent.h: same
* gst/gstpad.c: (gst_pad_link_intersect), (gst_pad_link_fixate),
(gst_pad_try_set_caps): replace GST_DEBUG_CAPS() with GST_DEBUG()
* gst/gstpad.h: deprecate function factory macros similar to above.
2004-02-04 19:38:33 +00:00
David Schleef
a5834649c7 gst/gstcaps.h: Added gst_caps_is_simple() macro.
Original commit message from CVS:
* gst/gstcaps.h:
Added gst_caps_is_simple() macro.
* testsuite/caps/caps.c: (test1):
* testsuite/caps/intersect2.c: (main):
* testsuite/caps/intersection.c: (main):
Fixes to make 'make check' work again after removing
gst_caps_is_chained().
2004-01-16 00:58:06 +00:00
David Schleef
2ae2ed523d gst/gstcaps.c: Add lots of documentation.
Original commit message from CVS:
* gst/gstcaps.c:
Add lots of documentation.
* gst/gstcaps.h:
Deprecate a few functions.
* gst/gstpad.c:
Removed use of deprecated functions.
2004-01-15 09:03:42 +00:00
David Schleef
a77e6e35e4 gst/gstcaps.c: Add new function.
Original commit message from CVS:
* gst/gstcaps.c: (_gst_structure_is_equal_foreach),
(gst_caps_is_equal_fixed): Add new function.
* gst/gstcaps.h: ditto.
* gst/gstpad.c: (gst_real_pad_class_init),
(gst_pad_link_call_link_functions), (gst_pad_try_set_caps),
(gst_pad_set_explicit_caps), (gst_pad_get_caps):  In try_set_caps,
check new caps against existing caps -- if they're the same, return
OK without renegotiating.  caps-nego-failed signal fixed so that
the marshaller isn't VOID__OBJECT.  Also changed to G_TYPE_POINTER
to save an extra caps copy.  Don't complete negotiation if a pad
link function returns DELAYED.
2004-01-02 23:04:14 +00:00
David Schleef
cd1d72deb2 gst/gstcaps.*: Add simplify function
Original commit message from CVS:
* gst/gstcaps.c: (gst_caps_normalize), (simplify_foreach),
(gst_caps_structure_simplify), (gst_caps_simplify):
* gst/gstcaps.h:
Add simplify function
* gst/gstpad.c: (gst_pad_link_try), (gst_pad_try_set_caps),
(gst_pad_perform_negotiate), (gst_pad_is_negotiated):
* gst/gstpad.h:
Copy over srcnotify, sinknotify when calling old pad_link
functions.  Add new is_negotiated() function.
* gst/gststructure.c: (gst_structure_copy):
Fix an incredibly stupid bug that should have been noticed
weeks ago.  _copy() returned the argument, not the new copy.
2003-12-30 04:59:48 +00:00
Benjamin Otte
9df878658c gst/gstcaps.c: add sanity checks
Original commit message from CVS:
2003-12-27  Benjamin Otte  <in7y118@public.uni-hamburg.de>

* gst/gstcaps.c: (gst_caps_append):
add sanity checks
* gst/gstcaps.h: (gst_caps_debug):
remove, it doesn't exist anymore.
* gst/gstelement.c: (gst_element_threadsafe_properties_pre_run),
(gst_element_threadsafe_properties_post_run):
make debugging messages not clutter up THREAD debug category
(gst_element_negotiate_pads), (gst_element_clear_pad_caps),
(gst_element_change_state):
update to new caps API
* gst/gstinterface.c: (gst_implements_interface_cast):
don't put vital code in g_return_if_fail
* gst/gstpad.c: (gst_pad_link_try), (gst_pad_try_set_caps),
(gst_pad_link_filtered):
add pst_pad_try_link and use it.
(gst_pad_perform_negotiate), (gst_pad_renegotiate):
implement correctly, deprecate first one.
(gst_pad_link_unnegotiate), (gst_pad_unnegotiate):
add and implement.
(gst_pad_try_relink_filtered), (gst_pad_relink_filtered):
implement.
(gst_pad_get_negotiated_caps):
add and implement. Make GST_PAD_CAPS call this function.
(gst_pad_get_caps):
remove unneeded check..
(gst_pad_recover_caps_error):
disable, always return FALSE.
(gst_real_pad_dispose):
don't free caps and appfilter anymore, they're unused.
* gst/gstpad.h:
Reflect changes mentioned above.
* gst/gstsystemclock.c: (gst_system_clock_wait):
Make 'clock is way behind' a debugging message.
* gst/gstthread.c: (gst_thread_change_state):
Fix debugging message
2003-12-27 13:51:31 +00:00
David Schleef
6150b02001 rename gstcaps2.[ch] to gstcaps.[ch]
Original commit message from CVS:
rename gstcaps2.[ch] to gstcaps.[ch]
2003-12-22 01:58:20 +00:00
David Schleef
8c9cd079d4 Merge CAPS branch
Original commit message from CVS:
Merge CAPS branch
2003-12-22 01:39:35 +00:00
Benjamin Otte
3235f1d4c0 merge TYPEFIND branch. Major changes:
Original commit message from CVS:
merge TYPEFIND branch. Major changes:
- totally reworked type(find) system
- bytestream is out of the core again
- typefind element is now part of gstelements
2003-10-28 20:25:30 +00:00
David Schleef
a937894b48 Add GST_CAPS_NONE and GST_CAPS_ANY
Original commit message from CVS:
Add GST_CAPS_NONE and GST_CAPS_ANY
2003-08-19 04:08:29 +00:00
Ronald S. Bultje
3770896368 Implement gst_caps_has_property*() as functions instead of macro's - this prevents failed assertions when calling the...
Original commit message from CVS:
Implement gst_caps_has_property*() as functions instead of macro's - this prevents failed assertions when calling them in some specific cases. See #115886
2003-07-29 12:00:38 +00:00
David Schleef
112c6867f3 Properly ref caps and pad template in FACTORY macros
Original commit message from CVS:
Properly ref caps and pad template in FACTORY macros
2003-07-24 07:03:56 +00:00
Wim Taymans
024c51c559 - further productizing the fixed flag on GstCaps by using the flag on
Original commit message from CVS:
- further productizing the fixed flag on GstCaps by using the flag on
GstProps instead of keeping the two in sync.
- implemented proper flag updates in _props_set and _props_remove.
2003-06-13 21:26:33 +00:00
Benjamin Otte
42f3a63586 remove _destroy functions from public headers and make them static.
Original commit message from CVS:
remove _destroy functions from public headers and make them static.
2003-05-18 02:42:19 +00:00
Benjamin Otte
f13198c52b added gst_{props,caps}_{from,to}_string to API, see documentation for use, put errors into testsuite/caps/string-conv...
Original commit message from CVS:
added gst_{props,caps}_{from,to}_string to API, see documentation for use, put errors into testsuite/caps/string-conversions.c
2003-05-17 00:47:01 +00:00
Christian Meyer
dabb6637bd Fixed bug #108514.
Original commit message from CVS:
Fixed bug #108514.
2003-03-16 20:06:02 +00:00
Wim Taymans
6ad8197d61 - implement FLOATING flag on caps/props
Original commit message from CVS:
- implement FLOATING flag on caps/props
- use gstmemchunk for caps/props
- implement remove_entry for props
- various refcounting functions
- fix refcounting on caps/props
- use tracing for caps/props/propsentries
- fix memleak in transform functions
- fix refcounting on elementfactory padtemplates
- add dispose for padtemplates
- shortcut pad negotiation early on
2003-02-02 19:58:11 +00:00
Wim Taymans
61763adf68 Small cleanup, fix fixed caps detection even on XML load
Original commit message from CVS:
Small cleanup, fix fixed caps detection even on XML load
2002-12-18 23:00:34 +00:00
Thomas Vander Stichele
2aaf59bad0 looks like a silly typo
Original commit message from CVS:
looks like a silly typo
2002-12-06 13:37:43 +00:00
Thomas Vander Stichele
009e8bb2b4 applied fixed patch from Brian
Original commit message from CVS:
applied fixed patch from Brian
2002-11-29 17:05:13 +00:00
Thomas Vander Stichele
7cd8540542 revert fix because GST_DEBUG_LEAVE("") doesn't work with it
Original commit message from CVS:
revert fix because GST_DEBUG_LEAVE("") doesn't work with it
2002-11-29 14:20:53 +00:00
Christian Schaller
54cbcd0c18 commit Brian's patch with AC fix from thomas
Original commit message from CVS:
commit Brian's patch with AC fix from thomas
2002-11-29 11:10:35 +00:00
Thomas Vander Stichele
731b554fd8 code cleanup and API change (gst_caps_check_compatibility -> gst_caps_is_always_compatible)
Original commit message from CVS:
code cleanup and API change
(gst_caps_check_compatibility -> gst_caps_is_always_compatible)
2002-10-02 07:51:54 +00:00
Wim Taymans
8b3c7040d4 - Added value transform functions for caps and props boxed types
Original commit message from CVS:
- Added value transform functions for caps and props boxed types
- implement gst_props_new with a GList
- fixed silly typo in _gst_type_*
2002-09-17 21:22:31 +00:00
Wim Taymans
ae87d97cb2 - Removed unused locking from the cothreads
Original commit message from CVS:
- Removed unused locking from the cothreads
- use G_*_DECLS in .h files
- remove gstlog.h include from gstobject.h, add to .c files
- removed unused refcounting code from gstobject
- small fixes in #includes
- Added Scheduling policy and priority properties to gstthread so that
SCHED_FIFO and SCHED_RR threads can be constructed.
2002-07-08 19:07:30 +00:00
Wim Taymans
c8e8981be8 Documentation updates
Original commit message from CVS:
Documentation updates
Make spider forward bufferpools
Remove some old registry code
2002-06-12 22:26:36 +00:00
Wim Taymans
9c06c22359 Fix define
Original commit message from CVS:
Fix define
2002-06-04 21:01:58 +00:00
Ronald S. Bultje
56bd6b1eb4 Header file fix (these ## are needed for multi-arguments) and a fix for gst_props_get() if safe = FALSE (we still nee...
Original commit message from CVS:
Header file fix (these ## are needed for multi-arguments) and a fix for gst_props_get() if safe = FALSE (we still need three arguments per fetch)
2002-05-03 09:34:07 +00:00
Thomas Vander Stichele
5a6cf24c16 code review
Original commit message from CVS:
code review
2002-04-12 09:38:47 +00:00
Benjamin Otte
3cbe1bacd0 added 'extern C' stuff to some headers
Original commit message from CVS:
added 'extern C' stuff to some headers
2002-04-06 18:59:39 +00:00
Wim Taymans
f0326eea55 - Remove the propsprivate header file
Original commit message from CVS:
- Remove the propsprivate header file
- Added new API for properties.
- Moved the clock distribution to the scheduler.
- Removed the lock from GstCaps
- Added boxed types for Caps/Props
- Simplified the clock, new systemclock implementation
- Removed deprecated element_info/send_event functions
- First step at exposing more info in the pad_connect functions
- Queue cleanup
- Make the scheduler aware of other schedulers inside it
- Added the _SELF_SCHEDULABLE flag to gstthread
- Removed _get_widget from _utils, changed to new props API
- Make fakesink sync on timestamps when requested
- Removed the offset notify from filesrc
- Added a fast scheduler
- some scheduler cleanups.
2002-03-30 17:05:03 +00:00
Andy Wingo
0c6802533c document gst_caps_debug change gst_caps_debug to accept a label argument, assists greatly in debugging capsnego bette...
Original commit message from CVS:
* document gst_caps_debug
* change gst_caps_debug to accept a label argument, assists greatly
in debugging capsnego
* better names from gst_object_name_default
* some more debugging in gstpad.c
* require caps to match padtemplates on both side of a connection
* gstspider uses default naming so that names are globally unique
* moved filesrc offset arg to the top -- show up first in a prop list.
in the future we should have flags on props indicating which ones
it might be interesting for the end-user to change.
* initialize cothreads in the more standard way, and provide some more debugging
2002-03-03 00:44:41 +00:00
Wim Taymans
b1bcc1875c Delay pad negotiation until the element is in READY or higher. this will gice the element a chance to open its device...
Original commit message from CVS:
Delay pad negotiation until the element is in READY or higher. this will
gice the element a chance to open its devices before we start calling the
connect functions.
Make sure we use the real pad in the negotiation.
Some other small cleanups.
2002-01-20 11:55:35 +00:00
Wim Taymans
b2ee38575d Landed the new improved capsnegotiation system.
Original commit message from CVS:
Landed the new improved capsnegotiation system.
The main idea is to keep track of the possible data types that can
pass through a connection. plugins can at any time inspect, adjust and
refine these caps. plugins also get notified when something changes to
the types so that they can reconfigure themselves.
Look at the updated plugins and the soon to be finished doc.
2002-01-13 22:22:42 +00:00
Erik Walthinsen
d574ab8126 merge from EVENTS1 on 20011016
Original commit message from CVS:
merge from EVENTS1 on 20011016
2001-10-17 10:21:27 +00:00
Steve Baker
368feff16f add gst_props_get_float function
Original commit message from CVS:
add gst_props_get_float function
2001-04-28 18:56:10 +00:00
Wim Taymans
892f4b3204 API docs updates.
Original commit message from CVS:
API docs updates.
Properly implemented the disksink.
Fixed a compile problem with alsa.
Added bufferpool handling to dvdec
Some compiler warning fixes
2001-04-22 16:04:19 +00:00
Erik Walthinsen
faf4bde938 fixes for gstbuffer, and removed ## from gstcaps.h that was causing all that warning noise
Original commit message from CVS:
fixes for gstbuffer, and removed ## from gstcaps.h that was causing all that warning noise
2001-04-22 04:38:36 +00:00
Wim Taymans
6118b074bc Added 1337 macros to create padtemplates and capstemplates.
Original commit message from CVS:
Added 1337 macros to create padtemplates and capstemplates.
Added some code for bufferpools
2001-04-16 21:45:02 +00:00
Wim Taymans
b38d9a945b A rather large patch:
Original commit message from CVS:
A rather large patch:
- changed the API for the padtemplates:
- remove the factories (array of pointers) for the padtemplates,
properties and caps. The static array was a nice idea but converting
all the property values to a gpointer was not a good idea.
float properties were not possible, and casting a gint to a pointer
is not very portable. The new API just uses the _padtemplate_new,
_caps_new and _props_new functions to create the templates.
This has the added benefit that the API is now uniform for static
and dynamic templates and that the code can be made cleaner.
- lots of cleanups in the way the capabilities are constructed (va_list)
- lots of updates for all the plugins (new API)
- docs updates (new API)
- removed the videoraw docs.
2001-04-14 18:56:37 +00:00
Wim Taymans
335080574f Lots of updates to the plugins for caps negotiation.
Original commit message from CVS:
Lots of updates to the plugins for caps negotiation.
Added YUY2 output to the win32 dlls.
Added a colorspace converter in gstplay
2001-04-12 18:11:19 +00:00
Wim Taymans
0837e1e495 Modified a lot of plugins to use the caps system.
Original commit message from CVS:
Modified a lot of plugins to use the caps system.
Modified the caps of audio/raw to our agreed properties.
Added the multidisksrc plugin of Dominic Ludlam
Renamed audiosink/src to osssink/src and updated all the examples using
the old name. Moved oss specific plugins in an oss directory. removed
the old audiosink from the elements/ dir.
removed audioraw.h metadata header files since we now use the properties.
There are still a few plugins that won't build because they include the
old audioraw.h header file. This will be fixed soon.
Make sure the caps are set in the plugins as described by their
padtemplates (this should solve problems with gstmediaplay with various
media files).

*please don't panic when some plugins won't build, just cd manually into
the plugin dirs* This will be fixed soon.
2001-03-24 17:22:03 +00:00
Wim Taymans
0267b92c93 More work on capsnego proxying. It should be OK now.
Original commit message from CVS:
More work on capsnego proxying. It should be OK now.
Added another testcase enum that shows various capsnego algorithms.
Warn about pads that try to set a capability incompatible with their
padtemplate.
Implemented refcounting and copy_on_write for caps/props.
2001-03-20 18:29:00 +00:00
Wim Taymans
3534e68563 Reworked the capsnegotiation function audiosink now uses capsnego to set its parameters mpg123/ac3dec use capsnego in...
Original commit message from CVS:
Reworked the capsnegotiation function
audiosink now uses capsnego to set its parameters
mpg123/ac3dec use capsnego instead of metadata
Added the beginnings of a testsuite for capsnego.
2001-03-18 02:42:30 +00:00
Wim Taymans
3ec275832a Merged the CAPSNEGO1 branch..
Original commit message from CVS:
Merged the CAPSNEGO1 branch..
2001-03-12 21:02:12 +00:00
Wim Taymans
55006f6367 Merged the AUTOPLUG2 branch
Original commit message from CVS:
Merged the AUTOPLUG2 branch
2001-03-07 21:52:56 +00:00
Brent Bradburn
c1044a081b Patched .h files for C++ support.
Original commit message from CVS:
Patched .h files for C++ support.
2001-02-25 03:42:51 +00:00
Richard Boulton
41ebd85275 Fixes to work with libxml2.
Original commit message from CVS:
Fixes to work with libxml2.
Also improved a couple of debugging messagse.
2001-01-18 11:16:53 +00:00
Erik Walthinsen
9ca8248cc2 Massive build fixup. Will send message to -devel list later with details on the changes and what they mean for Makef...
Original commit message from CVS:
Massive build fixup.  Will send message to -devel list later with details
on the changes and what they mean for Makefile.am writers.  Check
docs/random/omega/build/TODO for a list of things that I had to make sure
of.

NOTE: this requires a complete rebuild of all plugins, since I also
changed the STATE enum to a bitfield instead of sequential numbers.
2001-01-14 21:55:41 +00:00
Wim Taymans
22c9d0f1a6 include parser.h instead of gnome-xml/parser.h untill xml-config is fixed...
Original commit message from CVS:
include parser.h instead of gnome-xml/parser.h untill xml-config is
fixed...
2001-01-13 13:51:08 +00:00
Wim Taymans
3d34ce7b95 Updated the manual and the docs.
Original commit message from CVS:
Updated the manual and the docs.
Removed the esdsink in gst/elements/ we have a real one not in the
plugins dir.
Added more APIs to query the plugins, types and caps. more fields now
have a getter and a setter. This is needed to make gstreamer wrapper
fiendly.
Added gst_element_disconnect beacuse we also have a gst_element_connect
2001-01-06 02:35:17 +00:00
Wim Taymans
1c5119618d Updated the docs
Original commit message from CVS:
Updated the docs
Updated gst/Makefile.am to add CFLAGS
Added test programs to tests/.cvsignore
2000-12-31 17:02:47 +00:00
Wim Taymans
bc4619a44b Added multiple caps to the pads
Original commit message from CVS:
Added multiple caps to the pads
Extended the padfactory for the multiple caps
GstCaps now have a name so that future manipulations on them can be done by name
Updated the plugins for the new caps list
2000-12-31 16:12:48 +00:00
Erik Walthinsen
1768119da6 missed one file for copyright
Original commit message from CVS:
missed one file for copyright
2000-12-28 22:13:35 +00:00
Wim Taymans
9655c3b593 Updated the API docs.
Original commit message from CVS:
Updated the API docs.
2000-12-28 21:42:23 +00:00
Wim Taymans
efda5ffd9a Added API to dynamically create GstCaps and GstProps
Original commit message from CVS:
Added API to dynamically create GstCaps and GstProps
Changed typefind of mpeg1 to set the GstProps.
autoplugging now works again for mpeg1, whoohoo!
2000-12-19 16:36:10 +00:00