Commit graph

214 commits

Author SHA1 Message Date
Wim Taymans
c97e237a14 Added extra flag to newsegment for future API freeze.
Original commit message from CVS:
* check/gst/gstevent.c: (GST_START_TEST):
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_change_state):
* gst/base/gstbasesrc.c: (gst_base_src_default_newsegment):
* gst/base/gstbasetransform.c: (gst_base_transform_event):
* gst/elements/gstfilesink.c: (gst_file_sink_event):
* gst/gstevent.c: (gst_event_new_newsegment),
(gst_event_parse_newsegment):
* gst/gstevent.h:
Added extra flag to newsegment for future API freeze.
Updated check and base elements.
2005-10-11 16:28:49 +00:00
Julien Moutte
5706cb69b4 gst/base/gstcollectpads.*: Handle EOS correctly.
Original commit message from CVS:
2005-10-11  Julien MOUTTE  <julien@moutte.net>

* gst/base/gstcollectpads.c: (gst_collectpads_init),
(gst_collectpads_add_pad), (gst_collectpads_pop),
(gst_collectpads_event), (gst_collectpads_chain):
* gst/base/gstcollectpads.h: Handle EOS correctly.
2005-10-11 16:25:35 +00:00
Thomas Vander Stichele
3b9e6b3eff configure.ac: if we don't have glib, fail before testing 2.8
Original commit message from CVS:

* configure.ac:
if we don't have glib, fail before testing 2.8
* gst/base/gstbasetransform.c: (gst_base_transform_change_state):
fix a leak, should fix plugins-base testsuite
2005-10-11 15:26:58 +00:00
Thomas Vander Stichele
e2af9ca6c6 gst/base/gstbasesrc.c: use conversions
Original commit message from CVS:

* gst/base/gstbasesrc.c: (gst_base_src_query):
use conversions
* gst/gstutils.c: (gst_guint64_to_gdouble),
(gst_gdouble_to_guint64), (gst_util_uint64_scale):
* gst/gstutils.h:
externalize, basesrc uses it
obviously the implementation needs testing
2005-10-10 18:16:37 +00:00
Wim Taymans
2153c45964 check/: Check fixes, use API as stated in design docs, remove hacks.
Original commit message from CVS:
* check/Makefile.am:
* check/generic/states.c: (GST_START_TEST):
* check/gst/gstbin.c: (GST_START_TEST):
* check/gst/gstpipeline.c: (GST_START_TEST), (gst_pipeline_suite):
* check/states/sinks.c: (GST_START_TEST):
* check/states/sinks2.c: (GST_START_TEST), (gst_object_suite),
(main):
Check fixes, use API as stated in design docs, remove hacks.

* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_change_state):
Catch stopping our task while we're shutting down.

* gst/gstbin.c: (gst_bin_init), (gst_bin_add_func),
(gst_bin_remove_func), (gst_bin_get_state_func),
(gst_bin_recalc_state), (gst_bin_change_state_func),
(bin_bus_handler):
* gst/gstbin.h:
* gst/gstelement.c: (gst_element_init),
(gst_element_get_state_func), (gst_element_abort_state),
(gst_element_commit_state), (gst_element_lost_state),
(gst_element_set_state), (gst_element_change_state),
(gst_element_change_state_func):
* gst/gstelement.h:
New state change algorithm (see #318116)

* gst/gstpipeline.c: (gst_pipeline_class_init),
(gst_pipeline_init), (gst_pipeline_set_property),
(gst_pipeline_get_property), (do_pipeline_seek),
(gst_pipeline_change_state), (gst_pipeline_provide_clock_func):
* gst/gstpipeline.h:
Remove crude state change hacks.

* gst/gstutils.h:
Remove crude hacks.

* tools/gst-launch.c: (main):
Fixes for state change. Needs some more work to fully use the
new stuff.
2005-10-10 16:38:26 +00:00
Tim-Philipp Müller
b846fed997 gst/base/gsttypefindhelper.c: Check whether we have the requested data already in our list of cached buffers before p...
Original commit message from CVS:
* gst/base/gsttypefindhelper.c: (helper_find_peek),
(gst_type_find_helper):
Check whether we have the requested data already in our list of
cached buffers before pulling a new buffer; also make the buffer
list a GSList. Speeds up typefinding by ca. 5-10% altogether.
2005-10-10 10:43:15 +00:00
Tim-Philipp Müller
2b41c044a2 gst/base/gsttypefindhelper.c: Fix evil typefind crasher: getrange() might return a short buffer at the end of a file,...
Original commit message from CVS:
* gst/base/gsttypefindhelper.c: (helper_find_peek):
Fix evil typefind crasher: getrange() might return a short
buffer at the end of a file, but gst_type_find_peek() must
either return the full data as requested or NULL, but
never a short buffer.
2005-10-09 17:59:08 +00:00
Wim Taymans
06bc343e3f gst/base/gstbasesink.c: Better log message.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_handle_buffer):
Better log message.

* gst/gstbus.h:
* gst/gstelement.h:
More docs.

* gst/gstqueue.c: (gst_queue_class_init), (gst_queue_init),
(gst_queue_set_property), (gst_queue_get_property):
* gst/gstqueue.h:
Remove old unused properties.
2005-10-08 14:57:09 +00:00
Wim Taymans
5d5dbe9bc0 gst/base/gstbasesink.c: Prepare for doing QOS.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_do_sync), (gst_base_sink_handle_buffer):
Prepare for doing QOS.
2005-10-08 13:39:02 +00:00
Wim Taymans
d80f874fc8 gst/base/gstbasesink.*: Repost EOS message while going to PLAYING if still EOS.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_preroll_queue_flush),
(gst_base_sink_handle_object), (gst_base_sink_event),
(gst_base_sink_wait), (gst_base_sink_handle_event),
(gst_base_sink_change_state):
* gst/base/gstbasesink.h:
Repost EOS message while going to PLAYING if still EOS.
Make sure that when receiving a FLUSH_START we don't attempt
to sync on the clock anymore.
2005-10-08 09:58:30 +00:00
Wim Taymans
5a74215411 gst/base/gstbasesrc.*: Make the newsegment event customizable by subclasses.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_class_init),
(gst_base_src_init), (gst_base_src_default_newsegment),
(gst_base_src_newsegment), (gst_base_src_do_seek),
(gst_base_src_loop), (gst_base_src_start):
* gst/base/gstbasesrc.h:
Make the newsegment event customizable by subclasses.
2005-10-07 18:17:23 +00:00
Andy Wingo
ab96505bce check/elements/fakesrc.c (test_no_preroll): New check, checks that setting a live fakesrc to PAUSED returns NO_PREROL...
Original commit message from CVS:
2005-10-07  Andy Wingo  <wingo@pobox.com>

* check/elements/fakesrc.c (test_no_preroll): New check, checks
that setting a live fakesrc to PAUSED returns NO_PREROLL both
times.

