Commit graph

2591 commits

Author SHA1 Message Date
Thomas Vander Stichele
e65ae0c3c8 fix fake elements too
Original commit message from CVS:
fix fake elements too
2005-06-28 12:45:21 +00:00
Thomas Vander Stichele
f0e5bb0a33 did s/bases(rc/ink)_/base_s(rc/ink)_/; wim wants to remove base completely, but that's for later
Original commit message from CVS:
did s/bases(rc/ink)_/base_s(rc/ink)_/; wim wants to remove base completely, but that's for later
2005-06-28 12:01:49 +00:00
Wim Taymans
de3be844ec gst/: The deprecated pad loop function is removed now.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_basesink_set_pad_functions),
(gst_basesink_preroll_queue_flush):
* gst/base/gstbasesrc.c: (gst_basesrc_set_dataflow_funcs):
* gst/elements/gsttee.c: (gst_tee_update_pad_functions):
* gst/gstghostpad.c: (gst_proxy_pad_do_bufferalloc),
(gst_proxy_pad_do_acceptcaps), (gst_proxy_pad_do_fixatecaps),
(gst_proxy_pad_set_property):
* gst/gstpad.c:
* gst/gstpad.h:
* gst/gstqueue.c: (gst_queue_init):
The deprecated pad loop function is removed now.
2005-06-28 11:36:43 +00:00
Wim Taymans
7dc174d140 gst/base/gstbasesink.c: Flushing the preroll queue always needs to unlock the waiters.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_basesink_preroll_queue_flush),
(gst_basesink_event), (gst_basesink_deactivate):
Flushing the preroll queue always needs to unlock the waiters.
2005-06-28 11:02:18 +00:00
Edward Hervey
2e75d2ae7e gst/gstpipeline.c: Wheen a seek was successful on a pipeline, set the stream_time to the seek offset in order to have...
Original commit message from CVS:
* gst/gstpipeline.c: (gst_pipeline_send_event):
Wheen a seek was successful on a pipeline, set the stream_time to the
seek offset in order to have a synchronized stream_time.
2005-06-28 10:45:48 +00:00
Wim Taymans
57d529de3a gst/gstghostpad.c: Call wrapper function instead of just calling the function pointers. This takes care of any lockin...
Original commit message from CVS:
* gst/gstghostpad.c: (gst_proxy_pad_do_bufferalloc),
(gst_proxy_pad_do_getrange), (gst_proxy_pad_do_checkgetrange),
(gst_proxy_pad_do_getcaps), (gst_proxy_pad_do_acceptcaps),
(gst_proxy_pad_do_fixatecaps):
Call wrapper function instead of just calling the function
pointers. This takes care of any locking and whatmore.
2005-06-28 10:37:24 +00:00
Wim Taymans
9a6500143f gst/gstpad.*: CONNECTED -> LINKED.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_alloc_buffer), (gst_pad_push),
(gst_pad_pull_range):
* gst/gstpad.h:
CONNECTED -> LINKED.
2005-06-28 10:28:31 +00:00
Andy Wingo
f8e79bdf86 *.c: Don't cast to GST_OBJECT when reffing or unreffing. Large source-munging commit!!!
Original commit message from CVS:
2005-06-28  Andy Wingo  <wingo@pobox.com>

* *.c: Don't cast to GST_OBJECT when reffing or unreffing. Large
source-munging commit!!!
2005-06-28 09:59:01 +00:00
Andy Wingo
5016035bc6 gst/gstobject.c (gst_object_unref, gst_object_ref)
Original commit message from CVS:
2005-06-28  Andy Wingo  <wingo@pobox.com>

* gst/gstobject.c (gst_object_unref, gst_object_ref)
(gst_object_sink): Take gpointer arguments, not GstObject --
avoids casts. Like GLib.
2005-06-28 09:17:14 +00:00
Andy Wingo
1b02b1d741 gst/gstghostpad.c (gst_proxy_pad_do_activate): Don't proxy activate.
Original commit message from CVS:
2005-06-28  Andy Wingo  <wingo@pobox.com>

