Commit graph

41 commits

Author SHA1 Message Date
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
Wim Taymans
4a7c3b929a .h: fix header files
Ensure correct indentation and :retab.
Make sure all structures have padding
Fix up some old ABI additions.
2011-11-11 17:30:03 +01:00
Wim Taymans
8a1f401dfd docs: fix docs 2011-09-26 20:47:35 +02:00
Wim Taymans
a952de69dd miniobject: change to GST_DEFINE_MINI_OBJECT_TYPE
Append _TYPE to the macro for consistency with other similar macros.
2011-08-29 17:06:18 +02:00
Wim Taymans
f3b0d3cdbe init: add _get_type() functions
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
2011-08-29 15:34:30 +02:00
Wim Taymans
ee235a6b07 miniobject: avoid race in bufferpool release
Avoid playing with the refcount to decide when a buffer has been recycled by the
dispose function. The problem is that we then temporarily can have a buffer with
a refcount > 1 being acquired from the pool, which is not writable. Instead use
a simple boolean return value from the dispose function to inform the called
that the object was recycled or not.
2011-07-25 12:53:10 +02:00
Wim Taymans
8cf3fa5c6d miniobject: cleanup headers 2011-07-11 12:11:35 +02:00
Wim Taymans
1b98eb34d7 miniobject: add new methods to manage miniobject pointers
Add a new method to steal the miniobject stored at a location.
Add a new method to store a miniobject in a location and taking ownership
of the miniobject.
2011-06-09 13:35:08 +02:00
Tim-Philipp Müller
4b920eb5d2 docs: update for API changes
Also remove GST_PAD_CHECKGETRANGEFUNC macro
2011-06-05 18:57:56 +01:00
Sebastian Dröge
b935a814d9 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	docs/gst/gstreamer-sections.txt
	gst/gstbin.c
	gst/gstelement.c
	gst/gstelement.h
	gst/gstghostpad.c
	gst/gstminiobject.c
	gst/gstminiobject.h
	libs/gst/base/gstbasesrc.c
	libs/gst/base/gstbasetransform.c
	plugins/elements/gstinputselector.c
	tests/check/gst/gstminiobject.c
2011-05-16 16:53:04 +02:00
Tim-Philipp Müller
76ccd2a1e9 docs: fix up some Since markers and update for new multiqueue args 2011-05-14 14:05:52 +01:00
Sebastian Dröge
116972d6eb miniobject: Minor cleanup of last commit 2011-05-14 11:39:35 +02:00
José Alburquerque
cf671d7b0a miniobject: Add weak referencing functionality
API: gst_mini_object_weak_ref()
API: gst_mini_object_weak_unref()

Add weak referencing functionality to GstMiniObject, which
allows to get notifications when an mini object is destroyed
but doesn't increase the real refcount. This is mostly
useful for bindings.

Fixes bug #609473.
2011-05-14 11:39:35 +02:00
Wim Taymans
38ffe30745 memory: more work on implementing buffer memory 2011-03-28 20:08:46 +02:00
Wim Taymans
3a29d34923 miniobject: fix whitespace 2011-02-28 10:05:38 +01:00
Wim Taymans
0969106993 docs: update docs and defs 2011-02-27 12:21:32 +01:00
Wim Taymans
b108e3b999 miniobject: cleanups
Use the stored size in the miniobject to free the miniobject.
Refactor some init methods.
2011-02-23 16:48:00 +01:00
Wim Taymans
fd59a2cead miniobject: fix flags 2011-02-23 10:35:36 +01:00
Wim Taymans
b82a0f5050 fix macros 2011-02-23 10:35:36 +01:00
Wim Taymans
fda9686b35 miniobject: work on making caps a boxed type
More work on making miniobject a simple allocated struct.
2011-02-23 10:34:08 +01:00
Wim Taymans
086aac764d miniobject: make miniobject a boxed type
First attempt at making miniobject a simple boxed type.
2011-02-23 10:33:44 +01:00
Robert Swain
2edb4fef54 miniobject, buffer: steal miniobject flag for use as MEDIA4 buffer flag
This was required to add a new MEDIA4 buffer flag for indicating
progressive/mixed telecine video buffers. There is no space for
additional flags in GstBuffer, so steal one from GstMiniObject.