* gst/base/gstbasesrc.c (gst_base_src_change_state): Allow a
NO_PREROLL from gst_element_change_state to fall through.
2005-10-07 15:22:38 +00:00
Andy Wingo
381006822b gst/gstobject.h (GST_OBJECT_REFCOUNT_VALUE): Just use the int.
Original commit message from CVS:
2005-10-02  Andy Wingo  <wingo@pobox.com>

* gst/gstobject.h (GST_OBJECT_REFCOUNT_VALUE): Just use the int.
It is volatile, after all.

* docs/design/part-gstghostpad.txt: Flesh out activation with
ghost pads.

* gst/base/gstbasesrc.c (gst_base_src_init): Use
GST_DEBUG_FUNCPTR.
2005-10-02 18:57:07 +00:00
Wim Taymans
2d3e9f6438 gst/base/gstbasesink.c: Only error is an error.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_change_state):
Only error is an error.

* gst/gstbin.c: (gst_bin_change_state):
Better debugging.

* gst/gstpad.c: (gst_pad_alloc_buffer), (gst_pad_chain):
Also call pad_block in pad alloc.

* gst/gstutils.c: (gst_flow_get_name):
Better debugging.
2005-09-30 08:00:12 +00:00
Tim-Philipp Müller
428cf34142 gst/base/gstbasesrc.c: Fix documentation typos. Add some more debug info.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_class_init),
(gst_base_src_get_range):
Fix documentation typos. Add some more debug info.
2005-09-29 20:26:12 +00:00
Andy Wingo
5111420fa2 gst/base/gstbasesrc.c (gst_base_src_unlock): Comment a bit in lieu of real docs...
Original commit message from CVS:
2005-09-28  Andy Wingo  <wingo@pobox.com>

* gst/base/gstbasesrc.c (gst_base_src_unlock): Comment a bit in
lieu of real docs...

* gst/elements/gstfdsrc.c: Cleaned up a bit.
2005-09-28 13:05:12 +00:00
Stefan Kost
6de84a3d83 added two new functions to the docs documents all undocumented GstXXXFlags completed some incomplete docs
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/base/gstbasesrc.h:
* gst/gstelement.h:
* gst/gstevent.h:
* gst/gstobject.h:
* gst/gstpad.h:
* gst/gstpipeline.c:
* gst/gstpipeline.h:
* gst/gstutils.h:
* gst/gstxml.h:
added two new functions to the docs
documents all undocumented GstXXXFlags
completed some incomplete docs
2005-09-27 20:40:35 +00:00
Thomas Vander Stichele
daadaad81b gst/: remove now useless and leaky resurrection code in dispose
Original commit message from CVS:

* gst/gstbin.c: (gst_bin_dispose):
* gst/gstelement.c: (gst_element_dispose):
remove now useless and leaky resurrection code in dispose
* gst/base/gstbasesrc.c: (gst_base_src_init):
* gst/gstelementfactory.c: (gst_element_factory_create):
* gst/gstobject.c: (gst_object_set_parent):
add some debugging
2005-09-27 18:33:48 +00:00
Andy Wingo
2f46ef713d Remove memchunk benchmark stuff, this is taken over by GLib bug 118439.
Original commit message from CVS:
2005-09-26  Andy Wingo  <wingo@pobox.com>

* configure.ac:
* tests/Makefile.am:
* tests/memchunk: Remove memchunk benchmark stuff, this is taken
over by GLib bug 118439.

* gst/base/gstbasesink.c (gst_base_sink_wait): Factor out the wait
routines to a function.

* docs/libs/gstreamer-libs-sections.txt: I am a good person today.

* libs/gst/controller/gsthelper.c:
* libs/gst/controller/gstcontroller.h (gst_controller_sync_values)
(gst_object_sync_values): Renamed from sink_values. Ugh.

* libs/gst/controller/gsthelper.c: Update for __gst_controller_key.

* libs/gst/controller/gstcontroller.c (__gst_controller_key):
Renamed from controller_key, as it is exported.

* gst/gstvalue.c (_gst_value_initialize): Fake out the compiler.
2005-09-26 15:43:30 +00:00
Wim Taymans
dade05062a gst/base/gstbasesrc.c: Some more debugging info.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_get_range),
(gst_base_src_is_seekable), (gst_base_src_change_state):
Some more debugging info.
2005-09-26 11:21:42 +00:00
Stefan Kost
2a7a17ce2b added more docs
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/base/gstbasetransform.h:
* gst/gstindex.h:
added more docs
2005-09-25 18:34:49 +00:00
Thomas Vander Stichele
3f519e30e9 various doc updates
Original commit message from CVS:

* docs/README:
* gst/gstpad.c: (gst_pad_class_init), (gst_pad_chain):
* gst/gstpluginfeature.c:
* gst/gstutils.c:
various doc updates
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
change an assert into an error until it gets fixed properly
2005-09-23 15:36:28 +00:00
Wim Taymans
43c8433a07 gst/base/gstbasesink.c: Prepare for more accurate position reporting and query handling.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_class_init),
(gst_base_sink_send_event), (gst_base_sink_peer_query),
(gst_base_sink_query):
Prepare for more accurate position reporting and query
handling.

* gst/gstelement.c: (gst_element_send_event),
(gst_element_set_state):
Add some comment.
2005-09-22 18:07:22 +00:00
Tim-Philipp Müller
9894c90109 gst/: Don't put functional code in g_return_if_fail() or g_return_val_if_fail() statements, otherwise things will bre...
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_transform_size):
* gst/gstutils.c: (gst_util_set_value_from_string),
(gst_util_set_object_arg):
Don't put functional code in g_return_if_fail() or
g_return_val_if_fail() statements, otherwise things will
break when G_DISABLE_CHECKS is defined during compilation.
2005-09-21 11:52:04 +00:00
Wim Taymans
46d159afce gst/base/gstbasesink.c: Make sync property settable from subclass.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_class_init),
(gst_base_sink_init):
Make sync property settable from subclass.

