Commit graph

5011 commits

Author SHA1 Message Date
Thomas Vander Stichele 325219ea1a threadsafe pad link/unlink
Original commit message from CVS:
threadsafe pad link/unlink
2005-02-16 18:31:45 +00:00
Wim Taymans 8263719f64 gst/elements/: Fix fakesink.
Original commit message from CVS:
* gst/elements/gstfakesink.c: (gst_fakesink_activate),
(gst_fakesink_loop):
* gst/elements/gstfakesrc.c: (gst_fakesrc_activate):
Fix fakesink.
2005-02-16 18:06:52 +00:00
Andy Wingo 531fd6af0d gst/elements/gstfakesink.c (gst_fakesink_loop)
Original commit message from CVS:
2005-02-16  Andy Wingo  <wingo@pobox.com>

* gst/elements/gstfakesink.c (gst_fakesink_loop)
(gst_fakesink_chain_unlocked, gst_fakesink_activate): New
functions.
(gst_fakesink_chain): Use chain_unlock.
2005-02-16 17:47:05 +00:00
Thomas Vander Stichele a0845b59e6 add pad tests
Original commit message from CVS:
add pad tests
2005-02-16 17:34:32 +00:00
Wim Taymans dc44130c0e add gst_caps_copy_nth as a more general replacement for copy_1.
Original commit message from CVS:
* docs/design/part-TODO.txt:
* gst/elements/gstfakesink.c: (gst_fakesink_event),
(gst_fakesink_chain):
* gst/elements/gstfakesink.h:
* gst/elements/gstfakesrc.c: (gst_fakesrc_loop),
(gst_fakesrc_activate):
* gst/elements/gstfilesrc.c: (gst_filesrc_getrange),
(gst_filesrc_open_file), (gst_filesrc_loop),
(gst_filesrc_activate), (gst_filesrc_change_state),
(filesrc_find_peek), (gst_filesrc_type_find):
* gst/gstcaps.c: (gst_caps_copy_nth):
* gst/gstcaps.h:
* gst/gstelement.c: (gst_element_add_pad),
(gst_element_remove_pad), (iterate_pad),
(gst_element_get_state_func), (gst_element_commit_state),
(gst_element_set_state), (gst_element_pads_activate),
(gst_element_change_state), (gst_element_dispose):
* gst/gstutils.c: (gst_element_finish_preroll):
* gst/gstutils.h:
* tools/gst-launch.c: (check_intr):
add gst_caps_copy_nth as a more general replacement for
copy_1.
Slightly change the finish_preroll helper function to
include pad flush/active.
Small cleanups in fakesrc.
Add STREAM_LOCK in filesrc.
2005-02-16 15:18:18 +00:00
Thomas Vander Stichele 2af759f2b5 make now works nicely
Original commit message from CVS:
make now works nicely
2005-02-11 17:14:16 +00:00
Thomas Vander Stichele d2d601e447 sprinkle enters over emacs
Original commit message from CVS:
sprinkle enters over emacs
2005-02-11 16:59:22 +00:00
Andy Wingo 5c30d4e66c tools/gst-launch.c (check_intr): New timeout to check the interrupt flag and stop the pipeline properly. Bling!
Original commit message from CVS:
2005-02-11  Andy Wingo  <wingo@pobox.com>

* tools/gst-launch.c (check_intr): New timeout to check the
interrupt flag and stop the pipeline properly. Bling!
2005-02-11 16:56:31 +00:00
Wim Taymans f30a7e5ea8 gst/gstevent.c: stop time can be -1.
Original commit message from CVS:
* gst/gstevent.c: (gst_event_new_discontinuous_valist),
(gst_event_discont_get_value), (gst_event_new_segment_seek):
stop time can be -1.
2005-02-11 16:44:57 +00:00
Thomas Vander Stichele 99d71befbe don't print expected criticals
Original commit message from CVS:
don't print expected criticals
2005-02-11 16:43:18 +00:00
Thomas Vander Stichele b10117db35 remove buffer_join and keep buffer_merge but move to gstutils
Original commit message from CVS:
remove buffer_join and keep buffer_merge but move to gstutils
2005-02-11 16:39:14 +00:00
Thomas Vander Stichele 931f43aa54 docs/gst/gstreamer-sections.txt: remove mention of removed functions
Original commit message from CVS:

* docs/gst/gstreamer-sections.txt:
remove mention of removed functions
* docs/gst/tmpl/gstbuffer.sgml:
* docs/gst/tmpl/gstutils.sgml:
* gst/gstutils.c:
* gst/gstutils.h:
move buffer_stamp and _merge
2005-02-11 16:21:46 +00:00
Wim Taymans 484d9a3224 Added more docs.
Original commit message from CVS:
* docs/design/part-clocks.txt:
* docs/design/part-events.txt:
* gst/elements/gstfakesrc.c: (gst_fakesrc_get_event_mask),
(gst_fakesrc_event_handler), (gst_fakesrc_loop),
(gst_fakesrc_activate):
* gst/gstclock.c: (gst_clock_id_ref), (gst_clock_id_unref),
(gst_clock_id_compare_func), (gst_clock_id_wait),
(gst_clock_id_wait_async), (gst_clock_init),
(gst_clock_adjust_unlocked), (gst_clock_get_time):
* gst/gstevent.c: (gst_event_new_discontinuous_valist),
(gst_event_discont_get_value), (gst_event_new_segment_seek):
* gst/gstevent.h:
* gst/gstpipeline.c: (gst_pipeline_init), (is_eos),
(pipeline_bus_handler), (gst_pipeline_change_state):
* gst/gstpipeline.h:
* gst/gstsystemclock.c: (gst_system_clock_init),
(gst_system_clock_async_thread),
(gst_system_clock_id_wait_unlocked),
(gst_system_clock_id_wait_async), (gst_system_clock_id_unschedule):
* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packet_from_event),
(gst_dp_event_from_packet):
* testsuite/clock/Makefile.am:
* testsuite/clock/clock4.c: (gst_clock_debug), (ok_callback),
(error_callback), (main):
Added more docs.
Remove more silly events.
Implement periodic clock notifications.
Add async testsuite.
2005-02-11 15:50:53 +00:00
Andy Wingo 98e3377631 tools/gst-inspect.c (print_field): Change prototype for non-mutating caps_foreach.
Original commit message from CVS:
2005-02-11  Andy Wingo  <wingo@pobox.com>

* tools/gst-inspect.c (print_field): Change prototype for
non-mutating caps_foreach.

* check/gst/gstobject.c (test_fail_abstract_new): Expect a warning
from GLib.

* check/gst/gstcaps.c (test_double_append): Renamed from
test_fail_double_append.
(test_mutability): New test, tests that caps and structures are
mutable only with refcount 1, or in the case of structures, also
when unparented.

* check/gstcheck.c (gst_check_init): Handle WARNING in addition to
CRITICAL.
(gst_check_log_critical_func): Print criticals in both the
expected and unexpected cases.
2005-02-11 15:28:20 +00:00
Thomas Vander Stichele cf4e552e1d fix some Werror stuff
Original commit message from CVS:
fix some Werror stuff
2005-02-11 14:47:16 +00:00
Thomas Vander Stichele dc7885026e we're in HEAD mode, fail on our messy function calls please
Original commit message from CVS:
we're in HEAD mode, fail on our messy function calls please
2005-02-11 13:10:40 +00:00
Thomas Vander Stichele 637e9a59bc fix
Original commit message from CVS:
fix
2005-02-11 13:06:24 +00:00
Thomas Vander Stichele d8d9828119 gtkdoc fix
Original commit message from CVS:
gtkdoc fix
2005-02-11 13:05:09 +00:00
Thomas Vander Stichele 2552c55fed merge docs from HEAD remove unused and unneeded error to combat inflation
Original commit message from CVS:
merge docs from HEAD
remove unused and unneeded error to combat inflation