https://bugzilla.gnome.org/show_bug.cgi?id=642671
2011-02-21 12:37:26 +00:00
Jeffrey S. Smith
4375e998ee Fix casts in a bunch of inline functions to maintain correct const-ness
Make code including GStreamer headers compile with -Wcast-qual by
maintaining const-ness when casting. Also fix function signature of
gst_byte_writer_set_pos(): the byte writer should not be marked as
const.

https://bugzilla.gnome.org/show_bug.cgi?id=627910
2010-09-02 00:09:08 +01:00
Johan Dahlin
c041915989 miniobject: Add introspection annotations
These are required to know how to unref/ref and
convert to/from a GValue.

https://bugzilla.gnome.org/show_bug.cgi?id=621773
2010-06-16 19:03:21 +02:00
Sebastian Dröge
7fe1bca96a API: Add GST_IS_PARAM_SPEC_MINI_OBJECT, GST_PARAM_SPEC_MINI_OBJECT
Original commit message from CVS:
* gst/gstminiobject.c: (gst_value_dup_mini_object),
(gst_param_spec_mini_object):
* gst/gstminiobject.h:
* win32/common/libgstreamer.def:
* docs/gst/gstreamer-sections.txt:
API: Add GST_IS_PARAM_SPEC_MINI_OBJECT, GST_PARAM_SPEC_MINI_OBJECT
GST_TYPE_PARAM_MINI_OBJECT and gst_value_dup_mini_object. Also move
GstParamSpecMiniObject into a public header for this.
This make GstMiniObject a bit more consistent with GObject and makes
it possible to extend the param specs.
gst_value_dup_mini_object is mainly useful for set_property methods.
Fixes bug #523798.
* tools/gst-inspect.c: (print_element_properties_info):
Print something useful for GstMiniObject properties and not just
"unknown type".
2008-03-22 14:51:17 +00:00
Wim Taymans
bc1bdfabab gst/gstbuffer.h: Avoid unneeded type checking.
Original commit message from CVS:
* gst/gstbuffer.h:
Avoid unneeded type checking.
API: GST_BUFFER_IS_DISCONT
* gst/gstminiobject.h:
Avoid type check in flag accessor.
* gst/gstelementfactory.h:
* gst/gstplugin.h:
* gst/gstpluginfeature.h:
Add _CAST macros.
API: GST_ELEMENT_FACTORY_CAST
API: GST_PLUGIN_CAST
API: GST_PLUGIN_FEATURE_CAST
2006-06-12 09:11:44 +00:00
Andy Wingo
65ce5ed080 gst/gstevent.h (struct _GstEvent): Only one pointer of padding.
Original commit message from CVS:
2005-11-29  Andy Wingo  <wingo@pobox.com>

* gst/gstevent.h (struct _GstEvent): Only one pointer of padding.

* gst/gststructure.h (struct _GstStructure): Only one pointer of
padding.

* gst/gstquery.h (struct _GstQuery): Only one pointer of padding.

* gst/gstpluginfeature.h: Remove a comment in PluginFeature.

* gst/gstplugin.h (struct _GstPluginClass): Add some padding.

* gst/gstobject.h: (struct _GstObject): Only one pointer of
padding; reduces object size by about 30%. We don't expect
anything else to go into gstobject.

* gst/gstminiobject.h (struct _GstMiniObject)
(struct _GstMiniObjectClass): Only one pointer of padding; the
payload is only a pointer and two ints anyway. For the class there
are only two methods as well.

* gst/gstelement.h (struct _GstElementClass): Removed
the state_changed signal callback, it is not used.
2005-11-29 18:57:59 +00:00
Wim Taymans
a9f7f7b7b6 Doc fixes.
Original commit message from CVS:
Doc fixes.
2005-11-24 09:44:07 +00:00
Wim Taymans
93e4477d56 gst/gstbuffer.c: Copy more flags.
Original commit message from CVS:
* gst/gstbuffer.c: (_gst_buffer_copy):
Copy more flags.