* gst/elements/gstfakesink.c: (gst_fake_sink_init),
(gst_fake_sink_change_state):
Set sync to FALSE by default.
2005-09-20 17:38:51 +00:00
Wim Taymans
3a3b15c8a3 gst/base/gstbasesink.*: Added sync property to basesink to disable clock sync.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_class_init),
(gst_base_sink_set_property), (gst_base_sink_get_property),
(gst_base_sink_do_sync):
* gst/base/gstbasesink.h:
Added sync property to basesink to disable clock sync.
2005-09-20 12:05:47 +00:00
Wim Taymans
74d0352327 gst/base/gstbasesrc.c: Handle state change failure more correctly.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_change_state):
Handle state change failure more correctly.
2005-09-19 14:55:26 +00:00
Thomas Vander Stichele
01f775f41b some whitespace to trigger a build
Original commit message from CVS:
some whitespace to trigger a build
2005-09-16 00:08:15 +00:00
David Schleef
20acc0ae7e configure.ac: Add -no-undefined to GST_PLUGIN_LDFLAGS (bug #316076)
Original commit message from CVS:
* configure.ac: Add -no-undefined to GST_PLUGIN_LDFLAGS (bug
#316076)
* gst/base/Makefile.am: Add -no-undefined to LDFLAGS for libs
* gst/check/Makefile.am:
* libs/gst/controller/Makefile.am:
* libs/gst/dataprotocol/Makefile.am:
2005-09-15 05:58:37 +00:00
Jan Schmidt
f6d5e3c3c5 gst/: Remove the requirement for sub-classes to call the parent implementation of prepare_output_buffer with a wrappe...
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_class_init),
(gst_base_transform_prepare_output_buf),
(gst_base_transform_handle_buffer):
* gst/elements/gstcapsfilter.c: (gst_capsfilter_transform_ip),
(gst_capsfilter_prepare_buf):
Remove the requirement for sub-classes to call the parent
implementation of prepare_output_buffer with a wrapper function.

* gst/gsttaglist.h:
* gst/gsttagsetter.h:
Fix #define wrapper
2005-09-12 13:45:04 +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
Thomas Vander Stichele
574cabacba debug fixes
Original commit message from CVS:
debug fixes
2005-09-11 11:57:08 +00:00
Jan Schmidt
1feeaffc7f check/gst-libs/controller.c: Header include fix.
Original commit message from CVS:
* check/gst-libs/controller.c:
Header include fix.
* gst/base/gstbasetransform.c:
(gst_base_transform_default_prepare_buf),
(gst_base_transform_handle_buffer):
* gst/base/gstbasetransform.h:
Some more basetransform changes and fixes to enable sub-classes
that modify buffer metadata only.
* gst/elements/gstcapsfilter.c: (gst_capsfilter_class_init),
(gst_capsfilter_init), (gst_capsfilter_transform_ip),
(gst_capsfilter_prepare_buf):
If the output pad has fixed allowed caps and input buffers
don't have any, set the fixed caps on outgoing buffers.
2005-09-09 23:45:15 +00:00
Thomas Vander Stichele
ffd3d7b3c7 object debugging is good
Original commit message from CVS:
object debugging is good
2005-09-09 18:05:40 +00:00
Jan Schmidt
6ed5bee3b0 check/elements/identity.c: Make the error a little clearer when the test fails because identity made a copy of the bu...
Original commit message from CVS:
* check/elements/identity.c: (GST_START_TEST):
Make the error a little clearer when the test fails because
identity made a copy of the buffer.
* docs/gst/gstreamer-sections.txt:
New symbols in gstbasetransform.h
* gst/base/gstbasetransform.c: (gst_base_transform_class_init),
(gst_base_transform_init), (gst_base_transform_transform_size),
(gst_base_transform_configure_caps), (gst_base_transform_setcaps),
(gst_base_transform_default_prepare_buf),
(gst_base_transform_get_unit_size),
(gst_base_transform_buffer_alloc),
(gst_base_transform_handle_buffer), (gst_base_transform_chain),
(gst_base_transform_change_state),
(gst_base_transform_set_passthrough),
(gst_base_transform_set_in_place),
(gst_base_transform_is_in_place):
* gst/base/gstbasetransform.h:
Change BaseTransform to separate in_place operate from same_caps
output. in_place implies that the element can perform the transform
on incoming buffers in-place, even if the caps on the output are
different.
Sub-class elements can now implement special buffer allocation
methods for outgoing buffers if they wish to.
Big documentation addition.
* gst/elements/gstcapsfilter.c: (gst_capsfilter_transform_ip):
* gst/elements/gstelements.c:
Changes for basetransform modifications.
* gst/elements/Makefile.am:
* gst/elements/gstfdsrc.c: (gst_fdsrc_init), (gst_fdsrc_create):
Compile fix. Extra debug output.
2005-09-09 17:42:20 +00:00
Andy Wingo
c477a458d7 gst/base/gstbasesink.c (gst_base_sink_activate_pull): Fix a race condition whereby the pad's task function is entered...
Original commit message from CVS:
2005-09-07  Andy Wingo  <wingo@pobox.com>

* gst/base/gstbasesink.c (gst_base_sink_activate_pull): Fix a race
condition whereby the pad's task function is entered before the
pad_mode variable was set.
2005-09-07 10:06:56 +00:00
Tim-Philipp Müller
46616180d1 gst/base/gstbasesink.c: Add comment.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_pad_buffer_alloc):
Add comment.
* gst/elements/gstfakesink.c: (gst_fake_sink_init),
(gst_fake_sink_change_state):
Make state change function thread-safe.
* gst/gstpad.c: (gst_pad_alloc_buffer):
Set offset on generic buffer allocated by fallback.
2005-09-02 23:17:26 +00:00
Andy Wingo
e040bb2dbe gst/gstelement.h (GstState): Renamed from GstElementState, changed to be a normal enum instead of flags.
Original commit message from CVS:
2005-09-02  Andy Wingo  <wingo@pobox.com>

* gst/gstelement.h (GstState): Renamed from GstElementState,
changed to be a normal enum instead of flags.
(GstStateChangeReturn): Renamed from GstElementStateReturn, names
munged to be GST_STATE_CHANGE_*.
(GST_STATE_CHANGE): Renamed from GST_STATE_TRANSITION, updated to
work with the new state representation.
(GstStateChange): New enumeration of possible state transitions.
Replaces GST_STATE_FOO_TO_BAR with GST_STATE_CHANGE_FOO_TO_BAR.
(GstElementClass::change_state): Pass the GstStateChange along as
an argument. Helps language bindings, so they don't have to use
tricky lock-needing macros like GST_STATE_CHANGE ().

* scripts/update-states (file): New script. Run it on a file to
update it for state naming and API changes. Updates files in
place.

* All files updated for the new API.
2005-09-02 15:42:00 +00:00
Wim Taymans
8099c34220 gst/base/gstbasesink.*: Handle newsegments more correctly.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_event), (gst_base_sink_do_sync),
(gst_base_sink_handle_event):
* gst/base/gstbasesink.h:
Handle newsegments more correctly.

* gst/gstbus.c:
Fix docs.

