Commit graph

63 commits

Author SHA1 Message Date
Steve Lhomme
395faf9c06 rename GSTREAMER_EXPORT to GST_EXPORT
Original commit message from CVS:
rename GSTREAMER_EXPORT to GST_EXPORT
2004-06-13 10:04:12 +00:00
Steve Lhomme
f50188b8a0 Fix a bug to enable/disable DEBUG under MSVC
Original commit message from CVS:
Fix a bug to enable/disable DEBUG under MSVC
2004-06-12 10:51:35 +00:00
David Schleef
209c82ee06 docs/gst/gstreamer-sections.txt: More doc hacking.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:  More doc hacking.
* docs/gst/tmpl/gstaggregator.sgml:
* docs/gst/tmpl/gstautoplugfactory.sgml:
* docs/gst/tmpl/gstbin.sgml:
* docs/gst/tmpl/gstbuffer.sgml:
* docs/gst/tmpl/gstbufferstore.sgml:
* docs/gst/tmpl/gstfakesink.sgml:
* docs/gst/tmpl/gstfakesrc.sgml:
* docs/gst/tmpl/gstmd5sink.sgml:
* docs/gst/tmpl/gstreamer-unused.sgml:
* docs/gst/tmpl/gstsearchfuncs.sgml:
* docs/gst/tmpl/gstshaper.sgml:
* docs/gst/tmpl/gstspider.sgml:
* docs/gst/tmpl/gsttee.sgml:
* docs/gst/tmpl/gstutils.sgml:
* docs/gst/tmpl/gstvalue.sgml:
* docs/gst/tmpl/gstxml.sgml:
* gst/Makefile.am:  Remove gstthreaddummy.c.  It never worked,
and we don't support it.
* gst/gst.c: (gst_init_get_popt_table), (init_pre), (init_post),
(gst_use_threads), (gst_has_threads): same
* gst/gstthreaddummy.c: same
* gst/autoplug/gstspider.c: Make gst_spider_details static.
* gst/autoplug/gstspider.h: same
* gst/elements/gstaggregator.h: Remove bogus function from header
* gst/elements/gstfakesink.h: same
* gst/elements/gstfakesrc.h: same
* gst/elements/gstmd5sink.h: same
* gst/elements/gstshaper.h: same
* gst/elements/gsttee.h: same
* gst/gstbin.c: doc fixes
* gst/gstbin.h: Remove unused definition.
* gst/gstbuffer.c: doc fixes
* gst/gstcaps.c: (gst_caps_is_always_compatible): doc fixes
* gst/gstfilter.c: doc fixes
* gst/gsttag.c: doc fixes
* gst/gstvalue.c: doc fixes
2004-03-26 03:46:16 +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
Johan Dahlin
e2b3dc3e47 *.h: Revert indentation changes.
Original commit message from CVS:
* *.h: Revert indentation changes.
2004-03-15 14:31:41 +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
Andy Wingo
a8b84d8a57 gst/gstpad.c (_gst_real_pad_fixate_accumulator): s/pointer/boxed/.
Original commit message from CVS:
2004-02-05  Andy Wingo  <wingo@pobox.com>

* gst/gstpad.c (_gst_real_pad_fixate_accumulator):
s/pointer/boxed/.

* gst/gstmarshal.list (VOID:BOXED, BOXED:BOXED): New marshallers.

* gst/gstpad.c (gst_real_pad_class_init): Use a BOXED:BOXED
marshaller for ::fixate, and VOID:BOXED for ::caps-nego-failed,
with the type=GST_TYPE_CAPS. This allows language bindings to know
what kind of data they're dealing with.

* gst/gstcaps.c (_gst_caps_value_init): GBoxed values initialize
to NULL when g_value_init is called. GstCaps, which rolls its own
type implementation, now does the same instead of allocating empty
caps.
(_gst_caps_initialize, _gst_caps_collect_value,
_gst_caps_lcopy_value): Provide collect_value and lcopy_value type
table methods. This allows G_VALUE_COLLECT to work.

2004-02-05  Andy Wingo  <wingo@pobox.com>