* gst/gstcaps.c: (gst_caps_is_equal):
Fix some docs.
Make _is_equal fast in the trivial cases.

* gst/gstminiobject.c:
* gst/gstminiobject.h:
More docs. Spifify .h file.

* gst/gstutils.c:
Small doc update.
2005-11-11 18:25:50 +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
Tim-Philipp Müller
22993965c7 gst/: Add !! to _FLAG_IS_SET macros to make the result boolean.
Original commit message from CVS:
* gst/gstminiobject.h:
* gst/gstobject.h:
Add !! to _FLAG_IS_SET macros to make the result boolean.
2005-11-03 13:52:59 +00:00
Stefan Kost
0572e3c3ae docs/gst/gstreamer-sections.txt: move some macros to private sections
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
move some macros to private sections
* gst/gstminiobject.c:
* gst/gstminiobject.h:
add descriptions provided by ds and some more
* gst/gstpad.h:
mark macro as to be removed
2005-10-28 16:46:58 +00:00
Stefan Kost
2aaf1df98f removed unused flags from miniobject doc fixes
Original commit message from CVS:
* gst/gst.c:
* gst/gstminiobject.h:
* gst/gstpad.h:
* win32/gstenumtypes.c: (gst_mini_object_flags_get_type):
removed unused flags from miniobject
doc fixes
2005-10-12 19:10:46 +00:00
Stefan Kost
a98aef82db renamed GST_FLAGS macros to GST_OBJECT_FLAGS moved bitshift from macro to enum definition
Original commit message from CVS:
* check/gst/gstbin.c: (GST_START_TEST):
* docs/gst/gstreamer-sections.txt:
* gst/base/gstbasesink.c: (gst_base_sink_init):
* gst/base/gstbasesrc.c: (gst_base_src_init),
(gst_base_src_get_range), (gst_base_src_check_get_range),
(gst_base_src_start), (gst_base_src_stop):
* gst/base/gstbasesrc.h:
* gst/elements/gstfakesrc.c: (gst_fake_src_set_property):
* gst/gstbin.c: (gst_bin_add_func), (gst_bin_remove_func),
(bin_element_is_sink), (reset_degree), (gst_bin_element_set_state),
(bin_bus_handler):
* gst/gstbin.h:
* gst/gstbuffer.h:
* gst/gstbus.c: (gst_bus_post), (gst_bus_set_flushing):
* gst/gstbus.h:
* gst/gstelement.c: (gst_element_is_locked_state),
(gst_element_set_locked_state), (gst_element_commit_state),
(gst_element_set_state):
* gst/gstelement.h:
* gst/gstindex.c: (gst_index_init):
* gst/gstindex.h:
* gst/gstminiobject.h:
* gst/gstobject.c: (gst_object_init), (gst_object_sink),
(gst_object_set_parent):
* gst/gstobject.h:
* gst/gstpad.c: (gst_pad_set_blocked_async), (gst_pad_is_blocked),
(gst_pad_get_caps_unlocked), (gst_pad_set_caps):
* gst/gstpad.h:
* gst/gstpadtemplate.h:
* gst/gstpipeline.c: (gst_pipeline_provide_clock_func),
(gst_pipeline_use_clock), (gst_pipeline_auto_clock):
* gst/gstpipeline.h:
* gst/indexers/gstfileindex.c: (gst_file_index_load),
(gst_file_index_commit):
* testsuite/bytestream/filepadsink.c: (gst_fp_sink_init):
* testsuite/pad/link.c: (gst_test_src_init),
(gst_test_filter_init), (gst_test_sink_init):
* testsuite/states/locked.c: (main):
renamed GST_FLAGS macros to GST_OBJECT_FLAGS
moved bitshift from macro to enum definition
2005-10-12 14:28:39 +00:00
Stefan Kost
8167fcdd78 lots of new docs and doc fixes
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstmessage.c:
* gst/gstmessage.h:
* gst/gstminiobject.c:
* gst/gstminiobject.h:
* gst/gstobject.h:
* gst/gstpad.h:
* gst/gstutils.h:
lots of new docs and doc fixes
2005-10-08 14:48:17 +00:00
Wim Taymans
e1aeec6d77 Removed plugable schedulers.
Original commit message from CVS:
Removed plugable schedulers.
Removed Scheduler/Manager from elements.
Removed gsttypes.h, rearranged includes.
Removed dependency pad<->element, element<>pipeline, and
various others,  fix includes.
implement gst_pad_get_parent() with gst_object_get_parent()
Make GstTask sefcontained.
Fix _get_state() on GstBin, it did not return ASYNC with a 0
timeout.
Fix endless loop in iterator_fold_with_resync.
2005-07-18 12:49:53 +00:00
Andy Wingo
f2cf753b17 gst/base/gsttypefindhelper.c (gst_type_find_helper): Unref any remaining buffer.
Original commit message from CVS:
2005-06-27  Andy Wingo  <wingo@pobox.com>