* gst/gstevent.c: (gst_event_new_newsegment):
A newsegment cannot have a start_time of -1
2005-09-01 18:12:18 +00:00
Wim Taymans
6116cdc149 gst/base/gstbasetransform.c: Passthrough elements don't need the caps as they don't care.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_setcaps),
(gst_base_transform_handle_buffer):
Passthrough elements don't need the caps as they don't care.
2005-08-31 13:53:39 +00:00
Wim Taymans
8cd2dc7a81 gst/base/gstbasetransform.c: Don't leak refcounts on buffers.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_setcaps),
(gst_base_transform_handle_buffer), (gst_base_transform_chain):
Don't leak refcounts on buffers.
2005-08-31 13:50:40 +00:00
Wim Taymans
2db910992f gst/base/gstbasetransform.*: Handle the case where we are not negotiated more gracefully.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_configure_caps),
(gst_base_transform_setcaps), (gst_base_transform_handle_buffer),
(gst_base_transform_chain), (gst_base_transform_change_state):
* gst/base/gstbasetransform.h:
Handle the case where we are not negotiated more gracefully.
2005-08-31 13:41:19 +00:00
Wim Taymans
cd599c3718 gst/base/gstbasetransform.c: passthrough elements can even do inplace on non writable buffers (as they don't touch th...
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_handle_buffer):
passthrough elements can even do inplace on non writable
buffers (as they don't touch them).
2005-08-31 10:07:24 +00:00
Wim Taymans
d7cfd8a12e gst/base/gstadapter.c: Flushing out 0 bytes is ok for this function.
Original commit message from CVS:
* gst/base/gstadapter.c: (gst_adapter_flush):
Flushing out 0 bytes is ok for this function.

* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
no newsegment gives a warning and sets the start/stop to
invalid.

* gst/base/gstbasetransform.c: (gst_base_transform_change_state),
(gst_base_transform_set_passthrough):
Some debug info.

* gst/gstminiobject.c: (gst_mini_object_ref):
Check refcount here too.

* gst/gstpad.c: (gst_pad_init):
Pads are initially flushing and refusing data.

* gst/gstutils.c: (gst_element_link_pads_filtered):
When adding a capsfilter element make sure it has the
same state as the parent bin.
2005-08-30 19:29:59 +00:00
Andy Wingo
944491ab45 gst/gstutils.h (GST_BOILERPLATE_FULL): Prototype instance_init as having two arguments instead of just one. Allows su...
Original commit message from CVS:
2005-08-28  Andy Wingo  <wingo@pobox.com>

* gst/gstutils.h (GST_BOILERPLATE_FULL): Prototype instance_init
as having two arguments instead of just one. Allows superclasses
to access information on subclasses -- see the terrible for() loop
in gtype.c:g_type_create_instance for the reason why. All callers
changed.
2005-08-28 17:45:58 +00:00
Stefan Kost
90b2a570bb gst/base/gstbasetransform.c: fix div-by-zero
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_transform_size):
fix div-by-zero
2005-08-26 21:23:51 +00:00
Andy Wingo
9d1b5e07b3 check/pipelines/simple_launch_lines.c (run_pipeline): Check element_set_state's return val.
Original commit message from CVS:
2005-08-26  Andy Wingo  <wingo@pobox.com>

* check/pipelines/simple_launch_lines.c (run_pipeline): Check
element_set_state's return val.
(test_2_elements): Add test that's been disabled for months.

* gst/elements/gstfakesink.c: Cleanups. Add can-activate-push and
can-activate-pull properties.

* gst/elements/gstfakesrc.c: Cleanups. Add can-activate-push and
can-activate-pull properties. Implement is_seekable so fakesrc can
operate in pull mode.

* gst/base/gstbasesink.c (GstBaseSink): Remove has-loop, has-chain
properties.
(gst_base_sink_activate, gst_base_sink_activate_pull)
(gst_base_sink_activate_push): Make activation mode choosing work.
Cleanups.
(gst_base_sink_chain, gst_base_sink_loop): Assert activation mode
is right. Make pull mode work. Post an eos before pausing in pull
mode.
(gst_base_sink_change_state): Pay attention to the core's
change_state() return val.

* gst/base/gstbasesrc.c (GstBaseSrc): Remove has-loop,
has-getrange properties. Cleanups.

* gst/base/gstbasesrc.h (GstBaseSrc): Remove has_loop,
has_getrange and replace with can_activate_pull and
can_activate_push.

* gst/base/gstbasesink.h (GstBaseSink): Rearrange fields, add
locking comments. Remove has_loop, has_chain and replace with
can_activate_pull and can_activate_push.
2005-08-26 14:21:43 +00:00
Thomas Vander Stichele
6c3416a44d gst/base/: fix up some debugging
Original commit message from CVS:

* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
* gst/base/gstbasetransform.c: (gst_base_transform_transform_size),
fix up some debugging
(gst_base_transform_get_unit_size),
(gst_base_transform_buffer_alloc), (gst_base_transform_event),
(gst_base_transform_handle_buffer):
* gst/base/gstbasetransform.h:
handle and store timed NEWSEGMENT events so that subclasses that
calculate time by counting samples have a segment_start time they
need to add to their timestamps - see audioresample
2005-08-26 11:56:11 +00:00
Thomas Vander Stichele
8b739d91e7 whitespace, doc and debug fixing/additions
Original commit message from CVS:
whitespace, doc and debug fixing/additions
2005-08-26 11:19:22 +00:00
Wim Taymans
b9ab9854e3 gst/base/gstbasetransform.*: Cache caps unit_size.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_init),
(gst_base_transform_transform_size),
(gst_base_transform_configure_caps),
(gst_base_transform_get_unit_size),
(gst_base_transform_buffer_alloc),
(gst_base_transform_change_state):
* gst/base/gstbasetransform.h:
Cache caps unit_size.
Make sure we cannot negotiate up and downstream at the
same time.
2005-08-25 19:36:05 +00:00
Thomas Vander Stichele
31e37fe64c add docs
Original commit message from CVS:
add docs
2005-08-25 18:54:00 +00:00
Wim Taymans
ec8ec3da8a gst/base/gstbasesink.*: Handle newsegment events correctly.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_get_times), (gst_base_sink_do_sync),
(gst_base_sink_handle_buffer), (gst_base_sink_change_state):
* gst/base/gstbasesink.h:
Handle newsegment events correctly.
Drop buffers out of the segment range.
2005-08-24 17:57:36 +00:00
Thomas Vander Stichele
6519d7bfba gst/base/gstbasetransform.c: use gboolean return values and pointers to size so we can use the full GST_BUFFER_SIZE r...
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_transform_caps),
(gst_base_transform_transform_size), (gst_base_transform_getcaps),
(gst_base_transform_setcaps), (gst_base_transform_get_unit_size),
(gst_base_transform_buffer_alloc),
(gst_base_transform_handle_buffer):
use gboolean return values and pointers to size so we can use the
full GST_BUFFER_SIZE range (guint) for buffer sizes
use GstPadDirection for transform_caps
* gst/base/gstbasetransform.h:
rename get_size to get_unit_size since that's what it is
* gst/elements/gstcapsfilter.c: (gst_capsfilter_transform_caps):
use GstPadDirection for transform_caps
* gst/gstbuffer.c: (gst_buffer_new_and_alloc):
* gst/gstutils.h:
cleanup and debugging
2005-08-24 13:33:21 +00:00
Wim Taymans
15af2428df gst/base/gstbasetransform.*: Many fixes and new features added by Thomas. Can now also do transforms with variable si...
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_init),
(gst_base_transform_transform_caps),
(gst_base_transform_transform_size),
(gst_base_transform_configure_caps), (gst_base_transform_setcaps),
(gst_base_transform_get_size), (gst_base_transform_buffer_alloc),
(gst_base_transform_handle_buffer):
* gst/base/gstbasetransform.h:
Many fixes and new features added by Thomas. Can now also do
transforms with variable sizes and a custom fixate_caps function.
2005-08-24 11:44:24 +00:00
Stefan Kost
3e1c4a2c42 inlined more doc comments, added missing comments and fixed comments fixed typos
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* docs/gst/tmpl/.cvsignore:
* docs/gst/tmpl/gstbin.sgml:
* docs/gst/tmpl/gstbuffer.sgml:
* gst/base/gstbasesrc.c:
* gst/gstbin.c: (gst_bin_get_type), (gst_bin_class_init):
* gst/gstbuffer.c:
* gst/gstbuffer.h:
* tools/gst-launch.1.in:
inlined more doc comments, added missing comments and fixed comments
fixed typos
2005-08-23 11:53:58 +00:00
Wim Taymans
5ffafdb34a gst/base/gstbasetransform.c: Also call the transform function if we have ANY caps.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_transform_caps),
(gst_base_transform_handle_buffer):
Also call the transform function if we have ANY caps.

