Commit graph

2538 commits

Author SHA1 Message Date
Thomas Vander Stichele
c87c44b07f OBJECT acts on obj not caps
Original commit message from CVS:
OBJECT acts on obj not caps
2005-06-08 13:41:31 +00:00
Thomas Vander Stichele
41a8de905b add a debug line
Original commit message from CVS:
add a debug line
2005-06-08 13:41:05 +00:00
Thomas Vander Stichele
1ffd2bc0ce white space fixes
Original commit message from CVS:
white space fixes
2005-06-08 13:40:46 +00:00
Jan Schmidt
c9f30f98b7 gst/elements/gstcapsfilter.c: Free existing caps if the capsfilter changes. Add a FIXME about setting those caps on t...
Original commit message from CVS:
* gst/elements/gstcapsfilter.c: (gst_capsfilter_set_property):
Free existing caps if the capsfilter changes. Add a FIXME about
setting those caps on the pads.

* gst/gstutils.c: (gst_element_get_compatible_pad), (ghost_up):
Before adding a ghost pad to a parent bin, check that there isn't
already one for the element on the bin. Prevents infinite recursion
when using decodebin in parse pipelines. Andy says he'll rewrite the
way this works anyway, so ignore the hack.
2005-06-02 15:45:16 +00:00
Andy Wingo
26a1c2c663 gst/elements/gsttypefindelement.c (do_pull_typefind): Query the file size, pass it on to the type find helper.
Original commit message from CVS:
2005-06-02  Andy Wingo  <wingo@pobox.com>

* gst/elements/gsttypefindelement.c (do_pull_typefind): Query the
file size, pass it on to the type find helper.