* gst/base/gsttypefindhelper.c (gst_type_find_helper): Unref any
remaining buffer.

* gst/gsttrace.c (gst_alloc_trace_list_sorted): New helper,
returns a sorted copy of the trace list.
(gst_alloc_trace_print_live): New API, only prints traces with
live objects. Sort the list.
(gst_alloc_trace_print_all): Sort the list.
(gst_alloc_trace_print): Align columns.

* gst/elements/gstttypefindelement.c:
* gst/elements/gsttee.c:
* gst/base/gstbasesrc.c:
* gst/base/gstbasesink.c:
* gst/base/gstbasetransform.c:
* gst/gstqueue.c: Adapt for pad activation changes.

* gst/gstpipeline.c (gst_pipeline_init): Unref after parenting
sched.
(gst_pipeline_dispose): Drop ref on sched.

* gst/gstpad.c (gst_pad_init): Set the default activate func.
(gst_pad_activate_default): Push mode by default.
(pre_activate_switch, post_activate_switch): New stubs, things to
do before and after switching activation modes on pads.
(gst_pad_set_active): Take a boolean and not a mode, dispatch to
the pad's activate function to choose which mode to activate.
Shortcut on deactivation and call the right function directly.
(gst_pad_activate_pull): New API, (de)activates a pad in pull
mode.
(gst_pad_activate_push): New API, same for push mode.
(gst_pad_set_activate_function)
(gst_pad_set_activatepull_function)
(gst_pad_set_activatepush_function): Setters for new API.

* gst/gstminiobject.c (gst_mini_object_new, gst_mini_object_free):
Trace all miniobjects.
(gst_mini_object_make_writable): Unref the arg if we copy, like
gst_caps_make_writable.

* gst/gstmessage.c (_gst_message_initialize): No trace init.

* gst/gstghostpad.c (gst_proxy_pad_do_activate)
(gst_proxy_pad_do_activatepull, gst_proxy_pad_do_activatepush):
Adapt for new pad API.

* gst/gstevent.c (_gst_event_initialize): Don't initialize trace.

* gst/gstelement.h:
* gst/gstelement.c (gst_element_iterate_src_pads)
(gst_element_iterate_sink_pads): New API functions.

* gst/gstelement.c (iterator_fold_with_resync): New utility,
should fold into gstiterator.c in some form.
(gst_element_pads_activate): Simplified via use of fold and
delegation of decisions to gstpad->activate.

* gst/gstbus.c (gst_bus_source_finalize): Set the bus to NULL,
help in debugging.

* gst/gstbuffer.c (_gst_buffer_initialize): Ref the buffer type
class once in init, like gstmessage. Didn't run into this issue
but it seems correct. Don't initialize a trace, gstminiobject does
that.

* check/pipelines/simple_launch_lines.c (test_stop_from_app): New
test, runs fakesrc ! fakesink, stopping on ::handoff via a message
to the bus.
(assert_live_count): New util function, uses alloc traces to check
cleanup.