* gst/gstpipeline.c: (gst_pipeline_set_new_stream_time):
Fix debug info.
2005-08-22 19:48:46 +00:00
Jan Schmidt
ee1f83092e gst/base/gstbasesrc.c: (gst_base_src_event_handler)
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_event_handler)
Don't pretend to handle seek events if the source is not seekable
2005-08-22 19:22:34 +00:00
Jan Schmidt
05fa076d05 gst/base/gstbasesink.c: Remove extra parameter to debug output
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
Remove extra parameter to debug output

* gst/base/gstbasesrc.c: (gst_base_src_send_discont),
(gst_base_src_do_seek), (gst_base_src_activate_push):
Fix seek event handling.

* gst/gstpipeline.c: (gst_pipeline_change_state):
* gst/gstqueue.c: (gst_queue_handle_sink_event),
(gst_queue_src_activate_push):
Don't start the src pad task on FLUSH_STOP if the pad
isn't linked.
Debug changes.
2005-08-22 18:48:48 +00:00
Thomas Vander Stichele
e5afa8a31b check/Makefile.am: clean up environment for when registry gets built versus when actual tests are run; valgrind seems...
Original commit message from CVS:

* check/Makefile.am:
clean up environment for when registry gets built versus
when actual tests are run; valgrind seems to not report
leaks if GST_PLUGIN_PATH is set to some specific values
* check/gst/gstbin.c: (GST_START_TEST):
add more refcounting checks; maybe this exposes a
preroll lock bug ?
* common/check.mak:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
* gst/check/gstcheck.h:
* gst/gstbin.c: (bin_element_is_semi_sink), (gst_bin_get_state),
(gst_bin_change_state):
* gst/gstpad.c: (gst_pad_activate_push), (gst_pad_chain):
add/fix debugging/whitespace
2005-08-21 15:01:18 +00:00
Jan Schmidt
84b76a4359 check/Makefile.am: Use CHECK_CFLAGS and CHECK_LIBS
Original commit message from CVS:
* check/Makefile.am:
Use CHECK_CFLAGS and CHECK_LIBS
* check/gst/gstevent.c: (event_probe), (test_event),
(GST_START_TEST):
Don't leak events.
* gst/base/gstbasesrc.c: (gst_base_src_send_discont),
(gst_base_src_start), (gst_base_src_stop),
(gst_base_src_activate_push), (gst_base_src_activate_pull),
(gst_base_src_change_state):
Sprinkle gst_base_src_stop liberally around error paths to fix
problems reusing a source after failed state changes.
* gst/base/gsttypefindhelper.c: (helper_find_peek),
(helper_find_suggest), (gst_type_find_helper):
Extra debug output. Don't segfault on GST_PAD_GETRANGEFUNC = NULL
* gst/gstevent.h:
* docs/gst/tmpl/gstevent.sgml:
Migrate part of the docs from the SGML file. Wait for ensonic to
tell me how I did it wrong ;)
* tools/gst-typefind.c: (main):
Extra robustness to state changes between files.
2005-08-21 10:54:47 +00:00
Andy Wingo
aa0fb69d49 Make sure that when a pipeline goes to PLAYING, that data has actually hit the sink.
Original commit message from CVS:
2005-08-18  Andy Wingo  <wingo@pobox.com>

Make sure that when a pipeline goes to PLAYING, that data has
actually hit the sink.

* check/states/sinks.c (test_sink): A sink that doesn't get any
data shouldn't return SUCCESS for going to either PLAYING or
PAUSED. Test also the return values on the way back down.

* gst/gstelement.c (gst_element_set_state): When changing the
state of an element currently changing state asynchronously, go to
lost-state after commiting the pending state. Makes future calls
to get_state continue to return ASYNC.

* gst/base/gstbasesink.c (gst_base_sink_change_state): Return
ASYNC when going to PLAYING if we still don't have preroll, as can
happen with live sources.
2005-08-18 16:20:24 +00:00
Jan Schmidt
8377afc0ba check/: I wrote a test!
Original commit message from CVS:
* check/Makefile.am:
* check/gst/gstevents.c: (GST_START_TEST), (event_probe),
(test_event), (timediff), (gstevents_suite), (main):
I wrote a test!

* docs/design/part-seeking.txt:
Spelling correction

* docs/gst/tmpl/gstevent.sgml:
Docs updates.

* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
Treat a buffer-without-newsegment the same as a receiving
a newsegment not in time format, and disable syncing to the clock
with a warning.

* gst/gstbus.c: (gst_bus_set_sync_handler):
Assert if anyone tries to replace the existing sync_handler for bus,
as only the owner should be setting it.

* gst/gstevent.h:
Have a fixed set of custom event enums with events identified by
their structure name (as in 0.8), rather than a free-for-all
allowing collisions between enum values from different plugins.

* gst/gstpad.c: (gst_pad_class_init):
Docs change.

* gst/gstqueue.c: (gst_queue_handle_sink_event):
Handle out-of-band downstream events from the sending thread.
2005-08-18 15:31:28 +00:00
Andy Wingo
c5e2202f20 gst/base/gstbasetransform.c: Debug changes.
Original commit message from CVS:
2005-08-17  Andy Wingo  <wingo@pobox.com>

* gst/base/gstbasetransform.c: Debug changes.

* gst/gstutils.h:
* gst/gstutils.c (gst_bin_watch_for_state_change): Add function to
ensure bins post state change messages. A bit of a hack but I can't
think of a way to avoid it.

* check/gst/gstbin.c (test_watch_for_state_change): Added test.
2005-08-17 16:33:27 +00:00
Andy Wingo
ecbae942c5 gst/base/gstadapter.*: New function, like peek() but you own the data. Not terribly efficient atm.
Original commit message from CVS:
2005-08-16  Andy Wingo  <wingo@pobox.com>