* gst/base/gstbasesrc.c (gst_basesrc_do_seek): Set the
segment_start and segment_end properly according to the seek
method. Segment_end is still a bit flaky because offset can be
negative for CUR and END cases, but it takes -1 as an "unset"
value.
2005-06-02 11:12:34 +00:00
Wim Taymans
d3edbe1718 gst/: Bufferalloc: return GstFlowReturn to more accuratly report why allocation failed.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_basesink_pad_buffer_alloc),
(gst_base_sink_buffer_alloc), (gst_basesink_preroll_queue_push),
(gst_basesink_activate):
* gst/base/gstbasesink.h:
* gst/gstpad.c: (gst_pad_set_active), (gst_pad_link_prepare),
(gst_pad_link), (gst_pad_accept_caps), (gst_pad_alloc_buffer),
(gst_pad_query), (gst_pad_start_task):
* gst/gstpad.h:
* gst/gstqueue.c: (gst_queue_bufferalloc),
(gst_queue_handle_sink_event), (gst_queue_chain):
Bufferalloc: return GstFlowReturn to more accuratly report
why allocation failed.
2005-06-02 09:42:02 +00:00
Wim Taymans
5c026ec0db gst/gstpipeline.c: Take snapshot of state without blocking.
Original commit message from CVS:
* gst/gstpipeline.c: (gst_pipeline_send_event):
Take snapshot of state without blocking.
2005-06-02 09:39:21 +00:00
Wim Taymans
fcc76e3d07 gst/elements/gstidentity.c: Protect last_message property as it is accessed from multiple threads.
Original commit message from CVS:
* gst/elements/gstidentity.c: (gst_identity_event),
(gst_identity_transform), (gst_identity_get_property):
Protect last_message property as it is accessed from
multiple threads.
2005-05-30 16:28:41 +00:00
Wim Taymans
8d0a4e1d4f gst/gstelement.c: Slicker pad activation code.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_init),
(gst_element_pads_activate), (gst_element_change_state):
Slicker pad activation code.
2005-05-30 15:53:04 +00:00
Wim Taymans
e1b5b74857 gst/: Move elementfactory methods to separate .h file.
Original commit message from CVS:
* gst/Makefile.am:
* gst/gstelement.h:
* gst/gstelementfactory.h:
* gst/gsttypes.h:
Move elementfactory methods to separate .h file.
2005-05-30 15:51:40 +00:00
Wim Taymans
99d49f2c43 Small typo fixes, doc updates.
Original commit message from CVS:
* docs/design/part-overview.txt:
* gst/gstsystemclock.h:
Small typo fixes, doc updates.
2005-05-30 15:48:45 +00:00
Wim Taymans
248dce3e13 gst/gst.c: Remove cpu-opt flag.
Original commit message from CVS:
* gst/gst.c: (gst_init_get_popt_table), (init_post),
(init_popt_callback):
Remove cpu-opt flag.
2005-05-30 15:46:15 +00:00
Wim Taymans
a86feaf099 gst/gstbuffer.*: Avoid typechecking in places where not needed.
Original commit message from CVS:
* gst/gstbuffer.c: (gst_subbuffer_finalize),
(gst_buffer_create_sub), (gst_buffer_is_span_fast):
* gst/gstbuffer.h:
Avoid typechecking in places where not needed.
Added accessor for malloc_data.
2005-05-30 15:44:50 +00:00
Wim Taymans
0e1ad862de gst/gstpad.c: Propagate errors from _set_caps() in configure_src/sink functions instead of returning TRUE.
Original commit message from CVS:
* gst/gstpad.c: (gst_real_pad_init), (gst_pad_set_active),
(gst_pad_link_prepare), (gst_pad_link), (gst_pad_accept_caps),
(gst_pad_configure_sink), (gst_pad_configure_src),
(gst_pad_alloc_buffer), (gst_pad_query), (gst_pad_send_event),
(gst_pad_start_task):
Propagate errors from _set_caps() in configure_src/sink
functions instead of returning TRUE.
FLUSH events can travel up and downstream
2005-05-30 15:41:54 +00:00
Wim Taymans
be66bb03b4 gst/base/gstbasesink.c: Handle EOS in preroll.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_basesink_preroll_queue_push),
(gst_basesink_activate):
Handle EOS in preroll.
2005-05-30 15:36:09 +00:00
Wim Taymans
148057fa10 gst/gstqueue.c: Remove old pieces of code
Original commit message from CVS:
* gst/gstqueue.c: (gst_queue_handle_sink_event), (gst_queue_chain),
(gst_queue_loop), (gst_queue_handle_src_event):
Remove old pieces of code
Flushing the queue in an upstream event is a very bad idea.
2005-05-30 15:34:13 +00:00
Andy Wingo
1457b69cb7 gst/gstminiobject.c (gst_value_mini_object_collect): Use gst_value_set_mini_object so as to add a ref on the object (...
Original commit message from CVS:
2005-05-26  Andy Wingo  <wingo@pobox.com>

* gst/gstminiobject.c (gst_value_mini_object_collect): Use
gst_value_set_mini_object so as to add a ref on the object (which
will be removed when the value is unset).

* gst/elements/gstfakesink.c (gst_fakesink_class_init): Fix signal
arg type in ::handoff.

* gst/gstelement.c (gst_element_change_state): Also deactivate
pads in READY->NULL, just in case the element didn't make it to
PAUSED. Wingo tested, Wim approved.
2005-05-27 09:27:35 +00:00
Wim Taymans
61167c9097 gst/gstpad.c: A flushing pad cannot be used to alloc_buffer from.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_set_active), (gst_pad_link_prepare),
(gst_pad_link), (gst_pad_accept_caps), (gst_pad_alloc_buffer),
(gst_pad_query), (gst_pad_send_event), (gst_pad_start_task):
A flushing pad cannot be used to alloc_buffer from.
2005-05-26 10:50:12 +00:00
Wim Taymans
ea2dd0057c gst/gstbus.*: Implement a real GSource and use g_main_context_wakeup() to signal new messages instead of the socketpair.
Original commit message from CVS:
* gst/gstbus.c: (gst_bus_init), (gst_bus_dispose), (gst_bus_post),
(gst_bus_pop), (gst_bus_source_prepare), (gst_bus_source_check),
(gst_bus_source_dispatch), (gst_bus_source_finalize),
(gst_bus_create_watch), (gst_bus_add_watch_full):
* gst/gstbus.h:
Implement a real GSource and use g_main_context_wakeup() to
signal new messages instead of the socketpair.
2005-05-26 10:48:53 +00:00
Wim Taymans
56d9730d20 gst/: Fix state changes for non sinks. We now change sinks, then elements with unconnected srcpads, then the rest.
Original commit message from CVS:
* gst/gstbin.c: (bin_element_is_sink), (has_ancestor),
(bin_element_is_semi_sink), (append_child), (gst_bin_change_state):
* gst/gstpad.c: (gst_pad_set_active), (gst_pad_link_prepare),
(gst_pad_link), (gst_pad_accept_caps), (gst_pad_query),
(gst_pad_send_event), (gst_pad_start_task):
* gst/gstqueue.c: (gst_queue_init), (gst_queue_locked_flush),
(gst_queue_handle_sink_event), (gst_queue_chain), (gst_queue_loop),
(gst_queue_sink_activate), (gst_queue_src_activate),
(gst_queue_change_state):
* gst/gstqueue.h:
Fix state changes for non sinks. We now change sinks, then elements
with unconnected srcpads, then the rest.
More efficient queue unlocking in flush and state changes.
Set the pad activate mode even if it does not have an activate
function.
2005-05-25 19:33:39 +00:00
Ronald S. Bultje
c6d2acd587 happify buildbot
Original commit message from CVS:
happify buildbot
2005-05-25 16:09:34 +00:00
Ronald S. Bultje
f0ed41684a gst/base/gstbasesrc.c: Don't go in pull mode for non-seekable sources.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_basesrc_activate):
Don't go in pull mode for non-seekable sources.
* gst/elements/gsttypefindelement.c: (gst_type_find_element_init),
(gst_type_find_element_dispose), (gst_type_find_handle_src_query),
(free_entry), (stop_typefinding),
(gst_type_find_element_handle_event), (find_peek),
(gst_type_find_element_chain), (do_pull_typefind),
(gst_type_find_element_change_state):
Allow typefinding (w/o seeking) in push-mode, simplified version
of what was in 0.8.
* gst/gstutils.c: (gst_buffer_join):
* gst/gstutils.h:
gst_buffer_join() from 0.8.
2005-05-25 15:57:57 +00:00
Wim Taymans
25576cb626 gst/gstpad.c: Disable attempt at mode switching until it is figured out.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_set_active), (gst_pad_link_prepare),
(gst_pad_link), (gst_pad_accept_caps), (gst_pad_query),
(gst_pad_send_event), (gst_pad_start_task):
Disable attempt at mode switching until it is figured out.
2005-05-25 13:59:18 +00:00
Wim Taymans
add280cd10 gst/: Implement gst_pad_pause/start/stop_task(), take STREAM lock in task function.
Original commit message from CVS:
* gst/base/gstadapter.c: (gst_adapter_peek), (gst_adapter_flush):
* gst/base/gstbasesink.c: (gst_basesink_preroll_queue_push),
(gst_basesink_finish_preroll), (gst_basesink_chain),
(gst_basesink_loop), (gst_basesink_activate),
(gst_basesink_change_state):
* gst/base/gstbasesrc.c: (gst_basesrc_do_seek),
(gst_basesrc_get_range), (gst_basesrc_loop),
(gst_basesrc_activate):
* gst/elements/gsttee.c: (gst_tee_sink_activate):
* gst/gstpad.c: (gst_pad_dispose), (gst_real_pad_class_init),
(gst_real_pad_init), (gst_real_pad_set_property),
(gst_real_pad_get_property), (gst_pad_set_active),
(gst_pad_is_active), (gst_pad_get_query_types), (gst_pad_unlink),
(gst_pad_link_prepare), (gst_pad_link), (gst_pad_get_real_parent),
(gst_real_pad_get_caps_unlocked), (gst_pad_peer_get_caps),
(gst_pad_accept_caps), (gst_pad_get_peer), (gst_pad_realize),
(gst_pad_event_default_dispatch), (gst_pad_event_default),
(gst_pad_dispatcher), (gst_pad_query), (gst_real_pad_dispose),
(gst_pad_save_thyself), (handle_pad_block), (gst_pad_chain),
(gst_pad_push), (gst_pad_get_range), (gst_pad_pull_range),
(gst_pad_send_event), (gst_pad_start_task), (gst_pad_pause_task),
(gst_pad_stop_task):
* gst/gstpad.h:
* gst/gstqueue.c: (gst_queue_handle_sink_event), (gst_queue_chain),
(gst_queue_loop), (gst_queue_src_activate):
* gst/gsttask.c: (gst_task_init), (gst_task_set_lock),
(gst_task_get_state):
* gst/gsttask.h:
* gst/schedulers/threadscheduler.c:
(gst_thread_scheduler_task_start), (gst_thread_scheduler_func):
Implement gst_pad_pause/start/stop_task(), take STREAM lock
in task function.
Remove ACTIVE pad flag, use FLUSHING everywhere
Added _pad_chain(), _pad_get_range() to call chain/getrange
functions.
Add locks around IS_FLUSHING when reading.
Take STREAM lock in chain(), get_range() functions so plugins
don't need to take it anymore.
2005-05-25 11:50:11 +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
Wim Taymans
fbe9b20d09 gst/: Make subbufer unref the parent in finalize. some more debugging info.
Original commit message from CVS:
* gst/gstbuffer.c: (gst_buffer_init), (gst_subbuffer_get_type),
(gst_subbuffer_class_init), (gst_subbuffer_finalize),
(gst_subbuffer_init), (gst_buffer_is_span_fast):
* gst/gstbuffer.h:
* gst/gstbus.c: (gst_bus_post):
* gst/gstelement.c: (gst_element_get_random_pad):
* gst/gstmessage.c: (gst_message_init), (gst_message_finalize):
Make subbufer unref the parent in finalize.
some more debugging info.
2005-05-19 16:26:50 +00:00
Wim Taymans
637c74bdb8 gst/base/gstbasesink.c: Don't free preroll queue too early.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_basesink_class_init),
(gst_basesink_init), (gst_basesink_finalize),
(gst_basesink_activate), (gst_basesink_change_state):
Don't free preroll queue too early.
2005-05-19 16:23:04 +00:00
Ronald S. Bultje
1b2ade5361 gst/: Hi, I'm outdated. Please shoot me.
Original commit message from CVS:
* gst/Makefile.am:
* gst/ROADMAP:
Hi, I'm outdated. Please shoot me.
2005-05-19 14:52:16 +00:00
Ronald S. Bultje
9909bf96dc gst/gstpipeline.c: Do not access variables after they have been deleted.
Original commit message from CVS:
* gst/gstpipeline.c: (gst_pipeline_send_event):
Do not access variables after they have been deleted.
2005-05-19 12:07:35 +00:00
Wim Taymans
0dd4810c73 gst/gstbuffer.c: Port _span() functions to new subbuffers.
Original commit message from CVS:
* gst/gstbuffer.c: (gst_buffer_is_span_fast), (gst_buffer_span):
Port _span() functions to new subbuffers.
2005-05-18 17:35:23 +00:00
Ronald S. Bultje
f704550b84 gst/gstbin.c: Fix clock settery in bins when adding kids after the clock has been selected.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_add_func):
Fix clock settery in bins when adding kids after the clock has
been selected.
2005-05-18 13:49:08 +00:00
Ronald S. Bultje
ca6017610d gst/elements/gstidentity.c: Workaround until signals support GstMiniObject.
Original commit message from CVS:
* gst/elements/gstidentity.c: (gst_identity_class_init):
Workaround until signals support GstMiniObject.
2005-05-18 13:23:24 +00:00
Jan Schmidt
ea9c819e6e gst/gstbuffer.c: Oops, fix a typo GST_TYPE_BUFFER -> GST_TYPE_SUBBUFFER.
Original commit message from CVS:

* gst/gstbuffer.c:
Oops, fix a typo GST_TYPE_BUFFER -> GST_TYPE_SUBBUFFER.
2005-05-18 11:34:45 +00:00
Wim Taymans
8074f6687d gst/base/: Ported and added adapter to the base classes.
Original commit message from CVS:
* gst/base/Makefile.am:
* gst/base/gstadapter.c: (gst_adapter_base_init),
(gst_adapter_class_init), (gst_adapter_init),
(gst_adapter_dispose), (gst_adapter_finalize), (gst_adapter_new),
(gst_adapter_clear), (gst_adapter_push), (gst_adapter_peek),
(gst_adapter_flush), (gst_adapter_available),
(gst_adapter_available_fast):
* gst/base/gstadapter.h:
Ported and added adapter to the base classes.
2005-05-18 09:55:43 +00:00
Thomas Vander Stichele
cb9388c96e gst/: Make sure the class is reffed/unreffed once before threads can be used. Fixes #304551.
Original commit message from CVS:

* gst/gst.c:
* gst/gstmessage.c:
Make sure the class is reffed/unreffed once before threads can be
used.  Fixes #304551.
2005-05-17 17:50:41 +00:00
Wim Taymans
576b2181d8 gst/: Don't queue buffers in basesink when we are flushing.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_basesink_finish_preroll),
(gst_basesink_chain_unlocked), (gst_basesink_activate):
* gst/gstminiobject.c: (gst_mini_object_get_type),
(gst_mini_object_free):
* gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_query),
(gst_pad_push), (gst_pad_push_event):
* gst/gstqueue.c: (gst_queue_change_state):
Don't queue buffers in basesink when we are flushing.
Unref buffer when flushing in basesink.
Flush queue when going to READY
Unref buffer when _push() returns an error.
Don't free MiniObject instance when refcount is incremented
in _finalize() so that we can recover objects.
2005-05-17 17:37:43 +00:00
Wim Taymans
8b61f54757 gst/: Clear queue when going to READY.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_set_caps),
(gst_pad_alloc_buffer), (gst_pad_query), (gst_pad_push):
* gst/gstqueue.c: (gst_queue_change_state):
Clear queue when going to READY.
Remove IN_SETCAPS flag too.
2005-05-17 14:11:32 +00:00
Tim-Philipp Müller
7fa9d7eb65 gst/base/gstbasesrc.c: Remove implicit cast from gboolean to GstElementStateReturn; make sure we still return failure...
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_basesrc_change_state):
Remove implicit cast from gboolean to GstElementStateReturn;
make sure we still return failure in paused => ready case if
the parent class fails to change state and our own stop
vfunc succeeds.
2005-05-17 14:01:51 +00:00
Andy Wingo
04312000d0 gst/gstbin.c (sink_iterator_filter): Err... um...
Original commit message from CVS:
2005-05-16  Andy Wingo  <wingo@pobox.com>