* check/gst/gstghostpad.c (test_ghost_pads): More refcount checks.
To be modified when unlink drops the internal pad.
2005-06-27 18:35:05 +00:00
Thomas Vander Stichele
d282f08209 add a 'plugins' dir to the PLUGIN_PATH in the uninstalled script to drop random other plugin-having projects in
Original commit message from CVS:
add a 'plugins' dir to the PLUGIN_PATH in the uninstalled script to drop random other plugin-having projects in
2005-06-08 13:42:52 +00:00
David Schleef
4c9d07cf22 gst/gstminiobject.*: Add GValue set/get functions.
Original commit message from CVS:
* gst/gstminiobject.c: (gst_value_set_mini_object),
(gst_value_take_mini_object), (gst_value_get_mini_object):
* gst/gstminiobject.h: Add GValue set/get functions.
2005-05-19 19:41:12 +00:00
David Schleef
e134f7f75b check/Makefile.am: remove GstData checks
Original commit message from CVS:
* check/Makefile.am: remove GstData checks
* check/gst-libs/gdp.c: (START_TEST): fix for API changes
* gst/Makefile.am: add miniobject, remove data
* gst/gst.h: add miniobject, remove data
* gst/gstdata.c: remove
* gst/gstdata.h: remove
* gst/gstdata_private.h: remove
* gst/gsttypes.h: remove GstEvent and GstMessage
* gst/gstelement.c: (gst_element_post_message): fix for API changes
* gst/gstmarshal.list: change BOXED -> OBJECT
Implement GstMiniObject.
* gst/gstminiobject.c:
* gst/gstminiobject.h:
Modify to be subclasses of GstMiniObject.
* gst/gstbuffer.c: (_gst_buffer_initialize), (gst_buffer_get_type),
(gst_buffer_class_init), (gst_buffer_finalize), (_gst_buffer_copy),
(gst_buffer_init), (gst_buffer_new), (gst_buffer_new_and_alloc),
(gst_subbuffer_get_type), (gst_subbuffer_init),
(gst_buffer_create_sub), (gst_buffer_is_span_fast),
(gst_buffer_span):
* gst/gstbuffer.h:
* gst/gstevent.c: (_gst_event_initialize), (gst_event_get_type),
(gst_event_class_init), (gst_event_init), (gst_event_finalize),
(_gst_event_copy), (gst_event_new):
* gst/gstevent.h:
* gst/gstmessage.c: (_gst_message_initialize),
(gst_message_get_type), (gst_message_class_init),
(gst_message_init), (gst_message_finalize), (_gst_message_copy),
(gst_message_new), (gst_message_new_error),
(gst_message_new_warning), (gst_message_new_tag),
(gst_message_new_state_changed), (gst_message_new_application):
* gst/gstmessage.h:
* gst/gstprobe.c: (gst_probe_perform),
(gst_probe_dispatcher_dispatch):
* gst/gstprobe.h:
* gst/gstquery.c: (_gst_query_initialize), (gst_query_get_type),
(gst_query_class_init), (gst_query_finalize), (gst_query_init),
(_gst_query_copy), (gst_query_new):
Update elements for GstData -> GstMiniObject changes
* gst/gstquery.h:
* gst/gstqueue.c: (gst_queue_finalize), (gst_queue_locked_flush),
(gst_queue_chain), (gst_queue_loop):
* gst/elements/gstbufferstore.c:
(gst_buffer_store_add_buffer_func),
(gst_buffer_store_cleared_func), (gst_buffer_store_get_buffer):
* gst/elements/gstfakesink.c: (gst_fakesink_class_init),
(gst_fakesink_render):
* gst/elements/gstfakesrc.c: (gst_fakesrc_class_init):
* gst/elements/gstfilesrc.c: (gst_mmap_buffer_get_type),
(gst_mmap_buffer_class_init), (gst_mmap_buffer_init),
(gst_mmap_buffer_finalize), (gst_filesrc_map_region),
(gst_filesrc_create_read):
* gst/elements/gstidentity.c: (gst_identity_class_init):
* gst/elements/gsttypefindelement.c:
(gst_type_find_element_src_event), (free_entry_buffers),
(gst_type_find_element_handle_event):
* libs/gst/dataprotocol/dataprotocol.c:
(gst_dp_header_from_buffer):
* libs/gst/dataprotocol/dataprotocol.h:
* libs/gst/dataprotocol/dp-private.h:
2005-05-16 20:21:55 +00:00