* gst/base/gstadapter.h:
* gst/base/gstadapter.c (gst_adapter_take): New function, like
peek() but you own the data. Not terribly efficient atm.
2005-08-16 17:23:55 +00:00
Stefan Kost
cdc8ba9725 docs/gst/gstreamer-sections.txt: made some defines private
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
made some defines private
* docs/gst/tmpl/gstconfig.sgml:
* docs/gst/tmpl/gstqueue.sgml:
* docs/gst/tmpl/gsttaglist.sgml:
* docs/gst/tmpl/gsttypes.sgml:
* docs/gst/tmpl/gstutils.sgml:
* docs/pwg/appendix-porting.xml:
* gst/base/gstbasesink.h:
* gst/base/gstbasesrc.c:
* gst/base/gstbasesrc.h:
* gst/elements/gstfakesink.c: (gst_fake_sink_class_init):
* gst/elements/gstfakesrc.c: (gst_fake_src_class_init):
* gst/gstelement.c: (gst_element_class_init):
* gst/gstpad.c: (gst_pad_class_init):
* gst/gstqueue.c: (gst_queue_class_init):
* gst/gstxml.c: (gst_xml_class_init):
documented all undocumented signal inline
* libs/gst/controller/gst-controller.h:
added padding
2005-08-15 16:57:34 +00:00
Tim-Philipp Müller
ba8a8319fd gst/base/gsttypefindhelper.c: The memory returned by gst_type_find_peek() needs to stay valid until the end of a type...
Original commit message from CVS:
* gst/base/gsttypefindhelper.c: (helper_find_peek),
(gst_type_find_helper):
The memory returned by gst_type_find_peek() needs to
stay valid until the end of a typefind function, and
typefind functions may keep results from different
offsets around, so we can't just unref the buffer from
the previous _peek(), but have to save all buffers
returned by _peek() until typefinding is done and only
free them then.
2005-08-10 15:08:03 +00:00
Ronald S. Bultje
d32de37076 gst/base/gstbasetransform.c: Fix a pretty good memleak.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_buffer_alloc):
Fix a pretty good memleak.
2005-08-08 15:08:14 +00:00
Tim-Philipp Müller
46cc9bc152 gst/: Add padding to our base elements' class and instance structs and to GstIterator (you will need to rebuild all p...
Original commit message from CVS:
* gst/base/gstadapter.h:
* gst/base/gstbasesink.h:
* gst/base/gstbasesrc.h:
* gst/base/gstbasetransform.h:
* gst/base/gstcollectpads.h:
* gst/base/gstpushsrc.h:
* gst/gstiterator.h:
Add padding to our base elements' class and instance structs and
to GstIterator (you will need to rebuild all plugins and apps!)
2005-08-08 13:31:09 +00:00
Stefan Kost
da7dd48860 added long/short desc for controller docs added collectpads base class docs added correct includes to base-class docs
Original commit message from CVS:
added long/short desc for controller docs
added collectpads base class docs
added correct includes to base-class docs
2005-08-05 12:59:46 +00:00
Stefan Kost
a34f2613f9 more tests (and fixes) for the controller more docs for the controller integrated companies docs for the adapter
Original commit message from CVS:
more tests (and fixes) for the controller
more docs for the controller
integrated companies docs for the adapter
2005-08-05 10:02:44 +00:00
Andy Wingo
e20ed97cb2 gst/elements/gstcapsfilter.c: Reimplement using basetransform, fixes buffer_alloc proxying among other things.
Original commit message from CVS:
2005-08-04  Andy Wingo  <wingo@pobox.com>

* gst/elements/gstcapsfilter.c: Reimplement using basetransform,
fixes buffer_alloc proxying among other things.

* gst/base/gstbasetransform.c:
* gst/base/gstbasetransform.h:
Revert patch to gstbasetransform from 7-28 removing
delay_configure.

* gst/base/gstbasetransform.h (GstBaseTransformClass.get_size):
* gst/base/gstbasetransform.c (gst_base_transform_get_size):
Semantics changed, should return not the size of the output buffer
but the byte size of a buffer with a given caps.

* gst/base/gstbasetransform.c (gst_base_transform_getcaps): Better
debug object.
(gst_base_transform_configure_caps): Don't set out_size here: (in,
out) are not the pad caps until setcaps finishes.
(gst_base_transform_buffer_alloc): Proxy the buffer_alloc for the
not-in-place case as well. Deal with changing from in-place to
not-in-place within calling pad_alloc_buffer. Still a bit
concerned about the overhead here...
2005-08-04 19:40:43 +00:00
Edward Hervey
8ff106a019 gst/base/gstadapter.h: Added gst_adapter_get_type() to the header
Original commit message from CVS:
* gst/base/gstadapter.h:
Added gst_adapter_get_type() to the header
2005-08-04 11:56:57 +00:00
Stefan Kost
b3034dba54 added check test suite for the controller fixed a doc typo
Original commit message from CVS:
added check test suite for the controller
fixed a doc typo
2005-08-03 15:59:11 +00:00
Stefan Kost
722f83a8fc add short/long description docs to base classes add pushsrc to the docs remove consolidated doc fragments
Original commit message from CVS:
add short/long description docs to base classes
add pushsrc to the docs
remove consolidated doc fragments
2005-08-03 13:30:18 +00:00
Jan Schmidt
75c955843e gst/base/gstcollectpads.c: Broadcast the condition when shutting down, to make sure we wake all threads up. Shut down...
Original commit message from CVS:
* gst/base/gstcollectpads.c: (gst_collectpads_finalize),
(gst_collectpads_stop):
Broadcast the condition when shutting down, to make sure we wake all
threads up. Shut down pads on finalize, for safety.
2005-08-01 21:17:01 +00:00
Jan Schmidt
4572dcaa86 gst/base/gstbasetransform.c: Handle PAUSED->READY->PAUSED transition after negotiation occurred already.
Original commit message from CVS:
2005-08-01  Jan Schmidt  <thaytan@mad.scientist.com>
* gst/base/gstbasetransform.c: (gst_base_transform_init),
(gst_base_transform_handle_buffer),
(gst_base_transform_change_state):
Handle PAUSED->READY->PAUSED transition after negotiation
occurred already.
* gst/gstmessage.c: (gst_message_init):
Extra piece of debug for new messages.
2005-08-01 17:26:00 +00:00
Ronald S. Bultje
cd76217ce5 gst/base/gstbasetransform.*: Remove broken delay_configure (fixes renegotiation of software scaling pipelines); remov...
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_setcaps),
(gst_base_transform_handle_buffer):
* gst/base/gstbasetransform.h:
Remove broken delay_configure (fixes renegotiation of software
scaling pipelines); remove some leftover printf()s.
2005-07-28 11:49:56 +00:00
Ronald S. Bultje
f6195ba59a gst/base/gstbasetransform.c: Better debug if no transform is possible.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_setcaps):
Better debug if no transform is possible.
2005-07-28 10:38:02 +00:00
Wim Taymans
66d7070ef1 Some docs updates
Original commit message from CVS:
* CHANGES-0.9:
* docs/design/part-TODO.txt:
* docs/design/part-events.txt:
Some docs updates

* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_event), (gst_base_sink_do_sync),
(gst_base_sink_activate_push), (gst_base_sink_activate_pull):
* gst/base/gstbasesrc.c: (gst_base_src_send_discont),
(gst_base_src_do_seek), (gst_base_src_event_handler),
(gst_base_src_loop):
* gst/base/gstbasetransform.c: (gst_base_transform_transform_caps),
(gst_base_transform_configure_caps), (gst_base_transform_setcaps),
(gst_base_transform_get_size), (gst_base_transform_buffer_alloc),
(gst_base_transform_event), (gst_base_transform_handle_buffer),
(gst_base_transform_set_passthrough),
(gst_base_transform_is_passthrough):
* gst/elements/gstfakesink.c: (gst_fake_sink_event):
* gst/elements/gstfilesink.c: (gst_file_sink_event):
Event updates.

* gst/gstbuffer.h:
Use faster casts.

* gst/gstelement.c: (gst_element_seek):
* gst/gstelement.h:
Update gst_element_seek.

* gst/gstevent.c: (gst_event_finalize), (_gst_event_copy),
(gst_event_new), (gst_event_new_custom), (gst_event_get_structure),
(gst_event_new_flush_start), (gst_event_new_flush_stop),
(gst_event_new_eos), (gst_event_new_newsegment),
(gst_event_parse_newsegment), (gst_event_new_tag),
(gst_event_parse_tag), (gst_event_new_filler), (gst_event_new_qos),
(gst_event_parse_qos), (gst_event_new_seek),
(gst_event_parse_seek), (gst_event_new_navigation):
* gst/gstevent.h:
Make GstEvent use GstStructure. Add parsing code, make sure the
API is sufficiently generic.
Mark possible directions of events and serialization.

* gst/gstmessage.c: (gst_message_init), (gst_message_finalize),
(_gst_message_copy), (gst_message_new_segment_start),
(gst_message_new_segment_done), (gst_message_new_custom),
(gst_message_parse_segment_start),
(gst_message_parse_segment_done):
Small cleanups.

* gst/gstpad.c: (gst_pad_get_caps_unlocked), (gst_pad_accept_caps),
(gst_pad_set_caps), (gst_pad_send_event):
Update for new events.
Catch events sent in wrong directions.

* gst/gstqueue.c: (gst_queue_link_src),
(gst_queue_handle_sink_event), (gst_queue_chain), (gst_queue_loop),
(gst_queue_handle_src_query):
Event updates.

* gst/gsttag.c:
* gst/gsttag.h:
Remove event code from this file.

* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packet_from_event),
(gst_dp_event_from_packet):
Event updates.
2005-07-27 18:33:03 +00:00
Ronald S. Bultje
4795d25721 gst/base/gstbasetransform.c: Make debugging actually useful.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_getcaps),
(gst_base_transform_configure_caps), (gst_base_transform_setcaps),
(gst_base_transform_get_size), (gst_base_transform_handle_buffer):
Make debugging actually useful.
2005-07-27 15:05:45 +00:00
Wim Taymans
9f06376bab docs/design/part-events.txt: Small update.
Original commit message from CVS:
* docs/design/part-events.txt:
Small update.

* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_do_sync), (gst_base_sink_activate_push),
(gst_base_sink_activate_pull):
Some more comments.

* gst/elements/gstfakesrc.c: (gst_fake_src_class_init),
(gst_fake_src_create):
Fix handoff marshall.

* gst/elements/gstidentity.c: (gst_identity_class_init),
(gst_identity_transform_ip):
We're a real inplace element.

* gst/gstbus.c: (gst_bus_post):
Added some comments.

* tests/lat.c: (fakesrc), (fakesink), (simple), (queue), (main):
* tests/muxing/case1.c: (main):
* tests/sched/dynamic-pipeline.c: (main):
* tests/sched/interrupt1.c: (main):
* tests/sched/interrupt2.c: (main):
* tests/sched/interrupt3.c: (main):
* tests/sched/runxml.c: (main):
* tests/sched/sched-stress.c: (main):
* tests/seeking/seeking1.c: (event_received), (main):
* tests/threadstate/threadstate2.c: (bus_handler), (timeout_func),
(main):
* tests/threadstate/threadstate3.c: (main):
* tests/threadstate/threadstate4.c: (main):
* tests/threadstate/threadstate5.c: (main):
Fix the tests.
2005-07-22 11:47:10 +00:00
Wim Taymans
030ff93e82 docs/design/part-seeking.txt: Some small additions.
Original commit message from CVS:
* docs/design/part-seeking.txt:
Some small additions.

* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_get_times), (gst_base_sink_do_sync),
(gst_base_sink_activate_push), (gst_base_sink_activate_pull):
* gst/base/gstbasesink.h:
discont values are gint64, handle the math correctly.

* gst/base/gstbasesrc.c: (gst_base_src_loop):
Make the basesrc report error if the source pad is not linked.

* gst/gstqueue.c: (gst_queue_link_src), (gst_queue_chain),
(gst_queue_loop), (gst_queue_handle_src_query),
(gst_queue_src_activate_push):
Make queue collect data even if the srcpad is not linked.
Start pushing out data as soon as it is linked.

* gst/gstutils.c: (gst_element_unlink), (gst_flow_get_name):
* gst/gstutils.h:
Added gst_flow_get_name() to ease error reporting.
2005-07-21 17:22:13 +00:00
Wim Taymans
f73fb55d1e gst/base/gstbasesrc.*: Add a gboolean to decide when to push out a discont.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_init),
(gst_base_src_do_seek), (gst_base_src_loop), (gst_base_src_start):
* gst/base/gstbasesrc.h:
Add a gboolean to decide when to push out a discont.

* gst/gstqueue.c: (gst_queue_handle_sink_event), (gst_queue_chain),
(gst_queue_loop), (gst_queue_handle_src_query),
(gst_queue_sink_activate_push), (gst_queue_src_activate_push),
(gst_queue_set_property), (gst_queue_get_property):
Some cleanups.

* tests/threadstate/threadstate1.c: (main):
Make a thread test compile and run... very silly..
2005-07-20 10:58:10 +00:00
Wim Taymans
737969ce5b gst/base/gstbasesrc.c: Make sure we never call the create function is we got deactivated.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_get_range):
Make sure we never call the create function is we
got deactivated.
2005-07-19 13:43:50 +00:00
Wim Taymans
99a3a0a6c0 Small docs updates.
Original commit message from CVS:
* docs/design/part-clocks.txt:
* docs/design/part-events.txt:
* gst/base/gstbasesrc.c: (gst_base_src_do_seek):
Small docs updates.
Only update the seeking values when we are not
busy streaming.
2005-07-19 09:19:06 +00:00
Jan Schmidt
690e87b1fd Oops, ignore the result of gst_pad_push_event here.
Original commit message from CVS:
Oops, ignore the result of gst_pad_push_event here.
2005-07-18 17:43:52 +00:00
Jan Schmidt
518e590f8b gst/base/gstbasesrc.c: Send discont event from the loop function, as pads aren't activated yet in the activate_push h...
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_loop),
(gst_base_src_activate_push):
Send discont event from the loop function, as pads
aren't activated yet in the activate_push handler.