* gst/gstbin.c (sink_iterator_filter): Err... um...

* check/gst/gstbin.c (test_ghost_pads): New test for the
ghosting-if-elements-not-in-same-bin behavior.
2005-05-16 21:17:14 +00:00
David Schleef
b52ba4751a gst/gstminiobject.c: Use g_atomic_int_get() instead of accessing refcount directly.
Original commit message from CVS:
* gst/gstminiobject.c: Use g_atomic_int_get() instead of
accessing refcount directly.
2005-05-16 21:05:21 +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
David Schleef
735061ecc6 gst/elements/gstelements.c: Don't include headers that were just removed.
Original commit message from CVS:
* gst/elements/gstelements.c: Don't include headers that were
just removed.
2005-05-15 23:18:40 +00:00
David Schleef
abb59b9e80 gst/elements/Makefile.am: Remove some elements that don't need to be in the core (or even exist at all).
Original commit message from CVS:
* gst/elements/Makefile.am: Remove some elements that don't
need to be in the core (or even exist at all).
* gst/elements/gstaggregator.c:
* gst/elements/gstaggregator.h:
* gst/elements/gstmd5sink.c:
* gst/elements/gstmd5sink.h:
* gst/elements/gstmultifilesrc.c:
* gst/elements/gstmultifilesrc.h:
* gst/elements/gstpipefilter.c:
* gst/elements/gstpipefilter.h:
* gst/elements/gstshaper.c:
* gst/elements/gstshaper.h:
* gst/elements/gststatistics.c:
* gst/elements/gststatistics.h:
* po/POTFILES.in: Remove above files.
2005-05-15 23:16:29 +00:00
Andy Wingo
ab5ba6271c gst/gstbin.c (gst_bin_iterate_sinks): Use sink_iterator_filter so as to get the refs right.
Original commit message from CVS:
2005-05-14  Andy Wingo  <wingo@pobox.com>