* configure.ac:
* testsuite/Makefile.am (SUBDIRS):
* testsuite/ghostpads/Makefile.am:
* testsuite/ghostpads/ghostpads.c: A new test for ghost pads.

* gst/gstpad.c (gst_pad_add_ghost_pad, gst_pad_remove_ghost_pad):
These two routines are the only ones that set
GST_GPAD_REALPAD(gpad), the ghost pad list, and the ghost pad's
pad template. They should be made static, depending on ABI needs.
(gst_real_pad_dispose): Handle the case of ghost pads without a
parent. Assert after dealing with ghost pads that the ghost pad
list is empty.
(gst_ghost_pad_class_init): New property added, ::real-pad. Can be
set after creation.
(gst_ghost_pad_dispose): Set ::real-pad to NULL.
(gst_ghost_pad_set_property, gst_ghost_pad_get_property): New
functions. set_property will call add_ghost_pad/remove_ghost_pad
as appropriate.
(gst_ghost_pad_new): All the work is offloaded to g_object_new.

* gst/gstelement.c (gst_element_add_pad): Handle ghost pads as well.
(gst_element_add_ghost_pad): Remove code duplicated from _add_pad.
(gst_element_remove_pad): Handle ghost pads as well.
(gst_element_remove_ghost_pad): Deprecated (could be removed,
depending on API-stability needs).

2004-02-05  Andy Wingo  <wingo@pobox.com>