2
2005-02-11 13:04:02 +00:00
Andy Wingo ff9b065eaa add cvsignore
Original commit message from CVS:
add cvsignore
2005-02-11 12:57:58 +00:00
Andy Wingo a3d8e2c9d8 add missing file, cvsignore updates
Original commit message from CVS:
add missing file, cvsignore updates
2005-02-11 12:57:24 +00:00
Andy Wingo 9ffa8aff27 check/gst/gstcaps.c: New test suite. Only one test at the moment
Original commit message from CVS:
2005-02-11  Andy Wingo  <wingo@pobox.com>

* check/gst/gstcaps.c: New test suite. Only one test at the moment
-- this is an infrastructure commit.

* check/gst/gstobject.c (main):
* check/gst/gstdata.c (main):
* check/gst-libs/gdp.c (main): Use gst_check_init() to initialize
gstreamer.

* check/gstcheck.h: Declare all variables as extern so they are
defined once in gstcheck.c.
(ASSERT_CRITICAL): New macro, asserts that the expression passed
as an argument raises one or more critical logs.

* check/gstcheck.c: Define the extern-declared variables here.
(gst_check_log_message_func, gst_check_log_critical_func): The log
function was split in two, one for messages and one for criticals.
The criticals logfunc will fail if a critical was not expected.
The messages logfunc is the same as before.
(gst_check_init): Set up all log handlers, and initialize
gstreamer too.

* check/Makefile.am: Pulled over some pieces from the old
testsuite/ directory. Don't use --gst-fatal-warnings though, we
have some new mechanisms for that.
(TESTS): Added gst/gstcaps.
2005-02-11 12:55:16 +00:00
Andy Wingo 7c0804b15c testsuite/caps/value_serialize.c: merge from HEAD.
Original commit message from CVS:
2005-02-10  Andy Wingo  <wingo@pobox.com>

* testsuite/caps/value_serialize.c: merge from HEAD.

* testsuite/caps/subtract.c:
* testsuite/caps/filtercaps.c:
* testsuite/caps/enumcaps.c:
* testsuite/caps/deserialize.c:
* testsuite/caps/caps.c:
* testsuite/caps/audioscale.c: Unref caps, not free.

* testsuite/caps/caps_strings: Merged from HEAD.

* gst/elements/gstidentity.c (gst_identity_proxy_getcaps): Getcaps
implementation for identity.

* gst/gststructure.h
* gst/gststructure.c
(gst_caps_structure_fixate_field_nearest_double):
(gst_caps_structure_fixate_field_nearest_int): Moved from
gstcaps.c because we need the private IS_MUTABLE macro.
(IS_MUTABLE): New macro, determines if a
structure is mutable or not.
(gst_structure_free): Don't allow free while holding a pointer to
a parent's refcount.
(gst_structure_set_name): Check for writability.
(gst_structure_id_set_value): Same.
(gst_structure_set_value): Same.
(gst_structure_set_valist): Same.
(gst_structure_remove_field): Same.
(gst_structure_remove_all_fields): Same.
(gst_structure_map_in_place): New routine, like _foreach but
allows the function to mutate the value (via a non-const
prototype). Check for writability.
(gst_structure_foreach): Redefine to only take non-mutating
functions.

