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.
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.
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.
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.
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.
Original commit message from CVS:
* check/gst/gstobject.c:
* docs/design/part-gstelement.txt:
* docs/design/part-gstobject.txt:
* gst/gstobject.c:
* gst/gstobject.h:
add _get/_set_name_prefix() for debugging. Update docs.
Finish unique name unit test
Original commit message from CVS:
make names only settable when unparented, so we can guarantee
uniqueness inside a parent together with the _add checks
2
Original commit message from CVS:
* Makefile.am:
* check/Makefile.am:
* check/gst/.cvsignore:
* check/gst/gstobject.c:
* configure.ac:
adding unit testing
* docs/upload.mak:
fixing double vars
* gst/Makefile.am:
disable some unused stuff
* gst/gstbus.h:
* gst/gsttypes.h:
move typedefs for gstbus
* gst/gstelement.c:
* gst/gstelement.h:
add getter/setter for bus and scheduler
add functionality to have (non-fatal) warnings as messages
* gst/gsterror.c:
* gst/gsterror.h:
* gst/gstmessage.c:
* gst/gstmessage.h:
rework API to be more general for warnings as well
* gst/gstobject.c:
fix docs
* tools/gst-launch.c:
fix macros for errors
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.
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
Original commit message from CVS:
* testsuite/threads/159566.c: (object_deep_notify), (main):
* testsuite/threads/Makefile.am:
Added testsuite to show bug #159566
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.
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.
Original commit message from CVS:
* docs/Makefile.am:
* docs/manual/elements-api.xml:
restructure so that common stuff is shown first
* docs/manual/init-api.xml:
convert to examples
* docs/manual/manual.xml:
* docs/manuals.mak:
* docs/url.entities:
link to API on the website, possibly override later in build
* examples/manual/.cvsignore:
ignore more
* examples/manual/Makefile.am:
add more examples
* examples/manual/extract.pl:
error out on failure
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.
Original commit message from CVS:
* tests/mass_elements.c: (main):
allow specifying src and sink element explicitly, so I can test
videotestsrc instead of fakesrc
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.
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
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.