* gst/gstbin.c (gst_bin_iterate_sinks): Use sink_iterator_filter
so as to get the refs right.
(sink_iterator_filter): New function, wraps bin_element_is_sink,
unreffing objects that don't pass the filter.
2005-05-14 18:01:12 +00:00
Andy Wingo
4765634c62 gst/gstpipeline.c (gst_pipeline_init): Drop ref on bus after gst_element_set_bus.
Original commit message from CVS:
2005-05-14  Andy Wingo  <wingo@pobox.com>

* gst/gstpipeline.c (gst_pipeline_init): Drop ref on bus after
gst_element_set_bus.
(gst_pipeline_dispose): Set the bus on the pipeline to NULL. In
normal cases, this will destroy the bus.

* gst/gstutils.c (prepare_link_maybe_ghosting): Drop ref on root
object.
2005-05-14 17:12:11 +00:00
Andy Wingo
c967174c17 gst/gstbin.c (gst_bin_change_state): Fix state changes if a bin has no sinks.
Original commit message from CVS:
2005-05-14  Andy Wingo  <wingo@pobox.com>

* gst/gstbin.c (gst_bin_change_state): Fix state changes if a bin
has no sinks.
2005-05-14 15:54:49 +00:00
Andy Wingo
79d4977020 gst/gstutils.c (gst_element_link_pads): Instead of calling gst_pad_link, call pad_link_maybe_ghosting,
Original commit message from CVS:
2005-05-13  Andy Wingo  <wingo@pobox.com>