* gst/gstcaps.c (IS_WRITABLE): New macro, returns TRUE if the caps
are writable.
(gst_caps_copy): Add some docs about mutability, etc.
(_gst_caps_free): Set the parent refcount pointer on structures to
NULL before freeing them.
(gst_caps_ref): Document.
(gst_caps_make_writable): Doc.
(gst_caps_make_writable): Changed to make_writable, get_writable
sounds too much like retrieving a property.
(gst_caps_copy_1): Removed, not very useful.
(gst_caps_ref_by_count): Removed, no need to have something GLib
doesn't.
(gst_caps_copy_conditional): Ref instead of copying.
(gst_static_caps_get): Retain a reference to the returned caps, so
that the static caps will remain immutable.
(gst_caps_remove_and_get_structure): Set the parent refcount to
NULL when removing the structure.
(gst_caps_append): Fix to work with structure parent refcounts.
Check for writability.
(gst_caps_append_structure): Check for writability, work with
parent refcounts.
(gst_caps_remove_structure): Check for writability.
(gst_caps_set_simple): Check for writability.
(gst_caps_set_simple_valist): Check for writability.
(gst_caps_is_fixed_foreach): Update for non-mutating foreach.
(gst_structure_is_equal_foreach): Same.
(gst_caps_structure_intersect_field): Same.
(gst_caps_structure_subtract_field): Same. Make static.
(gst_caps_normalize_foreach): Same.
(gst_caps_structure_figure_out_union): Same.
(gst_caps_switch_structures): New static function, switches out
structures inside a caps, taking care of parent_refcount setting.

* gst/gstpad.c (gst_pad_get_allowed_caps): Remove the restriction
on only src pads, wim von masterhack claims it was bogus.

* testsuite/caps/Makefile.am
* testsuite/caps/app_fixate.c: Removed app_fixate test, things are
done a bit differently in THREADED.
2005-02-10 19:40:23 +00:00
Wim Taymans 45529cf00a docs/design/part-events.txt: Added event doc.
Original commit message from CVS:
* docs/design/part-events.txt:
Added event doc.
2005-02-10 18:17:19 +00:00
Andy Wingo 6bb6549228 docs/design/part-MT-refcounting.txt (Refcounting): Some grammar/clarity fixes, and added a section on child structure...
Original commit message from CVS:
2005-02-10  Andy Wingo  <wingo@pobox.com>

* docs/design/part-MT-refcounting.txt (Refcounting): Some
grammar/clarity fixes, and added a section on child structures of
shared refcounted objects.
2005-02-10 14:49:29 +00:00
Wim Taymans 883680f12b docs/design/: Some docs updates.
Original commit message from CVS:
* docs/design/part-TODO.txt:
* docs/design/part-negotiation.txt:
* docs/design/part-states.txt:
Some docs updates.
2005-02-10 14:34:53 +00:00
Andy Wingo b1d9edff2f docs/design/part-MT-refcounting.txt: Fill to 80 columns.
Original commit message from CVS:
2005-02-10  Andy Wingo  <wingo@pobox.com>

* docs/design/part-MT-refcounting.txt: Fill to 80 columns.
2005-02-10 14:13:00 +00:00
Andy Wingo 6e0dfb6f50 gst/gstcaps.*: Change from copy_on_write.
Original commit message from CVS:
2005-02-10  Andy Wingo  <wingo@pobox.com>

* gst/gstcaps.h:
* gst/gstcaps.c (gst_caps_get_writable): Change from
copy_on_write.
2005-02-10 12:24:43 +00:00
Andy Wingo e0b0e3dab2 docs/gst/tmpl: Commit whatever automagic updates gtkdoc is doing.
Original commit message from CVS:
2005-02-10  Andy Wingo  <wingo@pobox.com>

* docs/gst/tmpl: Commit whatever automagic updates gtkdoc is
doing.
2005-02-10 11:55:48 +00:00
Andy Wingo e880a5522f whoopdee, missed the changelog
Original commit message from CVS:
whoopdee, missed the changelog
2005-02-10 11:52:20 +00:00
Andy Wingo d49e5407c3 grr, and the .cvsignore
Original commit message from CVS:
grr, and the .cvsignore
2005-02-10 11:26:49 +00:00
Andy Wingo 4da4fd220b whoops, really remove them
Original commit message from CVS:
whoops, really remove them
2005-02-10 11:25:47 +00:00
Andy Wingo 3279192621 testsuite/bytestream: Removed, getrange replaces bytestream in
Original commit message from CVS:
2005-02-10  Andy Wingo  <wingo@pobox.com>

* testsuite/bytestream: Removed, getrange replaces bytestream in
-THREADED.