* gst/gstbin.[ch]: (gst_bin_get_by_interface): GTypes are scalars,
of course they're const
2004-02-05 13:51:26 +00:00
Benjamin Otte
9195d5bf8e implement gst_bin_get_(all_)by_interface
Original commit message from CVS:
implement gst_bin_get_(all_)by_interface
2003-12-16 19:35:26 +00:00
Benjamin Otte
46a70fddfb removed GST_*_CAST. Disabling of type checking is done in glib.
Original commit message from CVS:
removed GST_*_CAST. Disabling of type checking is done in glib.
2003-12-13 16:58:29 +00:00
David Schleef
1cd87b37e5 Change GST_.*_PADDING to _gst_padding[GST_PADDING];
Original commit message from CVS:
Change GST_.*_PADDING to _gst_padding[GST_PADDING];
2003-12-09 02:39:31 +00:00
David Schleef
476dea14ad Change 'const' to 'G_CONST_RETURN' in header files
Original commit message from CVS:
Change 'const' to 'G_CONST_RETURN' in header files
2003-11-29 06:34:05 +00:00
Benjamin Otte
907e3e97d9 update plugin initialization restructuring (see email for details
Original commit message from CVS:
update plugin initialization restructuring (see email for details
2003-10-31 19:32:47 +00:00
David Schleef
dcb2dce108 Change the iterate callback functions to a GSignal
Original commit message from CVS:
Change the iterate callback functions to a GSignal
2003-10-14 00:00:37 +00:00
David Schleef
85a63494bf Add padding to structures and objects
Original commit message from CVS:
Add padding to structures and objects
2003-10-07 21:58:42 +00:00
Benjamin Otte
64a6a1d2bd - make child_state_change a virtual function
Original commit message from CVS:
- make child_state_change a virtual function
- remove unneeded != NULL checks
- implement gst_bin_sync_children_state
2003-04-18 23:34:21 +00:00
Benjamin Otte
6cb527fed3 API change: remove gst_object_destroy and #defines to it
Original commit message from CVS:
API change: remove gst_object_destroy and #defines to it
2003-04-15 18:43:57 +00:00
Wim Taymans
48c70d75cb Close bug #105570 (added gst_bin_remove_many patch from omega)
Original commit message from CVS:
Close bug #105570 (added gst_bin_remove_many patch from omega)
2003-02-11 20:15:50 +00:00
Wim Taymans
1ed68c8126 - make add/remove overridable for custom bins
Original commit message from CVS:
- make add/remove overridable for custom bins
2003-01-11 20:08:03 +00:00
Wim Taymans
68b53ac4ab - Cleanups
Original commit message from CVS:
- Cleanups
- Added padding to structs
- fixed typechecking/casts
- reduced casts
- implemented remove_element in gstbin
- implemented set index on bin
2002-12-19 21:31:03 +00:00
Wim Taymans
91b824a34c - Reworked the clock to prepare for async notifications
Original commit message from CVS:
- Reworked the clock to prepare for async notifications
- moved some common scheduler checking to gstbin
- added some vmethods to gstbin for future use
- more fixes to the optimal scheduler
- use new clock api in the schedulers
2002-11-02 13:54:34 +00:00
Wim Taymans
de12c3557a Removed gst_bin_change_state_type it doesn't work and the concept is outdated, we'll find something better soon..
Original commit message from CVS:
Removed gst_bin_change_state_type it doesn't work and the concept is
outdated, we'll find something better soon..
2002-07-24 20:37:09 +00:00
Thomas Vander Stichele
dcb3cec6a0 merge from BRANCH-RELEASE-0_4_0
Original commit message from CVS:
merge from BRANCH-RELEASE-0_4_0
2002-07-09 10:27:22 +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
Steve Baker
a415cdd34e remove the "iterate_started" signal and replace it with pre_iterate and post_iterate callbacks.
Original commit message from CVS:
remove the "iterate_started" signal and replace it with pre_iterate and post_iterate callbacks.

Apps can now put a lock around an iterate so they can do stuff on the bin from another thread. much nicer than the signal approach.
2002-06-10 16:48:47 +00:00
Steve Baker
9546949ebf added a "iterate_started" signal which fires before the iterate of a bin. useful for non-threadsafe operations like s...
Original commit message from CVS:
added a "iterate_started" signal which fires before the iterate of a bin. useful for non-threadsafe operations like seek in threaded pipelines
2002-06-07 19:34:52 +00:00
Wim Taymans
ed1d8a37b8 Add iterate mutex for future use
Original commit message from CVS:
Add iterate mutex for future use
2002-06-03 19:53:47 +00:00
Benjamin Otte
8cd991a9d6 - make all _get_list functions return a const reference to original lists and no copy
Original commit message from CVS:
- make all _get_list functions return a const reference to original lists and no copy
- redo code accordingly
- fix compile issue in dparam stuff
2002-04-19 19:49:41 +00:00
Andy Wingo
cfb228b0f9 add notify back to filesrc, it's needed for MVC applications remove notify printouts from gst-launch cleanup in gst-p...
Original commit message from CVS:
* add notify back to filesrc, it's needed for MVC applications
* remove notify printouts from gst-launch
* cleanup in gst-plugins configure.ac
* some jack updates
* remove SELF_ITERATING flag in favor of SEF_SCHEDULABLE (not a clear name,
but it's what we have for the moment)
* improve parsing of request pad names, no more sscanf
* fixes to the fastscheduler Makefile.am
2002-03-30 19:31:14 +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
a43fadec2e s/gst_element_install_std_props/gst_element_class_install_std_props/ -- it just makes more sense that way added jack ...
Original commit message from CVS:
* s/gst_element_install_std_props/gst_element_class_install_std_props/ -- it just makes more sense that way
* added jack element, doesn't quite work right yet but i didn't want to lose the work -- it does build, register,
and attempt to run though
* imposed some restrictions on the naming of request pads to better allow for reverse parsing
* added '%s' to reverse parsing
* added new bin flag to indicate that it is self-iterating, and some lame code in gst-launch to test it out
* fixen on launch-gui
* added pkg-config stuff for the editor's libs
2002-03-18 04:41:37 +00:00
Andy Wingo
cbc6f66cf4 add two apis: gst_element_connect_elements_many (elem1, elem2, ...)
Original commit message from CVS:
* add two apis:
* gst_element_connect_elements_many (elem1, elem2, ...)
- calls gst_element_connect_elements() in order
- should be called gst_element_connect_many, but we need to rename gst_element_connect_elements first
- simplifies common-case code
* gst_bin_add_many (bin, elem1, ...)
- calls gst_bin_add on all of the elems
- again, simplifying common code
2002-02-21 14:44:27 +00:00
Wim Taymans
53b6bb6242 Added a first stab at a better clocking system.
Original commit message from CVS:
Added a first stab at a better clocking system.
It still needs more infrastructure for async notification and custom clock
implementors.
This thing can still deadlock the pipeline.
2002-02-03 20:07:09 +00:00
Wim Taymans
e7f54b1e74 - Added a function to get the currently executing cothread
Original commit message from CVS:
- Added a function to get the currently executing cothread
- Removed some useless includes
- _interrupt now returns a boolean so the behaviour after the interrupt
can be controlled by the scheduler.
- Added a better way to set/get the default scheduler.
- make thread and pipeline get the default scheduler.
2001-12-27 00:47:41 +00:00
Wim Taymans
087dee1f62 This is an attempt at not segfaulting on errors but reporting some usefull info instead.
Original commit message from CVS:
This is an attempt at not segfaulting on errors but reporting some
usefull info instead.
- bin changes so errors can propagate.
- changed the _FAST macros to _CAST because that is what they do.
- removed all references to cothreads out of the core, they are
really a scheduler issue, handler with a sched_private gpointer.
- added a live buffer count, for debugging buffer leaks.
- added error checking in gst_scheduler_state_transition this solves the
"out of cothreads" problem.
- GST_ELEMENT_NO_ENTRY == GST_ELEMENT_INFINITE_LOOP
- added 2 private element flasg for use by the scheduler
(_COTHREAD_STOPPING) is now
- added scheduler entry points:
- _yield : to create possible scheduling points.
- _interrupt: to stop execution of an element.
- _error: to signal en error condition to the scheduler.
- improved error messages for pads.
- signal gst_element_error where appropriate.
- added the a new bin to the parent before entering it so one can reference
its children.
- queue memleak fixes on dispose.
- added possible deadlock detection in queue (turned off be default)
- GstBasicScheduler is a real class of its own now, hiding its internal
variables.
- GST_ELEMENT_IS_COTHREAD_STOPPING is gone. either call explicit _yield
operations, or make a sane loop.
- Better state change handling in filesrc. Better error reporting/recovery
too.
- updated core plugins.
- detect non decoupled elements on scheduler boundries and error.
2001-12-22 21:18:17 +00:00
Wim Taymans
f5affde61c - Reclaim cothread state even if the cothread was never activated after the free.
Original commit message from CVS:
- Reclaim cothread state even if the cothread was never activated after
the free.
- fix the bin state change when there are no more children.
- use a real method to signal the parent bin of a state change.
- move the state change policy in the scheduler.
- remove the unused and ridiculous state change event
- don't free the cothread state when the element is disabled. only free it
when the element is removed from the scheduler.
2001-12-20 20:03:10 +00:00
Christian Schaller
9dca9db01b updated .h files with // fixes
Original commit message from CVS:
updated .h files with // fixes
2001-12-15 18:15:13 +00:00
Wim Taymans
52c2614f26 Removed dead code
Original commit message from CVS:
Removed dead code
2001-12-12 11:17:02 +00:00
wrobell
08eaa11259 - some fixes to int2float making automake 1.5 happy (gst now requires automake1.5). It's still not perfect but it bui...
Original commit message from CVS:
- added playondemand plugin by Leif Morgan Johnson <lmjohns3@eos.ncsu.edu>
- some fixes to int2float
- aplied a patch from wrobell <wrobell@ite.pl> that is a first attempt at
making automake 1.5 happy (gst now requires automake1.5). It's still not
perfect but it builds.
- Made the schedulers plugable. The default scheduler now lives inside a
plugin.
- Added a new mpeg1/2 parser/demuxer.
- Fixed some compiler warnings in the core libs.
- substantial work to GstThread (hopefully less race conditions). simplified
the code in GstThread a bit. A state change can now also happen in the
thread context.
- reworked the state semantics of a bin. it'll now automatically get the
highest state of its children.
- the autoplugger now nests the threads so that a state change failure of
one thread doesn't make its upstream thread lock.
- GstQueue refuses to go to PLAYING if the sinkpad is not connected. This
way the queue will not wedge in the _get lock.
- GstQueue unlocks its mutexes when going to PAUSED.
- make sure that when all elements in a bin/thread go to PAUSED, the bin
is set to PAUSED too.
- make a parent bin wait for its children to PAUSE before ending the
iteration with FALSE (EOS)
- Some changes to GstPlay to deal with EOS.
- aplied the latest patch from Zeenix to gstrtp.

end result: GstPlay doesn't crash on EOS and the pipeline is now shut down
properly.
2001-12-04 22:12:50 +00:00
Wim Taymans
cccc097ca5 API docs. revived _buffer_ref_by_count fast types for scheduler and bin.
Original commit message from CVS:
API docs.
revived _buffer_ref_by_count
fast types for scheduler and bin.
error checking on plugin features;
removed some prototypes that were not implemented (gst_pipeline_iterate
comes to mind)
remove gst_pad_event until we know what it's supposed to do.
remove sinesrc, it wasn't compiles anymore, so...
updates to various elements that used the old event API.
2001-10-21 18:00:31 +00:00
Erik Walthinsen
7f8d8fe8d5 Merged from GOBJECT1 to HEAD at 200106241
Original commit message from CVS:
Merged from GOBJECT1 to HEAD at 200106241
2001-06-25 01:20:11 +00:00
Wim Taymans
b93de9e922 Docs updates
Original commit message from CVS:
Docs updates
Changed the cothread to use sigjmp_buf
removed some unused methods.
Some code cleanups.
2001-05-27 14:37:29 +00:00
Erik Walthinsen
4a583683e5 Merged from INCSCHED on 200505251!!!
Original commit message from CVS:
Merged from INCSCHED on 200505251!!!
2001-05-25 21:00:07 +00:00
Wim Taymans
51cbf22624 This is a megapatch with the following changes:
Original commit message from CVS:
This is a megapatch with the following changes:

- moved the gchar *name to GstObject, removed the ones in GstElement and
GstPad.
- moved the parent handling completely into GstObject. This cause *all* of
the plugins to fail (except those that used gst_pad_get_parent)
- rearanged the XML save handling.
- GstObject now has a class function save/restore_thyself.
- GstObject has a generic method gst_object_save_thyself, this makes it
possible to fire a signal wehever a new object is loaded. This is needed
so we can add XML save hooks.
- GstXML API has changed slightly. You now have to create a GstXML object
first before you can actually load something. This makes it possible to
attach a signal to GstXML whenever an object is loaded. I'm not sure we
will keep this interface.
- GstObject can now print the path_string without knowing about the GstPad and
GstElement types.
- Added gst_bin_get_by_name_recurse_up to lookup an element in the current
element hierarchy.
- added XML namespaces to the saved pipelines the namespace is:
http://gstreamer.net/gst-core/1.0/
namespaces are needed to distinguish user generated XML from the core XML.

Note that the plugins still contain a macro GST_OBJECT_PARENT that will be
replaced with gst_pad_get_parent shortly.
2001-01-29 00:06:02 +00:00
Wim Taymans
044c4611af More eos handling, bin in bin is handled correctly now.
Original commit message from CVS:
More eos handling, bin in bin is handled correctly now.
Updated gstreamer-launch to loop while !EOS.
2001-01-21 16:06:42 +00:00
Wim Taymans
7ce56f5dab More EOS changes.
Original commit message from CVS:
More EOS changes.
When a bin2 is found inside a bin1, we add the bin2 to the EOS providers
of the bin1. When there is nothing more to schedule in bin1 and bin2 has
fired EOS, bin1 is in EOS.
The queue overrides the EOS notification and calls EOS on the src pad
when the queue is empty and the sink pad is in EOS.
2001-01-20 17:59:25 +00:00
Wim Taymans
fdaa2307da A very small change to make eos somewhat work. no inner bins are checked.
Original commit message from CVS:
A very small change to make eos somewhat work. no inner bins are checked.
When an element fires EOS, the chain with that element is removed from
the scheduler (marked inactive). If all chains are inactive, the bin
fires EOS.
2001-01-20 03:10:44 +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
Erik Walthinsen
ca1c48e95c Updated copyright in all the libgst files.
Original commit message from CVS:
Updated copyright in all the libgst files.
Created gst_private.h, set up all files to use it.
2000-12-28 22:12:02 +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