* gst/gstghostpad.c (gst_proxy_pad_do_activate): Don't proxy
activate.
2005-06-28 08:41:43 +00:00
Andy Wingo
7fda2039b3 shut up gcc3
Original commit message from CVS:
shut up gcc3
2005-06-27 18:39:41 +00:00
Andy Wingo
f2cf753b17 gst/base/gsttypefindhelper.c (gst_type_find_helper): Unref any remaining buffer.
Original commit message from CVS:
2005-06-27  Andy Wingo  <wingo@pobox.com>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* check/gst/gstghostpad.c (test_ghost_pads): More refcount checks.
To be modified when unlink drops the internal pad.
2005-06-27 18:35:05 +00:00
Wim Taymans
adbd17c378 gst/gstbin.c: Cleanup the get_state() function a little, make sure it iterates the same set of elements.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_get_state), (gst_bin_iterate_state_order),
(gst_bin_change_state):
Cleanup the get_state() function a little, make sure it
iterates the same set of elements.
Added stub iterate_state_order().
2005-06-27 18:11:24 +00:00
Thomas Vander Stichele
0b44c713a7 adding basetransform and iterator docs
Original commit message from CVS:
adding basetransform and iterator docs
2005-06-27 14:40:09 +00:00
Thomas Vander Stichele
012d4ec9de more doc and whitespace fixes
Original commit message from CVS:
more doc and whitespace fixes
2005-06-27 08:16:51 +00:00
Wim Taymans
2d63826a90 gst/gstghostpad.c: At least get the chain function correct, needs more fixing.
Original commit message from CVS:
* gst/gstghostpad.c: (gst_proxy_pad_do_chain):
At least get the chain function correct, needs more
fixing.
2005-06-25 19:53:02 +00:00
Wim Taymans
97194517fe gst/: Right, two problems here: ghostpads don't take locks and glib _rec_mutex_lock_full() with depth==0 still locks.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_basesink_preroll_queue_empty),
(gst_basesink_handle_object), (gst_basesink_event),
(gst_basesink_do_sync), (gst_basesink_handle_event),
(gst_basesink_change_state):
* gst/gsttask.h:
Right, two problems here: ghostpads don't take locks and
glib _rec_mutex_lock_full() with depth==0 still locks.
Catch illegal locking and g_warn them.
2005-06-25 19:37:59 +00:00
Wim Taymans
613dc3d631 gst/: Unlock STREAM_LOCK whatever the recursion was.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_basesink_preroll_queue_empty),
(gst_basesink_handle_object), (gst_basesink_event),
(gst_basesink_do_sync), (gst_basesink_handle_event),
(gst_basesink_change_state):
* gst/gstpad.h:
Unlock STREAM_LOCK whatever the recursion was.
2005-06-25 19:09:28 +00:00
Wim Taymans
8303454db7 gst/base/gstbasesink.c: Reworked the base sink, handle event and buffer serialisation correctly and removed possible ...
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_basesink_set_property),
(gst_basesink_preroll_queue_empty),
(gst_basesink_preroll_queue_flush), (gst_basesink_handle_object),
(gst_basesink_event), (gst_basesink_do_sync),
(gst_basesink_handle_event), (gst_basesink_handle_buffer),
(gst_basesink_chain), (gst_basesink_loop), (gst_basesink_activate),
(gst_basesink_change_state):
Reworked the base sink, handle event and buffer serialisation
correctly and removed possible deadlock.
Handle EOS correctly.
2005-06-25 17:54:58 +00:00
Wim Taymans
4e9438da9f Allow elements to post EOS in the state change function.
Original commit message from CVS:
* gst/gstpipeline.c: (is_eos), (pipeline_bus_handler),
(gst_pipeline_change_state):
* tools/gst-launch.c: (check_intr), (event_loop), (main):
Allow elements to post EOS in the state change function.
Fix up -launch, make it exit the poll loop when the
pipeline actually changed state.
Fix up warning parsing in -launch.
2005-06-25 17:51:12 +00:00
Wim Taymans
f4f2cadeb5 gst/elements/gsttee.c: Core takes STREAM_LOCK for us now.
Original commit message from CVS:
* gst/elements/gsttee.c: (gst_tee_chain), (gst_tee_loop),
(gst_tee_sink_activate):
Core takes STREAM_LOCK for us now.
2005-06-25 17:44:39 +00:00
Wim Taymans
2169b1a5d8 gst/: Keep track of current target state while performing a state change so that subclasses can do something interest...
Original commit message from CVS:
* gst/gstelement.c: (gst_element_get_state_func),
(gst_element_set_state):
* gst/gstelement.h:
* gst/gstmessage.c: (gst_message_parse_error),
(gst_message_parse_warning):
Keep track of current target state while performing a state
change so that subclasses can do something interesting.
Fix parsing of warning/error messages when GError is NULL.
2005-06-25 17:42:17 +00:00
Thomas Vander Stichele
87d6d3143b start pulling in base classes and elements for docs
Original commit message from CVS:
start pulling in base classes and elements for docs
2005-06-24 18:16:14 +00:00
Wim Taymans
52a445a41d gst/gstelement.c: When the state did not change, also report NO_PREROLL when it matters.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_get_state_func),
(gst_element_set_state), (gst_element_change_state):
When the state did not change, also report NO_PREROLL
when it matters.
2005-06-23 17:11:49 +00:00
Wim Taymans
d56ab76d57 gst/: No unsafe task pausing please.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_event_default):
* gst/gstqueue.c: (gst_queue_loop):
No unsafe task pausing please.
2005-06-23 17:09:21 +00:00
Wim Taymans
830a0368b4 gst/schedulers/threadscheduler.c: Ref the task before pushing it on the threadpool. This makes sure that we have a re...
Original commit message from CVS:
* gst/schedulers/threadscheduler.c:
(gst_thread_scheduler_task_start),
(gst_thread_scheduler_task_pause), (gst_thread_scheduler_func):
Ref the task before pushing it on the threadpool. This
makes sure that we have a ref when the threadfunction is
actually called.
2005-06-23 17:07:08 +00:00
Andy Wingo
09ab1d8fb2 gst/base/gstbasesrc.c (gst_basesrc_get_range): Check if the offset is greater than the file's size.
Original commit message from CVS:
2005-06-23  Andy Wingo  <wingo@pobox.com>