* testsuite/Makefile.am:
* configure.ac: Updated.
2005-02-10 11:23:06 +00:00
Ronald S. Bultje b5f2f92846 gst/gstbuffer.*: Re-add gst_buffer_join ().
Original commit message from CVS:
* gst/gstbuffer.c: (gst_buffer_join):
* gst/gstbuffer.h:
Re-add gst_buffer_join ().
* gst/gsterror.c: (_gst_stream_errors_init):
* gst/gsterror.h:
Add 'invalid data' as an extra stream error.
2005-02-05 16:24:12 +00:00
Wim Taymans 743c2402f4 gst/: Inline refcounting.. not sure why it wasn't before.
Original commit message from CVS:
* gst/gstcaps.c: (gst_caps_intersect):
* gst/gstclock.c: (gst_clock_id_ref), (gst_clock_id_unref),
(gst_clock_id_compare_func), (gst_clock_id_wait),
(gst_clock_id_wait_async), (gst_clock_init),
(gst_clock_adjust_unlocked), (gst_clock_get_time):
* gst/gstinfo.c:
* gst/gstobject.c: (gst_object_class_init), (gst_object_ref),
(gst_object_unref), (gst_object_sink), (gst_object_dispose),
(gst_object_dispatch_properties_changed), (gst_object_set_name),
(gst_object_set_parent), (gst_object_unparent),
(gst_object_check_uniqueness), (gst_object_get_path_string):
* gst/gstutils.c: (gst_element_finish_preroll),
(gst_element_get_compatible_pad_filtered),
(gst_element_link_pads_filtered), (gst_element_unlink),
(gst_pad_use_fixed_caps), (gst_pad_get_fixed_caps_func):
* gst/gstutils.h:
Inline refcounting.. not sure why it wasn't before.
Added use_fixed_caps method to change default getcaps
behaviour.
2005-02-03 17:05:21 +00:00
Ronald S. Bultje 6f40edb7e1 gst/: Re-add gst_element_class_install_std_props, move to gstutils.h.
Original commit message from CVS:
* gst/gstelement.h:
* gst/gstutils.c: (gst_element_populate_std_props),
(gst_element_class_install_std_props):
* gst/gstutils.h:
Re-add gst_element_class_install_std_props, move to gstutils.h.
2005-02-01 17:26:44 +00:00
Wim Taymans a476269842 Fix the md5sum by implementing tha GMainLoop.
Original commit message from CVS:
Fix the md5sum by implementing tha GMainLoop.
2005-01-26 14:29:05 +00:00
Wim Taymans 10e648c7d9 Removed schedulers and compat stuff.
Original commit message from CVS:
Removed schedulers and compat stuff.
Use iterators in bin for the various lookup functions.
Optimized the clock a bit.
Added some more docs.
Fixed scheduling in the ()-(l) case.
Fixed and added some testcases.
Removed old code.
2005-01-26 10:56:09 +00:00
Wim Taymans cec2ab1eac gst/elements/gstfilesrc.*: Fix filesrc push based scheduling.
Original commit message from CVS:
* gst/elements/gstfilesrc.c: (gst_filesrc_getrange),
(gst_filesrc_open_file), (gst_filesrc_loop),
(gst_filesrc_activate), (filesrc_find_peek),
(gst_filesrc_type_find):
* gst/elements/gstfilesrc.h:
Fix filesrc push based scheduling.
2005-01-19 13:55:10 +00:00
Wim Taymans 0a4f48bd55 Fix task creation again.
Original commit message from CVS:
Fix task creation again.
2005-01-18 13:30:13 +00:00
Wim Taymans 864a9acf69 More state change fixes.
Original commit message from CVS:
More state change fixes.
Added/fixed some testcases.
Threadsafety fixes.
2005-01-18 10:52:08 +00:00
Wim Taymans 83156b4a9d gst/: Patch state changes according to design document.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_set_index), (gst_bin_set_clock),
(gst_bin_set_bus), (gst_bin_set_scheduler), (gst_bin_add_func),
(gst_bin_iterate_elements), (gst_bin_get_state),
(gst_bin_change_state), (gst_bin_get_by_name_recurse_up):
* gst/gstelement.c: (gst_element_add_pad),
(gst_element_remove_pad), (gst_element_get_state_func),
(gst_element_get_state), (gst_element_abort_state),
(gst_element_set_state), (gst_element_pads_activate):
* gst/gstelement.h:
Patch state changes according to design document.
2005-01-12 18:54:42 +00:00
Wim Taymans faeeed3dba Some more docs
Original commit message from CVS:
Some more docs
2005-01-12 18:51:45 +00:00
Wim Taymans 11f8f6a649 Bus cleanups.
Original commit message from CVS:
Bus cleanups.
Backport some HEAD changes.
Queue cleanup
2005-01-11 14:58:12 +00:00
Christian Schaller a95e645edc fix problem with gst-feedback
Original commit message from CVS:
fix problem with gst-feedback
2005-01-11 12:34:04 +00:00
Christian Schaller e3bf13106d various build and spec file fixes
Original commit message from CVS:
various build and spec file fixes
2005-01-11 12:05:02 +00:00
Wim Taymans 60beeadc26 gst/gstelement.c: Small cleanups, free the state mutex.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_add_pad),
(gst_element_remove_pad), (gst_element_pads_activate),
(gst_element_dispose):
Small cleanups, free the state mutex.
2005-01-07 16:05:41 +00:00
Wim Taymans 74ca793b0a Clock fixes. Added async callbacks and clock unscheduling.
Original commit message from CVS:
Clock fixes. Added async callbacks and clock unscheduling.
Threading fixes. Fixed race condition in GstTask and possible
deadlock in _pad_get_caps(). Made various subsystems (query,
format,..) threadsafe.
Lots of cleanups and documentation.
2005-01-06 18:17:12 +00:00
Thomas Vander Stichele 2b58a38a2b thread's dead, baby. thread's dead.
Original commit message from CVS:
thread's dead, baby.  thread's dead.
2005-01-06 11:39:55 +00:00
Wim Taymans 5951a9840d gst/: Work on flushing.
Original commit message from CVS:
* gst/elements/gstfilesrc.c: (gst_filesrc_getrange),
(gst_filesrc_get), (gst_filesrc_activate):
* gst/gstclock.c: (gst_clock_init), (gst_clock_dispose):
* gst/gstclock.h:
* gst/gstevent.c: (gst_event_new_discontinuous_valist),
(gst_event_new_discontinuous), (gst_event_discont_get_value),
(gst_event_new_flush):
* gst/gstevent.h:
* gst/gstpad.c: (gst_pad_set_active), (gst_pad_set_blocked_async),
(gst_pad_set_acceptcaps_function),
(gst_pad_set_fixatecaps_function), (gst_pad_unlink),
(gst_pad_link_prepare_filtered), (gst_pad_link_filtered),
(gst_pad_relink_filtered), (gst_real_pad_get_caps_unlocked),
(gst_pad_peer_get_caps), (gst_pad_fixate_caps),
(gst_pad_accept_caps), (gst_pad_peer_accept_caps),
(gst_pad_set_caps), (gst_pad_configure_sink),
(gst_pad_configure_src), (gst_pad_realize), (gst_pad_alloc_buffer),
(gst_pad_push), (gst_pad_push_event), (gst_pad_send_event):
* gst/gstpad.h:
* gst/gsttask.c: (gst_task_pause):
* gst/gsttask.h:
* gst/schedulers/threadscheduler.c:
(gst_thread_scheduler_task_class_init),
(gst_thread_scheduler_task_init),
(gst_thread_scheduler_task_start),
(gst_thread_scheduler_task_stop),
(gst_thread_scheduler_task_pause), (gst_thread_scheduler_func):
Work on flushing.
Allow tasks to be paused.
Remove some old code in GstClock
2005-01-04 12:06:57 +00:00