Commit graph

358 commits

Author SHA1 Message Date
Wim Taymans
bd9cd13058 Doc updates,
Original commit message from CVS:
* REQUIREMENTS:
* docs/design/part-MT-refcounting.txt:
* docs/design/part-clocks.txt:
* docs/design/part-conventions.txt:
* docs/design/part-gstobject.txt:
* docs/design/part-relations.txt:
* docs/design/part-standards.txt:
* libs/gst/control/dparam.c: (gst_dparam_attach):
* libs/gst/control/dparam.h:
* libs/gst/control/dparammanager.c:
(gst_dpman_add_required_dparam_callback),
(gst_dpman_add_required_dparam_direct),
(gst_dpman_add_required_dparam_array), (gst_dpman_attach_dparam),
(gst_dpman_get_dparam), (gst_dpman_get_dparam_type),
(gst_dpman_get_manager), (gst_dpman_bypass_dparam),
(gst_dpman_preprocess_asynchronous),
(gst_dpman_process_asynchronous), (gst_dpman_process_noop):
* libs/gst/control/dparammanager.h:
* testsuite/clock/clock2.c: (gst_clock_debug), (element_wait),
(main):
* testsuite/threads/signals.c: (run_thread), (main):
* testsuite/threads/thread.c: (main):
* tools/gst-launch.c: (fault_handler_sighandler),
(fault_handler_sigaction), (fault_spin):
Doc updates,
Head backporting.
Fix some testcases.
2005-03-10 12:53:16 +00:00
Wim Taymans
fdcf9acd4b Fix pad_get_direction wrt ghostpads.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_get_direction):
* gst/gstpad.h:
* testsuite/bins/interface.c: (main):
* testsuite/refcounting/bin.c: (add_remove_test1),
(add_remove_test2), (main):
* testsuite/refcounting/element.c: (main):
* testsuite/refcounting/element_pad.c: (main):
* testsuite/refcounting/pad.c: (main):
Fix pad_get_direction wrt ghostpads.
Fix some more testsuites.
2005-03-09 17:30:43 +00:00
Wim Taymans
5d498183bc Clean up gstelement.h
Original commit message from CVS:
Clean up gstelement.h
GstBin cleanups, fix bug where iterator was freed.
GstElement cleanups.
Backport gstinfo from HEAD.
Fix GstIterator comparison bug.
Fix clock tests.
2005-03-09 16:24:52 +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
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
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
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
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
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
3ffce00efc commiting wim's preliminary threaded work to a branch
Original commit message from CVS:
commiting wim's preliminary threaded work to a branch
2004-12-08 17:40:37 +00:00
Wim Taymans
522f5f7231 Added testcase for failing bin iterate function due to glib thread-unsafeness.
Original commit message from CVS:
Added testcase for failing bin iterate function due to glib thread-unsafeness.
2004-11-29 17:29:37 +00:00
Wim Taymans
4c20dfd33d testsuite/threads/: Added a bunch of testcases that show threadsafety bugs in glib.
Original commit message from CVS:
* testsuite/threads/Makefile.am:
* testsuite/threads/signals.c: (gst_test_get_type),
(gst_test_class_init), (gst_test_init), (gst_test_dispose),
(gst_test_set_property), (gst_test_get_property),
(gst_test_do_signal1), (signal2_handler), (gst_test_do_signal2),
(gst_test_do_prop), (run_thread), (main):
Added a bunch of testcases that show threadsafety bugs in glib.
2004-11-29 14:27:04 +00:00
Benjamin Otte
a9bad8aa6e gst/gstelement.c: simplify
Original commit message from CVS:
* gst/gstelement.c: (gst_element_negotiate_pads):
simplify
* gst/gstvalue.c: (gst_string_wrap), (gst_string_unwrap),
(gst_value_serialize_string), (gst_value_deserialize_string):
add unwrapping of previously wrapped strings. Fix bug in wrapping
while at it.
* testsuite/caps/value_serialize.c: (test1),
(test_string_serialization), (test_string_deserialization), (main):
add tests for string (de)serialization
2004-11-28 18:02:48 +00:00
Wim Taymans
7d5e71663c testsuite/threads/: Added testsuite to show bug #159566
Original commit message from CVS:
* testsuite/threads/159566.c: (object_deep_notify), (main):
* testsuite/threads/Makefile.am:
Added testsuite to show bug #159566
2004-11-26 18:29:06 +00:00
Wim Taymans
df7f3e4161 Added testcase for schduler segfault.
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c: (add_to_group),
(remove_from_group), (normalize_group), (group_migrate_connected),
(gst_opt_scheduler_iterate):
* testsuite/schedulers/.cvsignore:
* testsuite/schedulers/Makefile.am:
* testsuite/schedulers/queue_link.c: (main):
Added testcase for schduler segfault.
Fix scheduler segfault when removing a decoupled
entry point as the last element from a group.
2004-11-04 11:03:48 +00:00
Wim Taymans
3cf9fdfcb7 Since parse can do 'element name=a:b' make 'a:b.' work as well.
Original commit message from CVS:
* gst/parse/parse.l:
* testsuite/parse/parse1.c: (main):
Since parse can do 'element name=a:b' make 'a:b.' work as
well.
Added testcase to verify fix.
2004-10-19 09:38:20 +00:00
Thomas Vander Stichele
bb22738d21 disable the tests that still fail on SMP
Original commit message from CVS:
disable the tests that still fail on SMP
2004-09-09 19:09:49 +00:00
Wim Taymans
8448b21439 Added missing tests
Original commit message from CVS:
Added missing tests
2004-09-09 08:56:51 +00:00
Thomas Vander Stichele
ecb3dc6865 unbreak testsuite
Original commit message from CVS:
unbreak testsuite
2004-09-08 23:37:07 +00:00
Wim Taymans
5905655ead Reworked the GstThread implementation, make more operations threadsafe and more reliable.
Original commit message from CVS:
* gst/gstthread.c: (gst_thread_dispose), (gst_thread_sync),
(gst_thread_change_state), (gst_thread_child_state_change),
(gst_thread_main_loop):
* gst/gstthread.h:
* testsuite/threads/Makefile.am:
* testsuite/threads/queue.c:
* testsuite/threads/thread.c: (construct_pipeline), (change_state),
(main):
* testsuite/threads/threadc.c: (construct_pipeline):
* testsuite/threads/threadd.c: (main):
* testsuite/threads/threade.c: (main):
* testsuite/threads/threadf.c:
Reworked the GstThread implementation, make more operations
threadsafe and more reliable.
Moved testcases from the failing to the working list.
2004-09-06 15:57:11 +00:00
Benjamin Otte
e1ef5586cd testsuite/: s/gst_pad_new/&_from_template/ prepare deprecation of gst_pad_new
Original commit message from CVS:
* testsuite/bytestream/gstbstest.c: (gst_bstest_init):
* testsuite/dynparams/dparamstest.c: (gst_dptest_init):
* testsuite/refcounting/pad.c: (main):
* testsuite/refcounting/thread.c: (create_thread_ghostpads):
s/gst_pad_new/&_from_template/
prepare deprecation of gst_pad_new
2004-08-17 10:16:35 +00:00
Thomas Vander Stichele
8f0fda26d0 revert state change changes as agreed so we can rework them gradually
Original commit message from CVS:
revert state change changes as agreed so we can rework them gradually
2004-07-29 20:33:49 +00:00
Wim Taymans
ab1a23ffa2 More pendatic checks removed.
Original commit message from CVS:
More pendatic checks removed.
2004-07-29 16:01:58 +00:00
Wim Taymans
8615072540 testsuite/caps/fraction-convert.c: Make the test less pedantic about float roundoff errors.
Original commit message from CVS:
* testsuite/caps/fraction-convert.c: (check_from_double_convert),
(check_from_fraction_convert), (transform_test), (main):
Make the test less pedantic about float roundoff errors.
2004-07-29 15:40:00 +00:00
Benjamin Otte
3d67acc6cd /me kicks ds
Original commit message from CVS:
/me kicks ds
2004-07-29 15:37:44 +00:00
Benjamin Otte
6788d167d6 gst/elements/gstfilesrc.c: make seek events to before start/after end of file not fail, but seek to start/end instead
Original commit message from CVS:
* gst/elements/gstfilesrc.c: (gst_filesrc_open_file),
(gst_filesrc_srcpad_event):
make seek events to before start/after end of file not fail, but
seek to start/end instead
* testsuite/caps/fraction-convert.c: (check_from_double_convert):
add more output
2004-07-29 15:34:25 +00:00
Thomas Vander Stichele
0dc1a2b42f fix distchekc
Original commit message from CVS:
fix distchekc
2004-07-29 15:15:16 +00:00
David Schleef
2c4c302945 testsuite/elements/: A little test to keep distcheck from working if someone changes a structure size accidentally.
Original commit message from CVS:
* testsuite/elements/Makefile.am:
* testsuite/elements/struct_i386.h:
* testsuite/elements/struct_size.c: (main):  A little test
to keep distcheck from working if someone changes a structure
size accidentally.
2004-07-28 19:16:44 +00:00
Thomas Vander Stichele
576559bba9 sigh, remove here too of course
Original commit message from CVS:
sigh, remove here too of course
2004-07-28 12:02:24 +00:00
Thomas Vander Stichele
567bd4a202 more ignore, add enumcaps.c
Original commit message from CVS:
more ignore, add enumcaps.c
2004-07-28 11:58:42 +00:00
Thomas Vander Stichele
cc62cef6fa fold enumcaps into caps/; clean up Makefile.am files
Original commit message from CVS:
fold enumcaps into caps/; clean up Makefile.am files
2004-07-28 11:43:04 +00:00
Wim Taymans
36b41f4666 Added transform functions between double and fraction.
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_transform_double_fraction),
(gst_value_transform_fraction_double), (_gst_value_initialize):
* testsuite/caps/Makefile.am:
* testsuite/caps/fraction-convert.c: (check_from_double_convert),
(check_from_fraction_convert), (transform_test), (main):
Added transform functions between double and fraction.
Added testcase to verify transforms
2004-07-27 16:45:30 +00:00
David Schleef
4fa4267105 gst/gststructure.c: Set type field correctly.
Original commit message from CVS:
* gst/gststructure.c: (gst_structure_id_empty_new),
(gst_structure_empty_new):  Set type field correctly.
* gst/gststructure.h: Check type field correctly.
* testsuite/caps/Makefile.am:
* testsuite/caps/structure.c: (test1), (main): Add a very small
test for structures.
2004-07-23 00:12:57 +00:00
Wim Taymans
96c58fdeab group_link works now
Original commit message from CVS:
group_link works now
2004-07-22 09:44:50 +00:00
Wim Taymans
efa80cd2c9 testsuite/schedulers/: Show bug in scheduler when linking chain and loop based element where the chain based element ...
Original commit message from CVS:
* testsuite/schedulers/147894-2.c: (queue_empty), (queue_filled),
(handoff_identity), (main):
* testsuite/schedulers/147894.c: (queue_empty), (queue_filled),
(handoff_identity), (main):
* testsuite/schedulers/Makefile.am:
* testsuite/schedulers/group_link.c: (main):
Show bug in scheduler when linking chain and loop based element
where the chain based element was not yet in a group.
2004-07-22 09:39:28 +00:00
Benjamin Otte
228cef489a keep this up to date, since I seem to be the only one who cares about not missing files on commits
Original commit message from CVS:
* gst/.cvsignore:
* gst/autoplug/.cvsignore:
* gst/elements/.cvsignore:
* gst/indexers/.cvsignore:
* libs/gst/bytestream/.cvsignore:
* libs/gst/control/.cvsignore:
* libs/gst/getbits/.cvsignore:
* testsuite/states/.cvsignore:
* testsuite/threads/.cvsignore:
keep this up to date, since I seem to be the only one who cares
about not missing files on commits
2004-07-21 21:37:31 +00:00
Benjamin Otte
28bf20507e gst/gstbin.c: make state changes work correctly and reentrant (so removing elements from bins during state changes of...
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_get_type), (gst_bin_class_init),
(gst_bin_fix_state), (gst_bin_add_func), (gst_bin_remove_func),
(gst_bin_child_state_change_func), (set_kid_state_func),
(gst_bin_set_state), (gst_bin_change_state_norecurse):
make state changes work correctly and reentrant (so removing
elements from bins during state changes of bins doesn't cause
segfaults or even wrong states)
add debugging category and debugging output to print children states
* gst/gstbin.c: (gst_bin_dispose):
add some assertion checks
* gst/gstbin.h:
* gst/gstbin.c: (gst_bin_sync_children_state):
deprecate this function - it just does gst_bin_set_state (bin,
GST_STATE (bin))
* testsuite/threads/queue.c: (main):
don't use gst_bin_sync_children_state anymore
* testsuite/states/Makefile.am:
* testsuite/states/bin.c:
test that the state changes of bins work as expected
* gst/gstthread.c: (gst_thread_class_init), (gst_thread_set_state):
some adjustments to change states correctly, too
* gst/gstthread.c: (gst_thread_change_state):
don't enable/disable "threadsafe" properties, they're unused and
cause random segfaults
* testsuite/threads/Makefile.am:
the queue check randomly passes now, ignore it
2004-07-21 21:28:58 +00:00
Ronald S. Bultje
8b895dadce docs/random/ds/0.9-suggested-changes: Make note about renaming fixed-list to array.
Original commit message from CVS:
* docs/random/ds/0.9-suggested-changes:
Make note about renaming fixed-list to array.
* gst/gstvalue.c: (gst_value_intersect_fixed_list),
(_gst_value_initialize):
Add array intersections.
* testsuite/caps/intersect2.c: (main):
Add test for array intersections.
2004-07-20 19:35:15 +00:00
Wim Taymans
0344b6b464 testsuite/schedulers/: Added failing testcase for variant of #147894
Original commit message from CVS:
* testsuite/schedulers/147894-2.c: (queue_empty), (queue_filled),
(handoff_identity), (main):
* testsuite/schedulers/147894.c: (queue_empty), (queue_filled),
(handoff_identity), (main):
* testsuite/schedulers/Makefile.am:
Added failing testcase for variant of #147894
2004-07-20 11:21:03 +00:00
Thomas Vander Stichele
050631f63b fix for #142813 - deadlock in opt
Original commit message from CVS:
fix for #142813 - deadlock in opt
2004-07-20 10:57:38 +00:00
Thomas Vander Stichele
add97dd1ce fix for #147819 (Add some checks in the opt scheduler)
Original commit message from CVS:
fix for #147819 (Add some checks in the opt scheduler)
2004-07-20 10:40:09 +00:00
Thomas Vander Stichele
b515b8a729 fix for #147894 (opt scheduler decoupled elements mismanagement)
Original commit message from CVS:
fix for #147894 (opt scheduler decoupled elements mismanagement)
2004-07-20 09:55:13 +00:00
Wim Taymans
dfb5f38351 Added testcase for 147819
Original commit message from CVS:
Added testcase for 147819
2004-07-19 15:48:14 +00:00
Wim Taymans
282255877d testsuite/schedulers/: Added testcase for bug 147894
Original commit message from CVS:
* testsuite/schedulers/147894.c: (queue_empty), (queue_filled),
(handoff_identity), (main):
* testsuite/schedulers/Makefile.am:
Added testcase for bug 147894
2004-07-19 14:53:13 +00:00
Wim Taymans
6f82a0ea1a testsuite/schedulers/: Added testsuite for bug 142183 in its two incarnations. Refcount is not increased for schedule...
Original commit message from CVS:
* testsuite/schedulers/142183-2.c: (handoff_identity), (main):
* testsuite/schedulers/142183.c: (handoff_identity), (main):
* testsuite/schedulers/Makefile.am:
Added testsuite for bug 142183 in its two incarnations. Refcount
is not increased for scheduled elements and threadsafe properties
mutexes are not properly unlocked.
2004-07-16 17:19:54 +00:00
Wim Taymans
77d9b2648d testsuite/schedulers/: Added cleanup code to testcase 143777-2.
Original commit message from CVS:
* testsuite/schedulers/143777-2.c: (main):
* testsuite/schedulers/147713.c: (handoff_src), (handoff_sink),
(main):
* testsuite/schedulers/Makefile.am:
Added cleanup code to testcase 143777-2.
Added testcase to show bug 147713, does not really show the
deadlock as I can't figure out how to trigger it, but it does
demonstrate bad ordering in the scheduler.
2004-07-16 15:45:29 +00:00
Benjamin Otte
ae7fb01363 gst/gstvalue.c: use ints and return ints, fractions only use ints, too, so this avoids accidently casting multiplicat...
Original commit message from CVS:
* gst/gstvalue.c: (gst_greatest_common_divisor):
use ints and return ints, fractions only use ints, too, so this
avoids accidently casting multiplications to unsigned
(gst_value_lcopy_fraction): it's ints, not uint32
(gst_value_set_fraction): disallow minint, multiplying and negation
are broken with it
(gst_value_fraction_multiply): fix to make large numbers work and get
rid of the assumption that the multiplication of two ints fits an
int64 - dunno if that's true for all systems
* testsuite/caps/Makefile.am:
* testsuite/caps/fraction-multiply-and-zero.c:
(check_multiplication), (check_equal), (zero_test), (main):
add tests for all the stuff above
* testsuite/caps/value_compare.c: (test1):
fix comment
* tests/.cvsignore:
* testsuite/caps/.cvsignore:
* testsuite/debug/.cvsignore:
* testsuite/dlopen/.cvsignore:
* testsuite/states/.cvsignore:
get up to date
2004-07-16 01:16:53 +00:00
Thomas Vander Stichele
e684907eb2 remove this for later gvalue testsuite dir
Original commit message from CVS:
remove this for later gvalue testsuite dir
2004-07-15 23:25:11 +00:00