* gst/gstutils.c (gst_element_link_pads): Instead of calling
gst_pad_link, call pad_link_maybe_ghosting,
(pad_link_maybe_ghosting): Links pads, making sure that the
elements being linked are in the same bin.
(find_common_root, object_has_ancestor, ghost_up, remove_pad):
Helpers for pad_link_maybe_ghosting.
2005-05-14 15:32:36 +00:00
Wim Taymans
1c4ea6213b gst/: Identify sinks by their flag to avoid overly complicated checks (fow now).
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_basesink_init),
(gst_basesink_activate):
* gst/base/gstbasesrc.c: (gst_basesrc_unlock),
(gst_basesrc_is_seekable):
* gst/gstbin.c: (gst_bin_add_func), (gst_bin_remove_func),
(bin_element_is_sink), (gst_bin_change_state):
* gst/gstelement.c: (gst_element_add_pad), (gst_element_query):
* gst/gstelement.h:
Identify sinks by their flag to avoid overly complicated
checks (fow now).
Do state changes even for elements not reachable from the
sinks.
BaseSink is a sink now :)
Some more debugging info in the basesrc.
2005-05-12 19:45:44 +00:00
Ronald S. Bultje
e4c1ba46c8 gst/gstbin.c: Implement _query on a bin, similar to _send_event.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_class_init), (gst_bin_query):
Implement _query on a bin, similar to _send_event.
2005-05-12 15:09:17 +00:00
Tim-Philipp Müller
7eb36ed16f gst/base/gstbasesrc.c: Discont event offset format should be GST_FORMAT_BYTES, not GST_FORMAT_TIME.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_basesrc_do_seek):
Discont event offset format should be GST_FORMAT_BYTES,
not GST_FORMAT_TIME.
2005-05-12 13:59:58 +00:00