* gst/base/gstbasesrc.c (gst_basesrc_get_range): Check if the
offset is greater than the file's size.
2005-06-23 15:26:09 +00:00
Andy Wingo
cc2d216e88 gst/gstobject.h (GST_CLASS_LOCK, GST_CLASS_TRYLOCK) (GST_CLASS_UNLOCK, GST_CLASS_GET_LOCK, GstObjectClass)
Original commit message from CVS:
2005-06-23  Andy Wingo  <wingo@pobox.com>

* gst/gstobject.h (GST_CLASS_LOCK, GST_CLASS_TRYLOCK)
(GST_CLASS_UNLOCK, GST_CLASS_GET_LOCK, GstObjectClass)
* gst/gstobject.c (gst_object_class_init): Make the class lock
recursive. Wim won't let me drop deep_notify. Decodebin works
again, whoopdy doo.
2005-06-23 15:04:48 +00:00
Andy Wingo
57bfdb30e4 gst/gstghostpad.c (on_int_notify): Catches notify::caps on the internal pad, and hacks accordingly. Doesn't do it on ...
Original commit message from CVS:
2005-06-23  Andy Wingo  <wingo@pobox.com>

* gst/gstghostpad.c (on_int_notify): Catches notify::caps on the
internal pad, and hacks accordingly. Doesn't do it on the target
pad because we change its caps. Probably catches all cases of
interest tho.
(gst_ghost_pad_set_property): Connect to notify::caps as
appropritate.
2005-06-23 14:18:15 +00:00
Jan Schmidt
8bd306b791 gst/elements/gsttypefindelement.c: Don't restart typefinding on a discont.
Original commit message from CVS:
2005-06-23  Jan Schmidt  <thaytan@mad.scientist.com>