* gst/gstbin.c: (bin_bus_handler):
Don't leak element name.
2005-07-18 17:12:36 +00:00
Wim Taymans
2b1ce5f29e docs/design/: Some more docs in the works.
Original commit message from CVS:
* docs/design/part-dynamic.txt:
* docs/design/part-events.txt:
* docs/design/part-seeking.txt:
Some more docs in the works.

* gst/base/gstbasetransform.c: (gst_base_transform_transform_caps),
(gst_base_transform_getcaps), (gst_base_transform_configure_caps),
(gst_base_transform_setcaps), (gst_base_transform_get_size),
(gst_base_transform_buffer_alloc), (gst_base_transform_event),
(gst_base_transform_handle_buffer),
(gst_base_transform_sink_activate_push),
(gst_base_transform_src_activate_pull),
(gst_base_transform_set_passthrough),
(gst_base_transform_is_passthrough):
Refcounting fixes.

* gst/gstbus.c: (gst_bus_source_dispatch), (gst_bus_poll):
Cleanups.

* gst/gstevent.c: (gst_event_finalize):
Set SRC to NULL.

* gst/gstutils.c: (gst_element_unlink),
(gst_pad_get_parent_element), (gst_pad_proxy_getcaps),
(gst_pad_proxy_setcaps):
* gst/gstutils.h:
Add _get_parent_element() to get a pads parent as an element.
2005-07-18 08:28:48 +00:00
Wim Taymans
56453e01b9 gst/base/gstbasesink.c: Refcounting fixes.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_pad_getcaps),
(gst_base_sink_pad_setcaps), (gst_base_sink_pad_buffer_alloc),
(gst_base_sink_preroll_queue_flush), (gst_base_sink_handle_object),
(gst_base_sink_event), (gst_base_sink_do_sync),
(gst_base_sink_chain), (gst_base_sink_loop),
(gst_base_sink_deactivate), (gst_base_sink_activate_push),
(gst_base_sink_activate_pull), (gst_base_sink_change_state):
Refcounting fixes.
Fix logic for returning ASYNC when not prerolled.
2005-07-17 22:26:02 +00:00
Wim Taymans
11bc479656 gst/base/gstbasesink.c: Fix compile error.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_do_sync):
Fix compile error.
2005-07-16 14:52:15 +00:00
Wim Taymans
d5be929bf8 gst/base/gstbasesink.*: Store and use discont values when syncing buffers as described in design docs.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_event), (gst_base_sink_get_times),
(gst_base_sink_do_sync), (gst_base_sink_change_state):
* gst/base/gstbasesink.h:
Store and use discont values when syncing buffers as described
in design docs.

* gst/base/gstbasesrc.c: (gst_base_src_send_discont),
(gst_base_src_do_seek), (gst_base_src_loop), (gst_base_src_start),
(gst_base_src_activate_push):
Push discont event when starting.

* gst/elements/gstidentity.c: (gst_identity_transform):
Small cleanups.

* gst/gstbin.c: (gst_bin_change_state):
Small cleanups in base_time  distribution.

* gst/gstelement.c: (gst_element_set_base_time),
(gst_element_get_base_time), (gst_element_change_state):
* gst/gstelement.h:
Added methods for the base_time of the element.
Some MT fixes.

* gst/gstpipeline.c: (gst_pipeline_send_event),
(gst_pipeline_change_state), (gst_pipeline_set_new_stream_time),
(gst_pipeline_get_last_stream_time):
* gst/gstpipeline.h:
MT fixes.
Handle seeking as described in design doc, remove stream_time
hack.
Cleanups clock and stream_time selection code. Added accessors
for the stream_time.
2005-07-16 14:41:25 +00:00
Tim-Philipp Müller
d34751b8c2 gst/base/gstbasesrc.c: Don't unref the caps we passed to gst_caps_make_writable() after passing them. gst_caps_make_w...
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_default_negotiate):
Don't unref the caps we passed to gst_caps_make_writable() after
passing them. gst_caps_make_writable() will do that for us.
2005-07-16 12:33:13 +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
Wim Taymans
7f4581d977 gst/base/gstbasetransform.*: Make passthrough work using the bufferpools.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_init),
(gst_base_transform_transform_caps), (gst_base_transform_getcaps),
(gst_base_transform_configure_caps), (gst_base_transform_setcaps),
(gst_base_transform_get_size), (gst_base_transform_buffer_alloc),
(gst_base_transform_handle_buffer), (gst_base_transform_getrange),
(gst_base_transform_chain), (gst_base_transform_change_state),
(gst_base_transform_set_passthrough),
(gst_base_transform_is_passthrough):
* gst/base/gstbasetransform.h:
Make passthrough work using the bufferpools.
Changed API a bit, subclasses have to write into a buffer
provided by the base class.
More debug info in nego functions.

* gst/elements/gstidentity.c: (gst_identity_init),
(gst_identity_transform):
Port to new base class.
2005-07-15 10:41:32 +00:00
Wim Taymans
40a158fa44 gst/base/gstbasesrc.c: Post error messages on errors.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_loop):
Post error messages on errors.
2005-07-14 18:45:51 +00:00
Thomas Vander Stichele
259dec97fd more autistic cleanliness in functions/names/defines
Original commit message from CVS:
more autistic cleanliness in functions/names/defines
2005-07-14 09:35:12 +00:00
Andy Wingo
9cb62f69e3 gst/base/gstbasesrc.c (gst_base_src_start): Post an error if the source couldn't negotiate.
Original commit message from CVS:
2005-07-13  Andy Wingo  <wingo@pobox.com>

* gst/base/gstbasesrc.c (gst_base_src_start): Post an error if the
source couldn't negotiate.
2005-07-13 16:26:07 +00:00
Wim Taymans
f7c0c25d58 gst/base/gstbasetransform.c: Added more debug info in the negotiate process.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_setcaps):
Added more debug info in the negotiate process.

* gst/gstmessage.h:
Prepare for segment playback.

* gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_set_caps):
Better debugging.

* gst/gstutils.c:
Some more docs.

* tools/gst-launch.c: (main):
NULL pipeline on errors.
2005-07-12 17:17:34 +00:00
Thomas Vander Stichele
aff85422dc add num-buffers property to basesrc
Original commit message from CVS:
add num-buffers property to basesrc
2005-07-11 15:06:27 +00:00
Thomas Vander Stichele
82596fea62 more macro splitting
Original commit message from CVS:
more macro splitting
2005-07-10 12:03:13 +00:00