* gst/elements/gsttypefindelement.c:
(gst_type_find_element_handle_event):
Don't restart typefinding on a discont.
* gst/gstelement.c: (gst_element_set_state):
Debug spelling fix.
* gst/gstpad.c: (gst_pad_set_active), (gst_pad_send_event):
Allow changing mode of an active pad.
Debug output fixes.
* gst/registries/gstlibxmlregistry.c: (load_feature):
Don't cast a static pad template to a normal pad template.
2005-06-23 11:43:39 +00:00
Thomas Vander Stichele
e6b233bb4d remove gst_strtoll completely, since it didn't actually do anything more than what g_ascii_strtoull already does.
Original commit message from CVS:
* check/gst/gstvalue.c: (START_TEST), (gst_value_suite):
* gst/gstvalue.c: (gst_value_deserialize_int_helper):
remove gst_strtoll completely, since it didn't actually do
anything more than what g_ascii_strtoull already does.
check for range errors when deserializing
do a cast for the unsigned cases; but further fixing needs
a decision on what the interpretation of "(int)" and
deserialization should be for values that fall outside the
type's boundaries (ie, refuse, or interpret as casting)
2005-06-23 11:25:29 +00:00
Wim Taymans
1cda8197e9 Added support for live sources and other elements that cannot do preroll.
Original commit message from CVS:
Added support for live sources and other elements that
cannot do preroll.
Updated design docs, added live-source design doc.
Implemented live source functionality in basesrc
Fix error condition in _bin_get_state()
Implement live source handling in -launch.
Added check for live sources.
Fixed case in GstBin where elements were changed state
multiple times.
2005-06-23 10:37:09 +00:00
Andy Wingo
678bb923f1 commit the file
Original commit message from CVS:
commit the file
2005-06-23 09:41:41 +00:00
Andy Wingo
ee38ed3c9d gst/gstghostpad.c (gst_proxy_pad_do_setcaps): Call the full gst_pad_set_caps on the target, not just its setcaps() fu...
Original commit message from CVS:
2005-06-23  Andy Wingo  <wingo@pobox.com>

* gst/gstghostpad.c (gst_proxy_pad_do_setcaps): Call the full
gst_pad_set_caps on the target, not just its setcaps() function.
2005-06-23 09:28:27 +00:00
Thomas Vander Stichele
c3efeeb64c check/: copy over from 0.8, and add two with bitmasks specified with (int) 0xFF...
Original commit message from CVS:
* check/Makefile.am:
* check/gst/capslist.h:
copy over from 0.8, and add two with bitmasks specified with
(int) 0xFF...
* check/gst/gstcaps.c: (START_TEST), (gst_caps_suite):
add test to parse everything from capslist.h
* check/gst/gststructure.c: (START_TEST), (gst_value_suite),
(main):
add test for structure deserialization
* check/gst/gstvalue.c: (START_TEST), (gst_value_suite):
add tests for deserialization of strings to int types
* gst/gststructure.c: (gst_structure_nth_field_name):
* gst/gststructure.h:
add a way to get the name of a field referenced by index
* gst/gstvalue.c: (gst_value_deserialize_int_helper):
instead of checking if the resulting long long lies between
min and max, we check if the long long would fit into
a number of bytes for the final type.
This fixes cases where a string represents 2^32 - 1, which
when cast to int would be the (valid) -1, but is bigger than
G_MAXINT
2005-06-22 19:22:34 +00:00
Thomas Vander Stichele
8952d2c571 add a log line for type deserialization
Original commit message from CVS:
add a log line for type deserialization
2005-06-22 11:02:57 +00:00
Thomas Vander Stichele
bdc643ddb9 return long long, not int, so gint64 deserialization actually works. Is there any flag that makes the compiler check...
Original commit message from CVS:

* check/gst/gstvalue.c: (START_TEST):
* gst/gstvalue.c: (gst_value_deserialize):
return long long, not int, so gint64 deserialization actually
works.  Is there any flag that makes the compiler check this ?
Fixes #308559
2005-06-22 10:52:18 +00:00
Wim Taymans
202c113397 gst/gstbuffer.h: Added convenience macros for setting buffers in GValue.
Original commit message from CVS:
* gst/gstbuffer.h:
Added convenience macros for setting buffers in GValue.
2005-06-22 09:55:16 +00:00
Wim Taymans
5d66b9af57 gst/gstpad.c: Small doc updates.
Original commit message from CVS:
* gst/gstpad.c:
Small doc updates.

* gst/gstvalue.c: (gst_value_compare_buffer),
(gst_value_serialize_buffer), (gst_value_deserialize_buffer),
(gst_value_compare_flags), (gst_value_serialize_flags),
(gst_value_deserialize_flags), (_gst_value_initialize):
Fix serialisation of buffers, they are not boxed types anymore
2005-06-20 15:18:17 +00:00
Andy Wingo
3468457954 gst/gstsystemclock.c (gst_system_clock_init): Unlock the clock if its socks fill with rocks.
Original commit message from CVS:
2005-06-20  Andy Wingo  <wingo@pobox.com>

* gst/gstsystemclock.c (gst_system_clock_init): Unlock the clock
if its socks fill with rocks.
(gst_system_clock_obtain): Set the name on object construction.
Avoid double-checked locking.
2005-06-20 11:41:17 +00:00
Tim-Philipp Müller
5910c2f938 gst/gsturi.c: Fix potential endless loop.
Original commit message from CVS:
* gst/gsturi.c: (gst_element_make_from_uri):
Fix potential endless loop.
2005-06-20 11:32:14 +00:00
Thomas Vander Stichele
d10d12dbcb check/Makefile.am: add gsttag
Original commit message from CVS:

* check/Makefile.am:
add gsttag
* check/gst/gsttag.c: (check_tags), (START_TEST), (gst_tag_suite),
(main):
move over from testsuite dir and clean up
* configure.ac:
* gst/gsttag.c:
* testsuite/Makefile.am:
* testsuite/tags/.cvsignore:
* testsuite/tags/Makefile.am:
* testsuite/tags/merge.c:
remove testsuite/tags
2005-06-19 11:32:42 +00:00
Thomas Vander Stichele
0944ac134b some more docs cleanup
Original commit message from CVS:
some more docs cleanup
2005-06-19 10:54:12 +00:00
Thomas Vander Stichele
4ae0c46b63 check/gstcheck.h: add macros for checking refcounts on objects and caps
Original commit message from CVS:

* check/gstcheck.h:
add macros for checking refcounts on objects and caps
* check/gst/gstpad.c: (START_TEST), (gst_pad_suite):
add some more unit tests
* gst/gstpad.c: (gst_pad_link_check_compatible_unlocked),
(gst_pad_link_prepare), (gst_pad_link), (gst_pad_get_allowed_caps):
fix leaked refcounts (I hope :)) so unittest works
* gst/gstpad.h:
whitespace removal
2005-06-19 00:52:31 +00:00
Andy Wingo
355499790b gst/base/gstbasesink.c (gst_basesink_chain): Remove bogus assert; it's always possible that the pad gets deactivated ...
Original commit message from CVS:
2005-06-17  Andy Wingo  <wingo@pobox.com>

* gst/base/gstbasesink.c (gst_basesink_chain): Remove bogus
assert; it's always possible that the pad gets deactivated in
between the checks in gstpad.c and the implementation. Rely on
finish_preroll() to return a FLUSHING or similar instead of on the
assert.
2005-06-17 11:58:48 +00:00
Andy Wingo
d47ea57975 gst/base/gstbasesink.c (gst_basesink_event): Only wait for the clock and post an EOS message if we come out of finish...
Original commit message from CVS:
2005-06-17  Andy Wingo  <wingo@pobox.com>

* gst/base/gstbasesink.c (gst_basesink_event): Only wait for the
clock and post an EOS message if we come out of finish_preroll in
the playing state.
2005-06-17 11:33:27 +00:00
Thomas Vander Stichele
d85fc27ecb ignore more
Original commit message from CVS:
ignore more
2005-06-17 09:32:19 +00:00
Thomas Vander Stichele
dd9cc6adb7 ignore more
Original commit message from CVS:
ignore more
2005-06-17 09:12:33 +00:00
Thomas Vander Stichele
8a3824efac ignore more; fix README
Original commit message from CVS:
ignore more; fix README
2005-06-17 08:59:41 +00:00
David Schleef
6dbed89c01 gst/elements/gstcapsfilter.c: Allow NULL as possible value for filter_caps property, indicating GST_CAPS_ANY.
Original commit message from CVS:
* gst/elements/gstcapsfilter.c: (gst_capsfilter_class_init),
(gst_capsfilter_set_property): Allow NULL as possible value
for filter_caps property, indicating GST_CAPS_ANY.
2005-06-16 17:50:16 +00:00